import { VStack, Flex, Box, Text } from '@chakra-ui/react'; import React from 'react'; import type { FeaturedNetwork, NetworkGroup } from 'types/networks'; import config from 'configs/app'; import { Link } from 'toolkit/chakra/link'; import { PopoverBody, PopoverContent } from 'toolkit/chakra/popover'; import { Skeleton } from 'toolkit/chakra/skeleton'; import { TabsContent, TabsList, TabsRoot, TabsTrigger } from 'toolkit/chakra/tabs'; import NetworkMenuLink from './NetworkMenuLink'; interface Props { tabs: Array; items?: Array; } const NetworkMenuContent = ({ items, tabs }: Props) => { const selectedNetwork = items?.find(({ isActive }) => isActive); const defaultTab = tabs.find((tab) => selectedNetwork?.group === tab); const [ value, setValue ] = React.useState(defaultTab ?? 'Mainnets'); const handleTabChange = React.useCallback(({ value }: { value: string }) => { setValue(value as NetworkGroup); }, []); const content = (() => { if (!items || items.length === 0) { return ( <> ); } const viewAllLink = config.UI.featuredNetworks.allLink && ( View all chains ); if (tabs.length === 1) { return ( { items .filter((network) => network.group === tabs[0]) .map((network) => ( )) } { viewAllLink } ); } if (config.UI.featuredNetworks.mode === 'list') { return ( { tabs.map((tab, index) => { return ( { tab } { items .filter((network) => network.group === tab) .map((network) => ( )) } { index === tabs.length - 1 && viewAllLink } ); }) } ); } return ( { tabs.length > 1 && ( { tabs.map((tab) => ( { tab } )) } ) } { tabs.map((tab) => ( { items .filter((network) => network.group === tab) .map((network) => ( )) } { viewAllLink } )) } ); })(); return ( { content } ); }; export default React.memo(NetworkMenuContent);