From 613b06a83dc272432a4d79dc38785362b33ad8b0 Mon Sep 17 00:00:00 2001 From: fireshaper Date: Wed, 4 Nov 2026 18:41:02 -0500 Subject: [PATCH] Step 29.8: Shipyard, Places, Start, Welcome and the remaining screens Co-Authored-By: Claude Opus 5.5 --- apps/web/src/components/AwaySummary.tsx | 2 +- apps/web/src/components/FleetViews.tsx | 32 ++++++++++++++++++++---- apps/web/src/components/PilotLogbook.tsx | 10 ++++---- apps/web/src/components/Service.tsx | 2 +- apps/web/src/components/Toasts.tsx | 4 +-- apps/web/src/components/Welcome.tsx | 6 ++--- apps/web/src/layout/PanelHost.tsx | 2 +- apps/web/src/screens/Fleet.tsx | 2 +- apps/web/src/screens/HQs.tsx | 4 ++- apps/web/src/screens/JobsTable.tsx | 4 +-- apps/web/src/screens/LocationBoards.tsx | 3 +-- apps/web/src/screens/Locations.tsx | 4 ++- apps/web/src/screens/Logbook.tsx | 2 +- apps/web/src/screens/Market.tsx | 13 +++++----- apps/web/src/screens/More.tsx | 8 ++++-- apps/web/src/screens/Settings.tsx | 2 +- apps/web/src/screens/StartScreen.tsx | 24 ++++++++---------- apps/web/src/screens/TutorialBoard.tsx | 10 ++++---- apps/web/src/ui/Sheet.tsx | 2 +- apps/web/test/layout.test.tsx | 3 +-- apps/web/test/location-boards.test.tsx | 2 -- 21 files changed, 81 insertions(+), 60 deletions(-) diff --git a/apps/web/src/components/AwaySummary.tsx b/apps/web/src/components/AwaySummary.tsx index 8294701..70d2427 100644 --- a/apps/web/src/components/AwaySummary.tsx +++ b/apps/web/src/components/AwaySummary.tsx @@ -352,7 +352,7 @@ function Totals({ summary }: { summary: Summary }) { return (
{figures.map(([label, value, tone]) => (
diff --git a/apps/web/src/components/FleetViews.tsx b/apps/web/src/components/FleetViews.tsx index f56c7c8..219d0cc 100644 --- a/apps/web/src/components/FleetViews.tsx +++ b/apps/web/src/components/FleetViews.tsx @@ -4,13 +4,35 @@ import { useLoadedPlayer } from "../state/actions"; /** Fleet's two views, Ships and Crew (decision 0.5.167). */ export function FleetViews() { const state = useLoadedPlayer(); - const views = [ - { to: "/fleet", label: `Ships ${state.ships.length}` }, - { to: "/pilots", label: `Crew ${state.pilots.length}` }, - ]; + return ( + + ); +} + +/** Places and HQs, under More (decision 0.5.167). */ +export function PlacesViews() { + const state = useLoadedPlayer(); + return ( + + ); +} + +function Views({ label, views }: { label: string; views: { to: string; label: string }[] }) { return (