import React, { useContext } from "react" import UserAvatar from "../common/UserAvatar" import { Flex, Box, Grid } from "@chakra-ui/core" import MyThemeContext from "../../themeContext" interface VotingButtonProps { value: 2 | 1 | -1 | -2 handleClick: (oldValue: number) => void gridArea: string active: boolean } const buttonBg = { "-2": "red.500", "-1": "red.500", "1": "green.500", "2": "green.500", } as const const VotingButton: React.FC = ({ value, handleClick, gridArea, active, }) => { return ( handleClick(value)} alignItems="center" justifyContent="center" borderRadius="50%" w="50px" h="50px" fontWeight="bolder" border={active ? "4px solid" : undefined} borderColor={buttonBg[value]} fontSize="24px" cursor="pointer" userSelect="none" > {value > 0 ? "+" : ""} {value} ) } interface PersonForVotingProps { votes: Record setVotes: React.Dispatch>> user: { username: string discriminator: string avatar?: string discord_id: string } suggester?: { username: string discriminator: string } description?: string sameRegion?: boolean } const PersonForVoting: React.FC = ({ votes, setVotes, user, suggester, description, sameRegion = true, }) => { const { grayWithShade } = useContext(MyThemeContext) const handleClick = (value: number) => { setVotes({ ...votes, [user.discord_id]: value }) } return ( {user.username}#{user.discriminator} {sameRegion ? ( ) : ( )} {sameRegion ? ( ) : ( )} {description && ( "{description}" - {suggester!.username}#{suggester!.discriminator} )} ) } export default PersonForVoting