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 { updateUserNotifySetting } from "@workspace/ui/services/admin/user"; import { useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; 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: () => Promise; }) { const { t } = useTranslation("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, enable_trade_notify: user.enable_trade_notify ?? false, user_id: user.id, }); toast.success(t("updateSuccess", "Updated successfully")); refetch(); } return (
{t("notifySettingsTitle", "Notify Settings")}
( {t("balanceNotifications", "Balance Notifications")} )} /> ( {t("loginNotifications", "Login Notifications")} )} /> ( {t( "subscriptionNotifications", "Subscription Notifications" )} )} /> {/* ( {t("tradeNotifications", "Trade Notifications")} )} /> */}
); }