From 34d989a5d2c2e422c4dcee44fad8726a7a20fdb3 Mon Sep 17 00:00:00 2001 From: Amitabh Aggarwal Date: Tue, 14 Jan 2025 18:44:53 -0600 Subject: [PATCH] feat: enhance staking button functionality with chain support check This update introduces a check for staking support based on the current chain before proceeding with staking actions. It integrates the `useStakingChain` hook to determine if the active chain supports staking, and sets the active network to 'mainnet' if it does not. --- .../UI/Stake/components/StakeButton/index.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/components/UI/Stake/components/StakeButton/index.tsx b/app/components/UI/Stake/components/StakeButton/index.tsx index 9b13d2fe4bf..9e18af410f0 100644 --- a/app/components/UI/Stake/components/StakeButton/index.tsx +++ b/app/components/UI/Stake/components/StakeButton/index.tsx @@ -25,6 +25,8 @@ import { RootState } from '../../../../../reducers'; import useStakingEligibility from '../../hooks/useStakingEligibility'; import { StakeSDKProvider } from '../../sdk/stakeSdkProvider'; import { EVENT_LOCATIONS } from '../../constants/events'; +import useStakingChain from '../../hooks/useStakingChain'; +import Engine from '../../../../../core/Engine'; interface StakeButtonProps { asset: TokenI; @@ -37,11 +39,14 @@ const StakeButtonContent = ({ asset }: StakeButtonProps) => { const browserTabs = useSelector((state: RootState) => state.browser.tabs); const chainId = useSelector(selectChainId); - - const { refreshPooledStakingEligibility } = useStakingEligibility(); + const { isEligible } = useStakingEligibility(); + const { isStakingSupportedChain } = useStakingChain(); const onStakeButtonPress = async () => { - const { isEligible } = await refreshPooledStakingEligibility(); + if (!isStakingSupportedChain) { + const { NetworkController } = Engine.context; + await NetworkController.setActiveNetwork('mainnet'); + } if (isEligible) { navigation.navigate('StakeScreens', { screen: Routes.STAKING.STAKE }); } else {