- 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>
52 lines
1.3 KiB
TypeScript
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>
|
|
</>
|
|
);
|
|
}; |