Commit 78e43829 authored by Zach Pomerantz's avatar Zach Pomerantz Committed by GitHub

fix: disable swap while permit loading (#5577)

* fix: disable swap while permit loading

* refactor: UNKNOWN -> INVALID
parent 2c014c6f
...@@ -11,7 +11,8 @@ import { PermitSignature, usePermitAllowance, useUpdatePermitAllowance } from '. ...@@ -11,7 +11,8 @@ import { PermitSignature, usePermitAllowance, useUpdatePermitAllowance } from '.
import { useTokenAllowance, useUpdateTokenAllowance } from './useTokenAllowance' import { useTokenAllowance, useUpdateTokenAllowance } from './useTokenAllowance'
export enum PermitState { export enum PermitState {
UNKNOWN, INVALID,
LOADING,
PERMIT_NEEDED, PERMIT_NEEDED,
PERMITTED, PERMITTED,
} }
...@@ -85,8 +86,10 @@ export default function usePermit(amount?: CurrencyAmount<Token>, spender?: stri ...@@ -85,8 +86,10 @@ export default function usePermit(amount?: CurrencyAmount<Token>, spender?: stri
) )
return useMemo(() => { return useMemo(() => {
if (!amount || !tokenAllowance) { if (!amount) {
return { state: PermitState.UNKNOWN } return { state: PermitState.INVALID }
} else if (!tokenAllowance || !permitAllowance) {
return { state: PermitState.LOADING }
} else if (isAllowed) { } else if (isAllowed) {
if (isPermitted) { if (isPermitted) {
return { state: PermitState.PERMITTED } return { state: PermitState.PERMITTED }
...@@ -95,5 +98,5 @@ export default function usePermit(amount?: CurrencyAmount<Token>, spender?: stri ...@@ -95,5 +98,5 @@ export default function usePermit(amount?: CurrencyAmount<Token>, spender?: stri
} }
} }
return { state: PermitState.PERMIT_NEEDED, callback } return { state: PermitState.PERMIT_NEEDED, callback }
}, [amount, callback, isAllowed, isPermitted, isSigned, signature, tokenAllowance]) }, [amount, callback, isAllowed, isPermitted, isSigned, permitAllowance, signature, tokenAllowance])
} }
...@@ -873,7 +873,7 @@ export default function Swap() { ...@@ -873,7 +873,7 @@ export default function Swap() {
routeIsSyncing || routeIsSyncing ||
routeIsLoading || routeIsLoading ||
priceImpactTooHigh || priceImpactTooHigh ||
Boolean(!permit2Enabled && swapCallbackError) (permit2Enabled ? permit.state === PermitState.LOADING : Boolean(swapCallbackError))
} }
error={isValid && priceImpactSeverity > 2 && (permit2Enabled || !swapCallbackError)} error={isValid && priceImpactSeverity > 2 && (permit2Enabled || !swapCallbackError)}
> >
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment