diff options
| author | Adam <[email protected]> | 2026-03-03 07:19:17 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-03-03 07:19:24 -0600 |
| commit | 10c325810b626f1699f4d12de509b6375b7fe78a (patch) | |
| tree | eaeb4f7feef9154164aefbf0de84f4ce00c681e9 | |
| parent | fa45422bf9bfb79acfa5476e951af211d5f4283e (diff) | |
| download | opencode-10c325810b626f1699f4d12de509b6375b7fe78a.tar.gz opencode-10c325810b626f1699f4d12de509b6375b7fe78a.zip | |
fix(app): tighten up header elements
| -rw-r--r-- | packages/app/src/components/session/session-header.tsx | 19 | ||||
| -rw-r--r-- | packages/app/src/components/status-popover.tsx | 27 |
2 files changed, 22 insertions, 24 deletions
diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 94edb8258..bb4d98125 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -138,12 +138,12 @@ function useSessionShare(args: { globalSDK: ReturnType<typeof useGlobalSDK> currentSession: () => | { - id: string share?: { url?: string } } | undefined + sessionID: () => string | undefined projectDirectory: () => string platform: ReturnType<typeof usePlatform> }) { @@ -167,11 +167,11 @@ function useSessionShare(args: { }) const shareSession = () => { - const session = args.currentSession() - if (!session || state.share) return + const sessionID = args.sessionID() + if (!sessionID || state.share) return setState("share", true) args.globalSDK.client.session - .share({ sessionID: session.id, directory: args.projectDirectory() }) + .share({ sessionID, directory: args.projectDirectory() }) .catch((error) => { console.error("Failed to share session", error) }) @@ -181,11 +181,11 @@ function useSessionShare(args: { } const unshareSession = () => { - const session = args.currentSession() - if (!session || state.unshare) return + const sessionID = args.sessionID() + if (!sessionID || state.unshare) return setState("unshare", true) args.globalSDK.client.session - .unshare({ sessionID: session.id, directory: args.projectDirectory() }) + .unshare({ sessionID, directory: args.projectDirectory() }) .catch((error) => { console.error("Failed to unshare session", error) }) @@ -243,9 +243,9 @@ export function SessionHeader() { }) const hotkey = createMemo(() => command.keybind("file.open")) - const currentSession = createMemo(() => sync.data.session.find((s) => s.id === params.id)) + const currentSession = createMemo(() => (params.id ? sync.session.get(params.id) : undefined)) const shareEnabled = createMemo(() => sync.data.config.share !== "disabled") - const showShare = createMemo(() => shareEnabled() && !!currentSession()) + const showShare = createMemo(() => shareEnabled() && !!params.id) const sessionKey = createMemo(() => `${params.dir}${params.id ? "/" + params.id : ""}`) const view = createMemo(() => layout.view(sessionKey)) const os = createMemo(() => detectOS(platform)) @@ -346,6 +346,7 @@ export function SessionHeader() { const share = useSessionShare({ globalSDK, currentSession, + sessionID: () => params.id, projectDirectory, platform, }) diff --git a/packages/app/src/components/status-popover.tsx b/packages/app/src/components/status-popover.tsx index b441d1c5e..c61b31958 100644 --- a/packages/app/src/components/status-popover.tsx +++ b/packages/app/src/components/status-popover.tsx @@ -202,29 +202,26 @@ export function StatusPopover() { triggerAs={Button} triggerProps={{ variant: "ghost", - class: - "rounded-md h-[24px] pr-3 pl-0.5 gap-2 border border-border-weak-base bg-surface-panel shadow-none data-[expanded]:bg-surface-base-active", + class: "titlebar-icon w-6 h-6 p-0 box-border", + "aria-label": language.t("status.popover.trigger"), style: { scale: 1 }, }} trigger={ - <div class="flex items-center gap-0.5"> - <div class="size-4 flex items-center justify-center"> - <div - classList={{ - "size-1.5 rounded-full": true, - "bg-icon-success-base": overallHealthy(), - "bg-icon-critical-base": !overallHealthy() && server.healthy() !== undefined, - "bg-border-weak-base": server.healthy() === undefined, - }} - /> - </div> - <span class="text-12-regular text-text-strong">{language.t("status.popover.trigger")}</span> + <div class="flex size-4 items-center justify-center"> + <div + classList={{ + "size-1.5 rounded-full": true, + "bg-icon-success-base": overallHealthy(), + "bg-icon-critical-base": !overallHealthy() && server.healthy() !== undefined, + "bg-border-weak-base": server.healthy() === undefined, + }} + /> </div> } class="[&_[data-slot=popover-body]]:p-0 w-[360px] max-w-[calc(100vw-40px)] bg-transparent border-0 shadow-none rounded-xl" gutter={4} placement="bottom-end" - shift={-136} + shift={-168} > <div class="flex items-center gap-1 w-[360px] rounded-xl shadow-[var(--shadow-lg-border-base)]"> <Tabs |
