"use client"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState, useTransition } from "react"; import { ArrowLeft, Languages, Save } from "lucide-react"; import { Button, Card, CardContent, Input, Label, RadioGroup, RadioGroupItem } from "poyraz-ui/atoms"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, toast } from "poyraz-ui/molecules"; import { useTranslations } from "@/components/i18n/i18n-provider"; import { createLanguageAction } from "./actions"; type FallbackOption = { code: string; nativeName: string; }; export function NewLanguageForm({ defaultFallback, fallbackOptions, }: { defaultFallback: string; fallbackOptions: FallbackOption[]; }) { const t = useTranslations(); const router = useRouter(); const [fallbackLocale, setFallbackLocale] = useState(defaultFallback); const [pending, startTransition] = useTransition(); function submit(formData: FormData) { formData.set("fallbackLocale", fallbackLocale); startTransition(async () => { const result = await createLanguageAction(formData); if (result.errorKey) { toast.error(t(result.errorKey)); return; } toast.success(t("settings.languageNew.messages.created")); router.push(`/settings/languages/${encodeURIComponent(result.locale ?? "")}`); }); } return (

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

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

{t("settings.languageNew.help.code")}

{t("settings.languageNew.help.nativeName")}

{t("settings.languageNew.help.fallback")}

{t("settings.languageNew.fields.direction")} {(["ltr", "rtl"] as const).map((direction) => ( ))}
); }