import { useEffect, useState } from 'react'; import { useLocation } from 'react-router'; import { PATHS } from '@/shared/constants/paths'; import { Dialog } from '@/shared/ui/dialogs/dialog'; import { overlay } from 'overlay-kit'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useEscrowDetailMutation } from '@/entities/transaction/api/use-escrow-detail-mutation'; import { ImportantInfoWrap } from '@/entities/transaction/ui/info-wrap/important-info-wrap'; import { EscrowInfoWrap } from '@/entities/transaction/ui/info-wrap/escrow-info-wrap'; import { PaymentInfoWrap } from '@/entities/transaction/ui/info-wrap/payment-info-wrap'; import { TransactionInfoWrap } from '@/entities/transaction/ui/info-wrap/transaction-info-wrap'; import { SettlementInfoWrap } from '@/entities/transaction/ui/info-wrap/settlement-info-wrap'; import { HeaderType } from '@/entities/common/model/types'; import { TransactionCategory, EscrowDetailParams, DetailResponse, ImportantInfo, EscrowInfo, PaymentInfo, TransactionInfo, SettlementInfo, InfoWrapKeys } from '@/entities/transaction/model/types'; import { useSetOnBack, useSetHeaderTitle, useSetHeaderType, useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; export const EscrowDetailPage = () => { const { navigate } = useNavigate(); const location = useLocation(); const [amountInfo, setAmountInfo] = useState(); const [importantInfo, setImportantInfo] = useState(); const [escrowInfo, setEscrowInfo] = useState(); const [paymentInfo, setPaymentInfo] = useState(); const [transactionInfo, setTransactionInfo] = useState(); const [settlementInfo, setSettlementInfo] = useState(); const [showAmountInfo, setShowAmountInfo] = useState(false); const [showImportantInfo, setShowImportantInfo] = useState(false); const [showEscroInfo, setShowEscroInfo] = useState(false); const [showPaymentInfo, setShowPaymentInfo] = useState(false); const [showTransactionInfo, setShowTransactionInfo] = useState(false); const [showSettlementInfo, setShowSettlementInfo] = useState(false); useSetHeaderTitle('에스크로 상세'); useSetHeaderType(HeaderType.RightClose); useSetOnBack(() => { navigate(PATHS.transaction.escrow.list); }); useSetFooterMode(false); const { mutateAsync: escroDetail } = useEscrowDetailMutation(); const callDetail = () => { let escroDetailParams: EscrowDetailParams = { issueNumber: location?.state.issueNumber, }; escroDetail(escroDetailParams).then((rs: DetailResponse) => { setImportantInfo(rs.importantInfo); setEscrowInfo(rs.escrowInfo); setPaymentInfo(rs.paymentInfo); setTransactionInfo(rs.transactionInfo); setSettlementInfo(rs.settlementInfo); }); }; useEffect(() => { callDetail(); }, []); const onClickToShowInfo = (infoWrapKey: InfoWrapKeys) => { if(infoWrapKey === InfoWrapKeys.Amount){ setShowAmountInfo(!showAmountInfo); } else if(infoWrapKey === InfoWrapKeys.Important){ setShowImportantInfo(!showImportantInfo); } else if(infoWrapKey === InfoWrapKeys.Escrow){ setShowEscroInfo(!showEscroInfo); } else if(infoWrapKey === InfoWrapKeys.Payment){ setShowPaymentInfo(!showPaymentInfo); } else if(infoWrapKey === InfoWrapKeys.Transaction){ setShowTransactionInfo(!showTransactionInfo); } else if(infoWrapKey === InfoWrapKeys.Settlement){ setShowSettlementInfo(!showSettlementInfo); } }; return ( <>
onClickToShowInfo(infoWrapKey) } >
onClickToShowInfo(infoWrapKey) } >
onClickToShowInfo(infoWrapKey) } >
onClickToShowInfo(infoWrapKey) } >
); };