diff --git a/src/entities/settlement/ui/calendar-grid.tsx b/src/entities/settlement/ui/calendar-grid.tsx index 3cccb39..9c07400 100644 --- a/src/entities/settlement/ui/calendar-grid.tsx +++ b/src/entities/settlement/ui/calendar-grid.tsx @@ -7,12 +7,14 @@ export interface CalendarGridProps { yearMonth: string; scheduledDateList: Array; completedDateList: Array; + onClickToCalendarDate: (day: number) => void; }; export const CalendarGrid = ({ yearMonth, scheduledDateList, - completedDateList + completedDateList, + onClickToCalendarDate }: CalendarGridProps) => { const { t } = useTranslation(); @@ -39,6 +41,7 @@ export const CalendarGrid = ({
onClickToCalendarDate(i) } >{ i }
); } @@ -47,6 +50,7 @@ export const CalendarGrid = ({
onClickToCalendarDate(i) } >{ i }
); } diff --git a/src/entities/settlement/ui/calendar-settlement-item.tsx b/src/entities/settlement/ui/calendar-settlement-item.tsx index 48a5dc4..187fa83 100644 --- a/src/entities/settlement/ui/calendar-settlement-item.tsx +++ b/src/entities/settlement/ui/calendar-settlement-item.tsx @@ -3,19 +3,25 @@ import { useTranslation } from 'react-i18next'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { SettlementDays, SettlementStatus } from '../model/types'; +import { useState } from 'react'; export interface CalendarSettlementItemProps { list: Array; settlementStatus: SettlementStatus; + filterDate?: number; }; export const CalendarSettlementItem = ({ list, - settlementStatus + settlementStatus, + filterDate }: CalendarSettlementItemProps) => { + console.log(list) const { navigate } = useNavigate(); const { t } = useTranslation(); + const [newList, setNewList] = useState>(list); + const getAmount = ( scheduledAmount: number | undefined, completedAmount: number | undefined @@ -51,27 +57,42 @@ export const CalendarSettlementItem = ({ }); } }; - - return ( - <> - { list.map((value, index) => ( + + const showFilterDate = () => { + let rs = []; + for(let i=0;i 0){ + let shortDate = item?.settlementDate.substring(6, 8); + if(shortDate){ + let checkDate = parseInt(shortDate); + if(filterDate !== checkDate){ + continue; + } + } + } + rs.push(
onClickToMoveList(value?.settlementDate) } + onClick={ () => onClickToMoveList(item?.settlementDate) } > -
{ value?.settlementStatus }
+
{ item?.settlementStatus }
- { moment(value?.settlementDate).format('MM.DD(ddd)') } + { moment(item?.settlementDate).format('MM.DD(ddd)') }
- {t('home.money', { value: new Intl.NumberFormat('en-US').format(getAmount(value?.scheduledAmount, value?.completedAmount)) })} + {t('home.money', { value: new Intl.NumberFormat('en-US').format(getAmount(item?.scheduledAmount, item?.completedAmount)) })}
- )) - } - - + ); + } + return rs; + }; + + return ( + <> + { showFilterDate() } ) }; \ No newline at end of file diff --git a/src/entities/settlement/ui/calendar-wrap.tsx b/src/entities/settlement/ui/calendar-wrap.tsx index eb568c3..ca95be2 100644 --- a/src/entities/settlement/ui/calendar-wrap.tsx +++ b/src/entities/settlement/ui/calendar-wrap.tsx @@ -33,6 +33,7 @@ export const CalendarWrap = () => { const [completedList, setCompletedList] = useState>([]); const [scheduledDateList, setScheduledDateList] = useState>([]); const [completedDateList, setCompletedDateList] = useState>([]); + const [filterDate, setFilterDate] = useState(0); const [lastMonth, setLastMonth] = useState(false); @@ -105,6 +106,7 @@ export const CalendarWrap = () => { let newYearMonth = moment(yearMonth).subtract(1, 'month').format('YYYYMM'); setYearMonth(newYearMonth); setYearMonth(newYearMonth); + setFilterDate(0); initialList(); } }; @@ -116,10 +118,14 @@ export const CalendarWrap = () => { let newYearMonthValue = moment(newYearMonth).format('YYYYMM'); if(parseInt(newYearMonthValue) <= parseInt(maxYearMonthValue)){ setYearMonth(newYearMonth); + setFilterDate(0); initialList(); } } }; + const onClickToCalendarDate = (day: number) => { + setFilterDate(day); + }; useEffect(() => { if(!!mid){ @@ -196,6 +202,7 @@ export const CalendarWrap = () => { yearMonth={ yearMonth } scheduledDateList={ scheduledDateList } completedDateList={ completedDateList } + onClickToCalendarDate= { onClickToCalendarDate } >
@@ -203,12 +210,14 @@ export const CalendarWrap = () => { } { (!!completedList && completedList.length > 0) && }