diff options
| author | Luke Parker <[email protected]> | 2026-03-20 14:12:06 +1000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-20 00:12:06 -0400 |
| commit | d460614cd7ad9e047a2792139ea67e16caa82ea7 (patch) | |
| tree | ff415e8719c7b6edd73bc824da379308e4e62589 /packages/app/src/pages/layout | |
| parent | 7866dbcfcc36a60d22ad466eddf54c54b21fabe3 (diff) | |
| download | opencode-d460614cd7ad9e047a2792139ea67e16caa82ea7.tar.gz opencode-d460614cd7ad9e047a2792139ea67e16caa82ea7.zip | |
fix: lots of desktop stability, better e2e error logging (#18300)
Diffstat (limited to 'packages/app/src/pages/layout')
| -rw-r--r-- | packages/app/src/pages/layout/helpers.ts | 4 | ||||
| -rw-r--r-- | packages/app/src/pages/layout/sidebar-project.tsx | 7 | ||||
| -rw-r--r-- | packages/app/src/pages/layout/sidebar-workspace.tsx | 4 |
3 files changed, 6 insertions, 9 deletions
diff --git a/packages/app/src/pages/layout/helpers.ts b/packages/app/src/pages/layout/helpers.ts index 209cff8a7..226098c1c 100644 --- a/packages/app/src/pages/layout/helpers.ts +++ b/packages/app/src/pages/layout/helpers.ts @@ -40,10 +40,10 @@ export const latestRootSession = (stores: SessionStore[], now: number) => stores.flatMap(roots).sort(sortSessions(now))[0] export function hasProjectPermissions<T>( - request: Record<string, T[] | undefined>, + request: Record<string, T[] | undefined> | undefined, include: (item: T) => boolean = () => true, ) { - return Object.values(request).some((list) => list?.some(include)) + return Object.values(request ?? {}).some((list) => list?.some(include)) } export const childMapByParent = (sessions: Session[] | undefined) => { diff --git a/packages/app/src/pages/layout/sidebar-project.tsx b/packages/app/src/pages/layout/sidebar-project.tsx index a26bc1831..252826456 100644 --- a/packages/app/src/pages/layout/sidebar-project.tsx +++ b/packages/app/src/pages/layout/sidebar-project.tsx @@ -15,6 +15,7 @@ import { childMapByParent, displayName, sortedRootSessions } from "./helpers" export type ProjectSidebarContext = { currentDir: Accessor<string> + currentProject: Accessor<LocalProject | undefined> sidebarOpened: Accessor<boolean> sidebarHovering: Accessor<boolean> hoverProject: Accessor<string | undefined> @@ -278,11 +279,7 @@ export const SortableProject = (props: { const globalSync = useGlobalSync() const language = useLanguage() const sortable = createSortable(props.project.worktree) - const selected = createMemo( - () => - props.project.worktree === props.ctx.currentDir() || - props.project.sandboxes?.includes(props.ctx.currentDir()) === true, - ) + const selected = createMemo(() => props.ctx.currentProject()?.worktree === props.project.worktree) const workspaces = createMemo(() => props.ctx.workspaceIds(props.project).slice(0, 2)) const workspaceEnabled = createMemo(() => props.ctx.workspacesEnabled(props.project)) const dirs = createMemo(() => props.ctx.workspaceIds(props.project)) diff --git a/packages/app/src/pages/layout/sidebar-workspace.tsx b/packages/app/src/pages/layout/sidebar-workspace.tsx index 127626feb..3bf00ea42 100644 --- a/packages/app/src/pages/layout/sidebar-workspace.tsx +++ b/packages/app/src/pages/layout/sidebar-workspace.tsx @@ -17,7 +17,7 @@ import { type LocalProject } from "@/context/layout" import { useGlobalSync } from "@/context/global-sync" import { useLanguage } from "@/context/language" import { NewSessionItem, SessionItem, SessionSkeleton } from "./sidebar-items" -import { childMapByParent, sortedRootSessions } from "./helpers" +import { childMapByParent, sortedRootSessions, workspaceKey } from "./helpers" type InlineEditorComponent = (props: { id: string @@ -323,7 +323,7 @@ export const SortableWorkspace = (props: { const sessions = createMemo(() => sortedRootSessions(workspaceStore, props.sortNow())) const children = createMemo(() => childMapByParent(workspaceStore.session)) const local = createMemo(() => props.directory === props.project.worktree) - const active = createMemo(() => props.ctx.currentDir() === props.directory) + const active = createMemo(() => workspaceKey(props.ctx.currentDir()) === workspaceKey(props.directory)) const workspaceValue = createMemo(() => { const branch = workspaceStore.vcs?.branch const name = branch ?? getFilename(props.directory) |
