summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/command.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-28 19:26:46 -0600
committerAdam <[email protected]>2025-12-28 19:27:36 -0600
commit0156f03e0ef4e256236256aac05f4fc10577280f (patch)
tree36e3c2148ec30292d1bec0b689317f5879326c51 /packages/app/src/context/command.tsx
parente0bb96a9f9edf925c445607bc3e19742ba14af8c (diff)
downloadopencode-0156f03e0ef4e256236256aac05f4fc10577280f.tar.gz
opencode-0156f03e0ef4e256236256aac05f4fc10577280f.zip
chore: cleanup theme stuff
Diffstat (limited to 'packages/app/src/context/command.tsx')
-rw-r--r--packages/app/src/context/command.tsx18
1 files changed, 6 insertions, 12 deletions
diff --git a/packages/app/src/context/command.tsx b/packages/app/src/context/command.tsx
index 626bfdbe4..efd83bec8 100644
--- a/packages/app/src/context/command.tsx
+++ b/packages/app/src/context/command.tsx
@@ -3,7 +3,6 @@ import { createSimpleContext } from "@opencode-ai/ui/context"
import { useDialog } from "@opencode-ai/ui/context/dialog"
import { Dialog } from "@opencode-ai/ui/dialog"
import { List } from "@opencode-ai/ui/list"
-import { useTheme } from "@opencode-ai/ui/theme"
const IS_MAC = typeof navigator === "object" && /(Mac|iPod|iPhone|iPad)/.test(navigator.platform)
@@ -27,6 +26,7 @@ export interface CommandOption {
suggested?: boolean
disabled?: boolean
onSelect?: (source?: "palette" | "keybind" | "slash") => void
+ onHighlight?: () => (() => void) | void
}
export function parseKeybind(config: string): Keybind[] {
@@ -116,24 +116,18 @@ export function formatKeybind(config: string): string {
function DialogCommand(props: { options: CommandOption[] }) {
const dialog = useDialog()
- const theme = useTheme()
+ let cleanup: (() => void) | void
let committed = false
const handleMove = (option: CommandOption | undefined) => {
- if (!option) return
- if (option.id.startsWith("theme.set.")) {
- const id = option.id.replace("theme.set.", "")
- theme.previewTheme(id)
- } else if (option.id.startsWith("theme.scheme.") && !option.id.includes("cycle")) {
- const scheme = option.id.replace("theme.scheme.", "") as "light" | "dark" | "system"
- theme.previewColorScheme(scheme)
- }
+ cleanup?.()
+ cleanup = option?.onHighlight?.()
}
const handleSelect = (option: CommandOption | undefined) => {
if (option) {
- theme.commitPreview()
committed = true
+ cleanup = undefined
dialog.close()
option.onSelect?.("palette")
}
@@ -141,7 +135,7 @@ function DialogCommand(props: { options: CommandOption[] }) {
onCleanup(() => {
if (!committed) {
- theme.cancelPreview()
+ cleanup?.()
}
})