Skip to content

Schedule kind filter + brand-matched day styling + smooth scroll#17

Merged
Kitkatnik merged 3 commits intomainfrom
Kitkatnik/kind-filter
Apr 26, 2026
Merged

Schedule kind filter + brand-matched day styling + smooth scroll#17
Kitkatnik merged 3 commits intomainfrom
Kitkatnik/kind-filter

Conversation

@Kitkatnik
Copy link
Copy Markdown
Collaborator

Summary

  • Adds an All / Talk / Lightning / Embassy / Activity filter on both /schedule and /admin/schedule_items, backed by a junk-safe by_kind scope; filter state lives in the query string so filtered URLs are shareable and refresh-safe.
  • Restyles day sections and the day-nav to match blueridgeruby.com (combined "Wednesday, April 29ᵗʰ" h3, 4px navy item-table top-border, plain underlined day-nav links centered above the schedule).
  • Adds scroll-behavior: smooth (gated by prefers-reduced-motion) so day-nav anchor jumps glide instead of snapping.

Test plan

  • /schedule — click each Kind pill, confirm content filters and URL updates; reload a filtered URL and confirm it persists
  • /schedule?kind=garbage — page renders normally with "All" active (junk-safe)
  • Filter to a kind with zero public items — empty-state with "Clear filter" appears, day-nav hidden
  • Click a day in the day-nav — page smooth-scrolls to that section
  • /admin/schedule_items — same Kind filter behavior; empty-state shows when filter excludes everything

Adds a Kind filter (All / Talk / Lightning / Embassy / Activity) to
both the public Schedule page and the admin Schedule Items page,
backed by a junk-safe `by_kind` scope that returns all rows when the
URL param is missing or unknown. Filter state lives in the query string
so filtered URLs are shareable.

Day section visuals now mirror blueridgeruby.com/schedule: combined
"Wednesday, April 29th" heading with ordinal sup, 4px navy item-table
top-border, and plain underlined day-nav links (no pills). Kind filter
keeps a pill treatment because its active/inactive state is meaningful.
Adds `scroll-behavior: smooth` on `html`, gated by
`prefers-reduced-motion: no-preference` so users who request reduced
motion at the OS level keep instant jumps. The day-nav anchor links
(and any future in-page anchors) now glide instead of snapping.
@railway-app
Copy link
Copy Markdown

railway-app Bot commented Apr 26, 2026

🚅 Deployed to the ruby-embassy-pr-17 environment in ruby-embassy

Service Status Web Updated (UTC)
ruby-embassy ✅ Success (View Logs) Web Apr 26, 2026 at 5:32 am

@railway-app railway-app Bot temporarily deployed to ruby-embassy / ruby-embassy-pr-17 April 26, 2026 05:21 Destroyed
# Conflicts:
#	app/views/admin/schedule_items/index.html.erb
@railway-app railway-app Bot temporarily deployed to ruby-embassy / ruby-embassy-pr-17 April 26, 2026 05:30 Destroyed
@Kitkatnik Kitkatnik merged commit 1055702 into main Apr 26, 2026
6 checks passed
@Kitkatnik Kitkatnik deleted the Kitkatnik/kind-filter branch April 26, 2026 07:02
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.

1 participant