import { ConfirmButtonTransitionState } from "@dashboard/components/ConfirmButton"; import React from "react"; interface ManualRefundHookProps { submitState: ConfirmButtonTransitionState; initialData?: { amount?: number; description?: string; pspReference?: string; }; } export type ManualRefundData = ReturnType; export const useManualRefund = ({ submitState, initialData, }: ManualRefundHookProps) => { const [amount, setAmount] = React.useState( initialData?.amount, ); const [description, setDescription] = React.useState( initialData?.description ?? "", ); const [pspReference, setPspReference] = React.useState( initialData?.pspReference, ); React.useEffect(() => { if (submitState === "success") { // reset state after submit setAmount(undefined); setDescription(""); setPspReference(undefined); } }, [submitState]); const handleChangeDescription: React.ChangeEventHandler< HTMLInputElement > = e => { setDescription(e.target.value); }; const handleChangeAmount: React.ChangeEventHandler = e => { const value = parseFloat(e.target.value); if (!Number.isNaN(value)) { setAmount(value); } else { setAmount(undefined); } }; const handleChangePspReference: React.ChangeEventHandler< HTMLInputElement > = e => { setPspReference(e.target.value); }; return { amount, description, pspReference, handleChangeDescription, handleChangeAmount, handleChangePspReference, }; };