feat(shifts): /shift→/shifts, clickable activity log (shared event-detail), booth-style full-height layout

Three changes to the shift hub, addressing the report:

1. Route rename /shift → /shifts (matches the plural "Turnet" label and the
   section). /shift and /setup/shifts both redirect to /shifts; the header link
   and the operator-landing fallback point at /shifts.

2. The activity-log rows are now CLICKABLE and open the same read-only
   event-detail modal the booth live feed uses (full signed payload + entry/exit
   snapshots + chain provenance) — previously they were static rows. Extracted
   EVENT_STYLE, the feed row, the detail modal, and their helpers out of
   BoothScreen into a shared apps/web/src/ui/event-detail.tsx imported by both the
   booth and the shift log, so the two render and behave identically and can't
   drift.

3. Reworked the /shifts layout to fill the viewport like /booth: a fixed
   title + filters, then a two-pane area (shift list | activity log) where each
   pane scrolls independently (min-h-0/flex-1 + overflow-y-auto) instead of the
   whole page growing. ShiftActivityLog is now a flex column with a fixed header
   and a scrollable list.

Verified at runtime (Playwright): /shift redirects to /shifts, an activity row
opens the detail modal, the layout fills height, and the booth still works (0
console errors after the extraction). build+lint 14/14.

Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
2026-06-21 14:58:50 +02:00
parent 2a9e6846a1
commit 35c10a7310
6 changed files with 327 additions and 336 deletions
+12
View File
@@ -1287,3 +1287,15 @@ relabelled to nav.shifts (plural: Turnet/Shifts). Removed the duplicate "Turnet"
/setup/shifts route + tab rendered the SAME ShiftsHistory as the standalone /shift). /setup/shifts now
redirects to /shift; the operator-landing fallback (shift:read user opening /setup) points at /shift.
nav.shift key left in the catalogs (now orphaned, harmless). Verified at runtime. build+lint 14/14.
## [2026-06-21] feat | /shift→/shifts; clickable activity log (shared event-detail); booth-style full-height layout
Three changes to the shift hub. (1) Renamed the route /shift→/shifts (matches the plural Turnet label
+ the section); /shift and /setup/shifts both redirect there. (2) The activity-log rows are now
CLICKABLE and open the SAME read-only event-detail modal the booth live feed uses (full signed payload
+ snapshots + chain provenance). Extracted EVENT_STYLE + the row + the modal + their helpers from
BoothScreen into a shared apps/web/src/ui/event-detail.tsx, imported by both — so the booth feed and the
shift log render/behave identically and can't drift. (3) Reworked the /shifts layout to fill the
viewport like /booth: a fixed title+filters, then a two-pane area (shift list | activity log) where each
pane scrolls independently (min-h-0/flex-1 + overflow-y-auto) instead of the whole page growing.
Verified at runtime (Playwright): /shift redirects, rows open the detail modal, layout fills height,
booth still works (0 console errors). build+lint 14/14.