Skip to content

Design B, Phase 2: Agenda, Report, Roles & timing rules (behind new_look) - #155

Draft
ShuhaoZQGG wants to merge 3 commits into
claude/redesign-b-p1from
claude/redesign-b-p2
Draft

ShuhaoZQGG wants to merge 3 commits into
claude/redesign-b-p1from
claude/redesign-b-p2

Conversation

@ShuhaoZQGG

Copy link
Copy Markdown
Contributor

Plan 13, Phase 2 of design B: the Agenda and Report tabs and the Roles & timing rules sheet.
Stacked on #154 (Phase 1, itself on #153); the diff is Phase 2 only.

Why

The approved boards B-G01–G04 (Agenda), B-R01–R04 (Report) and B-L08 (Roles & timing rules).

What changes

Only with new_look on:

  • Agenda
    • Empty state with "Paste from EasySpeak" and "Add a speaker", and the tip that the Timer tab still
      takes a typed name.
    • Rows: drag dots, an ON THE TIMER tag, finished rows with their time and colour (from the report),
      and the red needs-role row with its role picker. Edit and remove show on hover.
    • The "1 row needs a role" notice, and "Clear the agenda" behind a confirmation.
    • Paste sheet with "From EasySpeak" and "One per line" tabs. It shows "Found N speakers" before
      adding.
    • Add / edit sheet with the role's three times, and custom times for Custom.
  • Report
    • Empty state with "Go to the timer".
    • Rows with colour dot, role, inline comment, time, and last colour or OVER TIME, plus the grace note.
    • Copy report and Clear.
    • Club only (gated as today by clubFeaturesOn): the "Saved to " strip, History, and End
      meeting & share, now as sheets.
    • A "See Pro" pitch only while Pro can be bought (pro on), and never to a Pro plan.
  • Roles & timing rules: one row per role showing its times; one opens at a time to edit Green,
    Yellow, Red and Grace. Reset, remove, Add role, the club's list ("Using 's timings · Use mine"),
    sharing with the club, Reset all and Save. It replaces the old dialog in the new look (⋯ menu, "Edit
    rules", and the role list).
  • Code: useAgendaEditor, useReportView and useRulesEditor hold the logic of AgendaTab,
    ReportTab and EditRulesModal. It was moved unchanged: their JSX is byte-for-byte the same and their
    tests pass as written. The new views in apps/zoom-app/src/b/ call the same hooks.

Security

None. No new routes. The club archive and share use the existing endpoints.

Production impact

None while new_look is off. Today's tabs render exactly as before. Rollback is a revert.

Testing

  • npm test: 129 files, 2432 tests pass. New: AgendaReport.test.jsx, covering:
    • paste count and the needs-role pick
    • the add sheet, loading a row onto the timer, and clear with confirmation
    • report rows, copy, and the Pro pitch gating
    • the rules sheet listing, editing and saving, and Add role
  • npm run test:e2e: 67 passed. New cases in zoom.new-look.spec.js:
    • a one-per-line paste with a role pick, then timing from the agenda
    • an EasySpeak paste
    • an empty report, then a speech to copy
    • a rules edit that reaches the role list
  • npm run test:specs: 14 valid, no drift.
  • Checked by hand in the browser at 400 px: agenda rows with a needs-role row, the paste sheet's
    count, report rows with OVER TIME and a comment, the rules sheet.

Evidence (real Zoom client)

Held until plan 13's last phase, as asked.

Not verified

Held until the last phase:

  • new-look NL-13 to NL-16 (new), not run.
  • agenda-import and club-pro-gate (their covered code moved into hooks), with new_look off.

Look here first

  • apps/zoom-app/src/b/AgendaTabB.jsx: rows and the two sheets.
  • apps/zoom-app/src/b/ReportTabB.jsx: the club parts and the Pro pitch gate.
  • apps/zoom-app/src/b/RulesSheet.jsx: mounted only while open, as the old dialog was, so each open
    starts from the live rules.

useAgendaEditor, useReportView and useRulesEditor hold what AgendaTab,
ReportTab and EditRulesModal did, moved unchanged (their JSX is byte-for-byte
the same and their tests pass as written). Design B's views call the same
hooks.
Agenda: empty state with Paste from EasySpeak / Add a speaker, rows with drag
dots, ON THE TIMER, finished times and the red needs-role row, a paste sheet
that counts speakers before adding, an add / edit sheet. Report: rows with
colour, time and OVER TIME, copy, clear, the club archive, history and share
as sheets, the Pro pitch only while Pro can be bought. Roles & timing rules:
one row per role, one open at a time, the club's list and sharing.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs:zoom-test Factory: waiting for the real-Zoom station

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant