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: id, back: false}); }; 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].arrow !== false && ( <> )} {(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;