Files
nice-app-web/src/entities/settlement/ui/calandar-amount-row.tsx
Jay Sheen 0d43510307 Add comprehensive i18n localization to settlement entity
- Convert settlement constants to i18n-compatible getter functions
- Add 28+ translation keys to settlement namespace
- Localize 11 settlement UI components

Constant conversions:
- getSettlementPeriodTypeBtnGroup(t)
- getSettlementPaymentMethodOptionsGroup(t)

Translation keys added:
- settlement.periodType.* (settlementDate, transactionDate)
- settlement.searchCriteria, searchPeriod
- settlement.settlementCompleted, depositScheduled
- settlement.settlementInfo, transferStatus, transferId, transferTime
- settlement.bankName, accountNumber, depositorName
- settlement.settlementDepositAmount, errorReason
- settlement.transactionDetailInfo
- settlement.cardBankTelecom, approvalAccountPhone
- common.weekdays.* (sun-sat)
- common.currencyUnit

Localized components:
- filter/list-filter.tsx
- calandar-wrap.tsx, calendar-grid.tsx
- calendar-settlement-item.tsx, calandar-amount-row.tsx
- info-wrap/settlement-info-wrap.tsx
- info-wrap/transaction-info-wrap.tsx
- list-summary-extend-settlement.tsx
- list-summary-extend-transaction.tsx

All settlement components now support Korean/English language switching.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 17:36:42 +09:00

52 lines
1.3 KiB
TypeScript

import { NumericFormat } from 'react-number-format';
import { useTranslation } from 'react-i18next';
import { SettlementStatus } from '../model/types';
export interface CalendarAmountRowProps {
amount: number;
settlementStatus: SettlementStatus;
};
export const CalendarAmountRow = ({
amount,
settlementStatus
}: CalendarAmountRowProps) => {
const { t } = useTranslation();
const makeTitle = () => {
let rs = [];
if(settlementStatus === SettlementStatus.SCHEDULED){
rs.push(
<span
key='amount-label-scheduled'
className="scheduled"
>{t('settlement.scheduled')}</span>
);
}
else if(settlementStatus === SettlementStatus.COMPLETED){
rs.push(
<span
key='amount-label-complete'
className="complete"
>{t('settlement.completed')}</span>
);
}
return rs;
};
return (
<>
<div className="amount-row">
<div className="amount-label">{t('settlement.settlementShort')} { makeTitle() } {t('filter.amount')}</div>
<div className="amount-value">
<NumericFormat
value={ amount }
thousandSeparator
displayType="text"
suffix={t('common.currencyUnit')}
></NumericFormat>
</div>
</div>
</>
);
};