diff --git a/src/components/pages/expense/filter/ExpensesFilterModal.tsx b/src/components/pages/expense/filter/ExpensesFilterModal.tsx index 99f5a75a..1885785f 100644 --- a/src/components/pages/expense/filter/ExpensesFilterModal.tsx +++ b/src/components/pages/expense/filter/ExpensesFilterModal.tsx @@ -121,37 +121,40 @@ const ExpensesFilterModal = ({ {/* Modal Body */}
- - - - {formik.touched.realization_date && - formik.errors.realization_date && ( - - {formik.errors.realization_date} - - )} +
+ Tanggal +
+ +
+ +
+ {formik.touched.realization_date && + formik.errors.realization_date && ( + + {formik.errors.realization_date} + + )} +
{ onReset={filterFormik.handleReset} >
+
+ Tanggal +
+ +
+ +
+
+ { isClearable className={{ wrapper: 'w-full' }} /> - -
{/* Modal Footer */} diff --git a/src/components/pages/report/marketing/tab/DailyMarketingTab.tsx b/src/components/pages/report/marketing/tab/DailyMarketingTab.tsx index 0be358d8..d30e9c25 100644 --- a/src/components/pages/report/marketing/tab/DailyMarketingTab.tsx +++ b/src/components/pages/report/marketing/tab/DailyMarketingTab.tsx @@ -36,7 +36,6 @@ import { } from '@/components/pages/report/marketing/filter/DailyMarketingFilter'; import SelectInput from '@/components/input/SelectInput'; import Modal, { useModal } from '@/components/Modal'; -import { cn } from '@/lib/helper'; import { useTabActionsStore } from '@/stores/tab-actions/tab-actions.store'; import DailyMarketingReportSkeleton from '@/components/pages/report/marketing/skeleton/DailyMarketingSkeleton'; import { useEffect as useEffectHook } from 'react'; @@ -46,8 +45,8 @@ import { MARKETING_DATE_FILTER_TYPE_OPTIONS, MARKETING_TYPE_OPTIONS, } from '@/config/constant'; -import Badge from '@/components/Badge'; import ButtonFilter from '@/components/helper/ButtonFilter'; +import SelectInputRadio from '@/components/input/SelectInputRadio'; interface DailyMarketingTabProps { tabId: string; @@ -733,6 +732,88 @@ const DailyMarketingTab = ({ tabId }: DailyMarketingTabProps) => {
+ {/* Date Range Filter */} +
+ Tanggal +
+ { + const value = e.target.value; + formik.setFieldValue('start_date', value || null); + + if (value && formik.values.end_date) { + const startDate = new Date(value); + const endDateObj = new Date(formik.values.end_date); + + if (endDateObj < startDate) { + setHasDateError(true); + if (!dateErrorShown) { + toast.error('Tanggal akhir tidak boleh masa lampau', { + duration: Infinity, + }); + setDateErrorShown(true); + } + } else { + setHasDateError(false); + if (dateErrorShown) { + toast.dismiss(); + setDateErrorShown(false); + } + } + } else { + setHasDateError(false); + } + }} + className={{ wrapper: 'w-full' }} + errorMessage={formik.errors.start_date} + isError={ + !!formik.errors.start_date && formik.touched.start_date + } + /> +
+ { + const value = e.target.value; + formik.setFieldValue('end_date', value || null); + + if (value && formik.values.start_date) { + const startDateObj = new Date(formik.values.start_date); + const endDate = new Date(value); + + if (endDate < startDateObj) { + setHasDateError(true); + if (!dateErrorShown) { + toast.error('Tanggal akhir tidak boleh masa lampau', { + duration: Infinity, + }); + setDateErrorShown(true); + } + return; + } + } + + setHasDateError(false); + if (dateErrorShown) { + toast.dismiss(); + setDateErrorShown(false); + } + }} + className={{ wrapper: 'w-full' }} + errorMessage={formik.errors.end_date} + isError={ + (formik.errors.end_date && formik.touched.end_date) || + hasDateError + } + /> +
+
+ {/* Area Filter */} { className={{ wrapper: 'w-full' }} /> - {/* Date Range Filter */} -
- -
- { - const value = e.target.value; - formik.setFieldValue('start_date', value || null); - - if (value && formik.values.end_date) { - const startDate = new Date(value); - const endDateObj = new Date(formik.values.end_date); - - if (endDateObj < startDate) { - setHasDateError(true); - if (!dateErrorShown) { - toast.error('Tanggal akhir tidak boleh masa lampau', { - duration: Infinity, - }); - setDateErrorShown(true); - } - } else { - setHasDateError(false); - if (dateErrorShown) { - toast.dismiss(); - setDateErrorShown(false); - } - } - } else { - setHasDateError(false); - } - }} - className={{ wrapper: 'w-full' }} - errorMessage={formik.errors.start_date} - isError={ - !!formik.errors.start_date && formik.touched.start_date - } - /> - { - const value = e.target.value; - formik.setFieldValue('end_date', value || null); - - if (value && formik.values.start_date) { - const startDateObj = new Date(formik.values.start_date); - const endDate = new Date(value); - - if (endDate < startDateObj) { - setHasDateError(true); - if (!dateErrorShown) { - toast.error('Tanggal akhir tidak boleh masa lampau', { - duration: Infinity, - }); - setDateErrorShown(true); - } - return; - } - } - - setHasDateError(false); - if (dateErrorShown) { - toast.dismiss(); - setDateErrorShown(false); - } - }} - className={{ wrapper: 'w-full' }} - errorMessage={formik.errors.end_date} - isError={ - (formik.errors.end_date && formik.touched.end_date) || - hasDateError - } - /> -
-
- {/* Filter By Date Type */} - { /> {/* Marketing Type Filter */} -