"use client"; import { useRouter } from "next/navigation"; import { useState, useTransition } from "react"; import { AlertTriangle, Check, Globe2, 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 { saveLanguagePreferenceAction } from "./actions"; type LocaleOption = { code: string; name: string; nativeName: string; }; export function LanguagePreferenceForm({ activeLocales, defaultLocale, initialLanguage, preferenceNeedsSelection, }: { activeLocales: LocaleOption[]; defaultLocale: string; initialLanguage: string; preferenceNeedsSelection: boolean; }) { const t = useTranslations(); const router = useRouter(); const [language, setLanguage] = useState(initialLanguage); const [pending, startTransition] = useTransition(); const defaultLanguage = activeLocales.find((locale) => locale.code === defaultLocale); function submit() { startTransition(async () => { const result = await saveLanguagePreferenceAction(language); if (result.errorKey) { toast.error(t(result.errorKey)); return; } toast.success(t("settings.languagePreference.messages.saved")); router.refresh(); }); } return (

{t("settings.languagePreference.title")}

{t("settings.languagePreference.description")}

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