diff --git a/src/components/ui/MainPanel/Variables.tsx b/src/components/ui/MainPanel/Variables.tsx index 4993b338..cd15417b 100644 --- a/src/components/ui/MainPanel/Variables.tsx +++ b/src/components/ui/MainPanel/Variables.tsx @@ -21,8 +21,6 @@ import { DialogTitle, } from "@/components/ui/dialog"; -import { Card } from "@/components/ui/card" - const Variables = ({ openVariables, setOpenVariables, @@ -31,6 +29,7 @@ const Variables = ({ setOpenVariables: React.Dispatch>; }) => { const [popoverSide, setPopoverSide] = useState<"left" | "top">("left"); + const [openMetaPopover, setOpenMetaPopover] = useState(false); const [showMeta, setShowMeta] = useState(false); const { variables, zMeta, initStore } = useGlobalStore( @@ -96,7 +95,11 @@ const Variables = ({ setSelectedIndex(idx); setSelectedVar(val); GetDimInfo(val).then(e=>{setDimNames(e.dimNames); setDimArrays(e.dimArrays); setDimUnits(e.dimUnits)}) - setShowMeta(true); + if (popoverSide === "left") { + setOpenMetaPopover(true); + } else { + setShowMeta(true); + } }} > {val} @@ -115,63 +118,87 @@ const Variables = ({ ); return ( - - -
- - -
- -
-
- {popoverSide === "left" ? ( - - Select Variable - - ) : ( - + <> + + +
+ + +
+ +
+
+ Select Variable - )} -
-
-
- - -
- setQuery(e.target.value)} - className="flex-1" - /> - -
- - {VariableList} - - {popoverSide === "left" && showMeta && meta && ( -
- - - +
- )} -
+ + + { + const target = e.target as HTMLElement; + // If the click is inside the MetaData popover, do not close + if (target.closest('[data-meta-popover]')) { + e.preventDefault(); + } + }} + > +
+ setQuery(e.target.value)} + className="flex-1" + /> + +
+ + {VariableList} +
+
+ {popoverSide === "left" && ( + + +
+ + + {meta && ( + + )} + + + )} {popoverSide === "top" && ( @@ -186,8 +213,8 @@ const Variables = ({ )} - + ); }; -export default Variables; +export default Variables; \ No newline at end of file