import { AccountPicker } from './AccountPicker'; import { t as tr } from './i18n'; import { useState, type FormEvent } from 'react'; import { nowMinute, money, requestUuid, type Position } from './api'; export function TransferForm({ accounts, busy, submit, initialSourceId, }: { accounts: Position[]; busy: boolean; submit: (data: unknown) => void; initialSourceId?: string; }) { const [requestId] = useState(() => requestUuid()); const [sourceId, setSource] = useState(initialSourceId || accounts[0]?.id || ''), [targetId, setTarget] = useState( accounts.find((p) => p.id !== (initialSourceId || accounts[0]?.id))?.id || '', ), [amount, setAmount] = useState(''); const source = accounts.find((p) => p.id === sourceId), target = accounts.find((p) => p.id === targetId); const same = source?.currency === target?.currency; function save(e: FormEvent) { e.preventDefault(); submit(Object.fromEntries(new FormData(e.currentTarget))); } if (accounts.length < 2) return

{tr('请先创建至少两个启用中的账户。隐藏账户需验证密码后才能选择。')}

; return (

{tr('转账会同时更新双方余额。余额不足时允许透支;手续费为负数时抵扣转出金额。')}

{!same && (

{tr('跨币种请填写银行实际到账金额;本次转账不修改公共参考汇率。')}

)}