import { useSorobanForm, useContractSend } from "@sorokit/contract";
export function TransferForm({ contractId }) {
const { register, handleSubmit, formState } = useSorobanForm({
contractId,
method: "transfer",
});
const { sendAsync, status } = useContractSend({
contractId,
method: "transfer",
});
const onSubmit = async (values) => {
await sendAsync(values);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<label>Recipient</label>
<input {...register("to")} placeholder="G..." />
{formState.errors.to && <span>{String(formState.errors.to.message)}</span>}
<label>Amount (BigInt)</label>
<input
type="text"
{...register("amount", {
setValueAs: (v) => (v === "" ? undefined : BigInt(v)),
})}
/>
{formState.errors.amount && <span>{String(formState.errors.amount.message)}</span>}
<button disabled={status === "SUBMITTING"}>{status === "IDLE" ? "Send" : status}</button>
</form>
);
}