mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
disable all inputs during submission in add/remove liquidity (#1062)
This commit is contained in:
parent
24fd4de584
commit
d51d909a66
@ -10,13 +10,15 @@ export default function TokenApproval({
|
|||||||
disabled,
|
disabled,
|
||||||
amount,
|
amount,
|
||||||
tokenAddress,
|
tokenAddress,
|
||||||
tokenSymbol
|
tokenSymbol,
|
||||||
|
setSubmitting
|
||||||
}: {
|
}: {
|
||||||
actionButton: JSX.Element
|
actionButton: JSX.Element
|
||||||
disabled: boolean
|
disabled: boolean
|
||||||
amount: string
|
amount: string
|
||||||
tokenAddress: string
|
tokenAddress: string
|
||||||
tokenSymbol: string
|
tokenSymbol: string
|
||||||
|
setSubmitting?: (isSubmitting: boolean) => void
|
||||||
}): ReactElement {
|
}): ReactElement {
|
||||||
const { asset, isAssetNetwork } = useAsset()
|
const { asset, isAssetNetwork } = useAsset()
|
||||||
const [tokenApproved, setTokenApproved] = useState(false)
|
const [tokenApproved, setTokenApproved] = useState(false)
|
||||||
@ -50,6 +52,7 @@ export default function TokenApproval({
|
|||||||
|
|
||||||
async function approveTokens(amount: string) {
|
async function approveTokens(amount: string) {
|
||||||
setLoading(true)
|
setLoading(true)
|
||||||
|
setSubmitting(true)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const tx = await approve(web3, accountId, tokenAddress, spender, amount)
|
const tx = await approve(web3, accountId, tokenAddress, spender, amount)
|
||||||
@ -62,6 +65,7 @@ export default function TokenApproval({
|
|||||||
} finally {
|
} finally {
|
||||||
await checkTokenApproval()
|
await checkTokenApproval()
|
||||||
setLoading(false)
|
setLoading(false)
|
||||||
|
setSubmitting(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,8 @@ export default function Actions({
|
|||||||
action,
|
action,
|
||||||
isDisabled,
|
isDisabled,
|
||||||
tokenAddress,
|
tokenAddress,
|
||||||
tokenSymbol
|
tokenSymbol,
|
||||||
|
setSubmitting
|
||||||
}: {
|
}: {
|
||||||
isLoading: boolean
|
isLoading: boolean
|
||||||
loaderMessage: string
|
loaderMessage: string
|
||||||
@ -29,6 +30,7 @@ export default function Actions({
|
|||||||
isDisabled?: boolean
|
isDisabled?: boolean
|
||||||
tokenAddress: string
|
tokenAddress: string
|
||||||
tokenSymbol: string
|
tokenSymbol: string
|
||||||
|
setSubmitting?: (isSubmitting: boolean) => void
|
||||||
}): ReactElement {
|
}): ReactElement {
|
||||||
const { networkId } = useWeb3()
|
const { networkId } = useWeb3()
|
||||||
|
|
||||||
@ -55,6 +57,7 @@ export default function Actions({
|
|||||||
tokenAddress={tokenAddress}
|
tokenAddress={tokenAddress}
|
||||||
tokenSymbol={tokenSymbol}
|
tokenSymbol={tokenSymbol}
|
||||||
disabled={isDisabled}
|
disabled={isDisabled}
|
||||||
|
setSubmitting={setSubmitting}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
actionButton
|
actionButton
|
||||||
|
@ -39,8 +39,11 @@ export default function FormAdd({
|
|||||||
const { isAssetNetwork } = useAsset()
|
const { isAssetNetwork } = useAsset()
|
||||||
|
|
||||||
// Connect with form
|
// Connect with form
|
||||||
const { setFieldValue, values }: FormikContextType<FormAddLiquidity> =
|
const {
|
||||||
useFormikContext()
|
setFieldValue,
|
||||||
|
values,
|
||||||
|
isSubmitting
|
||||||
|
}: FormikContextType<FormAddLiquidity> = useFormikContext()
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function calculatePoolShares() {
|
async function calculatePoolShares() {
|
||||||
@ -112,7 +115,7 @@ export default function FormAdd({
|
|||||||
placeholder="0"
|
placeholder="0"
|
||||||
field={field}
|
field={field}
|
||||||
form={form}
|
form={form}
|
||||||
disabled={!isAssetNetwork}
|
disabled={!isAssetNetwork || isSubmitting}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</Field>
|
</Field>
|
||||||
@ -122,7 +125,7 @@ export default function FormAdd({
|
|||||||
className={styles.buttonMax}
|
className={styles.buttonMax}
|
||||||
style="text"
|
style="text"
|
||||||
size="small"
|
size="small"
|
||||||
disabled={!web3}
|
disabled={!web3 || isSubmitting}
|
||||||
onClick={() => setFieldValue('amount', amountMax)}
|
onClick={() => setFieldValue('amount', amountMax)}
|
||||||
>
|
>
|
||||||
Use Max
|
Use Max
|
||||||
|
@ -133,7 +133,7 @@ export default function Add({
|
|||||||
setSubmitting(false)
|
setSubmitting(false)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isSubmitting, submitForm, values, isValid }) => (
|
{({ isSubmitting, setSubmitting, submitForm, values, isValid }) => (
|
||||||
<>
|
<>
|
||||||
<div className={styles.addInput}>
|
<div className={styles.addInput}>
|
||||||
{isWarningAccepted ? (
|
{isWarningAccepted ? (
|
||||||
@ -189,6 +189,7 @@ export default function Add({
|
|||||||
tokenAddress={tokenInAddress}
|
tokenAddress={tokenInAddress}
|
||||||
tokenSymbol={tokenInSymbol}
|
tokenSymbol={tokenInSymbol}
|
||||||
txId={txId}
|
txId={txId}
|
||||||
|
setSubmitting={setSubmitting}
|
||||||
/>
|
/>
|
||||||
{debug && <DebugOutput output={values} />}
|
{debug && <DebugOutput output={values} />}
|
||||||
</>
|
</>
|
||||||
|
@ -160,7 +160,7 @@ export default function Remove({
|
|||||||
type="range"
|
type="range"
|
||||||
min="0"
|
min="0"
|
||||||
max={amountMaxPercent}
|
max={amountMaxPercent}
|
||||||
disabled={!isAssetNetwork}
|
disabled={!isAssetNetwork || isLoading}
|
||||||
value={amountPercent}
|
value={amountPercent}
|
||||||
onChange={handleAmountPercentChange}
|
onChange={handleAmountPercentChange}
|
||||||
/>
|
/>
|
||||||
@ -168,7 +168,7 @@ export default function Remove({
|
|||||||
style="text"
|
style="text"
|
||||||
size="small"
|
size="small"
|
||||||
className={styles.maximum}
|
className={styles.maximum}
|
||||||
disabled={!isAssetNetwork}
|
disabled={!isAssetNetwork || isLoading}
|
||||||
onClick={handleMaxButton}
|
onClick={handleMaxButton}
|
||||||
>
|
>
|
||||||
{`${amountMaxPercent}% max`}
|
{`${amountMaxPercent}% max`}
|
||||||
@ -197,7 +197,7 @@ export default function Remove({
|
|||||||
postfix="%"
|
postfix="%"
|
||||||
sortOptions={false}
|
sortOptions={false}
|
||||||
options={slippagePresets}
|
options={slippagePresets}
|
||||||
disabled={!isAssetNetwork}
|
disabled={!isAssetNetwork || isLoading}
|
||||||
value={slippage}
|
value={slippage}
|
||||||
onChange={handleSlippageChange}
|
onChange={handleSlippageChange}
|
||||||
/>
|
/>
|
||||||
@ -208,7 +208,7 @@ export default function Remove({
|
|||||||
actionName={content.pool.remove.action}
|
actionName={content.pool.remove.action}
|
||||||
action={handleRemoveLiquidity}
|
action={handleRemoveLiquidity}
|
||||||
successMessage="Successfully removed liquidity."
|
successMessage="Successfully removed liquidity."
|
||||||
isDisabled={!isAssetNetwork}
|
isDisabled={!isAssetNetwork || amountOcean === '0'}
|
||||||
txId={txId}
|
txId={txId}
|
||||||
tokenAddress={tokenOutAddress}
|
tokenAddress={tokenOutAddress}
|
||||||
tokenSymbol={tokenOutSymbol}
|
tokenSymbol={tokenOutSymbol}
|
||||||
|
@ -106,7 +106,7 @@ export default function FormTrade({
|
|||||||
setSubmitting(false)
|
setSubmitting(false)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{({ isSubmitting, submitForm, values, isValid }) => (
|
{({ isSubmitting, setSubmitting, submitForm, values, isValid }) => (
|
||||||
<>
|
<>
|
||||||
{isWarningAccepted ? (
|
{isWarningAccepted ? (
|
||||||
<Swap
|
<Swap
|
||||||
@ -156,6 +156,7 @@ export default function FormTrade({
|
|||||||
txId={txId}
|
txId={txId}
|
||||||
tokenAddress={tokenAddress}
|
tokenAddress={tokenAddress}
|
||||||
tokenSymbol={tokenSymbol}
|
tokenSymbol={tokenSymbol}
|
||||||
|
setSubmitting={setSubmitting}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{debug && (
|
{debug && (
|
||||||
|
Loading…
Reference in New Issue
Block a user