'use client'; import useGlobalStore from '@/config/use-global'; import { updateUser } 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, FormMessage, } from '@workspace/ui/components/form'; import { Input } from '@workspace/ui/components/input'; import { Switch } from '@workspace/ui/components/switch'; import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input'; import { UploadImage } from '@workspace/ui/custom-components/upload-image'; import { unitConversion } from '@workspace/ui/utils'; import { useForm } from 'react-hook-form'; import { toast } from 'sonner'; import * as z from 'zod'; const basicInfoSchema = z.object({ avatar: z.string().optional(), balance: z.number().optional(), commission: z.number().optional(), gift_amount: z.number().optional(), refer_code: z.string().optional(), referer_id: z.number().optional(), is_admin: z.boolean().optional(), password: z.string().optional(), enable: z.boolean(), }); type BasicInfoValues = z.infer; export function BasicInfoForm({ user }: { user: API.User }) { const { common } = useGlobalStore(); const { currency } = common; const form = useForm({ resolver: zodResolver(basicInfoSchema), defaultValues: { avatar: user.avatar, balance: user.balance, commission: user.commission, gift_amount: user.gift_amount, refer_code: user.refer_code, referer_id: user.referer_id, is_admin: user.is_admin, enable: user.enable, }, }); async function onSubmit(data: BasicInfoValues) { await updateUser({ id: user.id, ...data, } as API.UpdateUserRequest); toast.success('Saved successfully'); } return (
Basic Information ( Account Enable )} /> ( Administrator )} />
( Balance unitConversion('centsToDollars', value)} formatOutput={(value) => unitConversion('dollarsToCents', value)} onValueChange={(value) => { form.setValue(field.name, value as number); }} /> )} /> ( Commission unitConversion('centsToDollars', value)} formatOutput={(value) => unitConversion('dollarsToCents', value)} onValueChange={(value) => { form.setValue(field.name, value as number); }} /> )} /> ( Gift Amount unitConversion('centsToDollars', value)} formatOutput={(value) => unitConversion('dollarsToCents', value)} onValueChange={(value) => { form.setValue(field.name, value as number); }} /> )} />
( Referral Code { form.setValue(field.name, value as string); }} /> )} /> ( Referrer (User ID) { form.setValue(field.name, value as number); }} /> )} />
( Avatar { form.setValue(field.name, value as string); }} suffix={ form.setValue('avatar', value as string)} /> } /> )} /> ( Password )} />
); }