sendou.ink/components/layout/NavButtons.tsx
2021-06-20 19:52:05 +03:00

75 lines
2.2 KiB
TypeScript

import { Box, Flex } from "@chakra-ui/layout";
import MyLink from "components/common/MyLink";
import UserAvatar from "components/common/UserAvatar";
import { useMyTheme, useUser } from "hooks/common";
import Image from "next/image";
import { navItems } from "utils/constants";
const NavButtons = ({ onButtonClick }: { onButtonClick?: () => void }) => {
const { bgColor, secondaryBgColor } = useMyTheme();
const [user] = useUser();
return (
<Flex mt={2} flexWrap="wrap" alignItems="center" justifyContent="center">
{navItems.map(({ imageSrc, code, name }) => {
return (
<MyLink key={code} href={"/" + code} isColored={false} noUnderline>
<Flex
width="9.5rem"
rounded="lg"
p={1}
m={2}
fontSize="sm"
fontWeight="bold"
align="center"
whiteSpace="nowrap"
bg={secondaryBgColor}
border="2px solid"
borderColor={secondaryBgColor}
_hover={{
bg: bgColor,
}}
onClick={onButtonClick}
>
<Image
src={`/layout/${imageSrc ?? code}.png`}
className={code === "splatoon3" ? "rounded" : undefined}
height={32}
width={32}
priority
alt={`${name} icon`}
/>
<Box ml={2}>{name}</Box>
</Flex>
</MyLink>
);
})}
{user && (
<MyLink href={"/u/" + user.discordId} isColored={false} noUnderline>
<Flex
width="9.5rem"
rounded="lg"
p={1}
m={2}
fontSize="sm"
fontWeight="bold"
align="center"
whiteSpace="nowrap"
bg={secondaryBgColor}
border="2px solid"
borderColor={secondaryBgColor}
_hover={{
bg: bgColor,
}}
onClick={onButtonClick}
>
<UserAvatar user={user} size="sm" />
<Box ml={2}>My Page</Box>
</Flex>
</MyLink>
)}
</Flex>
);
};
export default NavButtons;