Skip to content

feat(phases): add live now/next to schedule#147

Open
chiptus wants to merge 4 commits into
mainfrom
claude/implement-138-5rxll1
Open

feat(phases): add live now/next to schedule#147
chiptus wants to merge 4 commits into
mainfrom
claude/implement-138-5rxll1

Conversation

@chiptus

@chiptus chiptus commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Adds a Live-phase experience: a dedicated "Now" schedule view (one row per stage: current set + that stage's next set) that Live editions land on by default, backed by a pure injected-clock classifier, plus Live copy in the shared phase banner. Hidden and route-guarded outside Live or below reveal level full, so hidden times never leak; no background timer. Closes #138.

Verification

  • With an edition at reveal full and dates spanning today, open the edition: it lands on Schedule → Now, shows the Live banner, and lists one row per stage with the current set (pulsing dot, "until HH:mm") and that stage's next set ("at HH:mm"), in festival time.
  • A stage whose next set starts later than another stage's still shows its own next set, not the globally nearest one.
  • Click a set name in a row: navigates to the set detail (voting available there).
  • Timeline and List views are unchanged and one tap away; the Now item only appears in the switcher when Live at full reveal.
  • Navigate to /schedule/now on a non-Live edition or below reveal full: redirected to the timeline; no set times visible anywhere below full.
  • Visit when nothing is playing and nothing is upcoming: the Now view shows a friendly empty state pointing at the timeline.

🤖 Generated with Claude Code

https://claude.ai/code/session_016AXf1EyBWLa985JwjYwvKX

Copilot AI review requested due to automatic review settings July 10, 2026 15:45
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@vercel

vercel Bot commented Jul 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
upline Ready Ready Preview, Comment Jul 20, 2026 7:33pm

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds “Live” phase enhancements to the Schedule tab by introducing a Now/Next lead-in section (backed by a pure, injected-clock classifier) and Live-specific copy in the shared phase banner, while ensuring the Now/Next UI is only shown when schedule reveal level is full.

Changes:

  • Introduces classifyNowNext(sets, now) for Live-mode now/next classification, plus unit tests covering boundary conditions and tie-handling.
  • Adds a Live-only NowNextSection to the Schedule tab that renders “On now” / “Up next” groups using existing MobileSetCard behavior.
  • Updates the shared PhaseBanner to show Live copy when the festival phase is live.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/pages/EditionView/tabs/ScheduleTab/NowNextSection.tsx Adds Live-only “On now / Up next” UI built from the classifier and existing set cards.
src/pages/EditionView/tabs/ScheduleTab.tsx Renders the new Now/Next section above existing schedule navigation/content.
src/pages/EditionView/PhaseBanner.tsx Adds Live-phase banner copy.
src/lib/nowNext.ts Implements the pure now/next classifier with injected now.
src/lib/nowNext.test.ts Adds unit tests for classifier behavior across edge cases and time boundaries.

Comment thread src/pages/EditionView/tabs/ScheduleTab/NowNextSection.tsx Outdated
claude added 3 commits July 20, 2026 19:14
Adds a pure now/next set classifier, a Live-only Now/Next section
leading the Schedule tab (reusing MobileSetCard), and Live copy in the
shared phase banner. Skipped below reveal level full; no background
timer. Closes #138.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AXf1EyBWLa985JwjYwvKX
Falls back to the sets query's stage_name when the stage lookup misses,
hides the stage badge entirely for stage-less sets, and loads stages
non-blocking so the Now/Next section never suspends the Schedule tab.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AXf1EyBWLa985JwjYwvKX
Replaces the Now/Next section that squeezed the timeline with a third
schedule view at /schedule/now: one compact row per stage showing the
current set and that stage's own next set. Live editions land there by
default; the view is guarded (and hidden from the switcher) outside
live or below reveal level full.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AXf1EyBWLa985JwjYwvKX
Comment thread src/lib/nowNext.ts Outdated
Comment thread src/pages/EditionView/tabs/ScheduleTab/now/NowBoard.tsx Outdated
Colocates the Now board in its route file, switches it to suspense
queries with a sets loader prefetch, and rewrites the classifier
comments as what/why JSDoc.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AXf1EyBWLa985JwjYwvKX
const { data: sets } = useSuspenseQuery(setsByEditionQuery(edition.id));
const { data: stages } = useSuspenseQuery(stagesByEditionQuery(edition.id));

const byStage = classifyNowNextByStage(sets, new Date());

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will cause the component to rerender every second, is that what we want?

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Festival phase: Live — now / next

3 participants