- ARS 페이지 컴포넌트 분리 및 리팩토링 - SMS 재전송 성공/실패 snackBar 추가 - 부가서비스 페이지 다국어(i18n) 적용 - 계좌명의인증 리스트 UI 개선 - 라우트 경로 상수 정리 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
638 lines
23 KiB
TypeScript
638 lines
23 KiB
TypeScript
import { NumericFormat } from 'react-number-format';
|
|
import { useTranslation } from 'react-i18next';
|
|
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 { getFundAccountResultStatusName, getFundAccountStatusName } from '../model/fund-account/constant';
|
|
import moment from 'moment';
|
|
import { FundAccountResultStatus } from '../model/fund-account/types';
|
|
import { getSmsClName } from '../model/sms-payment/constant';
|
|
import { getKeyInPaymentPaymentStatusName } from '../model/key-in/constant';
|
|
import { getArsPaymentStatusName, getArsOrderStatusName } from '../model/ars/constant';
|
|
import { ServiceCode } from '../model/alimtalk/types';
|
|
import { getAlimtalkAlimClText, getAlimtalkSendClTypeText, getAlimtalkSendTypeText, getAlimtalkServiceCodeText } from '../model/alimtalk/constant';
|
|
import { getAuthResultStatusText, getTransTypeText } from '../model/face-auth/constant';
|
|
import { getPayoutStatusText } from '../model/payout/constant';
|
|
|
|
export const ListItem = ({
|
|
additionalServiceCategory,
|
|
mid, tid, orderDate, paymentStatus,
|
|
orderTime, buyerPhoneLast4, statusColor,
|
|
applicationDate, requestDate, bankName, accountNo, resultStatus, resultMessage,
|
|
amount, sendMethod, processStatus, registDate,
|
|
transactionTime, transactionCode, transactionType,
|
|
accountName, submallId, settlementDate, companyName, orderStatus,
|
|
|
|
alimCl, sendType, sendCl,
|
|
paymentMethod, receiverName,
|
|
requestId, subReqId,
|
|
buyerName, receiverInfo,
|
|
seq, serviceCode, sendDate,
|
|
authStatus, status,
|
|
|
|
smsCl, groupId, userMallId, transType,
|
|
authResult, failReason, requestTime,
|
|
resendEnabled,
|
|
onResendClick,
|
|
setDetailData
|
|
}: ListItemProps) => {
|
|
const { navigate } = useNavigate();
|
|
const { t, i18n } = useTranslation();
|
|
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 (transactionType === '') {
|
|
rs = '';
|
|
}
|
|
else if (transactionType === "APPROVAL") {
|
|
rs = 'blue';
|
|
}
|
|
else if (transactionType === "PRE_CANCEL" || transactionType === "POST_CANCEL") {
|
|
rs = 'gray';
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) {
|
|
if (authStatus === "REQUEST" || authStatus === "SUCCESS") {
|
|
rs = 'blue';
|
|
} else if (authStatus === "FAIL") {
|
|
rs = 'gray';
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
|
|
if (resultStatus === "SUCCESS") {
|
|
rs = 'blue';
|
|
}
|
|
else if (resultStatus === "FAIL") {
|
|
rs = 'gray';
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) {
|
|
if (sendCl === "SUCCESS" || sendCl === "REQUEST") {
|
|
rs = 'blue';
|
|
} else {
|
|
rs = 'gray';
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FaceAuth) {
|
|
if (authResult === "SUCCESS") {
|
|
rs = 'blue';
|
|
}
|
|
else if (authResult === "FAIL") {
|
|
rs = 'gray';
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) {
|
|
if (paymentStatus === "0" || paymentStatus === "1" || paymentStatus === "2") {
|
|
rs = 'blue';
|
|
}
|
|
else if (paymentStatus === "3") {
|
|
rs = 'gray';
|
|
}
|
|
else if (paymentStatus === '4') {
|
|
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'
|
|
}
|
|
} else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) {
|
|
if (resultStatus === "REQUEST_SUCCESS" || resultStatus === "REGIST_COMPLETE" || resultStatus === "TRANSFER_REQUEST") {
|
|
rs = 'blue';
|
|
} else if (resultStatus === "REQUEST_FAIL") {
|
|
rs = 'gray';
|
|
}
|
|
} else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) {
|
|
if (resultStatus === "REQUEST" || resultStatus === "SUCCESS") {
|
|
rs = 'blue';
|
|
} else if (resultStatus === "FAIL") {
|
|
rs = 'gray';
|
|
}
|
|
} else if (additionalServiceCategory === AdditionalServiceCategory.Payout) {
|
|
if (status === "SUCCESS" || status === "REQUEST") {
|
|
rs = 'blue';
|
|
} else if (status === "FAIL") {
|
|
rs = 'gray';
|
|
}
|
|
} else if (additionalServiceCategory === AdditionalServiceCategory.Ars) {
|
|
if (paymentStatus === "PENDING" || paymentStatus === "SUCCESS") {
|
|
rs = 'blue';
|
|
} else {
|
|
rs = 'gray';
|
|
}
|
|
}
|
|
return rs;
|
|
|
|
};
|
|
|
|
const onClickToNavigate = () => {
|
|
// 상세페이지 없음
|
|
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment ||
|
|
additionalServiceCategory === AdditionalServiceCategory.SMSPayment ||
|
|
additionalServiceCategory === AdditionalServiceCategory.FaceAuth
|
|
) {
|
|
|
|
return;
|
|
}
|
|
//이하 상세페이지 존재
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) {
|
|
navigate(PATHS.additionalService.accountHolderAuth.detail, {
|
|
state: {
|
|
additionalServiceCategory: additionalServiceCategory,
|
|
mid: mid,
|
|
tid: tid
|
|
}
|
|
})
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
|
|
if (setDetailData && !!mid && !!tid) {
|
|
setDetailData({
|
|
mid: mid,
|
|
tid: tid,
|
|
detailOn: true
|
|
});
|
|
}
|
|
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) {
|
|
navigate(PATHS.additionalService.linkPayment.detail, {
|
|
state: {
|
|
additionalServiceCategory: additionalServiceCategory,
|
|
mid: mid,
|
|
tid: tid,
|
|
requestId: requestId,
|
|
subReqId: subReqId
|
|
}
|
|
});
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait) {
|
|
navigate(PATHS.additionalService.linkPayment.pendingDetail, {
|
|
state: {
|
|
additionalServiceCategory: additionalServiceCategory,
|
|
mid: mid,
|
|
tid: tid,
|
|
requestId: requestId
|
|
}
|
|
});
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) {
|
|
navigate(PATHS.additionalService.fundAccount.transferDetail, {
|
|
state: {
|
|
additionalServiceCategory: additionalServiceCategory,
|
|
seq: seq
|
|
}
|
|
});
|
|
}
|
|
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) {
|
|
if (setDetailData && !!mid && !!tid) {
|
|
setDetailData({
|
|
mid: mid,
|
|
tid: tid,
|
|
detailOn: true
|
|
});
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) {
|
|
navigate(PATHS.additionalService.alimtalk.detail, {
|
|
state: {
|
|
additionalServiceCategory: additionalServiceCategory,
|
|
mid: mid,
|
|
tid: tid,
|
|
}
|
|
});
|
|
}
|
|
// else if (additionalServiceCategory === AdditionalServiceCategory.FaceAuth) {
|
|
// navigate(PATHS.additionalService.faceAuth.detail, {
|
|
// state: {
|
|
// additionalServiceCategory: additionalServiceCategory,
|
|
// mid: mid
|
|
// }
|
|
// })
|
|
// }
|
|
else {
|
|
alert('additionalServiceCategory가 존재하지 않습니다.');
|
|
}
|
|
};
|
|
|
|
const getTime = () => {
|
|
let timeStr = '';
|
|
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
|
|
let time = transactionTime?.substring(0, 4);
|
|
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.FaceAuth) {
|
|
let time = requestDate?.substring(8, 14);
|
|
timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4) + ':' + time?.substring(4, 6);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) {
|
|
if (registDate && registDate.length >= 12) {
|
|
timeStr = registDate.substring(8, 10) + ':' + registDate.substring(10, 12);
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) {
|
|
if (applicationDate && applicationDate.length >= 12) {
|
|
timeStr = applicationDate.substring(8, 10) + ':' + applicationDate.substring(10, 12);
|
|
} else {
|
|
timeStr = requestDate?.substring(8, 10) + ':' + requestDate?.substring(10, 12);
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Ars) {
|
|
timeStr = orderTime?.substring(0, 2) + ':' + orderTime?.substring(2, 4);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) {
|
|
let time = sendDate?.substring(8, 12);
|
|
timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4);
|
|
}
|
|
else {
|
|
return
|
|
}
|
|
return timeStr;
|
|
};
|
|
|
|
const getStatus = () => {
|
|
let statusText = '';
|
|
if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) {
|
|
statusText = getFundAccountStatusName(t)(resultStatus);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) {
|
|
statusText = getFundAccountResultStatusName(t)(resultStatus);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
|
|
statusText = resultStatus || '';
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) {
|
|
statusText = authStatus || '';
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FaceAuth) {
|
|
statusText = getTransTypeText(t)(transType)
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.SMSPayment) {
|
|
statusText = getSmsClName(t)(smsCl);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
|
|
statusText = getKeyInPaymentPaymentStatusName(t)(transactionType)
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Ars) {
|
|
statusText = getArsPaymentStatusName(t)(paymentStatus)
|
|
}
|
|
else {
|
|
statusText = resultStatus || status || '';
|
|
}
|
|
return statusText;
|
|
};
|
|
|
|
const getTitle = () => {
|
|
let str: string | undefined = '';
|
|
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
|
|
str = `${transactionCode}`;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) {
|
|
str = `${accountName}(${accountNo})`;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
|
|
str = `${accountNo}`;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FaceAuth) {
|
|
str = `${userMallId}(${mid})`;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory
|
|
) {
|
|
str = `${buyerName}`;
|
|
} else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait) {
|
|
str = `${buyerName}(${receiverInfo})`;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Payout) {
|
|
str = companyName;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer ||
|
|
additionalServiceCategory === AdditionalServiceCategory.FundAccountResult
|
|
) {
|
|
str = `${accountName}(${accountNo})`;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.SMSPayment) {
|
|
if (buyerPhoneLast4) {
|
|
str = `${buyerName}(${buyerPhoneLast4})`
|
|
} else {
|
|
str = `${buyerName}`
|
|
}
|
|
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Ars) {
|
|
str = `${buyerName}(${tid})`;
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) {
|
|
str = `${receiverName}(${getAlimtalkSendTypeText(t)(sendType)})`;
|
|
}
|
|
|
|
return str;
|
|
};
|
|
|
|
const getDetail = () => {
|
|
let rs = [];
|
|
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
|
|
rs.push(
|
|
<div key='key-in-list' className="transaction-details">
|
|
<span>{getTime()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getStatus()}</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) {
|
|
rs.push(
|
|
<div key="account-auth-list" className="transaction-details">
|
|
<span>{getTime()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{bankName}</span>
|
|
</div>
|
|
)
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
|
|
rs.push(
|
|
<div key="account-search" className="transaction-details">
|
|
<span>{getTime()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{bankName}</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FaceAuth) {
|
|
rs.push(
|
|
<div key="face-auth" className="transaction-details">
|
|
<span>{getStatus()}</span>
|
|
<span className="separator">|</span>
|
|
<span>
|
|
{authResult === 'FAIL'
|
|
? `${getAuthResultStatusText(t)(authResult)}: ${failReason}`
|
|
: getAuthResultStatusText(t)(authResult)
|
|
}
|
|
</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) {
|
|
if (paymentStatus === "0" || paymentStatus === "3" || paymentStatus === "4") {
|
|
rs.push(
|
|
<div key="link-payment-history" className="transaction-details">
|
|
<span>{getPaymentStatusText(t)(paymentStatus)}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getSendMethodText(t)(sendMethod)}</span>
|
|
</div>
|
|
)
|
|
} else {
|
|
rs.push(
|
|
<div key="link-payment-history" className="transaction-details">
|
|
<span>{getPaymentStatusText(t)(paymentStatus)}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getSendMethodText(t)(sendMethod)}</span>
|
|
<span className="separator">|</span>
|
|
<span>{paymentMethod}</span>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait) {
|
|
rs.push(
|
|
<div key="link-payment-wait" className="transaction-details">
|
|
<span>{getProcessStatusText(t)(processStatus)}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getSendMethodText(t)(sendMethod)}</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Payout) {
|
|
rs.push(
|
|
<div className="transaction-details">
|
|
<span>{getPayoutStatusText(t)(status)}</span>
|
|
<span className="separator">|</span>
|
|
<span>{submallId}</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer) {
|
|
rs.push(
|
|
<div key="fund-account-transfer" className="transaction-details">
|
|
<span>{getTime()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getStatus()}</span>
|
|
{resultMessage && (
|
|
<>
|
|
<span className="separator">|</span>
|
|
<span>{resultMessage}</span>
|
|
</>
|
|
)}
|
|
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) {
|
|
rs.push(
|
|
<div key="fund-account-transfer" className="transaction-details">
|
|
<span>{getTime()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getStatus()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{mid}</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Ars) {
|
|
rs.push(
|
|
<div className="transaction-details">
|
|
<span>{getTime()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getStatus()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getArsOrderStatusName(t)(orderStatus)}</span>
|
|
<span className="separator">|</span>
|
|
<span>{transactionType}</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) {
|
|
console.log(serviceCode)
|
|
rs.push(
|
|
<div className="transaction-details">
|
|
<span>{getTime()}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getAlimtalkServiceCodeText(t)(serviceCode)}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getAlimtalkAlimClText(t)(alimCl)}</span>
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.SMSPayment) {
|
|
rs.push(
|
|
<div key="sms-payment" className="transaction-details">
|
|
<span>{mid}</span>
|
|
<span className="separator">|</span>
|
|
<span>{getStatus()}</span>
|
|
</div>
|
|
)
|
|
}
|
|
return rs;
|
|
};
|
|
|
|
const getAmount = () => {
|
|
let rs: any[] = [];
|
|
if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
|
|
rs.push(
|
|
<div className={`status-label ${resultStatus === 'SUCCESS' ? 'success' : 'fail'}`}>
|
|
{resultStatus === 'SUCCESS' ? t('additionalService.common.success') : t('additionalService.common.fail')}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FaceAuth) {
|
|
rs.push(
|
|
<div className={`status-label ${authResult === 'SUCCESS' ? 'success' : 'fail'}`}>
|
|
{authResult === 'SUCCESS' ? t('additionalService.common.success') : t('additionalService.common.fail')}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) {
|
|
const statusText = authStatus === 'REQUEST' ? t('additionalService.common.request') : authStatus === 'SUCCESS' ? t('additionalService.common.success') : t('additionalService.common.fail');
|
|
const statusClass = authStatus === 'SUCCESS' || 'REQUEST' ? 'success' : 'fail';
|
|
rs.push(
|
|
<div className={`status-label ${statusClass}`}>
|
|
{statusText}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
|
|
rs.push(
|
|
<div className="transaction-amount">
|
|
{t('home.money', { value: new Intl.NumberFormat('en-US').format(amount || 0) })}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory ||
|
|
additionalServiceCategory === AdditionalServiceCategory.LinkPaymentWait
|
|
) {
|
|
rs.push(
|
|
<div className="transaction-amount">
|
|
{t('home.money', { value: new Intl.NumberFormat('en-US').format(amount || 0) })}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Payout) {
|
|
rs.push(
|
|
<div
|
|
key="payout-item-amount"
|
|
className="transaction-amount"
|
|
>
|
|
{t('home.money', { value: new Intl.NumberFormat('en-US').format(amount || 0) })}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountTransfer ||
|
|
additionalServiceCategory === AdditionalServiceCategory.FundAccountResult
|
|
) {
|
|
rs.push(
|
|
<div
|
|
key="fund-account-transfer-amount"
|
|
className="transaction-amount"
|
|
>
|
|
{t('home.money', { value: new Intl.NumberFormat('en-US').format(amount || 0) })}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Ars) {
|
|
rs.push(
|
|
<div
|
|
key="payout-item-amount"
|
|
className="transaction-amount"
|
|
>
|
|
{t('home.money', { value: new Intl.NumberFormat('en-US').format(amount || 0) })}
|
|
</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.Alimtalk) {
|
|
rs.push(
|
|
<div key="payout-item-amount" className={`status-label ${(sendCl === 'REQUEST' || sendCl === 'SUCCESS') ? 'success' : 'fail'}`}
|
|
>{getAlimtalkSendClTypeText(t)(sendCl)}</div>
|
|
);
|
|
}
|
|
else if (additionalServiceCategory === AdditionalServiceCategory.SMSPayment && onResendClick) {
|
|
rs.push(
|
|
<div
|
|
key="sms-payment-amount"
|
|
className={`status-label success`}
|
|
onClick={() => mid && onResendClick(mid, tid || '')}
|
|
>{t('additionalService.common.resend')}</div>
|
|
)
|
|
}
|
|
return rs;
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<div
|
|
className={`transaction-item ${getItemClass()}`}
|
|
onClick={() => onClickToNavigate()}
|
|
>
|
|
<div className="transaction-status">
|
|
<div className={`status-dot ${getDotClass()}`}></div>
|
|
</div>
|
|
<div className="transaction-content">
|
|
<div className="transaction-title">{getTitle()}</div>
|
|
{getDetail()}
|
|
</div>
|
|
{getAmount()}
|
|
</div>
|
|
</>
|
|
);
|
|
}; |