mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-24 15:25:46 +00:00
feat: date filter type
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
import { ChangeEventHandler, useState } from 'react';
|
import { ChangeEventHandler, useEffect, useState } from 'react';
|
||||||
import { pdf } from '@react-pdf/renderer';
|
import { pdf } from '@react-pdf/renderer';
|
||||||
import toast from 'react-hot-toast';
|
import toast from 'react-hot-toast';
|
||||||
|
|
||||||
@@ -28,7 +28,10 @@ import {
|
|||||||
import { Warehouse } from '@/types/api/master-data/warehouse';
|
import { Warehouse } from '@/types/api/master-data/warehouse';
|
||||||
import { Customer } from '@/types/api/master-data/customer';
|
import { Customer } from '@/types/api/master-data/customer';
|
||||||
import { MarketingReportApi } from '@/services/api/report/marketing-report';
|
import { MarketingReportApi } from '@/services/api/report/marketing-report';
|
||||||
import { MARKETING_TYPE_OPTIONS } from '@/config/constant';
|
import {
|
||||||
|
MARKETING_DATE_FILTER_TYPE_OPTIONS,
|
||||||
|
MARKETING_TYPE_OPTIONS,
|
||||||
|
} from '@/config/constant';
|
||||||
import { httpClient } from '@/services/http/client';
|
import { httpClient } from '@/services/http/client';
|
||||||
import { BaseApiResponse } from '@/types/api/api-general';
|
import { BaseApiResponse } from '@/types/api/api-general';
|
||||||
import {
|
import {
|
||||||
@@ -150,6 +153,15 @@ const DailyMarketingReportContent = () => {
|
|||||||
updateFilter('end_date', e.target.value ? e.target.value : '');
|
updateFilter('end_date', e.target.value ? e.target.value : '');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const [selectedMarketingDateFilterType, setSelectedMarketingDateFilterType] =
|
||||||
|
useState<OptionType | null>(null);
|
||||||
|
const marketingDateFilterTypeChangeHandler = (
|
||||||
|
val: OptionType | OptionType[] | null
|
||||||
|
) => {
|
||||||
|
setSelectedMarketingDateFilterType(val as OptionType);
|
||||||
|
updateFilter('filter_by', val ? ((val as OptionType).value as string) : '');
|
||||||
|
};
|
||||||
|
|
||||||
const [selectedMarketingType, setSelectedMarketingType] =
|
const [selectedMarketingType, setSelectedMarketingType] =
|
||||||
useState<OptionType | null>(null);
|
useState<OptionType | null>(null);
|
||||||
const marketingTypeChangeHandler = (
|
const marketingTypeChangeHandler = (
|
||||||
@@ -252,6 +264,23 @@ const DailyMarketingReportContent = () => {
|
|||||||
resetFilter();
|
resetFilter();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (
|
||||||
|
tableFilterState.filter_by === 'realization_date' ||
|
||||||
|
tableFilterState.filter_by === 'so_date'
|
||||||
|
) {
|
||||||
|
setSelectedMarketingDateFilterType({
|
||||||
|
label:
|
||||||
|
tableFilterState.filter_by === 'realization_date'
|
||||||
|
? 'Tanggal Realisasi'
|
||||||
|
: 'Tanggal SO',
|
||||||
|
value: tableFilterState.filter_by,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
setSelectedMarketingDateFilterType(null);
|
||||||
|
}
|
||||||
|
}, [tableFilterState.filter_by]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='w-full border border-gray-200 p-4'>
|
<div className='w-full border border-gray-200 p-4'>
|
||||||
<div>
|
<div>
|
||||||
@@ -341,6 +370,18 @@ const DailyMarketingReportContent = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='grid grid-cols-12 gap-4'>
|
<div className='grid grid-cols-12 gap-4'>
|
||||||
|
<SelectInput
|
||||||
|
label='Filter Tanggal'
|
||||||
|
placeholder='Pilih Filter Tanggal'
|
||||||
|
options={MARKETING_DATE_FILTER_TYPE_OPTIONS}
|
||||||
|
value={selectedMarketingDateFilterType}
|
||||||
|
onChange={marketingDateFilterTypeChangeHandler}
|
||||||
|
isClearable
|
||||||
|
className={{
|
||||||
|
wrapper: 'col-span-12 sm:col-span-6 lg:col-span-4',
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
<SelectInput
|
<SelectInput
|
||||||
label='Tipe Marketing'
|
label='Tipe Marketing'
|
||||||
placeholder='Pilih Tipe Marketing'
|
placeholder='Pilih Tipe Marketing'
|
||||||
|
|||||||
Reference in New Issue
Block a user