From a3874965bce2678dede45188acc66d7a222940bd Mon Sep 17 00:00:00 2001 From: Luke Date: Sat, 26 Mar 2022 09:59:26 +0100 Subject: [PATCH] feat(nui): Add scale fade transition to context menu --- web/src/components/ContextMenu.tsx | 195 +++++++++++++++-------------- 1 file changed, 100 insertions(+), 95 deletions(-) diff --git a/web/src/components/ContextMenu.tsx b/web/src/components/ContextMenu.tsx index abcefae..0b8f2d8 100644 --- a/web/src/components/ContextMenu.tsx +++ b/web/src/components/ContextMenu.tsx @@ -9,6 +9,7 @@ import { PopoverContent, PopoverBody, Spacer, + ScaleFade, } from "@chakra-ui/react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { debugData } from "../utils/debugData"; @@ -81,106 +82,110 @@ const ContextMenu: React.FC = () => { justifyContent="flex-end" alignItems="center" > - - - - {contextMenu.title} - - - - {Object.entries(contextMenu.options).map((option, index) => ( - + + + - - - {/* TODO: react-markdown (?) */} - - - - - {option[0]} - - - {option[1].description && ( + {contextMenu.title} + + + + {Object.entries(contextMenu.options).map((option, index) => ( + + + + {/* TODO: react-markdown (?) */} + + - {option[1].description} + + {option[0]} + - )} - - {option[1].subMenu && ( - <> - - - - - - )} - - - - - {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].description && ( + + {option[1].description} + )} - - - - - - - ))} + + {option[1].subMenu && ( + <> + + + + + + )} + + + + + {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]} + + ) + )} + + )} + + + + + + + ))} + - + ); };