diff --git a/examples/_deprecated/checkout-widget/basic-react/package.json b/examples/_deprecated/checkout-widget/basic-react/package.json
index 33ab9e2085..4dd133249e 100644
--- a/examples/_deprecated/checkout-widget/basic-react/package.json
+++ b/examples/_deprecated/checkout-widget/basic-react/package.json
@@ -23,7 +23,7 @@
"@typescript-eslint/parser": "^7.11.0",
"@vitejs/plugin-react": "^4.3.0",
"eslint": "^8.57.0",
- "eslint-plugin-react-hooks": "^4.6.2",
+ "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.7",
"typescript": "^5.2.2",
"vite": "^5.2.14",
diff --git a/examples/_deprecated/checkout-widget/passport-integration-react/package.json b/examples/_deprecated/checkout-widget/passport-integration-react/package.json
index 1f2d5455bd..5645d27221 100644
--- a/examples/_deprecated/checkout-widget/passport-integration-react/package.json
+++ b/examples/_deprecated/checkout-widget/passport-integration-react/package.json
@@ -22,7 +22,7 @@
"@vitejs/plugin-react": "^4.3.0",
"eslint": "^8.57.0",
"eslint-plugin-react": "^7.34.1",
- "eslint-plugin-react-hooks": "^4.6.2",
+ "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.7",
"vite": "^5.2.14",
"vite-plugin-node-polyfills": "^0.22.0"
diff --git a/examples/_deprecated/free-mint-with-minting-backend/frontend/package.json b/examples/_deprecated/free-mint-with-minting-backend/frontend/package.json
index 38aa81bec4..3f53dc9dcf 100644
--- a/examples/_deprecated/free-mint-with-minting-backend/frontend/package.json
+++ b/examples/_deprecated/free-mint-with-minting-backend/frontend/package.json
@@ -34,7 +34,7 @@
"@typescript-eslint/parser": "^7.1.1",
"@vitejs/plugin-react": "^4.2.1",
"eslint": "^8.57.0",
- "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.7",
"typescript": "^5.2.2",
"vite": "^5.2.14",
diff --git a/packages/checkout/widgets-lib/.eslintrc.cjs b/packages/checkout/widgets-lib/.eslintrc.cjs
index a47461fa66..ba81e7bbd4 100644
--- a/packages/checkout/widgets-lib/.eslintrc.cjs
+++ b/packages/checkout/widgets-lib/.eslintrc.cjs
@@ -1,5 +1,8 @@
module.exports = {
- "extends": ["../../../.eslintrc"],
+ "extends": [
+ "../../../.eslintrc",
+ "plugin:react-hooks/recommended-legacy"
+ ],
"ignorePatterns": ["jest.config.*", "rollup.config.*"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
diff --git a/packages/checkout/widgets-lib/package.json b/packages/checkout/widgets-lib/package.json
index 4724fdf6bf..648716e75f 100644
--- a/packages/checkout/widgets-lib/package.json
+++ b/packages/checkout/widgets-lib/package.json
@@ -65,6 +65,7 @@
"@types/react-dom": "^18.3.0",
"@types/uuid": "^8.3.4",
"eslint": "^8.40.0",
+ "eslint-plugin-react-hooks": "^5.2.0",
"jest": "^29.4.3",
"jest-environment-jsdom": "^29.4.3",
"react-scripts": "5.0.1",
diff --git a/packages/checkout/widgets-lib/src/components/CoinSelector/CoinSelector.tsx b/packages/checkout/widgets-lib/src/components/CoinSelector/CoinSelector.tsx
index a57fe60540..6ea5e31784 100644
--- a/packages/checkout/widgets-lib/src/components/CoinSelector/CoinSelector.tsx
+++ b/packages/checkout/widgets-lib/src/components/CoinSelector/CoinSelector.tsx
@@ -43,6 +43,7 @@ export function CoinSelector({
return options;
}
return filterOptions(searchValue, options);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [options, searchValue, filterOptions]);
const handleCloseDrawer = () => {
diff --git a/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx b/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx
index ed63e46e43..27529489b6 100644
--- a/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx
+++ b/packages/checkout/widgets-lib/src/components/ConnectLoader/ConnectLoader.tsx
@@ -239,6 +239,7 @@ export function ConnectLoader({
});
}
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [checkout, walletProviderName, browserProvider]);
return (
diff --git a/packages/checkout/widgets-lib/src/components/FormComponents/SelectForm/SelectForm.tsx b/packages/checkout/widgets-lib/src/components/FormComponents/SelectForm/SelectForm.tsx
index d04cb46bda..5ec7ae9987 100644
--- a/packages/checkout/widgets-lib/src/components/FormComponents/SelectForm/SelectForm.tsx
+++ b/packages/checkout/widgets-lib/src/components/FormComponents/SelectForm/SelectForm.tsx
@@ -56,6 +56,7 @@ export function SelectForm({
onSelectChange(option.id);
setCoinSelectorOpen(false);
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
})), [options, onSelectChange, setCoinSelectorOpen]);
const getSelectedOption = () => {
@@ -76,6 +77,7 @@ export function SelectForm({
controlType: 'Select',
action: 'Opened',
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [setCoinSelectorOpen, track]);
return (
diff --git a/packages/checkout/widgets-lib/src/components/NetworkSwitchDrawer/NetworkSwitchDrawer.tsx b/packages/checkout/widgets-lib/src/components/NetworkSwitchDrawer/NetworkSwitchDrawer.tsx
index 696eb7dd0d..c9eceb1535 100644
--- a/packages/checkout/widgets-lib/src/components/NetworkSwitchDrawer/NetworkSwitchDrawer.tsx
+++ b/packages/checkout/widgets-lib/src/components/NetworkSwitchDrawer/NetworkSwitchDrawer.tsx
@@ -91,6 +91,7 @@ export function NetworkSwitchDrawer({
switchNetworkEthImage.src = ethImageUrl;
const switchNetworkzkEVMImage = new Image();
switchNetworkzkEVMImage.src = zkevmImageUrl;
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
diff --git a/packages/checkout/widgets-lib/src/components/RouteFees/RouteFees.tsx b/packages/checkout/widgets-lib/src/components/RouteFees/RouteFees.tsx
index e1368b96c6..8619c6ecbc 100644
--- a/packages/checkout/widgets-lib/src/components/RouteFees/RouteFees.tsx
+++ b/packages/checkout/widgets-lib/src/components/RouteFees/RouteFees.tsx
@@ -37,6 +37,7 @@ export function RouteFees({
},
prefix: '',
})) ?? [],
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[routeData],
);
@@ -54,6 +55,7 @@ export function RouteFees({
},
prefix: '',
})) ?? [],
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[routeData],
);
diff --git a/packages/checkout/widgets-lib/src/components/RouteOptionsDrawer/RouteOptionsDrawer.tsx b/packages/checkout/widgets-lib/src/components/RouteOptionsDrawer/RouteOptionsDrawer.tsx
index 9dca7db538..ea77bdbf8a 100644
--- a/packages/checkout/widgets-lib/src/components/RouteOptionsDrawer/RouteOptionsDrawer.tsx
+++ b/packages/checkout/widgets-lib/src/components/RouteOptionsDrawer/RouteOptionsDrawer.tsx
@@ -78,6 +78,7 @@ export function RouteOptionsDrawer({
routesAvailable: routes?.length ?? 0,
},
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [visible]);
return (
diff --git a/packages/checkout/widgets-lib/src/components/SelectedRouteOption/SelectedRouteOption.tsx b/packages/checkout/widgets-lib/src/components/SelectedRouteOption/SelectedRouteOption.tsx
index fcbfa38593..e17e15ac41 100644
--- a/packages/checkout/widgets-lib/src/components/SelectedRouteOption/SelectedRouteOption.tsx
+++ b/packages/checkout/widgets-lib/src/components/SelectedRouteOption/SelectedRouteOption.tsx
@@ -90,6 +90,7 @@ export function SelectedRouteOption({
onClick?.(event);
return true;
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[onClick, loading, routeData],
);
diff --git a/packages/checkout/widgets-lib/src/components/Status/StatusView.tsx b/packages/checkout/widgets-lib/src/components/Status/StatusView.tsx
index ef034254cd..058859a945 100644
--- a/packages/checkout/widgets-lib/src/components/Status/StatusView.tsx
+++ b/packages/checkout/widgets-lib/src/components/Status/StatusView.tsx
@@ -40,6 +40,7 @@ export function StatusView({
firstRender.current = false;
onRenderEvent();
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [firstRender.current, onRenderEvent]);
const onStatusActionClick = () => {
diff --git a/packages/checkout/widgets-lib/src/components/TokenImage/TokenImage.tsx b/packages/checkout/widgets-lib/src/components/TokenImage/TokenImage.tsx
index a3a472d6d0..7d002fa067 100644
--- a/packages/checkout/widgets-lib/src/components/TokenImage/TokenImage.tsx
+++ b/packages/checkout/widgets-lib/src/components/TokenImage/TokenImage.tsx
@@ -29,6 +29,7 @@ export function TokenImage({
|| (theme && getDefaultTokenImage(environment, theme))
|| ''
: src),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[src, error],
);
diff --git a/packages/checkout/widgets-lib/src/components/Transactions/ChangeWallet.tsx b/packages/checkout/widgets-lib/src/components/Transactions/ChangeWallet.tsx
index fd6e23ff0d..853cbbba0d 100644
--- a/packages/checkout/widgets-lib/src/components/Transactions/ChangeWallet.tsx
+++ b/packages/checkout/widgets-lib/src/components/Transactions/ChangeWallet.tsx
@@ -54,6 +54,7 @@ export function ChangeWallet({ onChangeWalletClick }: ChangeWalletProps) {
})();
}
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [isWalletConnectEnabled, from]);
return (
diff --git a/packages/checkout/widgets-lib/src/components/Transactions/ClaimWithdrawalInProgress.tsx b/packages/checkout/widgets-lib/src/components/Transactions/ClaimWithdrawalInProgress.tsx
index d7ac21e3df..3f80380172 100644
--- a/packages/checkout/widgets-lib/src/components/Transactions/ClaimWithdrawalInProgress.tsx
+++ b/packages/checkout/widgets-lib/src/components/Transactions/ClaimWithdrawalInProgress.tsx
@@ -21,6 +21,7 @@ export function ClaimWithdrawalInProgress({ transactionResponse }: ClaimWithdraw
userJourney: UserJourney.BRIDGE,
screen: 'ClaimWithdrawalInProgress',
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
useEffect(() => {
@@ -68,6 +69,7 @@ export function ClaimWithdrawalInProgress({ transactionResponse }: ClaimWithdraw
});
}
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [transactionResponse]);
return ;
diff --git a/packages/checkout/widgets-lib/src/components/Transactions/NoTransactions.tsx b/packages/checkout/widgets-lib/src/components/Transactions/NoTransactions.tsx
index 2cdd865a06..fbf85f9984 100644
--- a/packages/checkout/widgets-lib/src/components/Transactions/NoTransactions.tsx
+++ b/packages/checkout/widgets-lib/src/components/Transactions/NoTransactions.tsx
@@ -38,6 +38,7 @@ export function NoTransactions(
userJourney: UserJourney.BRIDGE,
screen: 'NoTransactions',
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
diff --git a/packages/checkout/widgets-lib/src/components/Transactions/TransactionItemWithdrawPending.tsx b/packages/checkout/widgets-lib/src/components/Transactions/TransactionItemWithdrawPending.tsx
index 7139d9d6fb..db987778e3 100644
--- a/packages/checkout/widgets-lib/src/components/Transactions/TransactionItemWithdrawPending.tsx
+++ b/packages/checkout/widgets-lib/src/components/Transactions/TransactionItemWithdrawPending.tsx
@@ -68,6 +68,7 @@ export function TransactionItemWithdrawPending({
}
const timeDiffDays = timeDiffHours / 24; // days
return relativeTimeFormat.format(Math.ceil(timeDiffDays), 'day');
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [dateNowUnixMs, translation[1].language]);
const withdrawalReadyToClaim = withdrawalReadyDate ? withdrawalReadyDate.getTime() < dateNowUnixMs : false;
@@ -75,6 +76,7 @@ export function TransactionItemWithdrawPending({
() => (withdrawalReadyToClaim === true
? translation.t('views.TRANSACTIONS.status.withdrawalPending.withdrawalReadyText')
: `${translation.t('views.TRANSACTIONS.status.withdrawalPending.withdrawalDelayText')} ${delayTimeString}`),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[delayTimeString, translation[1].language],
);
diff --git a/packages/checkout/widgets-lib/src/components/Transactions/Transactions.tsx b/packages/checkout/widgets-lib/src/components/Transactions/Transactions.tsx
index 16422a0abc..c3519a1d13 100644
--- a/packages/checkout/widgets-lib/src/components/Transactions/Transactions.tsx
+++ b/packages/checkout/widgets-lib/src/components/Transactions/Transactions.tsx
@@ -284,6 +284,7 @@ export function Transactions({
setShowWalletDrawer(false);
}
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[checkout],
);
@@ -330,6 +331,7 @@ export function Transactions({
tokens: await getTokensDetails(tokensWithChainSlug),
transactions: localTxs.result,
};
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [from, getTransactionsDetails]);
const { providers } = useInjectedProviders({ checkout });
@@ -360,6 +362,7 @@ export function Transactions({
setLoading(false);
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [from, checkout]);
useEffect(() => {
@@ -367,6 +370,7 @@ export function Transactions({
userJourney: UserJourney.BRIDGE,
screen: 'Transactions',
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
diff --git a/packages/checkout/widgets-lib/src/components/Transak/useTransakEvents.ts b/packages/checkout/widgets-lib/src/components/Transak/useTransakEvents.ts
index c97044dc52..ea89832042 100644
--- a/packages/checkout/widgets-lib/src/components/Transak/useTransakEvents.ts
+++ b/packages/checkout/widgets-lib/src/components/Transak/useTransakEvents.ts
@@ -114,6 +114,7 @@ export const useTransakEvents = (props: UseTransakEventsProps) => {
},
});
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const handleEvents = useCallback((event: TransakEvent) => {
@@ -141,6 +142,7 @@ export const useTransakEvents = (props: UseTransakEventsProps) => {
default:
break;
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const handleMessageEvent = useCallback(
@@ -156,6 +158,7 @@ export const useTransakEvents = (props: UseTransakEventsProps) => {
console.log('@@@ Transak event', event); // eslint-disable-line no-console
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[ref],
);
@@ -165,6 +168,7 @@ export const useTransakEvents = (props: UseTransakEventsProps) => {
clearTimeout(timeout.current);
window.removeEventListener('message', handleMessageEvent);
};
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return {
diff --git a/packages/checkout/widgets-lib/src/components/Transak/useTransakIframe.ts b/packages/checkout/widgets-lib/src/components/Transak/useTransakIframe.ts
index 84a43c0421..1e5f1773bf 100644
--- a/packages/checkout/widgets-lib/src/components/Transak/useTransakIframe.ts
+++ b/packages/checkout/widgets-lib/src/components/Transak/useTransakIframe.ts
@@ -131,6 +131,7 @@ export const useTransakIframe = (props: UseTransakIframeProps) => {
const checkoutUrl = await getNFTCheckoutURL();
setIframeSrc(checkoutUrl);
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return { iframeSrc };
diff --git a/packages/checkout/widgets-lib/src/components/WalletDrawer/PayWithWalletDrawer.tsx b/packages/checkout/widgets-lib/src/components/WalletDrawer/PayWithWalletDrawer.tsx
index 56786954ff..ffc8cf2c41 100644
--- a/packages/checkout/widgets-lib/src/components/WalletDrawer/PayWithWalletDrawer.tsx
+++ b/packages/checkout/widgets-lib/src/components/WalletDrawer/PayWithWalletDrawer.tsx
@@ -62,6 +62,7 @@ export function PayWithWalletDrawer({
{t('drawers.wallet.payWithCard')}
);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [onClose, onPayWithCard]);
return (
diff --git a/packages/checkout/widgets-lib/src/context/analytics-provider/SetupAnalytics.tsx b/packages/checkout/widgets-lib/src/context/analytics-provider/SetupAnalytics.tsx
index 09e74e56e2..c1eea484da 100644
--- a/packages/checkout/widgets-lib/src/context/analytics-provider/SetupAnalytics.tsx
+++ b/packages/checkout/widgets-lib/src/context/analytics-provider/SetupAnalytics.tsx
@@ -28,6 +28,7 @@ export function SetupAnalytics(
if (!config) return;
updateWriteKey(config.segmentPublishableKey);
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [telemetry]);
// eslint-disable-next-line react/jsx-no-useless-fragment
diff --git a/packages/checkout/widgets-lib/src/context/crypto-fiat-context/CryptoFiatProvider.tsx b/packages/checkout/widgets-lib/src/context/crypto-fiat-context/CryptoFiatProvider.tsx
index ee9dfeb97e..16ff1e251e 100644
--- a/packages/checkout/widgets-lib/src/context/crypto-fiat-context/CryptoFiatProvider.tsx
+++ b/packages/checkout/widgets-lib/src/context/crypto-fiat-context/CryptoFiatProvider.tsx
@@ -35,6 +35,7 @@ export function CryptoFiatProvider({ environment, children }: CryptoFiatProvider
})),
},
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
useEffect(() => {
diff --git a/packages/checkout/widgets-lib/src/context/crypto-fiat-context/test-components/CryptoFiatTestComponent.tsx b/packages/checkout/widgets-lib/src/context/crypto-fiat-context/test-components/CryptoFiatTestComponent.tsx
index 6f8f5920c5..e9ea3d5446 100644
--- a/packages/checkout/widgets-lib/src/context/crypto-fiat-context/test-components/CryptoFiatTestComponent.tsx
+++ b/packages/checkout/widgets-lib/src/context/crypto-fiat-context/test-components/CryptoFiatTestComponent.tsx
@@ -17,6 +17,7 @@ export function CryptoFiatTestComponent({ tokenSymbols }: CryptoFiatTestComponen
},
});
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [cryptoFiatDispatch]);
return (
diff --git a/packages/checkout/widgets-lib/src/context/handover-context/HandoverProvider.tsx b/packages/checkout/widgets-lib/src/context/handover-context/HandoverProvider.tsx
index 42df3f4202..7121e32f52 100644
--- a/packages/checkout/widgets-lib/src/context/handover-context/HandoverProvider.tsx
+++ b/packages/checkout/widgets-lib/src/context/handover-context/HandoverProvider.tsx
@@ -104,6 +104,7 @@ export function HandoverProvider({ children }: HandoverProviderProps) {
[handoverQueue, handoverBusy, handovers, closeHandover],
);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
const addHandover = (
handoverContent: HandoverContent,
handoverId: HandoverTarget = HandoverTarget.GLOBAL,
diff --git a/packages/checkout/widgets-lib/src/context/providers-context/ProvidersContext.tsx b/packages/checkout/widgets-lib/src/context/providers-context/ProvidersContext.tsx
index 332ec001d1..22e98c5c18 100644
--- a/packages/checkout/widgets-lib/src/context/providers-context/ProvidersContext.tsx
+++ b/packages/checkout/widgets-lib/src/context/providers-context/ProvidersContext.tsx
@@ -194,6 +194,7 @@ export function ProvidersContextProvider({
/** TODO: handle error */
}
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [toProvider, providersState.lockedToProvider]);
return (
diff --git a/packages/checkout/widgets-lib/src/hooks/useMount.ts b/packages/checkout/widgets-lib/src/hooks/useMount.ts
index 496909ab36..b9c3494c84 100644
--- a/packages/checkout/widgets-lib/src/hooks/useMount.ts
+++ b/packages/checkout/widgets-lib/src/hooks/useMount.ts
@@ -29,5 +29,6 @@ export const useMount = (
fn();
isMounted.current = true;
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, deps || []);
};
diff --git a/packages/checkout/widgets-lib/src/lib/hooks/useAsyncMemo.ts b/packages/checkout/widgets-lib/src/lib/hooks/useAsyncMemo.ts
index 2bae383ba8..91240e2ea9 100644
--- a/packages/checkout/widgets-lib/src/lib/hooks/useAsyncMemo.ts
+++ b/packages/checkout/widgets-lib/src/lib/hooks/useAsyncMemo.ts
@@ -20,6 +20,7 @@ export const useAsyncMemo = (
return () => {
isMounted = false;
};
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, dependencies);
return value as T;
diff --git a/packages/checkout/widgets-lib/src/lib/hooks/useBalance.ts b/packages/checkout/widgets-lib/src/lib/hooks/useBalance.ts
index 614fff51eb..27a70c3018 100644
--- a/packages/checkout/widgets-lib/src/lib/hooks/useBalance.ts
+++ b/packages/checkout/widgets-lib/src/lib/hooks/useBalance.ts
@@ -56,6 +56,7 @@ export const useBalance = ({
setBalancesLoading(false);
}
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [checkout, provider]);
useInterval(() => refreshBalances(true), REFRESH_BALANCE_INTERVAL_MS);
diff --git a/packages/checkout/widgets-lib/src/lib/hooks/useInjectedProviders.ts b/packages/checkout/widgets-lib/src/lib/hooks/useInjectedProviders.ts
index 6ede1e9f99..7c3c9febf4 100644
--- a/packages/checkout/widgets-lib/src/lib/hooks/useInjectedProviders.ts
+++ b/packages/checkout/widgets-lib/src/lib/hooks/useInjectedProviders.ts
@@ -102,6 +102,7 @@ export const useInjectedProviders = ({ checkout }: UseInjectedProvidersParams) =
filterAndProcessProviders(injectedProviders);
return () => cancelSubscription();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [checkout]);
return {
diff --git a/packages/checkout/widgets-lib/src/lib/hooks/useQuoteOrder.ts b/packages/checkout/widgets-lib/src/lib/hooks/useQuoteOrder.ts
index 48d3793d22..2927ed8b81 100644
--- a/packages/checkout/widgets-lib/src/lib/hooks/useQuoteOrder.ts
+++ b/packages/checkout/widgets-lib/src/lib/hooks/useQuoteOrder.ts
@@ -143,6 +143,7 @@ export const useQuoteOrder = ({
fetching.current = false;
}
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[environment, environmentId, preferredCurrency, fetching],
);
diff --git a/packages/checkout/widgets-lib/src/lib/hooks/useSignOrder.ts b/packages/checkout/widgets-lib/src/lib/hooks/useSignOrder.ts
index 32e695dc95..cbc0846479 100644
--- a/packages/checkout/widgets-lib/src/lib/hooks/useSignOrder.ts
+++ b/packages/checkout/widgets-lib/src/lib/hooks/useSignOrder.ts
@@ -290,6 +290,7 @@ export const useSignOrder = (input: SignOrderInput) => {
}
return undefined;
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[items, environmentId, environment, provider],
);
@@ -393,6 +394,7 @@ export const useSignOrder = (input: SignOrderInput) => {
}
return undefined;
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[items, environmentId, environment, provider, getPostHooks],
);
@@ -473,6 +475,7 @@ export const useSignOrder = (input: SignOrderInput) => {
return executeResponse.transactions;
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[
provider,
executeTransaction,
@@ -517,6 +520,7 @@ export const useSignOrder = (input: SignOrderInput) => {
return success;
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[currentTransactionIndex, provider, filteredTransactions],
);
diff --git a/packages/checkout/widgets-lib/src/lib/hooks/useWalletConnect.ts b/packages/checkout/widgets-lib/src/lib/hooks/useWalletConnect.ts
index 89391098b6..1b95d07e1f 100644
--- a/packages/checkout/widgets-lib/src/lib/hooks/useWalletConnect.ts
+++ b/packages/checkout/widgets-lib/src/lib/hooks/useWalletConnect.ts
@@ -145,6 +145,7 @@ export const useWalletConnect = () => {
openModal(ethereumProvider, resolve, reject);
}
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [ethereumProvider, walletConnectModal, isWalletConnectEnabled]);
const getWalletLogoUrl = useCallback(async () => await WalletConnectManager.getInstance().getWalletLogoUrl(), []);
diff --git a/packages/checkout/widgets-lib/src/lib/squid/hooks/useRouteCalculation.ts b/packages/checkout/widgets-lib/src/lib/squid/hooks/useRouteCalculation.ts
index ab5def2d65..bdbf5761b3 100644
--- a/packages/checkout/widgets-lib/src/lib/squid/hooks/useRouteCalculation.ts
+++ b/packages/checkout/widgets-lib/src/lib/squid/hooks/useRouteCalculation.ts
@@ -56,5 +56,6 @@ export const useRouteCalculation = () => {
calculateFromAmount,
calculateFromAmountFromRoute,
convertToFormattedFromAmount,
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}), []);
};
diff --git a/packages/checkout/widgets-lib/src/lib/squid/hooks/useSlippage.ts b/packages/checkout/widgets-lib/src/lib/squid/hooks/useSlippage.ts
index 5bf8296043..536913e8db 100644
--- a/packages/checkout/widgets-lib/src/lib/squid/hooks/useSlippage.ts
+++ b/packages/checkout/widgets-lib/src/lib/squid/hooks/useSlippage.ts
@@ -41,5 +41,6 @@ export const useSlippage = () => {
return useMemo(() => ({
getSlippageTier,
calculateAdjustedAmount,
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}), []);
};
diff --git a/packages/checkout/widgets-lib/src/lib/squid/hooks/useSquid.ts b/packages/checkout/widgets-lib/src/lib/squid/hooks/useSquid.ts
index 009965ff52..2d95a2a98a 100644
--- a/packages/checkout/widgets-lib/src/lib/squid/hooks/useSquid.ts
+++ b/packages/checkout/widgets-lib/src/lib/squid/hooks/useSquid.ts
@@ -39,6 +39,7 @@ export const useSquid = (checkout: Checkout) => {
};
initialiseSquid();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [squidConfig]);
return squid;
diff --git a/packages/checkout/widgets-lib/src/lib/squid/hooks/useTokens.ts b/packages/checkout/widgets-lib/src/lib/squid/hooks/useTokens.ts
index 196338514f..939665fc14 100644
--- a/packages/checkout/widgets-lib/src/lib/squid/hooks/useTokens.ts
+++ b/packages/checkout/widgets-lib/src/lib/squid/hooks/useTokens.ts
@@ -36,6 +36,7 @@ export const useTokens = (checkout: Checkout) => {
}
};
getTokens();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [squidConfig]);
return tokens;
diff --git a/packages/checkout/widgets-lib/src/views/top-up/TopUpView.tsx b/packages/checkout/widgets-lib/src/views/top-up/TopUpView.tsx
index d2ba1d72c2..5d390f39a9 100644
--- a/packages/checkout/widgets-lib/src/views/top-up/TopUpView.tsx
+++ b/packages/checkout/widgets-lib/src/views/top-up/TopUpView.tsx
@@ -150,6 +150,7 @@ export function TopUpView({
);
setBridgeFeesInFiat(est);
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [checkout !== undefined]);
// Onramp fees estimation
@@ -160,6 +161,7 @@ export function TopUpView({
const onRampFees = getOnRampFeeEstimation(onRampFeesEstimate);
setOnRampFeesPercentage(onRampFees);
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [checkout !== undefined]);
const localTrack = (
@@ -348,6 +350,7 @@ export function TopUpView({
isEnabled: showBridgeOption,
},
],
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[showBridgeOption, showOnrampOption, showSwapOption],
);
diff --git a/packages/checkout/widgets-lib/src/widgets/add-tokens/AddTokensWidget.tsx b/packages/checkout/widgets-lib/src/widgets/add-tokens/AddTokensWidget.tsx
index 9d70e77abc..bec05f73cc 100644
--- a/packages/checkout/widgets-lib/src/widgets/add-tokens/AddTokensWidget.tsx
+++ b/packages/checkout/widgets-lib/src/widgets/add-tokens/AddTokensWidget.tsx
@@ -72,7 +72,7 @@ export default function AddTokensWidget({
viewState,
viewDispatch,
}),
- [viewState, viewReducer],
+ [viewState, viewDispatch],
);
const [addTokensState, addTokensDispatch] = useReducer(
@@ -114,6 +114,7 @@ export default function AddTokensWidget({
},
});
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const toTokenAddress = useMemo(() => {
@@ -132,6 +133,7 @@ export default function AddTokensWidget({
if (config.environment !== Environment.PRODUCTION) {
showErrorHandover(AddTokensErrorTypes.ENVIRONMENT_ERROR, { contextId: id });
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [config, id]);
useEffect(() => {
@@ -153,6 +155,7 @@ export default function AddTokensWidget({
if (isInvalidToTokenAddress || isInvalidToAmount) {
showErrorHandover(AddTokensErrorTypes.INVALID_PARAMETERS, { contextId: id });
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [toTokenAddress, toAmount, id]);
useEffect(() => {
diff --git a/packages/checkout/widgets-lib/src/widgets/add-tokens/components/OnboardingDrawer.tsx b/packages/checkout/widgets-lib/src/widgets/add-tokens/components/OnboardingDrawer.tsx
index 884a3f4c02..299937a778 100644
--- a/packages/checkout/widgets-lib/src/widgets/add-tokens/components/OnboardingDrawer.tsx
+++ b/packages/checkout/widgets-lib/src/widgets/add-tokens/components/OnboardingDrawer.tsx
@@ -63,6 +63,7 @@ export function OnboardingDrawer({ environment }: OnboardingDrawerProps) {
const src = useMemo(
() => getRemoteImage(environment, HERO_IMAGES[screenIndex - 1]),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[screenIndex],
);
diff --git a/packages/checkout/widgets-lib/src/widgets/add-tokens/components/TokenDrawerMenu.tsx b/packages/checkout/widgets-lib/src/widgets/add-tokens/components/TokenDrawerMenu.tsx
index d95b076ef1..3ff51b826a 100644
--- a/packages/checkout/widgets-lib/src/widgets/add-tokens/components/TokenDrawerMenu.tsx
+++ b/packages/checkout/widgets-lib/src/widgets/add-tokens/components/TokenDrawerMenu.tsx
@@ -92,6 +92,7 @@ export function TokenDrawerMenu({
setVisible(false);
setSearchValue('');
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[addTokensState.id],
);
@@ -105,6 +106,7 @@ export function TokenDrawerMenu({
if (!searchValue) return true;
return token.symbol.toLowerCase().startsWith(searchValue.toLowerCase());
}),
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[
addTokensState.allowedTokens,
addTokensState.tokens,
@@ -192,6 +194,7 @@ export function TokenDrawerMenu({
showErrorHandover(AddTokensErrorTypes.SERVICE_BREAKDOWN, { contextId: addTokensState.id, error });
}
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [addTokensState.tokens, checkout, toTokenAddress]);
return (
diff --git a/packages/checkout/widgets-lib/src/widgets/add-tokens/hooks/useHandoverConfig.tsx b/packages/checkout/widgets-lib/src/widgets/add-tokens/hooks/useHandoverConfig.tsx
index 82380342d7..bc295510af 100644
--- a/packages/checkout/widgets-lib/src/widgets/add-tokens/hooks/useHandoverConfig.tsx
+++ b/packages/checkout/widgets-lib/src/widgets/add-tokens/hooks/useHandoverConfig.tsx
@@ -257,6 +257,7 @@ export const useHandoverConfig = (environment: Environment) => {
),
});
},
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[environment, handoverConfigs],
);
diff --git a/packages/checkout/widgets-lib/src/widgets/add-tokens/views/AddTokens.tsx b/packages/checkout/widgets-lib/src/widgets/add-tokens/views/AddTokens.tsx
index 3a712e3629..e5cd182528 100644
--- a/packages/checkout/widgets-lib/src/widgets/add-tokens/views/AddTokens.tsx
+++ b/packages/checkout/widgets-lib/src/widgets/add-tokens/views/AddTokens.tsx
@@ -288,6 +288,7 @@ export function AddTokens({
await identifyUser(identify, toProvider!, { anonymousId });
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [toProvider, lockedToProvider]);
const toChain = useMemo(
@@ -310,6 +311,7 @@ export function AddTokens({
}).then((ctx) => {
trackFlow('commerce', `addTokensLoaded_${ctx.event.messageId}`);
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [id, isSwapAvailable]);
useEffect(() => {
@@ -321,6 +323,7 @@ export function AddTokens({
resetRoutes();
setInsufficientBalance(false);
setSelectedRouteData(undefined);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [fromAddress]);
useEffect(() => {
@@ -395,12 +398,14 @@ export function AddTokens({
setFetchingRoutes(false);
}
})();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [balances, squid, selectedToken, selectedAmount]);
useEffect(() => {
if (!selectedRouteData && routes.length > 0) {
setSelectedRouteData(routes[0]);
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [routes]);
useEffect(() => {
@@ -421,6 +426,7 @@ export function AddTokens({
}
};
fetchOnRampTokens();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [checkout, id]);
const sendRequestOnRampEvent = async () => {
@@ -478,6 +484,7 @@ export function AddTokens({
if (toProvider && payWithCardClicked) {
sendRequestOnRampEvent();
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [toProvider, payWithCardClicked]);
const handleRouteClick = (route: RouteData) => {
@@ -634,6 +641,7 @@ export function AddTokens({
preselectedToken: experiments[AddTokensExperiments.PRESELECTED_TOKEN] || 'none',
},
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [id, experiments]);
useEffect(() => {
diff --git a/packages/checkout/widgets-lib/src/widgets/add-tokens/views/Review.tsx b/packages/checkout/widgets-lib/src/widgets/add-tokens/views/Review.tsx
index 950485b006..d75b738a1b 100644
--- a/packages/checkout/widgets-lib/src/widgets/add-tokens/views/Review.tsx
+++ b/packages/checkout/widgets-lib/src/widgets/add-tokens/views/Review.tsx
@@ -136,6 +136,7 @@ export function Review({
toTokenAddress: data.toTokenAddress,
},
});
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [id]);
const getFromAmountAndRoute = async () => {
@@ -188,6 +189,7 @@ export function Review({
const getRouteIntervalIdRef = useInterval(getFromAmountAndRoute, 20000);
useEffect(() => {
getFromAmountAndRoute();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const { totalFees, totalFeesUsd } = useMemo(
@@ -250,6 +252,7 @@ export function Review({
{t('views.ADD_TOKENS.fees.zeroFees')}