diff --git a/src/pages/User/List/User.jsx b/src/pages/User/List/User.jsx index 07a55a254dd71f088feda9a8e3a382e53f1fbbc7..bbaf1687cb604a53ba3b0c251507cdc85d22bcf3 100644 --- a/src/pages/User/List/User.jsx +++ b/src/pages/User/List/User.jsx @@ -19,7 +19,8 @@ function User({ user, idx, setConfirmDialog }) { name: z.string().min(2), username: z.string().min(2), email: z.string().min(1).email(), - verified: z.string().transform((val) => val === 'true' ? true : false), + // turn string into boolean + verified: z.string().toLowerCase().transform((x) => x === 'true').pipe(z.boolean()), role: z.coerce.number() }); // ################################# @@ -32,8 +33,9 @@ function User({ user, idx, setConfirmDialog }) { // ### PREPARE FORM const methods = useForm({ resolver: zodResolver(schema), - mode: 'onBlur', - defaultValues: user + mode: 'onChange', + // use anything from user, but turn verified into string + defaultValues: { ...user, verified: user.verified.toString() } }); @@ -70,7 +72,7 @@ function User({ user, idx, setConfirmDialog }) { <RiDeleteBinLine className='cursor-pointer hover:text-UhhRed' title='delete user' onClick={() => setConfirmDialog({ open: true, idToDelete: user.id, displayName: user.username })} /> </h2> <FormProvider {...methods} > - <form onSubmit={methods.handleSubmit(handleSendForm)} noValidate> + <form onSubmit={methods.handleSubmit(handleSendForm)}> <Input name='name' type='text' title='name' required={true} /> <Input name='username' type='text' title='username' required={true} />