diff options
| author | Adam <[email protected]> | 2026-03-05 20:08:49 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-03-06 05:52:48 -0600 |
| commit | eeeb21ff8638eddd960afbd8f522c87d850d6183 (patch) | |
| tree | faffda1937744c404e6fd2aad4390afdd8f13c55 /packages/app/src | |
| parent | 2094e8b255fb5406c7c2af5ce0ae8673c43b5c0b (diff) | |
| download | opencode-eeeb21ff8638eddd960afbd8f522c87d850d6183.tar.gz opencode-eeeb21ff8638eddd960afbd8f522c87d850d6183.zip | |
Revert "fix(app): stale read error"
This reverts commit 152df2428df84a1029be2b472b4a840cd94c966d.
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/pages/layout.tsx | 47 |
1 files changed, 21 insertions, 26 deletions
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index bd0315efb..f6165461b 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -10,9 +10,8 @@ import { ParentProps, Show, untrack, - type JSX, } from "solid-js" -import { A, useNavigate, useParams } from "@solidjs/router" +import { useNavigate, useParams } from "@solidjs/router" import { useLayout, LocalProject } from "@/context/layout" import { useGlobalSync } from "@/context/global-sync" import { Persist, persisted } from "@/utils/persist" @@ -20,7 +19,6 @@ import { base64Encode } from "@opencode-ai/util/encode" import { decode64 } from "@/utils/base64" import { ResizeHandle } from "@opencode-ai/ui/resize-handle" import { Button } from "@opencode-ai/ui/button" -import { Icon } from "@opencode-ai/ui/icon" import { IconButton } from "@opencode-ai/ui/icon-button" import { Tooltip } from "@opencode-ai/ui/tooltip" import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu" @@ -59,7 +57,6 @@ import { Titlebar } from "@/components/titlebar" import { useServer } from "@/context/server" import { useLanguage, type Locale } from "@/context/language" import { - childMapByParent, displayName, effectiveWorkspaceOrder, errorMessage, @@ -1846,7 +1843,7 @@ export default function Layout(props: ParentProps) { }} style={{ width: panelProps.mobile ? undefined : `${Math.max(layout.sidebar.width() - 64, 0)}px` }} > - <Show when={panelProps.project} keyed> + <Show when={panelProps.project}> {(p) => ( <> <div class="shrink-0 px-2 py-1"> @@ -1855,7 +1852,7 @@ export default function Layout(props: ParentProps) { <InlineEditor id={`project:${projectId()}`} value={projectName} - onSave={(next) => renameProject(p, next)} + onSave={(next) => renameProject(p(), next)} class="text-14-medium text-text-strong truncate" displayClass="text-14-medium text-text-strong truncate" stopPropagation @@ -1864,7 +1861,7 @@ export default function Layout(props: ParentProps) { <Tooltip placement="bottom" gutter={2} - value={p.worktree} + value={p().worktree} class="shrink-0" contentStyle={{ "max-width": "640px", @@ -1872,7 +1869,7 @@ export default function Layout(props: ParentProps) { }} > <span class="text-12-regular text-text-base truncate select-text"> - {p.worktree.replace(homedir(), "~")} + {p().worktree.replace(homedir(), "~")} </span> </Tooltip> </div> @@ -1883,7 +1880,7 @@ export default function Layout(props: ParentProps) { icon="dot-grid" variant="ghost" data-action="project-menu" - data-project={base64Encode(p.worktree)} + data-project={base64Encode(p().worktree)} class="shrink-0 size-6 rounded-md data-[expanded]:bg-surface-base-active" classList={{ "opacity-0 group-hover/project:opacity-100 data-[expanded]:opacity-100": !panelProps.mobile, @@ -1892,24 +1889,24 @@ export default function Layout(props: ParentProps) { /> <DropdownMenu.Portal mount={!panelProps.mobile ? state.nav : undefined}> <DropdownMenu.Content class="mt-1"> - <DropdownMenu.Item onSelect={() => showEditProjectDialog(p)}> + <DropdownMenu.Item onSelect={() => showEditProjectDialog(p())}> <DropdownMenu.ItemLabel>{language.t("common.edit")}</DropdownMenu.ItemLabel> </DropdownMenu.Item> <DropdownMenu.Item data-action="project-workspaces-toggle" - data-project={base64Encode(p.worktree)} - disabled={p.vcs !== "git" && !layout.sidebar.workspaces(p.worktree)()} - onSelect={() => toggleProjectWorkspaces(p)} + data-project={base64Encode(p().worktree)} + disabled={p().vcs !== "git" && !layout.sidebar.workspaces(p().worktree)()} + onSelect={() => toggleProjectWorkspaces(p())} > <DropdownMenu.ItemLabel> - {layout.sidebar.workspaces(p.worktree)() + {layout.sidebar.workspaces(p().worktree)() ? language.t("sidebar.workspaces.disable") : language.t("sidebar.workspaces.enable")} </DropdownMenu.ItemLabel> </DropdownMenu.Item> <DropdownMenu.Item data-action="project-clear-notifications" - data-project={base64Encode(p.worktree)} + data-project={base64Encode(p().worktree)} disabled={unseenCount() === 0} onSelect={clearNotifications} > @@ -1920,8 +1917,8 @@ export default function Layout(props: ParentProps) { <DropdownMenu.Separator /> <DropdownMenu.Item data-action="project-close-menu" - data-project={base64Encode(p.worktree)} - onSelect={() => closeProject(p.worktree)} + data-project={base64Encode(p().worktree)} + onSelect={() => closeProject(p().worktree)} > <DropdownMenu.ItemLabel>{language.t("common.close")}</DropdownMenu.ItemLabel> </DropdownMenu.Item> @@ -1941,7 +1938,7 @@ export default function Layout(props: ParentProps) { size="large" icon="plus-small" class="w-full" - onClick={() => navigateWithSidebarReset(`/${base64Encode(p.worktree)}/session`)} + onClick={() => navigateWithSidebarReset(`/${base64Encode(p().worktree)}/session`)} > {language.t("command.session.new")} </Button> @@ -1949,7 +1946,7 @@ export default function Layout(props: ParentProps) { <div class="flex-1 min-h-0"> <LocalWorkspace ctx={workspaceSidebarCtx} - project={p} + project={p()} sortNow={sortNow} mobile={panelProps.mobile} /> @@ -1959,7 +1956,7 @@ export default function Layout(props: ParentProps) { > <> <div class="shrink-0 py-4 px-3"> - <Button size="large" icon="plus-small" class="w-full" onClick={() => createWorkspace(p)}> + <Button size="large" icon="plus-small" class="w-full" onClick={() => createWorkspace(p())}> {language.t("workspace.new")} </Button> </div> @@ -1984,7 +1981,7 @@ export default function Layout(props: ParentProps) { <SortableWorkspace ctx={workspaceSidebarCtx} directory={directory} - project={p} + project={p()} sortNow={sortNow} mobile={panelProps.mobile} /> @@ -2096,11 +2093,9 @@ export default function Layout(props: ParentProps) { /> </div> <Show when={!layout.sidebar.opened() ? hoverProjectData()?.worktree : undefined} keyed> - {(worktree) => ( - <div class="absolute inset-y-0 left-16 z-50 flex" onMouseEnter={aim.reset}> - <SidebarPanel project={hoverProjectData()} /> - </div> - )} + <div class="absolute inset-y-0 left-16 z-50 flex" onMouseEnter={aim.reset}> + <SidebarPanel project={hoverProjectData()} /> + </div> </Show> <Show when={layout.sidebar.opened()}> <ResizeHandle |
