diff options
| author | Albin Groen <[email protected]> | 2026-01-05 18:24:49 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-05 11:24:49 -0600 |
| commit | bbd1c071c4f3258cc2612f20a7ba306ac730060a (patch) | |
| tree | 6a2047b1016278404cce36c7d4bf028fbf3a7292 /packages/app/src/components/session | |
| parent | 8e9a0c4ad014eb54d7ddd8de3b5f321de931f2f7 (diff) | |
| download | opencode-bbd1c071c4f3258cc2612f20a7ba306ac730060a.tar.gz opencode-bbd1c071c4f3258cc2612f20a7ba306ac730060a.zip | |
fix(app): fix flicker and navigation when collapsing/expanding projects (#6658)
Diffstat (limited to 'packages/app/src/components/session')
| -rw-r--r-- | packages/app/src/components/session/session-header.tsx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 876521142..6c102e4bd 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -1,4 +1,4 @@ -import { createEffect, createMemo, createResource, Show } from "solid-js" +import { createMemo, createResource, Show } from "solid-js" import { A, useNavigate, useParams } from "@solidjs/router" import { useLayout } from "@/context/layout" import { useCommand } from "@/context/command" @@ -20,6 +20,7 @@ import { DialogSelectServer } from "@/components/dialog-select-server" import { SessionLspIndicator } from "@/components/session-lsp-indicator" import { SessionMcpIndicator } from "@/components/session-mcp-indicator" import type { Session } from "@opencode-ai/sdk/v2/client" +import { same } from "@/utils/same" export function SessionHeader() { const globalSDK = useGlobalSDK() @@ -36,6 +37,7 @@ export function SessionHeader() { const sessions = createMemo(() => (sync.data.session ?? []).filter((s) => !s.parentID)) const currentSession = createMemo(() => sessions().find((s) => s.id === params.id)) const shareEnabled = createMemo(() => sync.data.config.share !== "disabled") + const worktrees = createMemo(() => layout.projects.list().map((p) => p.worktree), [], { equals: same }) function navigateToProject(directory: string) { navigate(`/${base64Encode(directory)}`) @@ -60,7 +62,7 @@ export function SessionHeader() { <div class="flex items-center gap-2 min-w-0"> <div class="hidden xl:flex items-center gap-2"> <Select - options={layout.projects.list().map((project) => project.worktree)} + options={worktrees()} current={sync.project?.worktree ?? projectDirectory()} label={(x) => getFilename(x)} onSelect={(x) => (x ? navigateToProject(x) : undefined)} |
