import { Box, BoxProps, Flex, IconButton, Image, Popover, PopoverBody, PopoverContent, PopoverTrigger, PseudoBox, } from "@chakra-ui/core" import { Link } from "@reach/router" import React, { useContext, useEffect, useState } from "react" import { FiBarChart2, FiEdit, FiInfo, FiTarget } from "react-icons/fi" import { top500 } from "../../assets/imageImports" import MyThemeContext from "../../themeContext" import { Build } from "../../types" import WeaponImage from "../common/WeaponImage" import BuildCardStats from "./BuildCardStats" import Gears from "./Gears" import ViewAP from "./ViewAP" import ViewSlots from "./ViewSlots" interface BuildCardProps { build: Build defaultToAPView: boolean showUser?: boolean canModify?: boolean setBuildBeingEdited?: (build: Build) => void otherBuildCount?: number onShowAllByUser?: () => void } const BuildCard: React.FC = ({ build, defaultToAPView, canModify, showUser, setBuildBeingEdited, otherBuildCount, onShowAllByUser, ...props }) => { const [apView, setApView] = useState(defaultToAPView) const [showStats, setShowStats] = useState(false) const { themeColor, darkerBgColor, grayWithShade, themeColorWithShade, } = useContext(MyThemeContext) useEffect(() => { setApView(defaultToAPView) }, [defaultToAPView]) return ( <> {showStats && ( setShowStats(false)} /> )} {build.top && ( x rank top 500 logo )} {new Date(parseInt(build.updatedAt)).toLocaleDateString()} {showUser && build.discord_user && ( •{" "} {build.discord_user.username}# {build.discord_user.discriminator} )} {build.title && ( {build.title} )} setApView(!apView)} aria-label="Set build card view" fontSize="20px" icon={FiTarget} mr="0.5em" /> setShowStats(!showStats)} aria-label="Show build stats view" fontSize="20px" icon={FiBarChart2} mr="0.5em" /> {build.description && ( {build.description} )} {canModify && ( setBuildBeingEdited(build)) } aria-label="Show description" fontSize="20px" icon={FiEdit} ml="0.5em" /> )} {apView ? : } {otherBuildCount && ( Show all {otherBuildCount} builds by{" "} {build.discord_user!.username} )} ) } export default BuildCard