From e3ef55b9993600ec7e0f56516bbb7d900738844a Mon Sep 17 00:00:00 2001 From: Luke Date: Thu, 24 Mar 2022 20:00:09 +0100 Subject: [PATCH] feat(nui): Metadata popover --- web/src/components/ContextMenu.tsx | 141 ++++++++++++++++++----------- web/src/index.css | 8 ++ 2 files changed, 95 insertions(+), 54 deletions(-) diff --git a/web/src/components/ContextMenu.tsx b/web/src/components/ContextMenu.tsx index 3ce226e..6c84346 100644 --- a/web/src/components/ContextMenu.tsx +++ b/web/src/components/ContextMenu.tsx @@ -1,5 +1,13 @@ import { useNuiEvent } from "../hooks/useNuiEvent"; -import { Box, Text } from "@chakra-ui/react"; +import { + Box, + Text, + Popover, + PopoverTrigger, + Portal, + PopoverContent, + PopoverBody, +} from "@chakra-ui/react"; import { debugData } from "../utils/debugData"; import { useState } from "react"; @@ -51,64 +59,89 @@ const ContextMenu: React.FC = () => { }); return ( - <> - - - - {contextMenu.title} - - + + + + {contextMenu.title} + + + {Object.entries(contextMenu.options).map((option, index) => ( - - {/* TODO: react-markdown (?) */} - - - {option[0]} - - - {option[1].description && ( - - {option[1].description} + + + {/* TODO: react-markdown (?) */} + + + {option[0]} + + + {option[1].description && ( + + {option[1].description} + + )} + + + + {option[1]?.metadata && + Array.isArray(option[1].metadata) ? ( + option[1].metadata.map((metadata: string, index) => ( + + {metadata} + + )) + ) : ( + <> + {typeof option[1].metadata === "object" && + Object.entries(option[1].metadata).map( + (metadata: { [key: string]: any }, index) => ( + + {metadata[0]}: {metadata[1]} + + ) + )} + + )} + + + - )} - {option[1]?.metadata && Array.isArray(option[1].metadata) ? ( - option[1].metadata.map((metadata: string, index) => ( - {metadata} - )) - ) : ( - <> - {typeof option[1].metadata === "object" && - Object.entries(option[1].metadata).map( - (metadata: { [key: string]: any }, index) => ( - - {metadata[0]}: {metadata[1]} - - ) - )} - - )} - + + ))} - + ); }; diff --git a/web/src/index.css b/web/src/index.css index 0278447..f54aa11 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -40,3 +40,11 @@ code { width: 100%; } } + +::-webkit-scrollbar { + background-color: transparent; + padding: 0; + margin: 0; + width: 0; + height: 0; +}