Files
TheGame/packages/web/components/MegaMenu/DesktopMenuItem.tsx

69 lines
1.6 KiB
TypeScript

import { Avatar, Box, Link, MenuItem, Text } from '@metafam/ds';
import { Values } from '@metafam/utils';
import { menuIcons } from '#utils/menuIcons';
type MenuItemProps = {
title: string;
url: string;
explainerText: string;
icon: Values<Record<string, string>>;
};
// Menu links (with icons and explanatory text) -- used in DesktopNavLinks below
export const DesktopMenuItem = ({
title,
url,
explainerText,
icon,
}: MenuItemProps) => (
<MenuItem
h="full"
p={0}
borderRadius="md"
overflow="hidden"
_active={{ bg: 'none' }}
_focus={{ bg: 'none' }}
_hover={{ bg: 'none' }}
>
<Link
display="flex"
role="group"
href={url}
w="full"
h="full"
p={4}
transition="0.5s ease-in"
alignItems="center"
_hover={{
backgroundColor: 'rgba(0,0,0,0.56)',
textDecoration: 'none',
transition: '0s',
}}
_focus={{ outline: 'none' }}
>
<Avatar
src={menuIcons[icon]}
w="3.75rem"
h="3.75rem"
p={3}
mr={5}
bg="linear-gradient(180deg, rgba(0, 0, 0, 0.36) 0%, rgba(0, 0, 0, 0.36) 100%);"
boxShadow="0 0 0 2px rgba(0, 0, 0, 0.08)"
_groupHover={{
boxShadow: '0 0 1px 1px rgba(255, 255, 255, 0.1)',
bg: 'linear-gradient(180deg, #170B23 0%, #350C58 100%);',
transition: '0s',
}}
transition="0.3s ease-in"
/>
<Box color="white">
<Text fontSize="xl" fontWeight="bold">
{title}
</Text>
<Text fontSize="sm">{explainerText}</Text>
</Box>
</Link>
</MenuItem>
);