diff --git a/components/SetHookDialog.tsx b/components/SetHookDialog.tsx index 17fb5fb..bdaf04c 100644 --- a/components/SetHookDialog.tsx +++ b/components/SetHookDialog.tsx @@ -80,7 +80,7 @@ export const SetHookDialog: React.FC<{ accountAddress: string }> = React.memo( }); const [formInitialized, setFormInitialized] = useState(false); const [estimateLoading, setEstimateLoading] = useState(false); - + const watchedFee = watch("Fee"); // Update value if activeWat changes useEffect(() => { setValue( @@ -89,6 +89,14 @@ export const SetHookDialog: React.FC<{ accountAddress: string }> = React.memo( ); setFormInitialized(true); }, [snap.activeWat, snap.files, setValue]); + useEffect(() => { + if ( + watchedFee && + (watchedFee.includes(".") || watchedFee.includes(",")) + ) { + setValue("Fee", watchedFee.replaceAll(".", "").replaceAll(",", "")); + } + }, [watchedFee, setValue]); // const { // fields: grantFields, // append: grantAppend, @@ -121,7 +129,7 @@ export const SetHookDialog: React.FC<{ accountAddress: string }> = React.memo( } const res = await estimateFee(tx, account); if (res && res.base_fee) { - setValue("Fee", res.base_fee); + setValue("Fee", Math.round(Number(res.base_fee || "")).toString()); } })(); } @@ -256,6 +264,12 @@ export const SetHookDialog: React.FC<{ accountAddress: string }> = React.memo( type="number" {...register("Fee", { required: true })} autoComplete={"off"} + onKeyPress={(e) => { + if (e.key === "." || e.key === ",") { + e.preventDefault(); + } + }} + step="1" defaultValue={10000} css={{ "-moz-appearance": "textfield", @@ -295,7 +309,12 @@ export const SetHookDialog: React.FC<{ accountAddress: string }> = React.memo( const res = await estimateFee(tx, account); if (res && res.base_fee) { - setValue("Fee", res.base_fee); + setValue( + "Fee", + Math.round( + Number(res.base_fee || "") + ).toString() + ); } } } catch (err) {} diff --git a/components/Transaction/ui.tsx b/components/Transaction/ui.tsx index 132cd06..6a8b009 100644 --- a/components/Transaction/ui.tsx +++ b/components/Transaction/ui.tsx @@ -38,22 +38,22 @@ export const TxUI: FC = ({ txFields, } = txState; - const transactionsOptions = transactionsData.map(tx => ({ + const transactionsOptions = transactionsData.map((tx) => ({ value: tx.TransactionType, label: tx.TransactionType, })); - const accountOptions: SelectOption[] = accounts.map(acc => ({ + const accountOptions: SelectOption[] = accounts.map((acc) => ({ label: acc.name, value: acc.address, })); const destAccountOptions: SelectOption[] = accounts - .map(acc => ({ + .map((acc) => ({ label: acc.name, value: acc.address, })) - .filter(acc => acc.value !== selectedAccount?.value); + .filter((acc) => acc.value !== selectedAccount?.value); const [feeLoading, setFeeLoading] = useState(false); @@ -108,7 +108,7 @@ export const TxUI: FC = ({ const specialFields = ["TransactionType", "Account", "Destination"]; const otherFields = Object.keys(txFields).filter( - k => !specialFields.includes(k) + (k) => !specialFields.includes(k) ) as [keyof TxFields]; const switchToJson = () => @@ -194,7 +194,7 @@ export const TxUI: FC = ({ /> )} - {otherFields.map(field => { + {otherFields.map((field) => { let _value = txFields[field]; let value: string | undefined;