Fix TypeScript errors in additional-service module

Updated 24 files to resolve 111 TypeScript compilation errors by:
- Updating imports from direct constant exports to getter functions
- Adding i18n support with useTranslation hook
- Fixing curried function calls to use translation function parameter
- Adding explicit type annotations to map callbacks

All filter components, list wrappers, and page components now properly
use internationalized getter functions for status text and button groups.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-10-31 09:21:07 +09:00
parent 4d40fa1cf7
commit 95c83ebd7e
25 changed files with 125 additions and 87 deletions

View File

@@ -14,8 +14,9 @@ import {
useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout';
import { useExtensionAccountHolderAuthListMutation } from '@/entities/additional-service/api/account-holder-auth/use-extension-account-holder-auth-list-mutation';
import { authStatusBtnGroup } from '@/entities/additional-service/model/account-holder-auth/constant';
import { getAuthStatusBtnGroup } from '@/entities/additional-service/model/account-holder-auth/constant';
import { AccountHolderAuthList } from '@/entities/additional-service/ui/account-holder-auth/account-holder-auth-list';
import { useTranslation } from 'react-i18next';
import { useExtensionAccountHolderAuthDownloadExcelMutation } from '@/entities/additional-service/api/account-holder-auth/use-extension-account-holder-auth-download-excel-mutation';
import { AccountHolderAuthFilter } from '@/entities/additional-service/ui/account-holder-auth/filter/account-holder-auth-filter';
import { useStore } from '@/shared/model/store';
@@ -27,6 +28,7 @@ import useIntersectionObserver from '@/widgets/intersection-observer';
export const AccountHolderAuthPage = () => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const userMid = useStore.getState().UserStore.mid;
@@ -216,7 +218,7 @@ export const AccountHolderAuthPage = () => {
<div className="excrow">
<div className="full-menu-keywords no-padding">
{
authStatusBtnGroup.map((value, index) => (
getAuthStatusBtnGroup(t).map((value: any, index: number) => (
<span
key={`key-service-code=${index}`}
className={`keyword-tag ${(authStatus === value.value) ? 'active' : ''}`}

View File

@@ -17,9 +17,11 @@ import { ExtensionAccountHolderAuthDetailParams, ExtensionAccountHolderAuthDetai
import moment from 'moment';
import { getAuthStatusText } from '@/entities/additional-service/model/account-holder-auth/constant';
import { getAuthResultStatusText } from '@/entities/additional-service/model/face-auth/constant';
import { useTranslation } from 'react-i18next';
export const AccountHolderAuthDetailPage = () => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const location = useLocation();
const { mid, tid } = location.state || {};
const [detail, setDetail] = useState<ExtensionAccountHolderAuthDetailResponse>();
@@ -91,11 +93,11 @@ export const AccountHolderAuthDetailPage = () => {
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{getAuthStatusText(detail?.authStatus)}</span>
<span className="v">{getAuthStatusText(t)(detail?.authStatus)}</span>
</li>
<li className="kv-row">
<span className="k"> </span>
<span className="v">{detail?.failReason ? getAuthResultStatusText(detail?.failReason) : '-' }</span>
<span className="v">{detail?.failReason ? getAuthResultStatusText(t)(detail?.failReason) : '-' }</span>
</li>
</ul>
</div>

View File

@@ -20,13 +20,15 @@ import { SortTypeKeys } from '@/entities/common/model/types';
import { AccountHolderSearchList } from '@/entities/additional-service/ui/account-holder-search/account-holder-search-list';
import { useStore } from '@/shared/model/store';
import { AccountHolderSearchListItem, AccountHolderSearchCl, AccountHolderResultStatus } from '@/entities/additional-service/model/account-holder-search/types';
import { resultStatusBtnGroup } from '@/entities/additional-service/model/account-holder-search/constant';
import { getResultStatusBtnGroup } from '@/entities/additional-service/model/account-holder-search/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
import { useTranslation } from 'react-i18next';
import { useExtensionAccessCheck } from '@/shared/lib/hooks/use-extension-access-check';
import useIntersectionObserver from '@/widgets/intersection-observer';
export const AccountHolderSearchPage = () => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const userMid = useStore.getState().UserStore.mid;
@@ -227,7 +229,7 @@ export const AccountHolderSearchPage = () => {
<div className="excrow">
<div className="full-menu-keywords no-padding">
{
resultStatusBtnGroup.map((value, index) => (
getResultStatusBtnGroup(t).map((value: any, index: number) => (
<span
key={`key-service-code=${index}`}
className={`keyword-tag ${(resultStatus === value.value) ? 'active' : ''}`}

View File

@@ -16,9 +16,11 @@ import { DetailInfoWrap } from '@/entities/additional-service/ui/info-wrap/detai
import { ExtensionAccountHolderSearchDetailParams, ExtensionAccountHolderSearchDetailResponse } from '@/entities/additional-service/model/account-holder-search/types';
import { useExtensionAccountHolderSearchDetailtMutation } from '@/entities/additional-service/api/account-holder-search/use-extension-account-holder-search-detail-mutation';
import { getAccountHolderStatusText } from '@/entities/additional-service/model/account-holder-search/constant';
import { useTranslation } from 'react-i18next';
export const AccountHolderSearchDetailPage = () => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const location = useLocation();
const { mid, tid } = location.state || {};
@@ -77,7 +79,7 @@ export const AccountHolderSearchDetailPage = () => {
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{getAccountHolderStatusText(detail?.resultStatus)}</span>
<span className="v">{getAccountHolderStatusText(t)(detail?.resultStatus)}</span>
</li>
<li className="kv-row">
<span className="k"></span>

View File

@@ -13,9 +13,11 @@ import { ExtensionAlimtalkDetailParams, ExtensionAlimtalkDetailResponse } from '
import { useExtensionAlimtalkDetailMutation } from '@/entities/additional-service/api/alimtalk/use-extansion-alimtalk-detail-mutation';
import moment from 'moment';
import { getAlimtalkAlimClText, getAlimtalkSendClTypeText, getAlimtalkSendTypeText, getAlimtalkServiceCodeText } from '@/entities/additional-service/model/alimtalk/constant';
import { useTranslation } from 'react-i18next';
export const AlimtalkDetailPage = () => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const location = useLocation();
const tid = location.state.tid;
@@ -81,23 +83,23 @@ export const AlimtalkDetailPage = () => {
</li>
<li className="kv-row">
<span className="k"> </span>
<span className="v">{ getAlimtalkSendTypeText(detail?.sendType) }</span>
<span className="v">{ getAlimtalkSendTypeText(t)(detail?.sendType) }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="k"></span>
<span className="v">{detail?.receiverName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ getAlimtalkServiceCodeText(detail?.serviceCode) }</span>
<span className="v">{ getAlimtalkServiceCodeText(t)(detail?.serviceCode) }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ getAlimtalkAlimClText(detail?.alimCl) }</span>
<span className="v">{ getAlimtalkAlimClText(t)(detail?.alimCl) }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ getAlimtalkSendClTypeText(detail?.sendCl) }</span>
<span className="v">{ getAlimtalkSendClTypeText(t)(detail?.sendCl) }</span>
</li>
</ul>
</div>

View File

@@ -106,11 +106,11 @@ export const ArsDetailPage = () => {
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ getArsPaymentStatusName(detail?.paymentStatus) }</span>
<span className="v">{ getArsPaymentStatusName(t)(detail?.paymentStatus) }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ getArsOrderStatusName(detail?.orderStatus) }</span>
<span className="v">{ getArsOrderStatusName(t)(detail?.orderStatus) }</span>
</li>
<li className="kv-row">
<span className="k"></span>

View File

@@ -17,8 +17,9 @@ import { useExtensionArsDownloadExcelMutation } from '@/entities/additional-serv
import { ListDateGroup } from '@/entities/additional-service/ui/list-date-group';
import { AdditionalServiceCategory } from '@/entities/additional-service/model/types';
import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
import { ArsPaymentStatusBtnGroup } from '@/entities/additional-service/model/ars/constant';
import { getArsPaymentStatusBtnGroup } from '@/entities/additional-service/model/ars/constant';
import { ArsFilter } from '@/entities/additional-service/ui/filter/ars-filter';
import { useTranslation } from 'react-i18next';
import { useStore } from '@/shared/model/store';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
import { useExtensionAccessCheck } from '@/shared/lib/hooks/use-extension-access-check';
@@ -26,6 +27,7 @@ import useIntersectionObserver from '@/widgets/intersection-observer';
export const ArsListPage = () => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const userMid = useStore.getState().UserStore.mid;
@@ -276,7 +278,7 @@ export const ArsListPage = () => {
<div className="excrow mr-0">
<div className="full-menu-keywords no-padding">
{
ArsPaymentStatusBtnGroup.map((value, index) => (
getArsPaymentStatusBtnGroup(t).map((value: any, index: number) => (
<span
key={`key-service-code=${index}`}
className={`keyword-tag ${(paymentStatus === value.value) ? 'active' : ''}`}

View File

@@ -17,7 +17,7 @@ import {
import { FaceAuthFilter } from '@/entities/additional-service/ui/face-auth/filter/face-auth-filter';
import { ExtensionFaceAuthExcelDownlaodPrams, ExtensionFaceAuthExcelDownlaodResponse, ExtensionFaceAuthListParams, ExtensionFaceAuthListResponse, FaceAuthListItem, FaceAuthResult, FaceAuthTransType } from '@/entities/additional-service/model/face-auth/types';
import { AuthResultBtnGroup } from '@/entities/additional-service/model/face-auth/constant';
import { getAuthResultBtnGroup } from '@/entities/additional-service/model/face-auth/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
import { useExtensionFaceAuthListtMutation } from '@/entities/additional-service/api/face-auth/use-extension-face-auth-list-mutation';
import { useExtensionFaceAuthDownloadExcelMutation } from '@/entities/additional-service/api/face-auth/use-extension-face-auth-download-excel-mutation';
@@ -265,7 +265,7 @@ export const FaceAuthPage = () => {
<div className="excrow">
<div className="full-menu-keywords no-padding">
{
AuthResultBtnGroup.map((value, index) => (
getAuthResultBtnGroup(t).map((value: any, index: number) => (
<span
key={`key-service-code=${index}`}
className={`keyword-tag ${(authResult === value.value) ? 'active' : ''}`}

View File

@@ -99,7 +99,7 @@ export const FundAccountTransferDetailPage = () => {
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{getFundAccountStatusName(detail?.resultStatus) || '-'}</span>
<span className="v">{getFundAccountStatusName(t)(detail?.resultStatus) || '-'}</span>
</li>
<li className="kv-row">
<span className="k"></span>

View File

@@ -20,13 +20,15 @@ import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { KeyInPaymentList } from '@/entities/additional-service/ui/key-in-payment/key-in-payment-list';
import { useStore } from '@/shared/model/store';
import { KeyInPaymentListItem, KeyInPaymentStatus, KeyInPaymentTansactionType } from '@/entities/additional-service/model/key-in/types';
import { keyInPaymentPaymentStatusBtnGroup } from '@/entities/additional-service/model/key-in/constant';
import { getKeyInPaymentPaymentStatusBtnGroup } from '@/entities/additional-service/model/key-in/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
import { useTranslation } from 'react-i18next';
import { useExtensionAccessCheck } from '@/shared/lib/hooks/use-extension-access-check';
import useIntersectionObserver from '@/widgets/intersection-observer';
export const KeyInPaymentPage = () => {
const { navigate } = useNavigate();
const { t } = useTranslation();
const userMid = useStore.getState().UserStore.mid;
// 권한 체크
@@ -223,7 +225,7 @@ export const KeyInPaymentPage = () => {
<div className="excrow">
<div className="full-menu-keywords no-padding">
{
keyInPaymentPaymentStatusBtnGroup.map((value, index) => (
getKeyInPaymentPaymentStatusBtnGroup(t).map((value: any, index: number) => (
<span
key={`key-service-code=${index}`}
className={`keyword-tag ${(transactionType === value.value) ? 'active' : ''}`}

View File

@@ -24,8 +24,9 @@ import moment from 'moment';
import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
import { useExtensionPayoutExcelMutation } from '@/entities/additional-service/api/payout/use-extension-payout-excel-mutation';
import { PayoutFilter } from '@/entities/additional-service/ui/filter/payout-filter';
import { PayoutDisbursementStatusBtnGroup } from '@/entities/additional-service/model/payout/constant';
import { getPayoutDisbursementStatusBtnGroup } from '@/entities/additional-service/model/payout/constant';
import { ListDateGroup } from '@/entities/additional-service/ui/list-date-group';
import { useTranslation } from 'react-i18next';
import { AdditionalServiceCategory } from '@/entities/additional-service/model/types';
import { useStore } from '@/shared/model/store';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
@@ -38,6 +39,7 @@ export const PayoutListPage = () => {
extensionCode: 'PAYOUT'
});
const { navigate } = useNavigate();
const { t } = useTranslation();
const userMid = useStore.getState().UserStore.mid;
const [onActionIntersect, setOnActionIntersect] = useState<boolean>(false);
@@ -282,7 +284,7 @@ export const PayoutListPage = () => {
<div className="excrow mr-0">
<div className="full-menu-keywords no-padding">
{
PayoutDisbursementStatusBtnGroup.map((value, index) => (
getPayoutDisbursementStatusBtnGroup(t).map((value: any, index: number) => (
<span
key={`key-service-code=${index}`}
className={`keyword-tag ${(status === value.value) ? 'active' : ''}`}