- 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>
87 lines
2.9 KiB
TypeScript
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>
|
|
</>
|
|
);
|
|
} |