diff options
| author | Filip <[email protected]> | 2026-02-05 02:33:34 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-04 19:33:34 -0600 |
| commit | 4086a9ae8ec0fa32ee05b369e1f956564acaa4c6 (patch) | |
| tree | ffa2ecce5a610ba1e7e614b7ad98e6e2f44aa1e8 /packages | |
| parent | 2614342f979f067ddbd0e33e6884c8f8b92effdc (diff) | |
| download | opencode-4086a9ae8ec0fa32ee05b369e1f956564acaa4c6.tar.gz opencode-4086a9ae8ec0fa32ee05b369e1f956564acaa4c6.zip | |
fix(app): refresh workspace sessions on project switch (#12189)
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/app/src/pages/layout.tsx | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index 4ee54d306..903b9eaa1 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -2488,17 +2488,22 @@ export default function Layout(props: ParentProps) { } const LocalWorkspace = (props: { project: LocalProject; mobile?: boolean }): JSX.Element => { - const [workspaceStore, setWorkspaceStore] = globalSync.child(props.project.worktree) + const workspace = createMemo(() => { + const [store, setStore] = globalSync.child(props.project.worktree) + return { store, setStore } + }) const slug = createMemo(() => base64Encode(props.project.worktree)) - const sessions = createMemo(() => - workspaceStore.session - .filter((session) => session.directory === workspaceStore.path.directory) + const sessions = createMemo(() => { + const store = workspace().store + return store.session + .filter((session) => session.directory === store.path.directory) .filter((session) => !session.parentID && !session.time?.archived) - .toSorted(sortSessions(Date.now())), - ) + .toSorted(sortSessions(Date.now())) + }) const children = createMemo(() => { + const store = workspace().store const map = new Map<string, string[]>() - for (const session of workspaceStore.session) { + for (const session of store.session) { if (!session.parentID) continue const existing = map.get(session.parentID) if (existing) { @@ -2509,11 +2514,11 @@ export default function Layout(props: ParentProps) { } return map }) - const booted = createMemo((prev) => prev || workspaceStore.status === "complete", false) + const booted = createMemo((prev) => prev || workspace().store.status === "complete", false) const loading = createMemo(() => !booted() && sessions().length === 0) - const hasMore = createMemo(() => workspaceStore.sessionTotal > sessions().length) + const hasMore = createMemo(() => workspace().store.sessionTotal > sessions().length) const loadMore = async () => { - setWorkspaceStore("limit", (limit) => limit + 5) + workspace().setStore("limit", (limit) => limit + 5) await globalSync.project.loadSessions(props.project.worktree) } |
