Files
nice-app-web/src/entities/transaction/ui/section/all-transaction-cancel-section-bank-group.tsx
Jay Sheen e067fc8d4f Add comprehensive i18n localization to transaction UI components
- Localize 23 transaction UI component files
- Add 150+ translation keys to ko.json and en.json
- Organized translations under transaction namespace:
  * transaction.bottomSheet - Bottom sheet modals
  * transaction.sections - Section titles
  * transaction.fields - Field labels (90+ keys)
  * transaction.cancel - Cancellation flows
  * transaction.handWrittenIssuance - Manual issuance forms
  * transaction.list - List actions

Updated files:
- Bottom sheets: escrow-mail-resend, cash-receipt-purpose-update
- Sections: billing-info, part-cancel-info, detail-info, issue-info,
  escrow-info, important-info, payment-info, transaction-info,
  settlement-info, merchant-info, amount-info, cancel-bank-group,
  cancel-password-group
- Lists: list-item, billing-list, cash-receipt-list
- Cancel flows: all-cancel, part-cancel, prevent-bond
- Issuance: hand-written-issuance-step1, hand-written-issuance-step2

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 16:14:40 +09:00

87 lines
2.9 KiB
TypeScript

import { useTranslation } from 'react-i18next';
import { useStore } from "@/shared/model/store";
import { ChangeEvent, useState } from "react";
export interface AllTransactionCancelSectionBankGroupProps {
bankCode?: string;
setBankCode?: (BankCode: string) => void;
accountNo?: string;
setAccountNo?: (accountNo: string) => void;
accountHolder?: string;
setAccountHolder?: (accountHolder: string) => void;
};
export const AllTransactionCancelSectionBankGroup = ({
bankCode,
setBankCode,
accountNo,
setAccountNo,
accountHolder,
setAccountHolder
}: AllTransactionCancelSectionBankGroupProps ) => {
const { t } = useTranslation();
let bankList = useStore.getState().CommonStore.virtualBankList;
bankList = bankList.filter((value, index) => value.code1 !== '****');
const [newBankCode, setNewBankCode] = useState<string | undefined>(bankCode);
const [newAccountNo, setNewAccountNo] = useState<string | undefined>(accountNo);
const [newAccountHolder, setNewAccountHolder] = useState<string | undefined>(accountHolder);
const onChangeNewBankCode = (value: string) => {
setNewBankCode(value);
};
const onChangeNewAccountNo = (value: string) => {
setNewAccountNo(value);
};
const onChangeNewAccountHolder = (value: string) => {
setNewAccountHolder(value);
};
return (
<>
<div className="form-group">
<label className="form-label">{t('transaction.fields.bank')}</label>
<div className="input-wrapper wid-100">
<select
className="wid-100 align-right"
value={ bankCode }
onChange={ (e: ChangeEvent<HTMLSelectElement>) => onChangeNewBankCode(e.target.value) }
>
<option value="">{t('transaction.cancel.bankGroup.select')}</option>
{ bankList.map((value, index) => (
<option value={ value.code1 }>{ value.desc1 }</option>
))
}
</select>
</div>
</div>
<div className="form-group">
<label className="form-label">{t('transaction.fields.accountNo')}</label>
<div className="input-wrapper wid-100">
<input
className="form-input wid-100"
type="text"
value={ newAccountNo }
onChange={ (e: ChangeEvent<HTMLInputElement>) => onChangeNewAccountNo(e.target.value) }
/>
</div>
</div>
<div className="form-group">
<label className="form-label">{t('transaction.fields.accountHolder')}</label>
<div className="input-wrapper wid-100">
<input
className="form-input wid-100"
type="text"
value={ newAccountHolder }
onChange={ (e: ChangeEvent<HTMLInputElement>) => onChangeNewAccountHolder(e.target.value) }
/>
</div>
</div>
<div className="notice-text wid-100">
<p>{t('transaction.cancel.bankGroup.notice')}</p>
</div>
</>
);
}