Skip to content

feat(swap): page chrome polish (title, NEW badge, export, seats copy)#262

Draft
jerryzhou196 wants to merge 3 commits into
feature/section-swapfrom
swap/page-polish
Draft

feat(swap): page chrome polish (title, NEW badge, export, seats copy)#262
jerryzhou196 wants to merge 3 commits into
feature/section-swapfrom
swap/page-polish

Conversation

@jerryzhou196

Copy link
Copy Markdown
Member

Stacked on #224. First of three PRs closing the gaps between the swap page and the approved mockups.

  • Page title is now Swap classes with a yellow NEW pill (was "Your schedule")
  • Export button (primary blue, download icon) at the right of the header row with a two-item menu — Add to Google Calendar / Download .ics file — reusing the profile page's secret_id export flow; hidden when there is no secretId (ephemeral/logged-out schedules)
  • Section cards now show seats as "6 of 120 open" instead of "114/120 Enrolled"
  • Removed two stray console.logs in SectionFinderPanel

Verified with eslint (clean for src/pages/swapPage) and tsc --noEmit (only the pre-existing json-stable-stringify config error, present on the base branch). No live-browser verification — please eyeball /swap locally.

🤖 Generated with Claude Code

- Retitle the page "Swap classes" with a NEW accent badge
- Add an Export menu (Google Calendar / .ics) reusing the profile
  page's secret_id export flow; hidden for ephemeral schedules
- Show open seats as "N of M open" per the approved mockup
- Drop stray console.logs from SectionFinderPanel

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
uwflow-frontend Ready Ready Preview, Comment Jun 10, 2026 3:46pm

# Conflicts:
#	src/pages/swapPage/SectionFinderPanel.tsx
#	src/pages/swapPage/SwapCalendar.tsx
# Conflicts:
#	src/pages/swapPage/SwapCalendar.tsx
#	src/pages/swapPage/SwapPage.tsx
jerryzhou196 added a commit that referenced this pull request Jun 10, 2026
Stacked on #262 (merge that first). Second of three PRs matching the
swap page to the approved mockups.

- **Logged out** → the calendar renders a hardcoded, non-interactive
sample week (MATH 239, CS 240, STAT 231, CS 241, FINE 100 — negative
section ids, dated today so it always lands in the current term tab)
behind the existing frosted overlay, now containing a lock card: grey
lock circle, "**Upload your schedule to swap**", "Log in and paste your
courses from Quest to start swapping sections.", and a yellow **Log in
to continue** button that opens `AUTH_MODAL` via `useModal`.
- **Logged in without a schedule** → unchanged Quest-paste upload card.
- `SwapCalendar` gains a `demoMode` prop that disables block clicks; the
course-select trigger and section finder are already inert with no
selection, and Export stays hidden (no `secretId`).
- The logged-out "ephemeral parse" flow
(`GET_SECTIONS_BY_CLASS_NUMBERS`) lost its only entry point under this
design and has now been removed entirely (the linter flagged it as dead
code).

Verified with eslint (clean for `src/pages/swapPage`) and `tsc --noEmit`
(only the pre-existing `json-stable-stringify` config error). No
live-browser verification — please check `/swap` logged-out locally.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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