From 9c30e3ebd70e3b58f13a77e2a1f621f1e59330db Mon Sep 17 00:00:00 2001 From: hexastack Date: Wed, 5 Feb 2025 18:42:13 +0100 Subject: [PATCH] fix: reset form --- .../content-types/ContentTypeDialog.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/content-types/ContentTypeDialog.tsx b/frontend/src/components/content-types/ContentTypeDialog.tsx index 3c248040..91547560 100644 --- a/frontend/src/components/content-types/ContentTypeDialog.tsx +++ b/frontend/src/components/content-types/ContentTypeDialog.tsx @@ -25,7 +25,7 @@ import { EntityType } from "@/services/types"; import { ContentFieldType, IContentType } from "@/types/content-type.types"; import { FieldInput } from "./components/FieldInput"; -import { READ_ONLY_FIELDS } from "./constants"; +import { FIELDS_FORM_DEFAULT_VALUES, READ_ONLY_FIELDS } from "./constants"; export type ContentTypeDialogProps = DialogControlProps; export const ContentTypeDialog: FC = ({ @@ -45,16 +45,20 @@ export const ContentTypeDialog: FC = ({ } = useForm>({ defaultValues: { name: data?.name || "", - fields: data?.fields || [], + fields: data?.fields || FIELDS_FORM_DEFAULT_VALUES, }, }); - const { append, fields, remove } = useFieldArray({ + const { append, fields, remove, replace } = useFieldArray({ name: "fields", control, }); const CloseAndReset = () => { closeDialog(); - reset(); + reset({ + name: "", + fields: FIELDS_FORM_DEFAULT_VALUES, + }); + replace(FIELDS_FORM_DEFAULT_VALUES); }; const { mutate: createContentType } = useCreate(EntityType.CONTENT_TYPE, { onError: (error) => { @@ -92,10 +96,12 @@ export const ContentTypeDialog: FC = ({ name: data.name, fields: data.fields || [], }); + replace(data.fields || FIELDS_FORM_DEFAULT_VALUES); } else { - reset(); + reset({ name: "", fields: FIELDS_FORM_DEFAULT_VALUES }); + replace(FIELDS_FORM_DEFAULT_VALUES); } - }, [data, reset]); + }, [open, data, reset, replace]); return (