'use client'; import useGlobalStore from '@/config/use-global'; import { updateUserNotify } from '@/services/user/user'; import { zodResolver } from '@hookform/resolvers/zod'; import { Button } from '@workspace/ui/components/button'; import { Card, CardContent, CardHeader, CardTitle } from '@workspace/ui/components/card'; import { Form, FormControl, FormField, FormItem, FormLabel } 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 NotifySettings() { const t = useTranslations('profile'); const { user, getUserInfo } = useGlobalStore(); const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: { enable_balance_notify: user?.enable_balance_notify ?? false, enable_login_notify: user?.enable_login_notify ?? false, enable_subscribe_notify: user?.enable_subscribe_notify ?? false, enable_trade_notify: user?.enable_trade_notify ?? false, }, }); async function onSubmit(data: z.infer) { await updateUserNotify(data); toast.success(t('notify.updateSuccess')); await getUserInfo(); } return ( {t('notify.notificationSettings')}
{[ { name: 'enable_balance_notify', label: 'balanceChange' }, { name: 'enable_login_notify', label: 'login' }, { name: 'enable_subscribe_notify', label: 'subscribe' }, { name: 'enable_trade_notify', label: 'finance' }, ].map(({ name, label }) => ( ( {t(`notify.${label}`)} )} /> ))}
); }