summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages/layout
diff options
context:
space:
mode:
authorBrendan Allan <[email protected]>2026-04-16 14:10:23 +0800
committerGitHub <[email protected]>2026-04-16 06:10:23 +0000
commit97918500d4020a7b44f3636f23daabc8c477008b (patch)
tree158d312230d0522fa702272fafcca9af7e1df544 /packages/app/src/pages/layout
parente2c08039624ac7c799ea5ba6ce94e3c671a8ed7c (diff)
downloadopencode-97918500d4020a7b44f3636f23daabc8c477008b.tar.gz
opencode-97918500d4020a7b44f3636f23daabc8c477008b.zip
app: start migrating bootstrap data fetching to TanStack Query (#22756)
Diffstat (limited to 'packages/app/src/pages/layout')
-rw-r--r--packages/app/src/pages/layout/sidebar-workspace.tsx8
1 files changed, 5 insertions, 3 deletions
diff --git a/packages/app/src/pages/layout/sidebar-workspace.tsx b/packages/app/src/pages/layout/sidebar-workspace.tsx
index 9d74651b9..c1836fa8a 100644
--- a/packages/app/src/pages/layout/sidebar-workspace.tsx
+++ b/packages/app/src/pages/layout/sidebar-workspace.tsx
@@ -14,10 +14,11 @@ import { Spinner } from "@opencode-ai/ui/spinner"
import { Tooltip } from "@opencode-ai/ui/tooltip"
import { type Session } from "@opencode-ai/sdk/v2/client"
import { type LocalProject } from "@/context/layout"
-import { useGlobalSync } from "@/context/global-sync"
+import { loadSessionsQuery, useGlobalSync } from "@/context/global-sync"
import { useLanguage } from "@/context/language"
import { NewSessionItem, SessionItem, SessionSkeleton } from "./sidebar-items"
import { sortedRootSessions, workspaceKey } from "./helpers"
+import { useQuery } from "@tanstack/solid-query"
type InlineEditorComponent = (props: {
id: string
@@ -454,7 +455,8 @@ export const LocalWorkspace = (props: {
const sessions = createMemo(() => sortedRootSessions(workspace().store, props.sortNow()))
const booted = createMemo((prev) => prev || workspace().store.status === "complete", false)
const count = createMemo(() => sessions()?.length ?? 0)
- const loading = createMemo(() => !booted() && count() === 0)
+ const query = useQuery(() => ({ ...loadSessionsQuery(props.project.worktree) }))
+ const loading = createMemo(() => query.isPending && count() === 0)
const hasMore = createMemo(() => workspace().store.sessionTotal > count())
const loadMore = async () => {
workspace().setStore("limit", (limit) => (limit ?? 0) + 5)
@@ -471,7 +473,7 @@ export const LocalWorkspace = (props: {
mobile={props.mobile}
ctx={props.ctx}
showNew={() => false}
- loading={loading}
+ loading={() => query.isLoading}
sessions={sessions}
hasMore={hasMore}
loadMore={loadMore}