import { Portal, Popover, PopoverTrigger, PopoverBody, PopoverContent, Box, Text, Flex, Spacer, Image, HStack, } from "@chakra-ui/react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Option, ContextMenuProps } from "../../../interfaces/context"; import { fetchNui } from "../../../utils/fetchNui"; const openMenu = (id: string | undefined) => { fetchNui("openContext", id); }; const clickContext = (id: string) => { fetchNui("clickContext", id); }; const Item: React.FC<{ option: [string, Option]; }> = ({ option }) => { return ( <> option[1].menu ? openMenu(option[1].menu) : clickContext(option[0]) } > {option[1]?.icon && ( )} {option[1].title ? option[1].title : option[0]} {option[1].description && ( {option[1].description} )} {(option[1].menu || option[1].arrow) && ( <> )} {(option[1].metadata || option[1].image) && ( <> {option[1].image && } {Array.isArray(option[1].metadata) ? ( option[1].metadata.map( ( metadata: string | { label: string; value: any }, index: number ) => ( {typeof metadata === "string" ? `${metadata}` : `${metadata.label}: ${metadata.value}`} ) ) ) : ( <> {typeof option[1].metadata === "object" && Object.entries(option[1].metadata).map( (metadata: { [key: string]: any }, index) => ( {metadata[0]}: {metadata[1]} ) )} )} )} ); }; export default Item;