From 5bcd317ec6ffe6993dbeb429aacf627a6da5d8d2 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 13 Aug 2026 13:08:08 +0000 Subject: [PATCH] feat(studio): reorder Terminal tab; move Private Alpha badge to sidebar header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Terminal (disabled) now sits second to last: Overview / Logs / Terminal / Settings. - Move the "Private Alpha" badge off the Workers list title and onto the product menu sidebar header, next to the "Workers" title. Threaded via an optional productMenuBadge/titleBadge prop through ProjectLayout → ProductMenuBar (additive, no change for other products). Co-Authored-By: Claude Opus 4.6 Claude-Session: https://claude.ai/code/session_01XQ5b58nwfCGsifA7PCheQb --- .../Workers/WorkerDetail/WorkerDetail.tsx | 46 +++++++++++-------- .../layouts/Navigation/ProductMenuBar.tsx | 10 +++- .../layouts/ProjectLayout/index.tsx | 9 +++- .../layouts/WorkersLayout/WorkersLayout.tsx | 2 + .../pages/project/[ref]/workers/index.tsx | 8 +--- 5 files changed, 45 insertions(+), 30 deletions(-) diff --git a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx index 00a64f4dcf5..fc2137dc23a 100644 --- a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx +++ b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx @@ -52,6 +52,9 @@ import { type WorkerTab = 'overview' | 'logs' | 'settings' const WORKER_TABS: WorkerTab[] = ['overview', 'logs', 'settings'] +// Display order for the nav — Terminal is a disabled placeholder second to last. +const TAB_ORDER: Array = ['overview', 'logs', 'terminal', 'settings'] + const TAB_LABEL: Record = { overview: 'Overview', logs: 'Logs', @@ -197,26 +200,29 @@ export const WorkerDetail = () => { - {WORKER_TABS.map((item) => ( - - - - ))} - - - - - Terminal - - Soon - - - - Coming soon in private alpha - - + {TAB_ORDER.map((item) => + item === 'terminal' ? ( + + + + + Terminal + + Soon + + + + Coming soon in private alpha + + + ) : ( + + + + ) + )} diff --git a/apps/studio/components/layouts/Navigation/ProductMenuBar.tsx b/apps/studio/components/layouts/Navigation/ProductMenuBar.tsx index f36c6d8c4d9..11f6f3c2bd7 100644 --- a/apps/studio/components/layouts/Navigation/ProductMenuBar.tsx +++ b/apps/studio/components/layouts/Navigation/ProductMenuBar.tsx @@ -1,15 +1,18 @@ import { useFlag, useParams } from 'common' import Link from 'next/link' -import { PropsWithChildren } from 'react' +import { PropsWithChildren, ReactNode } from 'react' import { Button, cn } from 'ui' interface ProductMenuBarProps { title: string + /** Optional node rendered next to the title, e.g. a status badge. */ + titleBadge?: ReactNode className?: string } export const ProductMenuBar = ({ title, + titleBadge, children, className, }: PropsWithChildren) => { @@ -30,7 +33,10 @@ export const ProductMenuBar = ({ )} >
-

{title}

+
+

{title}

+ {titleBadge} +
{showExplorerCTA && (