Skip to content

Fix mobile admin scroll, email BCC leak, and My Rooms rework (prod) - #18

Merged
pataniaeli merged 7 commits into
mainfrom
dev
Aug 25, 2026
Merged

Fix mobile admin scroll, email BCC leak, and My Rooms rework (prod)#18
pataniaeli merged 7 commits into
mainfrom
dev

Conversation

@pataniaeli

Copy link
Copy Markdown
Collaborator

See PR from most recent fix to dev

pataniaeli and others added 7 commits August 25, 2026 17:48
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The main content area has overflow-x-hidden, and the tab row had no
scroll container of its own, so tabs past the viewport edge (including
Advanced Settings) were unreachable on mobile.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Booking-updated and space-booking-confirmed emails put every recipient
in a shared to: array, so body members could see each other's email
addresses. Space-booking-cancelled exposed attendee emails the same
way via cc:. All three now send to a neutral address and bcc the real
recipients.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- #14: All Bookings gets search + status filters plus a List/Calendar
  toggle, replacing the single long undifferentiated list with a
  month-grid calendar option and lighter-weight filtering.
- #13: Senate members/leadership can now toggle which session types
  (Full Body, Weekly, Office Hours) show up, persisted in
  localStorage so the choice survives across sessions.
- #16: the Senate session-type badge no longer renders as a solid red
  block; it now uses muted, per-type tinted pills consistent with the
  rest of the site's status-badge styling.

Shared types/colors/formatters used by my-rooms, calendar-view, and
booking-detail-modal are consolidated into shared.ts instead of being
duplicated with the solid-badge styling baked in.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…n Settings

- Calendar is now the default My Rooms view instead of the list.
- Calendar entries (day cells and the expanded day panel) show the
  booking's team, not the room — the room stays as secondary detail.
- The Senate session-type filter moved out of My Rooms entirely and
  into a "Senate Session Types Shown in My Rooms" section in the
  Settings modal, gated on actually holding a Senate body membership
  (verified against board_memberships, any role). It's now a real
  per-user preference (senate_type_preferences jsonb column, same
  pattern as email_preferences) instead of a localStorage toggle, so
  it follows the user across devices. My Rooms refetches when the
  preference changes via a small window event, since the Settings
  modal can be open on top of it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The events query embeds event_tracking(...) as a one-to-one relation
(booking_id is event_tracking's primary key), so PostgREST returns it
as a single object, not an array. The page typed it as an array and
read event_tracking?.[0], which is always undefined on a real object
— so the checklist always initialized to unchecked from the DB
regardless of what was actually saved. It only looked checked because
of the optimistic local state update, which reset on the next load.

Also stopped swallowing a failed PATCH silently: the optimistic update
now rolls back if the save request doesn't come back ok, instead of
showing a checked box that was never written.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fix mobile admin scroll, email BCC leak, and My Rooms rework
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
chambers Ready Ready Preview Aug 25, 2026 11:00pm

@pataniaeli pataniaeli self-assigned this Aug 25, 2026
@pataniaeli
pataniaeli merged commit c9cb805 into main Aug 25, 2026
4 checks passed
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