import { useEffect, useState } from 'react'; import { motion } from 'framer-motion'; 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, LinkPaymentProcessStatus } from '@/entities/additional-service/model/link-pay/types'; import { snackBar } from '@/shared/lib'; import { useTranslation } from 'react-i18next'; import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant'; import { FullMenuClose } from '@/entities/common/ui/full-menu-close'; export interface LinkPaymentWaitDetailProps { detailOn: boolean; setDetailOn: (detailOn: boolean) => void; mid: string; requestId: string; }; export const LinkPaymentWaitDetail = ({ detailOn, setDetailOn, mid, requestId }: LinkPaymentWaitDetailProps) => { const { t } = useTranslation(); const [titleInfo, setTitleInfo] = useState(); const [paymentInfo, setPaymentInfo] = useState(); 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((rs) => { callDetail(); snackBar(t('additionalService.linkPayment.deleteSuccess')) }) .catch((error) => { snackBar(`[${t('common.failed')}] ${error?.response?.data?.message}`) }); } const onClickToCancel = () => { let msg = t('additionalService.linkPayment.deleteConfirm'); overlay.open(({ isOpen, close, unmount }) => { return ( deletePayment()} message={msg} buttonLabel={[t('common.cancel'), t('common.confirm')]} /> ); }); }; const onClickToClose = () => { setDetailOn(false); }; useEffect(() => { if(!!mid && !!requestId){ callDetail(); } }, [mid, requestId]); return ( <>
{ t('additionalService.linkPayment.waitDetailTitle') }
) };