import { NumericFormat } from 'react-number-format'; import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { ListItemProps, AdditionalServiceCategory } from '../model/types'; import { getPaymentStatusText, getProcessStatusText, getSendMethodText } from '../lib/payment-status-utils'; import moment from 'moment'; export const ListItem = ({ additionalServiceCategory, mid, tid, paymentDate, paymentStatus, requestDate, bankName, accountNo, resultStatus, amount, sendDate, sendStatus, sendMethod, scheduledSendDate, processStatus, accountName, transferStatus, submallId, settlementDate, companyName, disbursementStatus, disbursementAmount, transferAmount, receiveBankName, receiveAccountNo, receiveAccountName, status, processDate, orderStatus, arsPaymentMethod, alimCl, sendType, sendCl, paymentMethod, receiverName, smsCl, onResendClick }: ListItemProps) => { const { navigate } = useNavigate(); const getItemClass = () => { let rs = ''; if (paymentStatus === '') { rs = ''; } else if (paymentStatus === "APPROVAL") { rs = 'approved'; } else if (paymentStatus === "ALL_CANCEL") { rs = 'refund'; } else if (paymentStatus === 'AFTER_CANCEL') { rs = 'refund'; } return rs; }; const getDotClass = (str?: string) => { let rs = ''; if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) { if (paymentStatus === '') { rs = ''; } else if (paymentStatus === "APPROVAL") { rs = 'blue'; } else if (paymentStatus === "ALL_CANCEL") { rs = 'gray'; } else if (paymentStatus === 'AFTER_CANCEL') { rs = 'gray'; } } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) { if (transferStatus === "REQUEST" || transferStatus === "SUCCESS") { rs = 'blue'; } else if (transferStatus === "FAIL") { rs = 'gray'; } } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { if (resultStatus === "SUCCESS") { rs = 'blue'; } else if (resultStatus === "FAIL") { rs = 'gray'; } } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) { if (paymentStatus === "PAYMENT_COMPLETE") { rs = 'blue'; } else if (paymentStatus === "ACTIVE") { rs = 'blue'; } else if (paymentStatus === "DEPOSIT_REQUEST") { rs = 'blue'; } else if (paymentStatus === "PAYMENT_FAIL") { rs = 'blue'; } else if (paymentStatus === "INACTIVE") { rs = 'gray'; } } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait) { if (processStatus === "SEND_REQUEST") { rs = 'blue' } else { rs = 'gray' } } else if (additionalServiceCategory === AdditionalServiceCategory.SMSPayment) { if (smsCl === "VACCOUNT_REQ_DEPOSIT") { rs = 'blue' } else { rs = 'gray' } } return rs; }; const onClickToNavigate = () => { if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment || additionalServiceCategory === AdditionalServiceCategory.SMSPayment ) { return; } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) { navigate(PATHS.additionalService.accountHolderAuth.detail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid } }) } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { navigate(PATHS.additionalService.accountHolderSearch.detail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) { navigate(PATHS.additionalService.linkPayment.detail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait) { navigate(PATHS.additionalService.linkPayment.pendingDetail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) { navigate(PATHS.additionalService.fundAccount.transferDetail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) { navigate(PATHS.additionalService.fundAccount.resultDetail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.SettlementAgency) { } else if (additionalServiceCategory === AdditionalServiceCategory.Payout) { navigate(PATHS.additionalService.payout.detail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid } }); } else if (additionalServiceCategory === AdditionalServiceCategory.Ars) { navigate(PATHS.additionalService.ars.detail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid, amount: amount } }); } else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) { navigate(PATHS.additionalService.alimtalk.detail, { state: { additionalServiceCategory: additionalServiceCategory, mid: mid, tid: tid, } }); } else { alert('additionalServiceCategory가 존재하지 않습니다.'); } }; const getTime = () => { let timeStr = ''; if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) { let time = paymentDate?.substring(8, 12); timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4); } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) { let time = requestDate?.substring(8, 14); timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4) + ':' + time?.substring(4, 6); } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { let time = requestDate?.substring(8, 14); timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4) + ':' + time?.substring(4, 6); } else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) { timeStr = moment(requestDate).format('mm:ss'); } else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) { timeStr = moment(requestDate).format('mm:ss'); } else if (additionalServiceCategory === AdditionalServiceCategory.Ars) { let time = paymentDate?.substring(8, 12); timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4); } else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) { let time = paymentDate?.substring(8, 12); timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4); } else { return } return timeStr; }; const getTitle = () => { let str: string | undefined = ''; if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) { str = `${tid}(${amount})`; } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) { str = `${accountName}(${accountNo})`; } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { str = `${accountNo}`; } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory || additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait ) { if (sendMethod === "SMS") { str = `${"buyerName"}(${"휴대폰 번호"})`; } else { str = `${"buyerName"}(${"이메일"})`; } } else if (additionalServiceCategory === AdditionalServiceCategory.Payout) { str = companyName; } else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) { str = `${receiveAccountName}(${receiveAccountNo})`; } else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) { str = `${receiveAccountName}(${receiveAccountNo})`; } else if (additionalServiceCategory === AdditionalServiceCategory.SMSPayment) { str = `${paymentDate}(${paymentStatus})[추후 수정 필요]` } else if (additionalServiceCategory === AdditionalServiceCategory.Ars) { str = '이름(' + tid + ')'; } else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) { str = `${receiverName}(${tid})`; } return str; }; const getDetail = () => { let rs = []; if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) { rs.push(