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