fix(app): refresh workspace sessions on project switch (#12189)

This commit is contained in:
Filip
2026-02-05 02:33:34 +01:00
committed by GitHub
parent 2614342f97
commit 4086a9ae8e

View File

@@ -2488,17 +2488,22 @@ export default function Layout(props: ParentProps) {
} }
const LocalWorkspace = (props: { project: LocalProject; mobile?: boolean }): JSX.Element => { 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 slug = createMemo(() => base64Encode(props.project.worktree))
const sessions = createMemo(() => const sessions = createMemo(() => {
workspaceStore.session const store = workspace().store
.filter((session) => session.directory === workspaceStore.path.directory) return store.session
.filter((session) => session.directory === store.path.directory)
.filter((session) => !session.parentID && !session.time?.archived) .filter((session) => !session.parentID && !session.time?.archived)
.toSorted(sortSessions(Date.now())), .toSorted(sortSessions(Date.now()))
) })
const children = createMemo(() => { const children = createMemo(() => {
const store = workspace().store
const map = new Map<string, string[]>() const map = new Map<string, string[]>()
for (const session of workspaceStore.session) { for (const session of store.session) {
if (!session.parentID) continue if (!session.parentID) continue
const existing = map.get(session.parentID) const existing = map.get(session.parentID)
if (existing) { if (existing) {
@@ -2509,11 +2514,11 @@ export default function Layout(props: ParentProps) {
} }
return map 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 loading = createMemo(() => !booted() && sessions().length === 0)
const hasMore = createMemo(() => workspaceStore.sessionTotal > sessions().length) const hasMore = createMemo(() => workspace().store.sessionTotal > sessions().length)
const loadMore = async () => { const loadMore = async () => {
setWorkspaceStore("limit", (limit) => limit + 5) workspace().setStore("limit", (limit) => limit + 5)
await globalSync.project.loadSessions(props.project.worktree) await globalSync.project.loadSessions(props.project.worktree)
} }