Skip to content

fix(schedule): keep empty day headers in list view - #500

Open
chiptus wants to merge 1 commit into
mainfrom
fix-64/list-view-empty-day-groups
Open

chiptus wants to merge 1 commit into
mainfrom
fix-64/list-view-empty-day-groups

Conversation

@chiptus

@chiptus chiptus commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Set-level filters (type, vote, time-of-day) in the schedule list view used to make a whole day group disappear once its sets were filtered out, which also unmounted the filter sheet mid-interaction if it was opened from that day's header. Each day group now comes from filterScheduleDays's output directly (its contract already keeps non-matching days with empty stages), and empty groups show a "No sets match your filters." line instead of vanishing. The day picker still narrows to just the selected day.

UPL-64

Verification

  • Open the schedule list view, filter by set type to something only some days have; every day's header stays, emptied days show "No sets match your filters."
  • Open the filter sheet from a day group, then pick a filter that empties that same day; the sheet stays open and the day shows the empty state instead of unmounting.
  • Pick a single day in the day filter; only that day's header renders (set-level filters on top of it still show the empty state, not disappear).
  • Filter to something that empties every day; per-day headers with empty states render, not the global "No scheduled sets found" screen. Clear filters; sets return.
  • tests/e2e/schedule-type-filter.spec.ts, schedule-list-day-header.spec.ts, schedule-filter-sheet.spec.ts, schedule-vote-chips.spec.ts, schedule-vote-scope.spec.ts (13 tests) all pass locally; full unit suite (655 tests) passes; lint and typecheck clean.

Note: self code-review flagged the day-selection filter (selectedDay === "all" ? days : days.filter(d => d.date === selectedDay)) as now duplicated a third time (existing copies in TimelineToolbar.tsx and ScheduleLineupView.tsx). Left as-is here to keep this fix scoped to the two files the issue named — consolidating into a shared helper in scheduleFilter.ts would be a reasonable follow-up touching unrelated call sites.

🤖 Generated with Claude Code

https://claude.ai/code/session_011bftBYh39JGWmEMUSJ2xdY


Generated by Claude Code

…s match nothing

Set-level filters (type, vote, time) previously made a day's group vanish
entirely once its sets were filtered out, which unmounted the filter sheet
mid-interaction if it was opened from that day's header and made "no
matches today" indistinguishable from "this day doesn't exist". Build one
group per day from filterScheduleDays' output (which already keeps
non-matching days with empty stages) and show an empty-state line instead
of dropping the header. The day picker still narrows to the selected day.

Closes UPL-64

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011bftBYh39JGWmEMUSJ2xdY
Copilot AI lite review requested due to automatic review settings September 14, 2026 05:45
@vercel

vercel Bot commented Sep 14, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
upline Ready Ready Preview Sep 14, 2026 5:45am UTC

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.

🟢 Approval recommended

No unresolved issues were identified.

Pull request overview

Fixes schedule list filtering so empty day groups remain visible with an appropriate empty state.

Changes:

  • Preserves filtered day headers and selected-day behavior.
  • Adds per-day empty-state messaging.
  • Updates E2E coverage.
File summaries
File Change
tests/e2e/schedule-type-filter.spec.ts Tests empty days and filter-sheet persistence.
src/routes/festivals/$festivalSlug/editions/$editionSlug/schedule/list.tsx Builds groups from filtered schedule days.
src/pages/EditionView/tabs/ScheduleTab/list/ListDayGroup.tsx Renders the per-day empty state.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

Copy link
Copy Markdown

Playwright test results

passed  65 passed

Details

stats  65 tests across 21 suites
duration  1 minute, 26 seconds
commit  12c019f

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants