diff --git a/CLAUDE.md b/CLAUDE.md index 711d5a1c..a0e24f9b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -80,76 +80,124 @@ Data tables across all modules (master-data, inventory, finance, purchase, etc.) - Apply to: search handlers, filter form submissions, reset handlers 3. **Create custom formikResetHandler function** - - Clear each filter with `updateFilter(fieldName, defaultValue, true)` - - Call `formik.resetForm({ values: { ...defaults } })` - - Close the modal at the end - - Attach to both button `onClick` and form `onReset` handler + - Call `resetFilter()` (single call — resets all `useTableFilter` state to defaults) + - Reset any local error state (e.g. `setHasDateError(false)`, dismiss toasts) + - Call `formik.resetForm({ values: { ...defaults } })` to sync formik to defaults + - Call `filterModal.closeModal()` at the end + - Attach to form `onReset` handler (not `formik.handleReset`) -**Optimization: Avoid useCallback for simple handlers** + ```tsx + const formikResetHandler = () => { + resetFilter(); + setHasDateError(false); + if (dateErrorShown) { toast.dismiss(); setDateErrorShown(false); } + formik.resetForm({ values: { start_date: '', end_date: '', customers: [], filterBy: undefined } }); + filterModal.closeModal(); + }; + // ... +