Convert transaction constants to i18n-compatible getter functions
- Convert all hardcoded constant arrays to functions accepting TFunction - Add transaction.constants namespace with 40+ translation keys - Update contant.ts: All exports now use get* prefix (e.g., getCashReceiptPurposeTypeBtnGroup) - Replace ko/en properties with single name property using t() function Updated constants: - getAllTransactionMoidTidOptionsGroup(t) - getAllTransactionStatusCodeBtnGroup(t) - getAllTransactionServiceCodeOptionsGroup(t) - getAllTransactionStatusCode(t) - getCashReceiptPurposeTypeBtnGroup(t) - getCashReceiptTransactionTypeBtnGroup(t) - getCashReceiptProcessResultBtnGroup(t) - getEscrowSearchTypeOptionsGroup(t) - getEscrowDeliveryStatusBtnGroup(t) - getEscrowSettlementStatusBtnGroup(t) - getBillingSearchTypeOptionsGroup(t) - getBillingRequestStatusBtnGroup(t) - getBillingProcessResultBtnGroup(t) - getBillingPaymentMethodBtnGroup(t) Updated components (9 files): - Filter components: all-transaction, cash-receipt, billing, escrow - List pages: billing, cash-receipt, escrow - UI components: list-item, important-info-section All constants now properly support Korean/English language switching. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -9,8 +9,8 @@ import { FilterCalendar } from '@/shared/ui/filter/calendar';
|
||||
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
|
||||
import { FilterRangeAmount } from '@/shared/ui/filter/range-amount';
|
||||
import {
|
||||
AllTransactionMoidTidOptionsGroup,
|
||||
AllTracsactionStatusCode,
|
||||
getAllTransactionMoidTidOptionsGroup,
|
||||
getAllTransactionStatusCode,
|
||||
} from '@/entities/transaction/model/contant';
|
||||
import {
|
||||
AllTransactionFilterProps,
|
||||
@@ -80,6 +80,9 @@ export const AllTransactionFilter = ({
|
||||
|
||||
const [statusCodeBtns, setStatusCodeBtns] = useState<Array<Record<string, string>>>();
|
||||
|
||||
const moidTidOptionsGroup = getAllTransactionMoidTidOptionsGroup(t);
|
||||
const allTransactionStatusCode = getAllTransactionStatusCode(t);
|
||||
|
||||
const onClickToClose = () => {
|
||||
setFilterOn(false);
|
||||
};
|
||||
@@ -155,12 +158,12 @@ export const AllTransactionFilter = ({
|
||||
};
|
||||
|
||||
const onChangeServiceCode = (val: string) => {
|
||||
let list = AllTracsactionStatusCode.filter((value, index) => {
|
||||
let list = allTransactionStatusCode.filter((value, index) => {
|
||||
return val === value.serviceCode;
|
||||
})[0]?.list;
|
||||
let btns = list?.map((value, index) => {
|
||||
return {
|
||||
name: value.ko,
|
||||
name: value.name,
|
||||
value: value.code
|
||||
}
|
||||
});
|
||||
@@ -211,7 +214,7 @@ export const AllTransactionFilter = ({
|
||||
title={t('filter.orderNumberTid')}
|
||||
selectValue={ filterMoidTidType }
|
||||
selectSetter={ setFilterMoidTidType }
|
||||
selectOptions={ AllTransactionMoidTidOptionsGroup }
|
||||
selectOptions={ moidTidOptionsGroup }
|
||||
inputValue={ filterMoidTidValue }
|
||||
inputSetter={ setFilterMoidTidValue }
|
||||
></FilterSelectInput>
|
||||
|
||||
@@ -9,10 +9,10 @@ import { FilterCalendar } from '@/shared/ui/filter/calendar';
|
||||
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
|
||||
import { FilterRangeAmount } from '@/shared/ui/filter/range-amount';
|
||||
import {
|
||||
BillingSearchTypeOptionsGroup,
|
||||
BillingRequestStatusBtnGroup,
|
||||
BillingProcessResultBtnGroup,
|
||||
BillingPaymentMethodBtnGroup
|
||||
getBillingSearchTypeOptionsGroup,
|
||||
getBillingRequestStatusBtnGroup,
|
||||
getBillingProcessResultBtnGroup,
|
||||
getBillingPaymentMethodBtnGroup
|
||||
} from '@/entities/transaction/model/contant';
|
||||
import {
|
||||
BillingFilterProps,
|
||||
@@ -68,6 +68,11 @@ export const BillingFilter = ({
|
||||
|
||||
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
||||
|
||||
const searchTypeOptionsGroup = getBillingSearchTypeOptionsGroup(t);
|
||||
const requestStatusBtnGroup = getBillingRequestStatusBtnGroup(t);
|
||||
const processResultBtnGroup = getBillingProcessResultBtnGroup(t);
|
||||
const paymentMethodBtnGroup = getBillingPaymentMethodBtnGroup(t);
|
||||
|
||||
const onClickToClose = () => {
|
||||
setFilterOn(false);
|
||||
};
|
||||
@@ -131,7 +136,7 @@ export const BillingFilter = ({
|
||||
title={t('filter.orderNumberTid')}
|
||||
selectValue={ filterSearchType }
|
||||
selectSetter={ setFilterSearchType }
|
||||
selectOptions={ BillingSearchTypeOptionsGroup }
|
||||
selectOptions={ searchTypeOptionsGroup }
|
||||
inputValue={ searchKeyword }
|
||||
inputSetter={ setFilterSearchKeyword }
|
||||
></FilterSelectInput>
|
||||
@@ -146,19 +151,19 @@ export const BillingFilter = ({
|
||||
<FilterButtonGroups
|
||||
title={t('filter.requestStatus')}
|
||||
activeValue={ filterRequestStatus }
|
||||
btnGroups={ BillingRequestStatusBtnGroup }
|
||||
btnGroups={ requestStatusBtnGroup }
|
||||
setter={ setFilterRequestStatus }
|
||||
></FilterButtonGroups>
|
||||
<FilterButtonGroups
|
||||
title={t('filter.processingResult')}
|
||||
activeValue={ filterProcessResult }
|
||||
btnGroups={ BillingProcessResultBtnGroup }
|
||||
btnGroups={ processResultBtnGroup }
|
||||
setter={ setFilterProcessResult }
|
||||
></FilterButtonGroups>
|
||||
<FilterButtonGroups
|
||||
title={t('filter.paymentMethod')}
|
||||
activeValue={ filterPaymentMethod }
|
||||
btnGroups={ BillingPaymentMethodBtnGroup }
|
||||
btnGroups={ paymentMethodBtnGroup }
|
||||
setter={ setFilterPaymentMethod }
|
||||
></FilterButtonGroups>
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ import { FilterSelectInput } from '@/shared/ui/filter/select-input';
|
||||
import { FilterCalendar } from '@/shared/ui/filter/calendar';
|
||||
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
|
||||
import {
|
||||
CashReceiptPurposeTypeBtnGroup,
|
||||
CashReceiptTransactionTypeBtnGroup,
|
||||
CashReceiptProcessResultBtnGroup
|
||||
getCashReceiptPurposeTypeBtnGroup,
|
||||
getCashReceiptTransactionTypeBtnGroup,
|
||||
getCashReceiptProcessResultBtnGroup
|
||||
} from '@/entities/transaction/model/contant';
|
||||
import {
|
||||
CashReceiptFilterProps,
|
||||
@@ -64,6 +64,10 @@ export const CashReceiptFilter = ({
|
||||
|
||||
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
||||
|
||||
const purposeTypeBtnGroup = getCashReceiptPurposeTypeBtnGroup(t);
|
||||
const transactionTypeBtnGroup = getCashReceiptTransactionTypeBtnGroup(t);
|
||||
const processResultBtnGroup = getCashReceiptProcessResultBtnGroup(t);
|
||||
|
||||
const onClickToClose = () => {
|
||||
setFilterOn(false);
|
||||
};
|
||||
@@ -130,19 +134,19 @@ export const CashReceiptFilter = ({
|
||||
<FilterButtonGroups
|
||||
title={t('filter.purpose')}
|
||||
activeValue={ filterPurposeType }
|
||||
btnGroups={ CashReceiptPurposeTypeBtnGroup }
|
||||
btnGroups={ purposeTypeBtnGroup }
|
||||
setter={ setFilterPurposeType }
|
||||
></FilterButtonGroups>
|
||||
<FilterButtonGroups
|
||||
title={t('filter.transactionCategory')}
|
||||
activeValue={ filterTransactionType }
|
||||
btnGroups={ CashReceiptTransactionTypeBtnGroup }
|
||||
btnGroups={ transactionTypeBtnGroup }
|
||||
setter={ setFilterTransactionType }
|
||||
></FilterButtonGroups>
|
||||
<FilterButtonGroups
|
||||
title={t('filter.progressStatus')}
|
||||
activeValue={ filterProcessResult }
|
||||
btnGroups={ CashReceiptProcessResultBtnGroup }
|
||||
btnGroups={ processResultBtnGroup }
|
||||
setter={ setFilterProcessResult }
|
||||
></FilterButtonGroups>
|
||||
<FilterSelectInput
|
||||
|
||||
@@ -9,9 +9,9 @@ import { FilterCalendar } from '@/shared/ui/filter/calendar';
|
||||
import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
|
||||
import { FilterRangeAmount } from '@/shared/ui/filter/range-amount';
|
||||
import {
|
||||
EscrowDeliveryStatusBtnGroup,
|
||||
EscrowSettlementStatusBtnGroup,
|
||||
EscrowSearchTypeOptionsGroup
|
||||
getEscrowDeliveryStatusBtnGroup,
|
||||
getEscrowSettlementStatusBtnGroup,
|
||||
getEscrowSearchTypeOptionsGroup
|
||||
} from '@/entities/transaction/model/contant';
|
||||
import {
|
||||
EscrowFilterProps,
|
||||
@@ -62,7 +62,11 @@ export const EscrowFilter = ({
|
||||
const [filterMaxAmount, setFilterMaxAmount] = useState<number | undefined>(maxAmount);
|
||||
|
||||
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
||||
|
||||
|
||||
const searchTypeOptionsGroup = getEscrowSearchTypeOptionsGroup(t);
|
||||
const deliveryStatusBtnGroup = getEscrowDeliveryStatusBtnGroup(t);
|
||||
const settlementStatusBtnGroup = getEscrowSettlementStatusBtnGroup(t);
|
||||
|
||||
const onClickToClose = () => {
|
||||
setFilterOn(false);
|
||||
};
|
||||
@@ -125,7 +129,7 @@ export const EscrowFilter = ({
|
||||
title={t('filter.orderNumberTid')}
|
||||
selectValue={ filterSearchType }
|
||||
selectSetter={ setSearchType }
|
||||
selectOptions={ EscrowSearchTypeOptionsGroup }
|
||||
selectOptions={ searchTypeOptionsGroup }
|
||||
inputValue={ searchKeyword }
|
||||
inputSetter={ setSearchKeyword }
|
||||
></FilterSelectInput>
|
||||
@@ -140,13 +144,13 @@ export const EscrowFilter = ({
|
||||
<FilterButtonGroups
|
||||
title={t('filter.deliveryStatus')}
|
||||
activeValue={ filterDeliveryStatus }
|
||||
btnGroups={ EscrowDeliveryStatusBtnGroup }
|
||||
btnGroups={ deliveryStatusBtnGroup }
|
||||
setter={ setFilterDeliveryStatus }
|
||||
></FilterButtonGroups>
|
||||
<FilterButtonGroups
|
||||
title={t('filter.paymentMethod')}
|
||||
activeValue={ filterSettlementStatus }
|
||||
btnGroups={ EscrowSettlementStatusBtnGroup }
|
||||
btnGroups={ settlementStatusBtnGroup }
|
||||
setter={ setFilterSettlementStatus }
|
||||
></FilterButtonGroups>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||
import { ListItemProps, TransactionCategory } from '../model/types';
|
||||
import moment from 'moment';
|
||||
import { useStore } from '@/shared/model/store';
|
||||
import { AllTracsactionStatusCode } from '../model/contant';
|
||||
import { getAllTransactionStatusCode } from '../model/contant';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export const ListItem = ({
|
||||
@@ -129,15 +129,16 @@ export const ListItem = ({
|
||||
const getStatusName = () => {
|
||||
let str;
|
||||
if(transactionCategory === TransactionCategory.AllTransaction){
|
||||
Loop1:
|
||||
for(let i=0;i<AllTracsactionStatusCode.length;i++){
|
||||
if(serviceCode === AllTracsactionStatusCode[i]?.serviceCode){
|
||||
let list = AllTracsactionStatusCode[i]?.list;
|
||||
const allTransactionStatusCode = getAllTransactionStatusCode(t);
|
||||
Loop1:
|
||||
for(let i=0;i<allTransactionStatusCode.length;i++){
|
||||
if(serviceCode === allTransactionStatusCode[i]?.serviceCode){
|
||||
let list = allTransactionStatusCode[i]?.list;
|
||||
if(!!list){
|
||||
Loop2:
|
||||
for(let j=0;j<list.length;j++){
|
||||
if(list[j]?.code === statusCode){
|
||||
str = list[j]?.ko;
|
||||
str = list[j]?.name;
|
||||
break Loop1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import { NumericFormat } from 'react-number-format';
|
||||
import { InfoSectionProps, TransactionCategory } from '../../model/types';
|
||||
import { useStore } from '@/shared/model/store';
|
||||
import { AllTracsactionStatusCode } from '../../model/contant';
|
||||
import { getAllTransactionStatusCode } from '../../model/contant';
|
||||
|
||||
export const ImportantInfoSection = ({
|
||||
transactionCategory,
|
||||
@@ -29,15 +29,16 @@ export const ImportantInfoSection = ({
|
||||
const getStatusName = (serviceCode: string, statusCode: string) => {
|
||||
let str;
|
||||
if(transactionCategory === TransactionCategory.AllTransaction){
|
||||
Loop1:
|
||||
for(let i=0;i<AllTracsactionStatusCode.length;i++){
|
||||
if(serviceCode === AllTracsactionStatusCode[i]?.serviceCode){
|
||||
let list = AllTracsactionStatusCode[i]?.list;
|
||||
const allTransactionStatusCode = getAllTransactionStatusCode(t);
|
||||
Loop1:
|
||||
for(let i=0;i<allTransactionStatusCode.length;i++){
|
||||
if(serviceCode === allTransactionStatusCode[i]?.serviceCode){
|
||||
let list = allTransactionStatusCode[i]?.list;
|
||||
if(!!list){
|
||||
Loop2:
|
||||
for(let j=0;j<list.length;j++){
|
||||
if(list[j]?.code === statusCode){
|
||||
str = list[j]?.ko;
|
||||
str = list[j]?.name;
|
||||
break Loop1;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user