feat(app): sessions list improvements (#30941)

This commit is contained in:
Aarav Sareen 2026-06-06 04:35:38 +05:30 committed by GitHub
commit 1fd9c77744
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 84 additions and 127 deletions

View file

@ -1,4 +1,6 @@
import type { Session } from "@opencode-ai/sdk/v2/client"
import { createSimpleContext } from "@opencode-ai/ui/context"
import { base64Encode } from "@opencode-ai/core/util/encode"
import { createStore, produce } from "solid-js/store"
import { Persist, persisted } from "@/utils/persist"
import { ServerConnection, useServer } from "./server"
@ -18,6 +20,17 @@ export type Tab = SessionTab
export const tabHref = (tab: Tab) => `/${tab.dirBase64}/session/${tab.sessionId}`
export const tabKey = (tab: Tab) => `${tab.server}\n${tabHref(tab)}`
export function sessionHasOpenTab(tabs: Tab[], server: ServerConnection.Key, session: Session) {
const dirBase64 = base64Encode(session.directory)
return tabs.some(
(tab) =>
tab.type === "session" &&
tab.server === server &&
tab.dirBase64 === dirBase64 &&
tab.sessionId === session.id,
)
}
export const { use: useTabs, provider: TabsProvider } = createSimpleContext({
name: "Tabs",
gate: false,