Commit b35653ad authored by Noah Zinsmeister's avatar Noah Zinsmeister Committed by GitHub

fix approval bugs (#887)

clear signature on input in remove
parent 57b53013
...@@ -400,7 +400,7 @@ export default function AddLiquidity({ match: { params } }: RouteComponentProps< ...@@ -400,7 +400,7 @@ export default function AddLiquidity({ match: { params } }: RouteComponentProps<
{approvalA !== ApprovalState.APPROVED && ( {approvalA !== ApprovalState.APPROVED && (
<ButtonPrimary <ButtonPrimary
onClick={approveACallback} onClick={approveACallback}
disabled={approvalA === ApprovalState.PENDING || !isValid} disabled={approvalA === ApprovalState.PENDING}
width={approvalB !== ApprovalState.APPROVED ? '48%' : '100%'} width={approvalB !== ApprovalState.APPROVED ? '48%' : '100%'}
> >
{approvalA === ApprovalState.PENDING ? ( {approvalA === ApprovalState.PENDING ? (
...@@ -413,7 +413,7 @@ export default function AddLiquidity({ match: { params } }: RouteComponentProps< ...@@ -413,7 +413,7 @@ export default function AddLiquidity({ match: { params } }: RouteComponentProps<
{approvalB !== ApprovalState.APPROVED && ( {approvalB !== ApprovalState.APPROVED && (
<ButtonPrimary <ButtonPrimary
onClick={approveBCallback} onClick={approveBCallback}
disabled={approvalB === ApprovalState.PENDING || !isValid} disabled={approvalB === ApprovalState.PENDING}
width={approvalA !== ApprovalState.APPROVED ? '48%' : '100%'} width={approvalA !== ApprovalState.APPROVED ? '48%' : '100%'}
> >
{approvalB === ApprovalState.PENDING ? ( {approvalB === ApprovalState.PENDING ? (
......
...@@ -48,7 +48,7 @@ export default function RemoveLiquidity({ match: { params } }: RouteComponentPro ...@@ -48,7 +48,7 @@ export default function RemoveLiquidity({ match: { params } }: RouteComponentPro
// burn state // burn state
const { independentField, typedValue } = useBurnState() const { independentField, typedValue } = useBurnState()
const { tokens, pair, route, parsedAmounts, error } = useDerivedBurnInfo() const { tokens, pair, route, parsedAmounts, error } = useDerivedBurnInfo()
const { onUserInput } = useBurnActionHandlers() const { onUserInput: _onUserInput } = useBurnActionHandlers()
const isValid = !error const isValid = !error
// modal and loading // modal and loading
...@@ -144,6 +144,15 @@ export default function RemoveLiquidity({ match: { params } }: RouteComponentPro ...@@ -144,6 +144,15 @@ export default function RemoveLiquidity({ match: { params } }: RouteComponentPro
}) })
} }
// wrapped onUserInput to clear signatures
const onUserInput = useCallback(
(field: Field, typedValue: string) => {
setSignatureData(null)
return _onUserInput(field, typedValue)
},
[_onUserInput]
)
// tx sending // tx sending
const addTransaction = useTransactionAdder() const addTransaction = useTransactionAdder()
async function onRemove() { async function onRemove() {
...@@ -569,7 +578,7 @@ export default function RemoveLiquidity({ match: { params } }: RouteComponentPro ...@@ -569,7 +578,7 @@ export default function RemoveLiquidity({ match: { params } }: RouteComponentPro
onClick={() => { onClick={() => {
setShowConfirm(true) setShowConfirm(true)
}} }}
disabled={!isValid || signatureData === null} disabled={!isValid || (signatureData === null && approval !== ApprovalState.APPROVED)}
error={!isValid && !!parsedAmounts[Field.TOKEN_A] && !!parsedAmounts[Field.TOKEN_B]} error={!isValid && !!parsedAmounts[Field.TOKEN_A] && !!parsedAmounts[Field.TOKEN_B]}
> >
<Text fontSize={16} fontWeight={500}> <Text fontSize={16} fontWeight={500}>
......
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