'use client'; import useGlobalStore from '@/config/use-global'; import { bindTelegram, unbindTelegram, updateUserNotifySetting } from '@/services/user/user'; import { Button } from '@shadcn/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@shadcn/ui/card'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@shadcn/ui/form'; import { Input } from '@shadcn/ui/input'; import { useForm } from '@shadcn/ui/lib/react-hook-form'; import { toast } from '@shadcn/ui/lib/sonner'; import { z, zodResolver } from '@shadcn/ui/lib/zod'; import { Switch } from '@shadcn/ui/switch'; import { useTranslations } from 'next-intl'; const FormSchema = z.object({ telegram: z.number().nullish(), enable_email_notify: z.boolean(), enable_telegram_notify: z.boolean(), }); export default function NotifySettings() { const t = useTranslations('profile.notify'); const { user, getUserInfo } = useGlobalStore(); const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: { telegram: user?.telegram, enable_email_notify: user?.enable_email_notify, enable_telegram_notify: user?.enable_telegram_notify, }, }); async function onSubmit(data: z.infer) { await updateUserNotifySetting(data as API.UpdateUserNotifySettingRequet); toast.success(t('updateSuccess')); } return ( {t('notificationSettings')}
( {t('telegramId')}
{ field.onChange(e.target.value ? Number(e.target.value) : ''); }} disabled />
)} /> ( {t('emailNotification')} { field.onChange(value); form.handleSubmit(onSubmit)(); }} /> )} /> ( {t('telegramNotification')} { field.onChange(value); form.handleSubmit(onSubmit)(); }} /> )} />
); }