ChicoryTV SPA: app shell (sidebar + top bar + routing) #82

Closed
opened 2026-07-02 01:07:18 +02:00 by timothy · 2 comments
Owner

Build the admin shell from design-system/templates/chicorytv-admin/Shell.jsx.

Do

  • 232px left sidebar: nav + health section; active item = accent rail + soft tint.
  • 52px top bar: search, Connect menu, and the top-right primary action slot present on every screen.
  • Client-side routing with the screen slots; theme switcher mounted.

Acceptance: shell matches the prototype across 3 themes; navigation between (placeholder) screens works. See docs/superpowers/specs/2026-07-01-chicorytv-ui-redesign-design.md + shell prototype.

Build the admin shell from `design-system/templates/chicorytv-admin/Shell.jsx`. **Do** - 232px left sidebar: nav + health section; active item = accent rail + soft tint. - 52px top bar: search, Connect menu, and the top-right primary action slot present on every screen. - Client-side routing with the screen slots; theme switcher mounted. **Acceptance:** shell matches the prototype across 3 themes; navigation between (placeholder) screens works. See `docs/superpowers/specs/2026-07-01-chicorytv-ui-redesign-design.md` + shell prototype.
timothy added the frontend label 2026-07-02 01:07:18 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:41 +02:00
timothy added a new dependency 2026-07-02 01:08:42 +02:00
timothy added a new dependency 2026-07-02 01:08:43 +02:00
timothy added this to the Design system (Claude Design ↔ prod) milestone 2026-07-02 01:08:44 +02:00
Author
Owner

Handoff — ready to pick up (unblocked)

Foundation is complete and merged on docs/59-ui-redesign-brief: #78 scaffold, #79 themes, #80 components, #81 API client — all closed. This issue's blockers are cleared.

Current tree

  • SPA lives in web/ (Vite + React + TS; scripts: dev/build/lint/test).
  • Components ported: web/src/components/{forms,dataDisplay,feedback,navigation}.tsx (+ components.css), re-exported from web/src/components/index.ts.
  • Tokens/themes wired via web/src/designSystem.ts; a web/src/shell.css stub already exists — extend it, don't recreate.
  • API client + auth in web/src/api/* (typed from web/src/api/generated/v1.d.ts); example query useChannelsQuery.ts.
  • Entry: web/src/App.tsx, web/src/main.tsx.

Build

  • Recreate the admin shell from the prototype design-system/templates/chicorytv-admin/Shell.jsx (visual match; use the ported primitives, not the prototype's internals).
  • 232px left sidebar (nav + health, active item = accent rail + soft tint); 52px top bar (search, Connect menu, top-right primary-action slot); mount the 3-theme switcher.
  • Add client-side routing (screen slots as placeholders for #83–#89, #93).

Acceptance: shell matches prototype across all 3 themes; nav between placeholder screens works; web build + tests green in CI.

After this + #92, the Design-sync workflow ready milestone is met.

### Handoff — ready to pick up (unblocked) Foundation is complete and merged on `docs/59-ui-redesign-brief`: #78 scaffold, #79 themes, #80 components, #81 API client — all closed. This issue's blockers are cleared. **Current tree** - SPA lives in `web/` (Vite + React + TS; scripts: `dev`/`build`/`lint`/`test`). - Components ported: `web/src/components/{forms,dataDisplay,feedback,navigation}.tsx` (+ `components.css`), re-exported from `web/src/components/index.ts`. - Tokens/themes wired via `web/src/designSystem.ts`; a `web/src/shell.css` **stub already exists** — extend it, don't recreate. - API client + auth in `web/src/api/*` (typed from `web/src/api/generated/v1.d.ts`); example query `useChannelsQuery.ts`. - Entry: `web/src/App.tsx`, `web/src/main.tsx`. **Build** - Recreate the admin shell from the prototype `design-system/templates/chicorytv-admin/Shell.jsx` (visual match; use the ported primitives, not the prototype's internals). - 232px left sidebar (nav + health, active item = accent rail + soft tint); 52px top bar (search, Connect menu, top-right primary-action slot); mount the 3-theme switcher. - Add client-side routing (screen slots as placeholders for #83–#89, #93). **Acceptance:** shell matches prototype across all 3 themes; nav between placeholder screens works; `web` build + tests green in CI. **After this + #92**, the *Design-sync workflow ready* milestone is met.
Author
Owner

Done

What was done: Built the ChicoryTV React admin shell from the prototype: 232px sidebar with grouped nav and health footer, 52px top bar with search, Connect menu, top-right primary action slot, mounted 3-theme switcher, and client-side routing across placeholder screen slots for Dashboard, Channels, New Channel, Guide, Schedules, Playouts, Collections, Libraries, and Settings. Added shell/routing/Connect tests and an implementation plan document.

Root cause: n/a

Files changed: web/src/App.tsx, web/src/shell.css, web/src/App.test.tsx, docs/superpowers/plans/2026-07-02-chicorytv-spa-app-shell.md

Verification: npm test -- --run src/App.test.tsx (14 passed); npm test -- --run (20 passed); npm run lint (clean); npm run build (TypeScript + Vite build succeeded); git diff --check (clean).

Deferred: Screen-specific implementations remain for downstream issues #83-#89/#93.

Follow-up issues: Existing downstream screen issues.

Docs updated: Added docs/superpowers/plans/2026-07-02-chicorytv-spa-app-shell.md.

Commit: 5fb3bb2e pushed to docs/59-ui-redesign-brief.

## Done **What was done**: Built the ChicoryTV React admin shell from the prototype: 232px sidebar with grouped nav and health footer, 52px top bar with search, Connect menu, top-right primary action slot, mounted 3-theme switcher, and client-side routing across placeholder screen slots for Dashboard, Channels, New Channel, Guide, Schedules, Playouts, Collections, Libraries, and Settings. Added shell/routing/Connect tests and an implementation plan document. **Root cause**: n/a **Files changed**: `web/src/App.tsx`, `web/src/shell.css`, `web/src/App.test.tsx`, `docs/superpowers/plans/2026-07-02-chicorytv-spa-app-shell.md` **Verification**: `npm test -- --run src/App.test.tsx` (14 passed); `npm test -- --run` (20 passed); `npm run lint` (clean); `npm run build` (TypeScript + Vite build succeeded); `git diff --check` (clean). **Deferred**: Screen-specific implementations remain for downstream issues #83-#89/#93. **Follow-up issues**: Existing downstream screen issues. **Docs updated**: Added `docs/superpowers/plans/2026-07-02-chicorytv-spa-app-shell.md`. Commit: `5fb3bb2e` pushed to `docs/59-ui-redesign-brief`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: timothy/ersatztv#82