diff --git a/apps/web/components/Form/Common/Buttons.tsx b/apps/web/components/Form/Common/Buttons.tsx index b6b9e80..2cc1965 100644 --- a/apps/web/components/Form/Common/Buttons.tsx +++ b/apps/web/components/Form/Common/Buttons.tsx @@ -9,7 +9,7 @@ import { useCallback } from 'react'; import { useContext } from 'react'; export function Buttons() { - const { reset, resetValidation, setValidation, values } = useFormStore(); + const { reset, resetValidation, setValidation, status, values } = useFormStore(); const { pageUrlParams, setFormState } = useContext(FormContext); const router = useRouter(); @@ -69,7 +69,9 @@ export function Buttons() { - + ); } diff --git a/apps/web/store/ius/form.ts b/apps/web/store/ius/form.ts index 5619462..777a7fd 100644 --- a/apps/web/store/ius/form.ts +++ b/apps/web/store/ius/form.ts @@ -15,6 +15,7 @@ type FormState = { resetValidation: () => void; setValidation: (input: { name: string } & ElementValidation) => void; setValue: ({ name, value }: { name: string; value: Values[number] }) => void; + status?: 'init' | 'edited'; validation: Record; values: Values; }; @@ -24,10 +25,12 @@ export const useFormStore = create((set) => ({ init: (values) => set(() => ({ defaultValues: values, + status: 'init', values, })), reset: () => set((state) => ({ + status: 'init', validation: {}, values: state.defaultValues, })), @@ -44,6 +47,7 @@ export const useFormStore = create((set) => ({ })), setValue: ({ name, value }) => set((state) => ({ + status: 'edited', validation: { ...state.validation, [name]: undefined,