'use client'; import { updateUserNotifySetting } from '@/services/admin/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 * as z from 'zod'; const notifySettingsSchema = z.object({ enable_balance_notify: z.boolean(), enable_login_notify: z.boolean(), enable_subscribe_notify: z.boolean(), enable_trade_notify: z.boolean(), }); type NotifySettingsValues = z.infer; export function NotifySettingsForm({ user, refetch }: { user: API.User; refetch: () => void }) { const t = useTranslations('user'); const form = useForm({ resolver: zodResolver(notifySettingsSchema), 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: NotifySettingsValues) { await updateUserNotifySetting({ ...data, user_id: user.id, }); toast.success(t('updateSuccess')); refetch(); } return (
{t('notifySettingsTitle')}
( {t('balanceNotifications')} )} /> ( {t('loginNotifications')} )} /> ( {t('subscriptionNotifications')} )} /> ( {t('tradeNotifications')} )} />
); }