Files
nice-app-web/src/entities/transaction/ui/section/all-transaction-cancel-section-password-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

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>
}
</>
);
}