import { NumericFormat } from 'react-number-format'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { ListItemProps, SettlementPeriodType } from '../model/types'; import moment from 'moment'; import { useTranslation } from 'react-i18next'; export const ListItem = ({ periodType, settlementId, settlementDate, merchantName, mid, tid, settlementAmount, approvalNumber, approvalDate, transactionAmount }: ListItemProps) => { const { navigate } = useNavigate(); const { t, i18n } = useTranslation(); const onClickToNavigate = () => { let detailId; if(periodType === SettlementPeriodType.SETTLEMENT_DATE){ detailId = settlementId; } else if(periodType === SettlementPeriodType.TRANSACTION_DATE){ detailId = approvalNumber; } navigate(PATHS.settlement.detail + detailId, { state: { periodType: periodType, settlementId: settlementId, approvalNumber: approvalNumber, tid: tid, } }); }; const getDotClass = () => { let rs = 'gray'; if(periodType === SettlementPeriodType.SETTLEMENT_DATE && settlementAmount){ if(settlementAmount > 0) rs = 'blue'; } else if(periodType === SettlementPeriodType.TRANSACTION_DATE && transactionAmount){ if(transactionAmount > 0) rs = 'blue'; } return rs; }; return ( <>
onClickToNavigate() } >
{ (periodType === SettlementPeriodType.SETTLEMENT_DATE) &&
{ `${merchantName}(${mid})` }
} { (periodType === SettlementPeriodType.TRANSACTION_DATE) && <>
{ `${approvalNumber}(${mid})` }
{ (!!settlementDate)? t('settlement.settled'): (!!approvalDate)? t('settlement.approved') : '' } | {t('settlement.settlementShort')} { moment(settlementDate).format('MM.DD') } | {t('settlement.approvalShort')} { moment(approvalDate).format('MM.DD') }
}
{t('home.money', { value: new Intl.NumberFormat('en-US').format(settlementAmount || transactionAmount || 0) })}
); };