Skip to content

Commit

Permalink
fix: enable swap app card only on supported networks
Browse files Browse the repository at this point in the history
  • Loading branch information
compojoom committed Jun 3, 2024
1 parent ae9d480 commit 11a347c
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/components/safe-apps/SafeAppList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { useOpenedSafeApps } from '@/hooks/safe-apps/useOpenedSafeApps'
import NativeFeatureCard from '../NativeFeatureCard'
import { useNativeSwapsAppCard } from '../hooks/useNativeSwapsAppCard'
import { useRouter } from 'next/router'
import { NATIVE_SWAPS_APP_ID } from '@/features/swap/config/constants'

type SafeAppListProps = {
safeAppsList: SafeAppData[]
Expand Down Expand Up @@ -86,7 +87,7 @@ const SafeAppList = ({

{/* Flat list filtered by search query */}
{safeAppsList.map((safeApp) => {
return !safeApp.isNativeFeature ? (
return safeApp.id !== NATIVE_SWAPS_APP_ID ? (
<li key={safeApp.id}>
<SafeAppCard
safeApp={safeApp}
Expand Down
13 changes: 10 additions & 3 deletions src/components/safe-apps/hooks/useNativeSwapsAppCard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,23 @@ import useChainId from '@/hooks/useChainId'
import useLocalStorage from '@/services/local-storage/useLocalStorage'
import type { SafeAppData } from '@safe-global/safe-gateway-typescript-sdk'
import { SafeAppAccessPolicyTypes } from '@safe-global/safe-gateway-typescript-sdk'
import { useHasFeature } from '@/hooks/useChains'
import { FEATURES } from '@/utils/chains'
import { NATIVE_SWAPS_APP_ID } from '@/features/swap/config/constants'

const SWAPS_APP_CARD_STORAGE_KEY = 'showSwapsAppCard'

export function useNativeSwapsAppCard() {
const chainId = useChainId()
const [isVisible = true, setIsVisible] = useLocalStorage<boolean>(SWAPS_APP_CARD_STORAGE_KEY)
let [isVisible = true, setIsVisible] = useLocalStorage<boolean>(SWAPS_APP_CARD_STORAGE_KEY)
const isSwapFeatureEnabled = useHasFeature(FEATURES.NATIVE_SWAPS)

if (isVisible && !isSwapFeatureEnabled) {
isVisible = false
}

const swapsCard: SafeAppData = {
id: 100_000,
id: NATIVE_SWAPS_APP_ID,
url: AppRoutes.swap,
name: 'Native swaps are here!',
description: 'Experience seamless trading with better decoding and security in native swaps.',
Expand All @@ -22,7 +30,6 @@ export function useNativeSwapsAppCard() {
developerWebsite: '',
chainIds: [chainId],
iconUrl: '/images/common/swap.svg',
isNativeFeature: true,
}

return {
Expand Down
1 change: 1 addition & 0 deletions src/features/swap/config/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const NATIVE_SWAPS_APP_ID = 100_000
3 changes: 2 additions & 1 deletion src/features/swap/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import { isBlockedAddress } from '@/services/ofac'
import { selectSwapParams, setSwapParams, type SwapState } from './store/swapParamsSlice'
import { setSwapOrder } from '@/store/swapOrderSlice'
import useChainId from '@/hooks/useChainId'
import { NATIVE_SWAPS_APP_ID } from '@/features/swap/config/constants'

const BASE_URL = typeof window !== 'undefined' && window.location.origin ? window.location.origin : ''

Expand Down Expand Up @@ -67,7 +68,7 @@ const SwapWidget = ({ sell }: Params) => {

const appData: SafeAppData = useMemo(
() => ({
id: 1,
id: NATIVE_SWAPS_APP_ID,
url: 'https://app.safe.global',
name: SWAP_TITLE,
iconUrl: darkMode ? './images/common/safe-swap-dark.svg' : './images/common/safe-swap.svg',
Expand Down

0 comments on commit 11a347c

Please sign in to comment.