"use client"; import { useRouter } from "next/navigation"; import { useState, useTransition } from "react"; import { AlertTriangle, Check, Globe2, RotateCcw, Save } from "lucide-react"; import { Badge, Button, Card, CardContent, Label, RadioGroup, RadioGroupItem } from "poyraz-ui/atoms"; import { Alert, AlertDescription, AlertTitle, toast } from "poyraz-ui/molecules"; import { useTranslations } from "@/components/i18n/i18n-provider"; import { resetPortalLanguagePreferenceAction, savePortalLanguagePreferenceAction, } from "./actions"; type LocaleOption = { code: string; name: string; nativeName: string; }; export function PortalLanguagePreferenceForm({ activeLocales, assignedLanguage, initialLanguage, preferenceNeedsSelection, }: { activeLocales: LocaleOption[]; assignedLanguage: string; initialLanguage: string; preferenceNeedsSelection: boolean; }) { const t = useTranslations(); const router = useRouter(); const [language, setLanguage] = useState(initialLanguage); const [pending, startTransition] = useTransition(); const assignedLocale = activeLocales.find((locale) => locale.code === assignedLanguage); function submit() { startTransition(async () => { const result = await savePortalLanguagePreferenceAction(language); if (result.errorKey) { toast.error(t(result.errorKey)); return; } toast.success(t("settings.languagePreference.messages.saved")); router.refresh(); }); } function reset() { startTransition(async () => { const result = await resetPortalLanguagePreferenceAction(); if (result.errorKey) { toast.error(t(result.errorKey)); return; } setLanguage(result.language ?? assignedLanguage); toast.success(t("settings.portal.language.messages.reset")); router.refresh(); }); } return (

{t("settings.portal.language.title")}

{t("settings.portal.language.description")}

{preferenceNeedsSelection && ( )} {activeLocales.map((locale) => ( ))}
); }