import { useEffect, useState } from 'react'; import { PATHS } from '@/shared/constants/paths'; import { useLocation } from 'react-router'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { HeaderType } from '@/entities/common/model/types'; import { useSetOnBack, useSetHeaderTitle, useSetHeaderType, useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; import { overlay } from 'overlay-kit'; import { Dialog } from '@/shared/ui/dialogs/dialog'; import { TitleInfoWrap } from '@/entities/additional-service/ui/info-wrap/title-info-wrap'; import { AdditionalServiceCategory, DetailResponse, PaymentInfo, TitleInfo } from '@/entities/additional-service/model/types'; import { useExtensionLinkPayWaitDetailMutation, } from '@/entities/additional-service/api/link-payment/use-extension-link-pay-wait-detail-mutation'; import { PaymentInfoWrap } from '@/entities/additional-service/ui/info-wrap/payment-info-wrap'; import { useExtensionLinkPayWaitDeleteMutation } from '@/entities/additional-service/api/link-payment/use-extension-link-pay-wait-delete-mutation'; import { ExtensionLinkPayWaitDeleteParams, ExtensionLinkPayWaitDetailParams } from '@/entities/additional-service/model/link-pay/types'; export const LinkPaymentWaitDetailPage = () => { const { navigate } = useNavigate(); const location = useLocation(); const { mid, requestId } = location.state || {}; const [titleInfo, setTitleInfo] = useState(); const [paymentInfo, setPaymentInfo] = useState(); useSetHeaderTitle('링크결제 상세_발송대기'); useSetHeaderType(HeaderType.RightClose); useSetOnBack(() => { navigate(PATHS.additionalService.linkPayment.pendingSend); }); useSetFooterMode(false); const { mutateAsync: linkPayWaitDetail } = useExtensionLinkPayWaitDetailMutation(); const { mutateAsync: linkPayWaitDelete } = useExtensionLinkPayWaitDeleteMutation(); const callDetail = () => { let detailParam: ExtensionLinkPayWaitDetailParams = { mid: mid, requestId: requestId } linkPayWaitDetail(detailParam).then((rs: DetailResponse) => { setTitleInfo(rs.titleInfo) setPaymentInfo(rs.paymentInfo) }) } const deletePayment = () => { let deleteParam: ExtensionLinkPayWaitDeleteParams = { mid: mid, requestId: requestId } linkPayWaitDelete(deleteParam) .then((response) => { console.log("Delete 성공 응답: ", response) onClickToNavigate(PATHS.additionalService.linkPayment.pendingSend) }) .catch((error) => { console.error("Resend 실패: ", error); }); } const onClickToNavigate = (path: string) => { let timeout = setTimeout(() => { clearTimeout(timeout); navigate(PATHS.additionalService.linkPayment.pendingSend, { }); }, 10) }; const onClickToCancel = () => { let msg = '삭제 하시겠습니까?'; overlay.open(({ isOpen, close, unmount }) => { return ( deletePayment()} message={msg} buttonLabel={['취소', '확인']} /> ); }); }; useEffect(() => { callDetail(); }, []); return ( <>
) };