diff --git a/src/entities/common/model/constant.ts b/src/entities/common/model/constant.ts
index a70127a..18bcdf4 100644
--- a/src/entities/common/model/constant.ts
+++ b/src/entities/common/model/constant.ts
@@ -16,6 +16,23 @@ export const DEFAULT_PAGE_PARAM = {
sortType: SortTypeKeys.LATEST,
};
+export const DetailMotionVariants = {
+ hidden: {
+ x: '100%'
+ },
+ visible: {
+ x: '0%'
+ },
+};
+export const DetailMotionDuration = {
+ duration: 0.3
+};
+export const DetailMotionStyle = {
+ width: '100%',
+ height: '100%'
+};
+
+
export const FilterMotionVariants = {
hidden: {
x: '100%'
diff --git a/src/entities/home/ui/home-notice-item.tsx b/src/entities/home/ui/home-notice-item.tsx
index 0cbe040..d2f8840 100644
--- a/src/entities/home/ui/home-notice-item.tsx
+++ b/src/entities/home/ui/home-notice-item.tsx
@@ -6,21 +6,19 @@ import { useTranslation } from 'react-i18next';
import { IMAGE_ROOT } from '@/shared/constants/common';
export const HomeNoticeItem = ({
- seq,
- title,
- informCl,
- regDt,
+ noticeItem,
+ setDetailData,
}: NoticeItemProps) => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const onClickToDetail = () => {
- navigate(PATHS.support.notice.detail, {
- state: {
- seq: seq,
- from: PATHS.home
- }
- })
+ if(setDetailData){
+ setDetailData({
+ seq: noticeItem.seq,
+ detailOn: true
+ });
+ }
};
return (
@@ -30,8 +28,8 @@ export const HomeNoticeItem = ({
onClick={ () => onClickToDetail() }
>
-
{ title }
-
{ t(`support.notice.categories.${informCl}`) }{ moment(regDt).format('YY년 MM월 DD일') }
+
{ noticeItem.title }
+
{ t(`support.notice.categories.${noticeItem.informCl}`) }{ noticeItem.regDt? moment(noticeItem.regDt).format('YY년 MM월 DD일'): '' }
![]()
{
const { t } = useTranslation();
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
const [resultList, setResultList] = useState
>([]);
+ const [detailOn, setDetailOn] = useState(false);
+ const [detailSeq, setDetailSeq] = useState(0);
const { mutateAsync: noticeList } = useNoticeListMutation();
+ const setDetailData = (detailData: DetailData) => {
+ setDetailOn(detailData.detailOn);
+ if(detailData?.seq){
+ setDetailSeq(detailData?.seq);
+ }
+ };
+
const getItems = () => {
let rs = [];
let maxCnt = (!!resultList && resultList.length < 4)? resultList.length: 4;
for(let i=0;i
- );
+ let noticeItem = resultList[i];
+ if(noticeItem){
+ rs.push(
+
+ );
+ }
+
}
return rs;
};
@@ -56,6 +68,11 @@ export const HomeNoticeList = () => {
}
+
>
);
};
diff --git a/src/entities/settlement/ui/detail/list-detail.tsx b/src/entities/settlement/ui/detail/list-detail.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/entities/support/model/types.ts b/src/entities/support/model/types.ts
index 430a589..cd16562 100644
--- a/src/entities/support/model/types.ts
+++ b/src/entities/support/model/types.ts
@@ -21,9 +21,10 @@ export interface FaqListResponse extends DefaulResponsePagination {
hasNext: boolean;
nextCursor: string | null;
};
-export interface FaqItemProps extends FaqItem {
-
-}
+export interface FaqItemProps {
+ faqItem: FaqItem,
+ setDetailData?: (detailData: DetailData) => void;
+};
export interface QnaListParams extends SupportParams {
statusCode?: string;
page?: DefaultRequestPagination;
@@ -45,8 +46,15 @@ export interface QnaItem {
export interface QnaListResponse extends DefaulResponsePagination {
content: Array
};
-export interface QnaItemProps extends QnaItem {
-
+export interface DetailData {
+ qnaItem?: QnaItem;
+ faqItem?: FaqItem;
+ seq?: number;
+ detailOn: boolean;
+};
+export interface QnaItemProps {
+ qnaItem: QnaItem;
+ setDetailData?: (detailData: DetailData) => void;
};
export interface QnaSaveParams extends SupportParams {
requestType: string;
@@ -100,6 +108,7 @@ export interface NoticeDetailParams {
export interface NoticeDetailResponse extends NoticeItem {
};
-export interface NoticeItemProps extends NoticeItem {
-
-}
\ No newline at end of file
+export interface NoticeItemProps {
+ noticeItem: NoticeItem;
+ setDetailData?: (detailData: DetailData) => void;
+};
\ No newline at end of file
diff --git a/src/entities/support/ui/detail/faq-detail.tsx b/src/entities/support/ui/detail/faq-detail.tsx
new file mode 100644
index 0000000..746b831
--- /dev/null
+++ b/src/entities/support/ui/detail/faq-detail.tsx
@@ -0,0 +1,71 @@
+import { useEffect, useState } from 'react';
+import { motion } from 'framer-motion';
+import { useTranslation } from 'react-i18next';
+import { FaqItem } from '../../model/types';
+import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
+import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
+
+export interface FaqDetaillProps {
+ detailOn: boolean;
+ setDetailOn: (detailOn: boolean) => void;
+ faqItem: FaqItem
+};
+export const FaqDetail = ({
+ detailOn,
+ setDetailOn,
+ faqItem
+}: FaqDetaillProps) => {
+ const { t } = useTranslation();
+
+ const [cursorId, setCursorId] = useState();
+ const [seq, setSeq] = useState();
+ const [category, setCategory] = useState();
+ const [title, setTitle] = useState();
+ const [contents, setContents] = useState();
+
+ const onClickToClose = () => {
+ setDetailOn(false);
+ };
+
+ useEffect(() => {
+ setCursorId(faqItem?.cursorId);
+ setSeq(faqItem?.seq);
+ setCategory(faqItem?.category);
+ setTitle(faqItem?.title);
+ setContents(faqItem?.contents);
+ }, [faqItem]);
+
+ return (
+ <>
+
+ { contents &&
+
+
+
{ t('support.qna.title') }
+
+
+
+
+
+
+ }
+
+ >
+ );
+};
\ No newline at end of file
diff --git a/src/entities/support/ui/detail/notice-detail.tsx b/src/entities/support/ui/detail/notice-detail.tsx
new file mode 100644
index 0000000..a9ece91
--- /dev/null
+++ b/src/entities/support/ui/detail/notice-detail.tsx
@@ -0,0 +1,81 @@
+import { useTranslation } from 'react-i18next';
+import { motion } from 'framer-motion';
+import { useLocation } from 'react-router';
+import { NoticeDetailParams, NoticeDetailResponse, NoticeItem } from '../../model/types';
+import { useEffect, useState } from 'react';
+import { useNoticeDetailMutation } from '../../api/use-notice-detail-mutation';
+import moment from 'moment';
+import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
+import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
+
+export interface NoticeDetaillProps {
+ detailOn: boolean;
+ setDetailOn: (detailOn: boolean) => void;
+ seq: number;
+};
+export const NoticeDetail = ({
+ detailOn,
+ setDetailOn,
+ seq
+}: NoticeDetaillProps) => {
+ const location = useLocation();
+ const { t } = useTranslation();
+
+ const [result, setResult] = useState({});
+
+ const { mutateAsync: noticeDetail } = useNoticeDetailMutation();
+
+ const callDetail = () => {
+ let detailParams: NoticeDetailParams = {
+ seq: seq,
+ };
+ noticeDetail(detailParams).then((rs: NoticeDetailResponse) => {
+ setResult(rs);
+ });
+ };
+
+ const onClickToClose = () => {
+ setDetailOn(false);
+ };
+
+ useEffect(() => {
+ callDetail();
+ }, [seq]);
+
+ return (
+ <>
+
+ { result.informCl &&
+
+
+
{ t('support.notice.title') }
+
+
+
+
+
+
+
+
{ result.title }
+
{ result.regDt? moment(result.regDt).format('YYYY.MM.DD'): '' } | { t(`support.notice.categories.${result.informCl}`) }
+
+
+
+
+
+
+ }
+
+ >
+ );
+};
\ No newline at end of file
diff --git a/src/entities/support/ui/detail/qna-detail.tsx b/src/entities/support/ui/detail/qna-detail.tsx
new file mode 100644
index 0000000..79eb8be
--- /dev/null
+++ b/src/entities/support/ui/detail/qna-detail.tsx
@@ -0,0 +1,110 @@
+import moment from 'moment';
+import { motion } from 'framer-motion';
+import { useEffect, useState } from 'react';
+import { useTranslation } from 'react-i18next';
+import { QnaItem } from '../../model/types';
+import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant';
+import { FullMenuClose } from '@/entities/common/ui/full-menu-close';
+
+export interface qnaDetaillProps {
+ detailOn: boolean;
+ setDetailOn: (detailOn: boolean) => void;
+ qnaItem: QnaItem;
+};
+export const QnaDetail = ({
+ detailOn,
+ setDetailOn,
+ qnaItem
+}: qnaDetaillProps) => {
+ const { t } = useTranslation();
+
+ const [answer, setAnswer] = useState();
+ const [answerDate, setAnswerDate] = useState();
+ const [contents, setContents] = useState();
+ const [corpName, setCorpName] = useState();
+ const [cursorId, setCursorId] = useState();
+ const [requestDate, setRequestDate] = useState();
+ const [requestName, setRequestName] = useState();
+ const [requestType, setRequestType] = useState();
+ const [sendEmail, setSendEmail] = useState();
+ const [seq, setSeq] = useState();
+ const [statusCode, setStatusCode] = useState();
+ const [title, setTitle] = useState();
+
+ const onClickToClose = () => {
+ setDetailOn(false);
+ };
+
+ useEffect(() => {
+ setAnswer(qnaItem?.answer);
+ setAnswerDate(qnaItem?.answerDate);
+ setContents(qnaItem?.contents);
+ setCorpName(qnaItem?.corpName);
+ setCursorId(qnaItem?.cursorId);
+ setRequestDate(qnaItem?.requestDate);
+ setRequestName(qnaItem?.requestName);
+ setRequestType(qnaItem?.requestType);
+ setSendEmail(qnaItem?.sendEmail);
+ setSeq(qnaItem?.seq);
+ setStatusCode(qnaItem?.statusCode);
+ setTitle(qnaItem?.title);
+ }, [qnaItem]);
+
+ return (
+ <>
+
+ { statusCode &&
+
+
+
{ t('support.qna.title') }
+
+
+
+
+
+
+
+
+ {t('support.qna.detailLabels.title')}
+ { title }
+
+
+ {t('support.qna.detailLabels.type')}
+ { t(`support.qna.categories.${requestType}`) }
+
+
+ {t('support.qna.detailLabels.registrationDate')}
+ { !!requestDate? moment(requestDate).format('YYYY.MM.DD'): '' }
+
+
+ {t('support.qna.detailLabels.answerDate')}
+ { !!answerDate? moment(answerDate).format('YYYY.MM.DD'): '' }
+
+
+
+
+
{t('support.qna.detailLabels.inquiryAnswer')}
+
+
+
+
{t('support.qna.detailLabels.inquiryContents')}
+
+
+
+
+
+ }
+
+ >
+ );
+};
\ No newline at end of file
diff --git a/src/entities/support/ui/faq-item.tsx b/src/entities/support/ui/faq-item.tsx
index 1f8abcd..a738a8a 100644
--- a/src/entities/support/ui/faq-item.tsx
+++ b/src/entities/support/ui/faq-item.tsx
@@ -4,36 +4,29 @@ import { FaqItemProps } from '../model/types';
import { useTranslation } from 'react-i18next';
export const SupportFaqItem = ({
- cursorId,
- seq,
- category,
- title,
- contents,
+ faqItem,
+ setDetailData
}: FaqItemProps) => {
- const { navigate } = useNavigate();
const { t } = useTranslation();
const onClickToDetail = () => {
- navigate(PATHS.support.faq.detail, {
- state: {
- cursorId,
- seq,
- category,
- title,
- contents
- }
- });
+ if(setDetailData){
+ setDetailData({
+ faqItem: faqItem,
+ detailOn: true
+ });
+ }
};
return (
<>
onClickToDetail() }
+ onClick={ onClickToDetail }
>
-
{ title }
-
{ t('support.faq.categories.' + category) }
+
{ faqItem.title }
+
{ t('support.faq.categories.' + faqItem.category) }
>
diff --git a/src/entities/support/ui/notice-item.tsx b/src/entities/support/ui/notice-item.tsx
index dfbd150..2e1f961 100644
--- a/src/entities/support/ui/notice-item.tsx
+++ b/src/entities/support/ui/notice-item.tsx
@@ -5,21 +5,19 @@ import { NoticeItemProps } from '../model/types';
import { useTranslation } from 'react-i18next';
export const SupportNoticeItem = ({
- seq,
- title,
- informCl,
- regDt,
+ noticeItem,
+ setDetailData,
}: NoticeItemProps) => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const onClickToDetail = () => {
- navigate(PATHS.support.notice.detail, {
- state: {
- seq: seq,
- from: PATHS.support.notice.list
- }
- })
+ if(setDetailData){
+ setDetailData({
+ seq: noticeItem.seq,
+ detailOn: true
+ });
+ }
};
return (
@@ -29,9 +27,9 @@ export const SupportNoticeItem = ({
onClick={ () => onClickToDetail() }
>
-
{ title }
+
{ noticeItem.title }
- { t(`support.notice.categories.${informCl}`) } ㅣ { moment(regDt).format('YYYY.MM.DD HH:mm:ss') }
+ { t(`support.notice.categories.${noticeItem.informCl}`) } ㅣ { noticeItem.regDt? moment(noticeItem.regDt).format('YYYY.MM.DD HH:mm:ss'): '' }
diff --git a/src/entities/support/ui/qna-item.tsx b/src/entities/support/ui/qna-item.tsx
index f28cd3e..8f62d36 100644
--- a/src/entities/support/ui/qna-item.tsx
+++ b/src/entities/support/ui/qna-item.tsx
@@ -1,42 +1,19 @@
import moment from 'moment';
-import { PATHS } from '@/shared/constants/paths';
-import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { QnaItemProps } from '../model/types';
import { useTranslation } from 'react-i18next';
export const SupportQnaItem = ({
- answer,
- answerDate,
- contents,
- corpName,
- cursorId,
- requestDate,
- requestName,
- requestType,
- sendEmail,
- seq,
- statusCode,
- title
+ qnaItem,
+ setDetailData
}: QnaItemProps) => {
- const { navigate } = useNavigate();
const { t } = useTranslation();
const onClickToDetail = () => {
- navigate(PATHS.support.qna.detail, {
- state: {
- answer: answer,
- answerDate: answerDate,
- contents: contents,
- corpName: corpName,
- cursorId: cursorId,
- requestDate: requestDate,
- requestName: requestName,
- requestType: requestType,
- sendEmail: sendEmail,
- seq: seq,
- statusCode: statusCode,
- title: title
- }
- });
+ if(setDetailData){
+ setDetailData({
+ qnaItem: qnaItem,
+ detailOn: true
+ });
+ }
};
return (
@@ -46,12 +23,12 @@ export const SupportQnaItem = ({
onClick={ () => onClickToDetail() }
>
-
{ title }
+
{ qnaItem.title }
- {t('support.qna.registrationDate')}{ moment(requestDate).format('YYYY.MM.DD') }
- ㅣ{t('support.qna.status')} [{t(`support.qna.statusCode.${statusCode}`)}]
+ {t('support.qna.registrationDate')}{ qnaItem.requestDate? moment(qnaItem.requestDate).format('YYYY.MM.DD'): '' }
+ ㅣ{t('support.qna.status')} [{t(`support.qna.statusCode.${qnaItem.statusCode}`)}]
-
+
>
diff --git a/src/entities/transaction/model/types.ts b/src/entities/transaction/model/types.ts
index 1139f06..400d758 100644
--- a/src/entities/transaction/model/types.ts
+++ b/src/entities/transaction/model/types.ts
@@ -136,29 +136,40 @@ export enum BillingPaymentMethod {
MOBILE_PAYMENT = 'MOBILE_PAYMENT'
};
+export interface DetailData {
+ tid: string;
+ serviceCode?: string;
+ detailOn: boolean;
+}
export interface ListItemProps extends AllTransactionListItem, CashReceiptListItem, EscrowListItem, BillingListItem {
transactionCategory?: TransactionCategory;
+ setDetailData?: (detailData: DetailData) => void;
};
export interface ListDateGroupProps {
transactionCategory?: TransactionCategory;
date?: string;
items?: Array;
+ setDetailData?: (detailData: DetailData) => void;
};
export interface AllTransactionListProps {
transactionCategory: TransactionCategory;
listItems: Array;
+ setDetailData: (detailData: DetailData) => void;
};
export interface CashReceiptListProps {
transactionCategory: TransactionCategory;
listItems: Array;
+ setDetailData: (detailData: DetailData) => void;
};
export interface EscrowListProps {
transactionCategory: TransactionCategory;
listItems: Array;
+ setDetailData: (detailData: DetailData) => void;
};
export interface BillingListProps {
transactionCategory: TransactionCategory;
listItems: Array;
+ setDetailData: (detailData: DetailData) => void;
};
export interface AllTransactionListItem {
tid?: string;
diff --git a/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx b/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx
index 602c8eb..ade84b0 100644
--- a/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx
+++ b/src/entities/transaction/ui/all-transaction-cancel-prevent-bond.tsx
@@ -28,12 +28,7 @@ export const AllTransactionCancelPreventBond = ({
const { navigate } = useNavigate();
const [item, setItem] = useState(debtPreventionCancelDisplayInfo);
const onClickToClose = () => {
- navigate(PATHS.transaction.allTransaction.detail, {
- state: {
- serviceCode: serviceCode,
- tid: tid
- }
- });
+ setCancelPreventBondOn(false);
};
const callTransactionCancel = () => {
diff --git a/src/entities/transaction/ui/all-transaction-list.tsx b/src/entities/transaction/ui/all-transaction-list.tsx
index 8564283..15d0628 100644
--- a/src/entities/transaction/ui/all-transaction-list.tsx
+++ b/src/entities/transaction/ui/all-transaction-list.tsx
@@ -3,7 +3,8 @@ import { ListDateGroup } from './list-date-group';
export const AllTransactionList = ({
transactionCategory,
- listItems
+ listItems,
+ setDetailData
}: AllTransactionListProps) => {
const getListDateGroup = () => {
let rs = [];
@@ -26,6 +27,7 @@ export const AllTransactionList = ({
key={ date + '-' + i }
date={ date }
items={ list }
+ setDetailData={ setDetailData }
>
);
}
@@ -43,6 +45,7 @@ export const AllTransactionList = ({
key={ date + '-last' }
date={ date }
items={ list }
+ setDetailData={ setDetailData }
>
);
}
diff --git a/src/entities/transaction/ui/billing-list.tsx b/src/entities/transaction/ui/billing-list.tsx
index e50aebd..97e236c 100644
--- a/src/entities/transaction/ui/billing-list.tsx
+++ b/src/entities/transaction/ui/billing-list.tsx
@@ -6,10 +6,9 @@ import { useTranslation } from 'react-i18next';
export const BillingList = ({
transactionCategory,
- listItems
+ listItems,
+ setDetailData
}: BillingListProps) => {
- const { navigate } = useNavigate();
- const { t } = useTranslation();
const getListDateGroup = () => {
let rs = [];
@@ -31,6 +30,7 @@ export const BillingList = ({
key={ date + '-' + i }
date={ date }
items={ list }
+ setDetailData={ setDetailData }
>
);
}
@@ -48,27 +48,20 @@ export const BillingList = ({
key={ date + '-last' }
date={ date }
items={ list }
+ setDetailData={ setDetailData }
>
);
}
return rs;
};
- const onClickToNavigate = () => {
- navigate(PATHS.transaction.billing.charge);
- };
+
return (
<>
{ getListDateGroup() }
-
-
-
>
);
};
\ No newline at end of file
diff --git a/src/entities/transaction/ui/cash-receipt-list.tsx b/src/entities/transaction/ui/cash-receipt-list.tsx
index 1b5007c..cf7c8b3 100644
--- a/src/entities/transaction/ui/cash-receipt-list.tsx
+++ b/src/entities/transaction/ui/cash-receipt-list.tsx
@@ -6,7 +6,8 @@ import { useTranslation } from 'react-i18next';
export const CashReceiptList = ({
transactionCategory,
- listItems
+ listItems,
+ setDetailData
}: CashReceiptListProps) => {
const { navigate } = useNavigate();
const { t } = useTranslation();
@@ -31,6 +32,7 @@ export const CashReceiptList = ({
key={ date + '-' + i }
date={ date }
items={ list }
+ setDetailData={ setDetailData }
>
);
}
@@ -48,27 +50,19 @@ export const CashReceiptList = ({
key={ date + '-last' }
date={ date }
items={ list }
+ setDetailData={ setDetailData }
>
);
}
return rs;
};
- const onClickToNavigate = () => {
- navigate(PATHS.transaction.cashReceipt.handWrittenIssuance);
- };
-
return (
<>
{ getListDateGroup() }
-
-
-
+
>
);
};
\ No newline at end of file
diff --git a/src/entities/transaction/ui/detail/all-transaction-detail.tsx b/src/entities/transaction/ui/detail/all-transaction-detail.tsx
new file mode 100644
index 0000000..47e732c
--- /dev/null
+++ b/src/entities/transaction/ui/detail/all-transaction-detail.tsx
@@ -0,0 +1,238 @@
+import { useEffect, useState } from 'react';
+import { motion } from 'framer-motion';
+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 { useAllTransactionDetailMutation } from '@/entities/transaction/api/use-all-transaction-detail-mutation';
+import { AmountInfoSection } from '@/entities/transaction/ui/section/amount-info-section';
+import { ImportantInfoSection } from '@/entities/transaction/ui/section/important-info-section';
+import { PaymentInfoSection } from '@/entities/transaction/ui/section/payment-info-section';
+import { TransactionInfoSection } from '@/entities/transaction/ui/section/transaction-info-section';
+import { SettlementInfoSection } from '@/entities/transaction/ui/section/settlement-info-section';
+import { PartCancelInfoSection } from '@/entities/transaction/ui/section/part-cancel-info-section';
+import {
+ TransactionCategory,
+ AllTransactionDetailParams,
+ DetailResponse,
+ AmountInfo,
+ ImportantInfo,
+ PaymentInfo,
+ TransactionInfo,
+ SettlementInfo,
+ PartCancelInfo,
+ InfoSectionKeys
+} from '@/entities/transaction/model/types';
+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 AllTransactionDetailProps {
+ detailOn: boolean;
+ setDetailOn: (detailOn: boolean) => void;
+ tid: string;
+ serviceCode: string;
+};
+
+export const AllTransactionDetail = ({
+ detailOn,
+ setDetailOn,
+ tid,
+ serviceCode
+}: AllTransactionDetailProps) => {
+ const { navigate } = useNavigate();
+ const { t } = useTranslation();
+
+ const [amountInfo, setAmountInfo] = useState();
+ const [importantInfo, setImportantInfo] = useState();
+ const [paymentInfo, setPaymentInfo] = useState();
+ const [transactionInfo, setTransactionInfo] = useState();
+ const [settlementInfo, setSettlementInfo] = useState();
+ const [partCancelInfo, setPartCancelInfo] = useState();
+ const [showAmountInfo, setShowAmountInfo] = useState(false);
+ const [showPaymentInfo, setShowPaymentInfo] = useState(false);
+ const [showTransactionInfo, setShowTransactionInfo] = useState(false);
+ const [showSettlementInfo, setShowSettlementInfo] = useState(false);
+ const [showPartCancelInfo, setShowPartCancelInfo] = useState(false);
+
+ const { mutateAsync: allTransactionDetail } = useAllTransactionDetailMutation();
+
+ const callDetail = () => {
+ let allTransactionDetailParams: AllTransactionDetailParams = {
+ serviceCode: serviceCode,
+ tid: tid
+ };
+ allTransactionDetail(allTransactionDetailParams).then((rs: DetailResponse) => {
+ setAmountInfo(rs.amountInfo);
+ setImportantInfo(rs.importantInfo);
+ setPaymentInfo(rs.paymentInfo);
+ setTransactionInfo(rs.transactionInfo);
+ setSettlementInfo(rs.settlementInfo);
+ setPartCancelInfo(rs.partCancelInfo);
+ });
+ };
+ useEffect(() => {
+ if(!!detailOn && serviceCode && tid){
+ callDetail();
+ }
+ }, [detailOn]);
+
+ const onClickToNavigate = (path: string) => {
+ let timeout = setTimeout(() => {
+ clearTimeout(timeout);
+ navigate(PATHS.transaction.allTransaction.cancel, {
+ state: {
+ serviceCode: serviceCode,
+ tid: tid
+ }
+ });
+ }, 10)
+ };
+
+ const onClickToCancel = () => {
+ let msg = t('transaction.confirmCancel');
+
+ overlay.open(({
+ isOpen,
+ close,
+ unmount
+ }) => {
+ return (
+