'use client'; import useGlobalStore from '@/config/use-global'; import { updateUserNotify } from '@/services/user/user'; import { zodResolver } from '@hookform/resolvers/zod'; import { Card, CardContent, CardHeader, CardTitle } from '@workspace/ui/components/card'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@workspace/ui/components/form'; import { Switch } from '@workspace/ui/components/switch'; import { useTranslations } from 'next-intl'; import { useForm } from 'react-hook-form'; import { toast } from 'sonner'; import { z } from 'zod'; const FormSchema = z.object({ enable_balance_notify: z.boolean(), enable_login_notify: z.boolean(), enable_subscribe_notify: z.boolean(), enable_trade_notify: z.boolean(), }); export default function NotifyEvent() { const t = useTranslations('profile.notifyEvent'); const { user, getUserInfo } = useGlobalStore(); const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: { enable_balance_notify: user?.enable_balance_notify, enable_login_notify: user?.enable_login_notify, enable_subscribe_notify: user?.enable_subscribe_notify, enable_trade_notify: user?.enable_trade_notify, }, }); async function onSubmit(data: z.infer) { await updateUserNotify(data); toast.success(t('updateSuccess')); getUserInfo(); } return ( {t('notificationEvents')}
( {t('balanceChange')} { field.onChange(value); form.handleSubmit(onSubmit)(); }} /> )} /> ( {t('login')} { field.onChange(value); form.handleSubmit(onSubmit)(); }} /> )} /> ( {t('subscribe')} { field.onChange(value); form.handleSubmit(onSubmit)(); }} /> )} /> ( {t('finance')} { field.onChange(value); form.handleSubmit(onSubmit)(); }} /> )} />
); }