From 440bbdbbf9176fb5c1711bb4098076fd15b87818 Mon Sep 17 00:00:00 2001 From: "Ryan Johnson (ntninja)" Date: Sun, 5 Jul 2026 00:38:46 +0000 Subject: [PATCH] =?UTF-8?q?chore(console):=20v1=20chrome=20trim=20?= =?UTF-8?q?=E2=80=94=20Switch=20event,=20wizard=20relaunch,=20and=20the=20?= =?UTF-8?q?settings=20gear=20retired?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RD-requested v1 simplification: - The header's '← Switch event' button is gone: the breadcrumb's Home/Events crumbs are the way back, and the context header stays purely informational. - The topbar 'Setup wizard' relaunch button is gone: the wizard still runs automatically once when an event is created, and everything it configures stays editable on the regular pages — a manual re-run had no use. - The settings gear (and its dialog) is gone: its only content was the manual bearer-token field, which v1 doesn't use — on the loopback console no token is needed at all, and when a privileged action ever does need one, the lazy TokenDialog prompt (unchanged) asks for it automatically. Co-Authored-By: Claude Fable 5 --- frontend/apps/rd-console/src/App.svelte | 158 +----------------- .../apps/rd-console/src/ContextHeader.svelte | 28 +--- .../apps/rd-console/tests/AudioHost.svelte | 1 + .../rd-console/tests/ContextHeader.test.ts | 10 +- 4 files changed, 16 insertions(+), 181 deletions(-) diff --git a/frontend/apps/rd-console/src/App.svelte b/frontend/apps/rd-console/src/App.svelte index 69be863..33294af 100644 --- a/frontend/apps/rd-console/src/App.svelte +++ b/frontend/apps/rd-console/src/App.svelte @@ -24,7 +24,7 @@ * routes between them and owns the session. */ import '@gridfpv/components/tokens.css'; - import { ToastHost, Dialog, Button, Field, Input, toast } from '@gridfpv/components'; + import { ToastHost } from '@gridfpv/components'; import { Session } from './lib/session.svelte.js'; import { mountRaceDayAudio } from './lib/raceDayAudio.svelte.js'; import ContextHeader from './ContextHeader.svelte'; @@ -230,23 +230,10 @@ } // ── Settings (the RD token, set/cleared up front) ────────────────────────── - let settingsOpen = $state(false); - let tokenInput = $state(''); - function openSettings() { - tokenInput = ''; - settingsOpen = true; - } - function saveToken() { - if (!tokenInput.trim()) return; - session.setToken(tokenInput.trim()); - settingsOpen = false; - toast.success('Control token saved for this session.'); - } - function clearToken() { - session.clearToken(); - tokenInput = ''; - toast.info('Control token cleared.'); - } + // v1 keeps NO manual settings surface: the control token is requested automatically by + // TokenDialog when a privileged action needs one (loopback needs none at all), and the + // setup wizard runs once on event creation (everything it sets stays editable on the + // pages). The old gear/settings dialog + "Setup wizard" relaunch button are gone. @@ -332,45 +319,9 @@
- setTab('live')} onswitchevent={leaveToPicker} /> + setTab('live')} />

{activeScreen?.label}

- -
@@ -421,33 +372,9 @@ {/if} - + - -
- - - -

- A token is only needed for privileged actions (creating an event, running a heat, registering, - marshaling). You'll be asked automatically when one is required. -

-
- {#snippet footer()} - {#if session.hasToken} - - {/if} - - {/snippet} -
-