diff options
| author | Adam <[email protected]> | 2026-03-02 10:50:50 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-02 10:50:50 -0600 |
| commit | 8176bafc555e562ade48a675dffa3f38751ed8c9 (patch) | |
| tree | 7d4b0f6e98f431999b89c1f24687f6f53bd0bc6b /packages/app/src/components | |
| parent | 0a3a3216db5974efd3edc9a213054fd97d8dbd34 (diff) | |
| download | opencode-8176bafc555e562ade48a675dffa3f38751ed8c9.tar.gz opencode-8176bafc555e562ade48a675dffa3f38751ed8c9.zip | |
chore(app): solidjs refactoring (#13399)
Diffstat (limited to 'packages/app/src/components')
| -rw-r--r-- | packages/app/src/components/file-tree.tsx | 6 | ||||
| -rw-r--r-- | packages/app/src/components/prompt-input.tsx | 9 | ||||
| -rw-r--r-- | packages/app/src/components/session/session-header.tsx | 11 | ||||
| -rw-r--r-- | packages/app/src/components/terminal.tsx | 7 |
4 files changed, 8 insertions, 25 deletions
diff --git a/packages/app/src/components/file-tree.tsx b/packages/app/src/components/file-tree.tsx index 3840f18ed..930832fb6 100644 --- a/packages/app/src/components/file-tree.tsx +++ b/packages/app/src/components/file-tree.tsx @@ -325,12 +325,6 @@ export default function FileTree(props: { ), ) - createEffect(() => { - const dir = file.tree.state(props.path) - if (!shouldListExpanded({ level, dir })) return - void file.tree.list(props.path) - }) - const nodes = createMemo(() => { const nodes = file.tree.children(props.path) const current = filter() diff --git a/packages/app/src/components/prompt-input.tsx b/packages/app/src/components/prompt-input.tsx index d16791a61..b99ac9373 100644 --- a/packages/app/src/components/prompt-input.tsx +++ b/packages/app/src/components/prompt-input.tsx @@ -591,7 +591,6 @@ export const PromptInput: Component<PromptInputProps> = (props) => { setActive: setSlashActive, onInput: slashOnInput, onKeyDown: slashOnKeyDown, - refetch: slashRefetch, } = useFilteredList<SlashCommand>({ items: slashCommands, key: (x) => x?.id, @@ -648,14 +647,6 @@ export const PromptInput: Component<PromptInputProps> = (props) => { } } - createEffect( - on( - () => sync.data.command, - () => slashRefetch(), - { defer: true }, - ), - ) - // Auto-scroll active command into view when navigating with keyboard createEffect(() => { const activeId = slashActive() diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 27b1b9cc0..94edb8258 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -306,11 +306,10 @@ export function SessionHeader() { const current = createMemo(() => options().find((o) => o.id === prefs.app) ?? options()[0]) const opening = createMemo(() => openRequest.app !== undefined) - createEffect(() => { - const value = prefs.app - if (options().some((o) => o.id === value)) return - setPrefs("app", options()[0]?.id ?? "finder") - }) + const selectApp = (app: OpenApp) => { + if (!options().some((item) => item.id === app)) return + setPrefs("app", app) + } const openDir = (app: OpenApp) => { if (opening() || !canOpen() || !platform.openPath) return @@ -458,7 +457,7 @@ export function SessionHeader() { value={current().id} onChange={(value) => { if (!OPEN_APPS.includes(value as OpenApp)) return - setPrefs("app", value as OpenApp) + selectApp(value as OpenApp) }} > <For each={options()}> diff --git a/packages/app/src/components/terminal.tsx b/packages/app/src/components/terminal.tsx index ce811463f..601ace28d 100644 --- a/packages/app/src/components/terminal.tsx +++ b/packages/app/src/components/terminal.tsx @@ -1,7 +1,7 @@ import { type HexColor, resolveThemeVariant, useTheme, withAlpha } from "@opencode-ai/ui/theme" import { showToast } from "@opencode-ai/ui/toast" import type { FitAddon, Ghostty, Terminal as Term } from "ghostty-web" -import { type ComponentProps, createEffect, createSignal, onCleanup, onMount, splitProps } from "solid-js" +import { type ComponentProps, createEffect, createMemo, onCleanup, onMount, splitProps } from "solid-js" import { SerializeAddon } from "@/addons/serialize" import { matchKeybind, parseKeybind } from "@/context/command" import { useLanguage } from "@/context/language" @@ -219,7 +219,7 @@ export const Terminal = (props: TerminalProps) => { } } - const [terminalColors, setTerminalColors] = createSignal<TerminalColors>(getTerminalColors()) + const terminalColors = createMemo(getTerminalColors) const scheduleFit = () => { if (disposed) return @@ -259,8 +259,7 @@ export const Terminal = (props: TerminalProps) => { } createEffect(() => { - const colors = getTerminalColors() - setTerminalColors(colors) + const colors = terminalColors() if (!term) return setOptionIfSupported(term, "theme", colors) }) |
