From dda579c8ad30f81ade458769971d85ff7afee64c Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Sun, 14 Dec 2025 20:32:14 -0600 Subject: wip(desktop): progress --- packages/desktop/src/context/dialog.tsx | 80 --------------------------------- 1 file changed, 80 deletions(-) delete mode 100644 packages/desktop/src/context/dialog.tsx (limited to 'packages/desktop/src/context') diff --git a/packages/desktop/src/context/dialog.tsx b/packages/desktop/src/context/dialog.tsx deleted file mode 100644 index cc49764fe..000000000 --- a/packages/desktop/src/context/dialog.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { createEffect, For, onCleanup, Show, type JSX } from "solid-js" -import { createStore } from "solid-js/store" -import { createSimpleContext } from "@opencode-ai/ui/context" - -type DialogElement = JSX.Element | (() => JSX.Element) - -export const { use: useDialog, provider: DialogProvider } = createSimpleContext({ - name: "Dialog", - init: () => { - const [store, setStore] = createStore({ - stack: [] as { - element: DialogElement - onClose?: () => void - }[], - }) - - function handleKeyDown(e: KeyboardEvent) { - if (e.key === "Escape" && store.stack.length > 0) { - const current = store.stack.at(-1)! - current.onClose?.() - setStore("stack", store.stack.slice(0, -1)) - e.preventDefault() - e.stopPropagation() - } - } - - createEffect(() => { - document.addEventListener("keydown", handleKeyDown, true) - onCleanup(() => { - document.removeEventListener("keydown", handleKeyDown, true) - }) - }) - - return { - get stack() { - return store.stack - }, - push(element: DialogElement, onClose?: () => void) { - setStore("stack", (s) => [...s, { element, onClose }]) - }, - pop() { - const current = store.stack.at(-1) - current?.onClose?.() - setStore("stack", store.stack.slice(0, -1)) - }, - replace(element: DialogElement, onClose?: () => void) { - for (const item of store.stack) { - item.onClose?.() - } - setStore("stack", [{ element, onClose }]) - }, - clear() { - for (const item of store.stack) { - item.onClose?.() - } - setStore("stack", []) - }, - } - }, -}) - -export function DialogRoot(props: { children?: JSX.Element }) { - const dialog = useDialog() - return ( - <> - {props.children} - 0}> -
- - {(item, index) => ( - - {typeof item.element === "function" ? item.element() : item.element} - - )} - -
-
- - ) -} -- cgit v1.2.3