From cab80f30e7e1126ffe70ff419b1255d75f9bd5f1 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Sun, 15 Mar 2026 15:52:10 -0700 Subject: [PATCH] refactor(rnetwork): move Open CRM to sub-nav header Remove standalone "Open CRM" button from graph view body and add "Open Twenty CRM" as an external link in the module sub-nav bar, next to Community CRM. Dashed border + margin-left:auto pushes it to the right edge for visual distinction. Co-Authored-By: Claude Opus 4.6 --- modules/rnetwork/mod.ts | 3 +-- server/shell.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/rnetwork/mod.ts b/modules/rnetwork/mod.ts index 2704a9d..eb00936 100644 --- a/modules/rnetwork/mod.ts +++ b/modules/rnetwork/mod.ts @@ -622,8 +622,7 @@ routes.get("/", (c) => { spaceSlug: space, modules: getModuleInfoList(), head: GRAPH3D_HEAD, - body: ` -`, + body: ``, scripts: ``, styles: ``, })); diff --git a/server/shell.ts b/server/shell.ts index 69f975e..2599983 100644 --- a/server/shell.ts +++ b/server/shell.ts @@ -1362,6 +1362,13 @@ const SUBNAV_CSS = ` border-color: var(--rs-border); font-weight: 500; } +.rapp-nav-pill--external { + margin-left: auto; + color: var(--rs-text-muted); + font-size: 0.75rem; + border: 1px dashed var(--rs-border); +} +.rapp-nav-pill--external:hover { color: var(--rs-text-primary); border-style: solid; } `; /** Build the module sub-nav bar from outputPaths + subPageInfos. */ @@ -1397,6 +1404,7 @@ function renderModuleSubNav(moduleId: string, spaceSlug: string, modules: Module ...items.map(it => `${it.icon ? escapeHtml(it.icon) + ' ' : ''}${escapeHtml(it.label)}` ), + ...(mod.externalApp ? [`Open ${escapeHtml(mod.externalApp.name)} ↗`] : []), ]; return `