- 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>
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { useTranslation } from 'react-i18next';
|
|
import { ChangeEvent, useState } from "react";
|
|
|
|
export interface AllTransactionCancelSectionPasswordGroupProps {
|
|
cancelPassword: string;
|
|
setCancelPassword: (cancelPassword: string) => void;
|
|
requestSuccess: boolean;
|
|
};
|
|
|
|
export const AllTransactionCancelSectionPasswordGroup = ({
|
|
cancelPassword,
|
|
setCancelPassword,
|
|
requestSuccess
|
|
}: AllTransactionCancelSectionPasswordGroupProps) => {
|
|
const { t } = useTranslation();
|
|
|
|
const [newCancelPassword, setNewCancelPassword] = useState<string>(cancelPassword);
|
|
|
|
const onChangeNewCancelPassword = (value: string) => {
|
|
setCancelPassword(value);
|
|
setNewCancelPassword(value);
|
|
};
|
|
return (
|
|
<>
|
|
<div className="form-group">
|
|
<label className="form-label">{t('transaction.cancel.passwordGroup.cancelPassword')}</label>
|
|
<div className="input-wrapper wid-100 error">
|
|
<input
|
|
className="wid-100 align-right"
|
|
type="password"
|
|
value={ newCancelPassword }
|
|
onChange={ (e: ChangeEvent<HTMLInputElement>) => onChangeNewCancelPassword(e.target.value) }
|
|
/>
|
|
</div>
|
|
</div>
|
|
{ !requestSuccess &&
|
|
<div className="error-msg">{t('transaction.cancel.passwordGroup.passwordMismatch')}</div>
|
|
}
|
|
</>
|
|
);
|
|
} |