diff --git a/components/Blocks/BlockCommandBar.tsx b/components/Blocks/BlockCommandBar.tsx index b9c4b0b6..7a302746 100644 --- a/components/Blocks/BlockCommandBar.tsx +++ b/components/Blocks/BlockCommandBar.tsx @@ -58,6 +58,7 @@ export const BlockCommandBar = ({ return ( r.name)} highlighted={highlighted} @@ -83,7 +84,7 @@ export const BlockCommandBar = ({ commandResults.map((result, index) => (
{ rep && diff --git a/components/Combobox.tsx b/components/Combobox.tsx index 7d0a5ba9..b001d0ae 100644 --- a/components/Combobox.tsx +++ b/components/Combobox.tsx @@ -1,13 +1,8 @@ -import { createContext, useContext, useEffect, useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import * as Popover from "@radix-ui/react-popover"; import { NestedCardThemeProvider } from "components/ThemeManager/ThemeProvider"; -import { create } from "zustand"; import { Input } from "./Input"; -export const useComboboxState = create(() => ({ - open: false, -})); - export const Combobox = ({ results, onSelect, @@ -21,6 +16,7 @@ export const Combobox = ({ trigger, triggerClassName, sideOffset, + open: openProp, }: { children: React.ReactNode; trigger?: React.ReactNode; @@ -34,10 +30,11 @@ export const Combobox = ({ setSearchValue?: (s: string) => void; showSearch?: boolean; sideOffset?: number; + open?: boolean; }) => { let ref = useRef(null); - - let open = useComboboxState((s) => s.open); + let [internalOpen, setInternalOpen] = useState(false); + let open = openProp ?? internalOpen; useEffect(() => { if (!highlighted || !results.find((result) => result === highlighted)) @@ -80,10 +77,9 @@ export const Combobox = ({ // on enter, select the highlighted item if (e.key === "Enter") { + e.preventDefault(); onSelect?.(); - useComboboxState.setState({ - open: false, - }); + setInternalOpen(false); } }; @@ -96,9 +92,7 @@ export const Combobox = ({ { - useComboboxState.setState({ - open: newOpen, - }); + setInternalOpen(newOpen); onOpenChange?.(newOpen); }} > @@ -120,7 +114,7 @@ export const Combobox = ({ >
{showSearch && setSearchValue ? ( { e.preventDefault(); props.onSelect(); - useComboboxState.setState({ - open: false, - }); }} > -
{props.children}
+
{props.children}
); };