자금이체 탭

This commit is contained in:
focp212@naver.com
2025-09-05 18:26:21 +09:00
parent 73bd36d6ec
commit de253c5d68
9 changed files with 129 additions and 2 deletions

View File

@@ -1,5 +1,12 @@
import { DefaulResponsePagination } from '@/entities/common/model/types'; import { DefaulResponsePagination } from '@/entities/common/model/types';
export enum FundTransferTabKeys {
RequestList = 'RequestList',
ResultInquiry = 'ResultInquiry'
};
export interface FundTransferTabProps {
activeTab: FundTransferTabKeys;
};
export interface ExtensionRequestParams { export interface ExtensionRequestParams {
mid: string; mid: string;
}; };

View File

@@ -0,0 +1,8 @@
export const FundTransferRequestListWrap = () => {
return (
<>
</>
);
};

View File

@@ -0,0 +1,8 @@
export const FundTransferResultInquiryWrap = () => {
return (
<>
</>
);
};

View File

@@ -0,0 +1,37 @@
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import {
FundTransferTabKeys,
FundTransferTabProps
} from '../model/types';
export const FundTransferTab = ({
activeTab
}: FundTransferTabProps) => {
const { navigate } = useNavigate();
const onClickToNavigation = (tab: FundTransferTabKeys) => {
if(activeTab !== tab){
if(tab === FundTransferTabKeys.RequestList){
navigate(PATHS.additionalService.fundTransfer.requestList);
}
else if(tab === FundTransferTabKeys.ResultInquiry){
navigate(PATHS.additionalService.fundTransfer.resultInquiry);
}
}
};
return (
<>
<div className="subTab">
<button
className={`subtab-btn ${(activeTab === FundTransferTabKeys.RequestList)? 'active': ''}` }
onClick={ () => onClickToNavigation(FundTransferTabKeys.RequestList) }
> </button>
<button
className={`subtab-btn ${(activeTab === FundTransferTabKeys.ResultInquiry)? 'active': ''}` }
onClick={ () => onClickToNavigation(FundTransferTabKeys.ResultInquiry) }
> </button>
</div>
</>
);
};

View File

@@ -14,6 +14,7 @@ import { KakaoPaymentNotificationListPage } from './kakao-payment-notification/l
import { KakaoPaymentNotificationSettingPage } from './kakao-payment-notification/setting-page'; import { KakaoPaymentNotificationSettingPage } from './kakao-payment-notification/setting-page';
import { FundTransferRequestListPage } from './fund-transfer/request-list-page'; import { FundTransferRequestListPage } from './fund-transfer/request-list-page';
import { FundTransferRequestRegisterPage } from './fund-transfer/request-register-page'; import { FundTransferRequestRegisterPage } from './fund-transfer/request-register-page';
import { FundTransferResultInquiryPage } from './fund-transfer/result-inquiry-page';
import { SettlementAgencyPage } from './settlement-agency/settlement-agency-page'; import { SettlementAgencyPage } from './settlement-agency/settlement-agency-page';
import { PaymentAgencyListPage } from './payment-agency/list-page'; import { PaymentAgencyListPage } from './payment-agency/list-page';
import { PaymentAgencyDetailPage } from './payment-agency/detail-page'; import { PaymentAgencyDetailPage } from './payment-agency/detail-page';
@@ -42,6 +43,7 @@ export const AdditionalServicePages = () => {
<Route path={ROUTE_NAMES.additionalService.fundTransfer.base}> <Route path={ROUTE_NAMES.additionalService.fundTransfer.base}>
<Route path={ROUTE_NAMES.additionalService.fundTransfer.requestList} element={<FundTransferRequestListPage />} /> <Route path={ROUTE_NAMES.additionalService.fundTransfer.requestList} element={<FundTransferRequestListPage />} />
<Route path={ROUTE_NAMES.additionalService.fundTransfer.requestRegister} element={<FundTransferRequestRegisterPage />} /> <Route path={ROUTE_NAMES.additionalService.fundTransfer.requestRegister} element={<FundTransferRequestRegisterPage />} />
<Route path={ROUTE_NAMES.additionalService.fundTransfer.resultInquiry} element={<FundTransferResultInquiryPage />} />
</Route> </Route>
<Route path={ROUTE_NAMES.additionalService.settlementAgency} element={<SettlementAgencyPage />} /> <Route path={ROUTE_NAMES.additionalService.settlementAgency} element={<SettlementAgencyPage />} />
<Route path={ROUTE_NAMES.additionalService.paymentAgency.base}> <Route path={ROUTE_NAMES.additionalService.paymentAgency.base}>

View File

@@ -1,18 +1,39 @@
import { useState } from 'react';
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { FundTransferTab } from '@/entities/additional-service/ui/fund-transfer-tab';
import { FundTransferRequestListWrap } from '@/entities/additional-service/ui/fund-transfer-request-list-wrap';
import { FundTransferTabKeys } from '@/entities/additional-service/model/types';
import { HeaderType } from '@/entities/common/model/types'; import { HeaderType } from '@/entities/common/model/types';
import { import {
useSetHeaderTitle, useSetHeaderTitle,
useSetHeaderType, useSetHeaderType,
useSetFooterMode useSetFooterMode,
useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout'; } from '@/widgets/sub-layout/use-sub-layout';
export const FundTransferRequestListPage = () => { export const FundTransferRequestListPage = () => {
const { navigate } = useNavigate();
const [activeTab, setActiveTab] = useState<FundTransferTabKeys>(FundTransferTabKeys.RequestList);
useSetHeaderTitle('자금이체'); useSetHeaderTitle('자금이체');
useSetHeaderType(HeaderType.LeftArrow); useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(true); useSetFooterMode(true);
useSetOnBack(() => {
navigate(PATHS.home);
});
return ( return (
<> <>
<main>
<div className="tab-content">
<div className="tab-pane sub active">
<FundTransferTab activeTab={ activeTab }></FundTransferTab>
<FundTransferRequestListWrap></FundTransferRequestListWrap>
</div>
</div>
</main>
</> </>
); );
}; };

View File

@@ -0,0 +1,39 @@
import { useState } from 'react';
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { FundTransferTab } from '@/entities/additional-service/ui/fund-transfer-tab';
import { FundTransferResultInquiryWrap } from '@/entities/additional-service/ui/fund-transfer-result-inquiry-wrap';
import { FundTransferTabKeys } from '@/entities/additional-service/model/types';
import { HeaderType } from '@/entities/common/model/types';
import {
useSetHeaderTitle,
useSetHeaderType,
useSetFooterMode,
useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout';
export const FundTransferResultInquiryPage = () => {
const { navigate } = useNavigate();
const [activeTab, setActiveTab] = useState<FundTransferTabKeys>(FundTransferTabKeys.ResultInquiry);
useSetHeaderTitle('자금이체');
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(true);
useSetOnBack(() => {
navigate(PATHS.home);
});
return (
<>
<main>
<div className="tab-content">
<div className="tab-pane sub active">
<FundTransferTab activeTab={ activeTab }></FundTransferTab>
<FundTransferResultInquiryWrap></FundTransferResultInquiryWrap>
</div>
</div>
</main>
</>
);
};

View File

@@ -183,6 +183,10 @@ export const PATHS: RouteNamesType = {
`${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.fundTransfer.base}`, `${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.fundTransfer.base}`,
ROUTE_NAMES.additionalService.fundTransfer.requestRegister, ROUTE_NAMES.additionalService.fundTransfer.requestRegister,
), ),
resultInquiry: generatePath(
`${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.fundTransfer.base}`,
ROUTE_NAMES.additionalService.fundTransfer.resultInquiry,
),
}, },
settlementAgency: generatePath(ROUTE_NAMES.additionalService.base, ROUTE_NAMES.additionalService.settlementAgency), settlementAgency: generatePath(ROUTE_NAMES.additionalService.base, ROUTE_NAMES.additionalService.settlementAgency),
paymentAgency: { paymentAgency: {

View File

@@ -90,6 +90,7 @@ export const ROUTE_NAMES = {
base: '/fund-transfer/*', base: '/fund-transfer/*',
requestList: 'request-list', requestList: 'request-list',
requestRegister: 'request-register', requestRegister: 'request-register',
resultInquiry: 'result-inquiry',
}, },
settlementAgency: 'settlement-agency', settlementAgency: 'settlement-agency',
paymentAgency: { paymentAgency: {