import { Button } from "@rallly/ui/button"; import { Form, FormField, FormItem, FormLabel } from "@rallly/ui/form"; import { ArrowUpRight } from "lucide-react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useSession } from "next-auth/react"; import { useTranslation } from "next-i18next"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { LanguageSelect } from "@/components/poll/language-selector"; import { Trans } from "@/components/trans"; import { useUser } from "@/components/user-provider"; import { trpc } from "@/utils/trpc/client"; const formSchema = z.object({ language: z.string(), }); type FormData = z.infer; export const LanguagePreference = () => { const { i18n } = useTranslation(); const { user } = useUser(); const router = useRouter(); const form = useForm({ defaultValues: { language: i18n.language, }, }); const updatePreferences = trpc.user.updatePreferences.useMutation(); const session = useSession(); return (
{ if (!user.isGuest) { await updatePreferences.mutateAsync({ locale: data.language }); } await session.update({ locale: data.language }); router.refresh(); })} > ( )} />
); };