Fix broken production icons and rebuild mobile calendar as a Luma-style experience - #17
Merged
Merged
Conversation
…e experience Icon fix: - Vercel's uploader silently prunes any path containing node_modules, and Expo's web export emits icon fonts under assets/__node_modules/.pnpm/..., so every icon glyph 404'd in production. scripts/postexport.js now runs after expo export, flattens those files into assets/vendor/, and rewrites all references in the emitted js/css/html. Luma-style mobile calendar and events: - Calendar tab on phones now defaults to a date-grouped Agenda timeline (Today/Tomorrow headers, timeline spine, animated cards) with a segmented Agenda/Grid toggle; tapping an event opens its full page. - New My Events screen (Upcoming/Past with past-event search) listing everything you're going to, maybe attending, created, or scheduled, linked from the calendar header and profile menu. - Event page rewritten Luma-style: cover art, host row, info tiles, spots-left, Add to Google Calendar / download .ics / share actions, and a sticky RSVP bar that reflects "You're going" state. - New utils/calendarLinks.ts (ICS builder, Google Calendar URL, share/copy helpers) with unit tests; suite is 30/30. - New reusable SegmentedControl and AgendaList components with smooth, reduce-motion-aware animations. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011nrgpkJbvZ9JCf2VA2kKvJ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this fixes / adds
🔧 Broken icons in production (the tofu boxes)
Vercel's uploader silently prunes any path containing
node_modules, and Expo's web export emits its icon fonts underassets/__node_modules/.pnpm/...— so every icon glyph 404'd on the deployed site while local builds looked fine. A newscripts/postexport.jsstep (wired intobuild/vercel-build) flattens those files intoassets/vendor/and rewrites all references in the emitted JS/CSS/HTML. Verified live: the font files now return 200.📱 Luma-style mobile calendar
🎟️ My Events (list of everything you've signed up for)
New
/my-eventsscreen with Upcoming / Past tabs (past has search), covering events you're going to, maybe attending, created, or scheduled — each row badged accordingly. Linked from the calendar header and the profile menu.📄 Luma-style event page
Cover art, host row, icon info tiles (date, location, recurrence, attendance + spots left), Add to Google Calendar / Download .ics / Share actions, and a sticky RSVP bar that flips between "Register — I'm going", "Maybe", and a "You're going ✓" state.
🧩 Supporting pieces
utils/calendarLinks.ts: RFC 5545 ICS builder, Google Calendar URL, share/copy helpers — with 9 unit tests (suite now 30/30).SegmentedControlandAgendaListcomponents; all animations respect reduce-motion.Verification
tsc— 0 errors; ESLint clean;pnpm test:unit30/30.pnpm buildsucceeds; postexport flattens 37 vendor assets.🤖 Generated with Claude Code
https://claude.ai/code/session_011nrgpkJbvZ9JCf2VA2kKvJ
Generated by Claude Code