import { PATHS } from '@/shared/constants/paths'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useTranslation } from 'react-i18next'; import { HeaderType } from '@/entities/common/model/types'; import { useSetHeaderTitle, useSetHeaderType, useSetFooterMode, useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; import { useLocation } from 'react-router'; import { useEffect, useState } from 'react'; import { NumericFormat } from 'react-number-format'; import { useExtensionFundAccountTransferDetailMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-transfer-detail-mutation'; import { ExtensionFundAccountTransferDetailParams, ExtensionFundAccountTransferDetailResponse, ExtensionFundAccountTransferRegistParams, ExtensionFundAccountTransferRequestParams, ExtensionFundAccountTransferRequestResponse, FundAccountStatus } from '@/entities/additional-service/model/fund-account/types'; import { getFundAccountStatusName } from '@/entities/additional-service/model/fund-account/constant'; import moment from 'moment'; import { snackBar } from '@/shared/lib'; import { useExtensionFundAccountTransferRequestMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-transfer-request-mutation'; export const FundAccountTransferDetailPage = () => { const { t, i18n } = useTranslation(); const { navigate } = useNavigate(); const location = useLocation(); const seq = location.state.seq; const [detail, setDetail] = useState(); const { mutateAsync: extensionFundAccountTransferDetail } = useExtensionFundAccountTransferDetailMutation(); const { mutateAsync: extensionFundAccountTransferRequest } = useExtensionFundAccountTransferRequestMutation(); const callDetail = () => { let params: ExtensionFundAccountTransferDetailParams = { seq: seq }; extensionFundAccountTransferDetail(params).then((rs: ExtensionFundAccountTransferDetailResponse) => { setDetail(rs); }); }; useSetHeaderTitle(t('additionalService.fundAccount.transferDetailTitle')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); useSetOnBack(() => { navigate(PATHS.additionalService.fundAccount.transferList); }); useEffect(() => { callDetail(); }, []); const onClickToRequest = () => { let params: ExtensionFundAccountTransferRequestParams = { seq: seq }; extensionFundAccountTransferRequest(params).then((rs: ExtensionFundAccountTransferRequestResponse) => { if (rs.status) { callDetail(); snackBar(t('additionalService.fundAccount.transferRequestSuccess')) } else { const errorMessage = rs.error?.message || t('additionalService.fundAccount.transferRequestFailed'); snackBar(`[${t('common.failed')}] ${errorMessage}`); } }).catch((error) => { const errorMessage = error?.response?.data?.error?.message || error?.message || t('additionalService.fundAccount.transferRequestError'); snackBar(`[${t('common.failed')}] ${errorMessage}`); }); }; return ( <>
{t('home.money', { value: new Intl.NumberFormat('en-US').format(detail?.amount || 0) })}
{detail?.accountName}({detail?.accountNo})
{detail?.registDate ? moment(detail.registDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss') : '-'}
{t('additionalService.fundAccount.detailInfo')}
  • {t('additionalService.fundAccount.registrationDateTime')} {detail?.registDate ? moment(detail.registDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss') : '-'}
  • {t('additionalService.fundAccount.processingResult')} {getFundAccountStatusName(t)(detail?.resultStatus) || '-'}
  • {t('additionalService.fundAccount.requestDate')} {detail?.requestDate ? moment(detail.requestDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD') : '-'}
  • {t('additionalService.fundAccount.transferResult')} {detail?.resultMessage || '-'}
  • {t('additionalService.fundAccount.beneficiaryName')} {detail?.accountName}
  • {t('additionalService.fundAccount.bank')} {detail?.bankCode || '-'}
  • {t('additionalService.fundAccount.accountNumber')} {detail?.accountNo}
  • MID {detail?.mid}
); };