mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-12 22:11:06 -05:00
103 lines
2.9 KiB
TypeScript
103 lines
2.9 KiB
TypeScript
import React from "react"
|
|
import { Flex, Box, Image, PseudoBox } from "@chakra-ui/core"
|
|
import sz from "../../assets/sz.png"
|
|
import tc from "../../assets/tc.png"
|
|
import rm from "../../assets/rm.png"
|
|
import cb from "../../assets/cb.png"
|
|
|
|
interface ModeButtonsProps {
|
|
mode: "SZ" | "TC" | "RM" | "CB"
|
|
setMode: React.Dispatch<React.SetStateAction<"SZ" | "TC" | "RM" | "CB">>
|
|
}
|
|
|
|
const iconSize = "45px"
|
|
|
|
const ModeButtons: React.FC<ModeButtonsProps> = ({ mode, setMode }) => {
|
|
return (
|
|
<Flex>
|
|
<Flex
|
|
flexDir="column"
|
|
p="10px"
|
|
style={{ filter: mode === "SZ" ? undefined : "grayscale(100%)" }}
|
|
cursor="pointer"
|
|
onClick={() => setMode("SZ")}
|
|
alignItems="center"
|
|
>
|
|
<PseudoBox
|
|
_hover={{ transform: mode === "SZ" ? undefined : "scale(1.2)" }}
|
|
transition="all 0.2s"
|
|
>
|
|
<Image src={sz} display="inline-block" w={iconSize} h={iconSize} />
|
|
</PseudoBox>
|
|
{mode === "SZ" && (
|
|
<Box fontSize="1.25em" fontWeight="bold">
|
|
SZ
|
|
</Box>
|
|
)}
|
|
</Flex>
|
|
<Flex
|
|
flexDir="column"
|
|
p="10px"
|
|
style={{ filter: mode === "TC" ? undefined : "grayscale(100%)" }}
|
|
cursor="pointer"
|
|
onClick={() => setMode("TC")}
|
|
alignItems="center"
|
|
>
|
|
<PseudoBox
|
|
_hover={{ transform: mode === "TC" ? undefined : "scale(1.2)" }}
|
|
transition="all 0.2s"
|
|
>
|
|
<Image src={tc} display="inline-block" w={iconSize} h={iconSize} />
|
|
</PseudoBox>
|
|
{mode === "TC" && (
|
|
<Box fontSize="1.25em" fontWeight="bold">
|
|
TC
|
|
</Box>
|
|
)}
|
|
</Flex>
|
|
<Flex
|
|
flexDir="column"
|
|
p="10px"
|
|
style={{ filter: mode === "RM" ? undefined : "grayscale(100%)" }}
|
|
cursor="pointer"
|
|
onClick={() => setMode("RM")}
|
|
alignItems="center"
|
|
>
|
|
<PseudoBox
|
|
_hover={{ transform: mode === "RM" ? undefined : "scale(1.2)" }}
|
|
transition="all 0.2s"
|
|
>
|
|
<Image src={rm} display="inline-block" w={iconSize} h={iconSize} />
|
|
</PseudoBox>
|
|
{mode === "RM" && (
|
|
<Box fontSize="1.25em" fontWeight="bold">
|
|
RM
|
|
</Box>
|
|
)}
|
|
</Flex>
|
|
<Flex
|
|
flexDir="column"
|
|
p="10px"
|
|
style={{ filter: mode === "CB" ? undefined : "grayscale(100%)" }}
|
|
cursor="pointer"
|
|
onClick={() => setMode("CB")}
|
|
alignItems="center"
|
|
>
|
|
<PseudoBox
|
|
_hover={{ transform: mode === "CB" ? undefined : "scale(1.2)" }}
|
|
transition="all 0.2s"
|
|
>
|
|
<Image src={cb} display="inline-block" w={iconSize} h={iconSize} />
|
|
</PseudoBox>
|
|
{mode === "CB" && (
|
|
<Box fontSize="1.25em" fontWeight="bold">
|
|
CB
|
|
</Box>
|
|
)}
|
|
</Flex>
|
|
</Flex>
|
|
)
|
|
}
|
|
|
|
export default ModeButtons
|