diff --git a/packages/frontend/admin/src/modules/accounts/components/user-form.tsx b/packages/frontend/admin/src/modules/accounts/components/user-form.tsx index d0cf9dfbc..4db0666d3 100644 --- a/packages/frontend/admin/src/modules/accounts/components/user-form.tsx +++ b/packages/frontend/admin/src/modules/accounts/components/user-form.tsx @@ -31,9 +31,16 @@ function UserForm({ }: UserFormProps) { const serverConfig = useServerConfig(); - const [changes, setChanges] = useState>({ - features: defaultValue?.features ?? [], - }); + const defaultUser: Partial = useMemo( + () => ({ + name: defaultValue?.name ?? '', + email: defaultValue?.email ?? '', + features: defaultValue?.features ?? [], + }), + [defaultValue?.email, defaultValue?.features, defaultValue?.name] + ); + + const [changes, setChanges] = useState>(defaultUser); const setField = useCallback( ( @@ -74,6 +81,15 @@ function UserForm({ [setField] ); + const handleClose = useCallback(() => { + setChanges(defaultUser); + onClose(); + }, [defaultUser, onClose]); + + useEffect(() => { + setChanges(defaultUser); + }, [defaultUser]); + return (
@@ -82,7 +98,7 @@ function UserForm({ size="icon" className="w-7 h-7" variant="ghost" - onClick={onClose} + onClick={handleClose} > @@ -104,14 +120,14 @@ function UserForm({
@@ -121,11 +137,7 @@ function UserForm({
{i < serverConfig.availableUserFeatures.length - 1 && ( @@ -188,7 +200,7 @@ function InputItem({