From a7c4f83ca2e4d5da94de3df0c210dbb36b0bae86 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 31 Dec 2025 10:22:11 -0600 Subject: fix(desktop): remove status bar, new elements in header --- packages/app/src/pages/session.tsx | 228 +++++++++++++++++++++++++++++++++++-- 1 file changed, 220 insertions(+), 8 deletions(-) (limited to 'packages/app/src/pages/session.tsx') diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 032a8375a..3e5884460 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -51,17 +51,26 @@ import { DialogSelectFile } from "@/components/dialog-select-file" import { DialogSelectModel } from "@/components/dialog-select-model" import { DialogSelectMcp } from "@/components/dialog-select-mcp" import { useCommand } from "@/context/command" -import { useNavigate, useParams } from "@solidjs/router" +import { A, useNavigate, useParams } from "@solidjs/router" import { UserMessage } from "@opencode-ai/sdk/v2" import { useSDK } from "@/context/sdk" import { usePrompt } from "@/context/prompt" import { extractPromptFromParts } from "@/utils/prompt" import { ConstrainDragYAxis, getDraggableId } from "@/utils/solid-dnd" -import { StatusBar } from "@/components/status-bar" -import { SessionMcpIndicator } from "@/components/session-mcp-indicator" -import { SessionLspIndicator } from "@/components/session-lsp-indicator" import { usePermission } from "@/context/permission" import { showToast } from "@opencode-ai/ui/toast" +import { useServer } from "@/context/server" +import { Button } from "@opencode-ai/ui/button" +import { DialogSelectServer } from "@/components/dialog-select-server" +import { SessionLspIndicator } from "@/components/session-lsp-indicator" +import { SessionMcpIndicator } from "@/components/session-mcp-indicator" +import { useGlobalSDK } from "@/context/global-sdk" +import { Popover } from "@opencode-ai/ui/popover" +import { Select } from "@opencode-ai/ui/select" +import { TextField } from "@opencode-ai/ui/text-field" +import { base64Encode } from "@opencode-ai/util/encode" +import { iife } from "@opencode-ai/util/iife" +import { Session } from "@opencode-ai/sdk/v2/client" function same(a: readonly T[], b: readonly T[]) { if (a === b) return true @@ -69,6 +78,212 @@ function same(a: readonly T[], b: readonly T[]) { return a.every((x, i) => x === b[i]) } +function Header(props: { onMobileMenuToggle?: () => void }) { + const globalSDK = useGlobalSDK() + const layout = useLayout() + const params = useParams() + const navigate = useNavigate() + const command = useCommand() + const server = useServer() + const dialog = useDialog() + const sync = useSync() + + const sessions = createMemo(() => (sync.data.session ?? []).filter((s) => !s.parentID)) + const currentSession = createMemo(() => sessions().find((s) => s.id === params.id)) + const shareEnabled = createMemo(() => sync.data.config.share !== "disabled") + const branch = createMemo(() => sync.data.vcs?.branch) + + function navigateToProject(directory: string) { + navigate(`/${base64Encode(directory)}`) + } + + function navigateToSession(session: Session | undefined) { + if (!session) return + navigate(`/${params.dir}/session/${session.id}`) + } + + return ( +
+ +
+
+
+ +