feat(schedule): add days/stages lineup views - #149
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Implements progressive rendering for the Schedule tab based on schedule_reveal_level, replacing the “not yet published” placeholder with day- and stage-grouped lineup views at lower reveal levels while preserving the existing Timeline/List time-based layouts at full.
Changes:
- Swap Timeline/List sub-tabs to render a shared
ScheduleLineupViewwhen exact times can’t be shown. - Add new lineup components for
days(day-grouped list) andstages(stage cards grouped by day), plus a reveal-aware filters panel. - Remove the old “not revealed” gating from the
TimelineandListSchedulecomponents so gating happens at the tab/view level.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/pages/EditionView/tabs/ScheduleTab/TimelineTab.tsx | Uses useScheduleReveal() to switch between the existing timeline and the new lineup view when times aren’t available. |
| src/pages/EditionView/tabs/ScheduleTab/list/ListTab.tsx | Uses useScheduleReveal() to switch between existing list+filters and the new lineup view when times aren’t available. |
| src/pages/EditionView/tabs/ScheduleTab/list/ListSchedule.tsx | Removes reveal-level placeholder gating so the parent tab controls the non-full rendering. |
| src/pages/EditionView/tabs/ScheduleTab/lineup/StagesLineupGrid.tsx | New stage-by-day grid view for the stages reveal level. |
| src/pages/EditionView/tabs/ScheduleTab/lineup/ScheduleLineupView.tsx | New shared lineup rendering path for Timeline/List below full, including reveal-level gating and shared filters. |
| src/pages/EditionView/tabs/ScheduleTab/lineup/LineupSetItem.tsx | New set card UI used by the lineup views. |
| src/pages/EditionView/tabs/ScheduleTab/lineup/LineupFilters.tsx | New reveal-aware filters UI (day-only at days, day+stage at stages). |
| src/pages/EditionView/tabs/ScheduleTab/lineup/DaysLineupView.tsx | New day-grouped lineup list for the days reveal level. |
| src/pages/EditionView/tabs/ScheduleTab/horizontal/Timeline.tsx | Removes reveal-level placeholder gating so the parent tab controls the non-full rendering. |
7a95abf to
cd0eddc
Compare
…al levels Adds a shared Lineup view (day-grouped list, or stage x day grid) rendered by both Timeline and List sub-tabs when schedule_reveal_level is below full, replacing the generic placeholder. Filters follow the level: day only at "days", day + stage at "stages". draft and full are unchanged. Closes #47
Fix stage-grid set order leaking real performance sequence (sort alphabetically like the days view instead of by real start time), hide the "all times" badge when times aren't revealed yet, and gate the placeholder on canShowDay instead of an implicit level check.
Seed four read-only fixture editions (draft/days/stages/full) under a dedicated "reveal-test" festival so parallel test workers never need to mutate a shared row to exercise each reveal level.
Timeline and List render the same lineup view until schedule_reveal_level is "full", so the tab switcher was a no-op below that - hide it entirely instead of showing two tabs that look identical.
- TimelineTab: consolidate the canShowTime branches into one ternary per review suggestion - LineupSetItem: only render the set link when slug is present, to avoid a broken /sets/ link - ScheduleLineupView: split into a wrapper that bails on draft before a child component fetches sets/stages, avoiding an unnecessary query
e6bbea5 to
ab9c100
Compare
- consolidate ListTab's FestivalTimeBadge into the canShowTime branch - drop redundant comment in ScheduleLineupView
Schedule tab now renders a day-grouped lineup or a stage x day grid instead of the placeholder at
days/stagesreveal levels, with filters that follow the level.Timeline and List sub-tabs share this one Lineup view below
full, since neither's time-based layout is meaningful without exact times.Closes #47
Verification
schedule_reveal_level = draft: Schedule tab (both Timeline/List) shows the unchanged "Schedule not yet published" placeholder.days: Schedule tab shows day headers (Friday/Saturday/...) with set cards, no stage badge or time; Filters panel offers only a Day select.stages: Schedule tab shows a day-sectioned grid of stage cards, still no times; Filters panel offers Day + Stage.full: Timeline and List tabs render exactly as before (horizontal timeline / time-slot list), unchanged.Generated by Claude Code