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/layout.tsx | 13 ++- packages/app/src/pages/session.tsx | 228 +++++++++++++++++++++++++++++++++++-- 2 files changed, 227 insertions(+), 14 deletions(-) (limited to 'packages/app/src/pages') diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx index b8e7c5934..a45c4d792 100644 --- a/packages/app/src/pages/layout.tsx +++ b/packages/app/src/pages/layout.tsx @@ -26,6 +26,7 @@ import { Tooltip } from "@opencode-ai/ui/tooltip" import { Collapsible } from "@opencode-ai/ui/collapsible" import { DiffChanges } from "@opencode-ai/ui/diff-changes" import { Spinner } from "@opencode-ai/ui/spinner" +import { Mark } from "@opencode-ai/ui/logo" import { getFilename } from "@opencode-ai/util/path" import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu" import { Session } from "@opencode-ai/sdk/v2/client" @@ -45,7 +46,7 @@ import { showToast, Toast, toaster } from "@opencode-ai/ui/toast" import { useGlobalSDK } from "@/context/global-sdk" import { useNotification } from "@/context/notification" import { Binary } from "@opencode-ai/util/binary" -import { Header } from "@/components/header" + import { useDialog } from "@opencode-ai/ui/context/dialog" import { useTheme, type ColorScheme } from "@opencode-ai/ui/theme" import { DialogSelectProvider } from "@/components/dialog-select-provider" @@ -873,6 +874,11 @@ export default function Layout(props: ParentProps) { return ( <>
+ + + + + -
(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 ( +
+ +
+
+
+ +