SkateSpots/src/pages
shakespeare.diy 1c295e96e2 Improve Create Tour: consistent schedules, calendar export & punk redesign
- Add a unified Schedule section across all four tour categories:
  - Local: choose a fixed session (date+time) or flexible/by-appointment
  - National/International: required departure + optional return trip dates
  - Destruction: existing competition window, now with end>=start validation
- Reuse start-date/end-date tags for every category (parser already supported them)
- Fix datetime handling: dedicated toDateInput/inputToSecs helpers so date and
  datetime-local inputs round-trip correctly (previous mix of toLocalInput +
  type="date" was inconsistent)
- Consistent, logical mandatory-field validation with clear required markers
- Redesign the header into an immersive, category-tinted, grunge-striped banner
  and rebuild the category selector as elegant glowing cards
- New calendar utilities (.ics + Google Calendar) and AddToCalendar component
- TourDetailPage is now fully category-aware (badge, guide label, duration,
  SEO title) with a Schedule card + Add to Calendar for attendees
- TourCard shows the schedule for all categories (time for local sessions)
- Update NIP.md to document start-date/end-date across categories

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
2026-09-09 22:16:16 +07:00
..
AboutPage.tsx #5 Reframe 'permanent/can't delete' copy around user data ownership & relay choice (onboarding, relay education, about) 2026-08-27 09:59:43 +07:00
AmberCallbackPage.tsx Harden all Amber signing paths against empty-id / bare-signature responses 2026-09-03 22:05:25 +07:00
BecomeArtistPage.tsx Lab: add Designer/Artist, Graffiti, Tattoo, Trainer/Physio & Musician crafts (kinds 35007–35011) 2026-08-10 20:28:59 +07:00
BecomeBuilderPage.tsx The Lab: warn before a "Become a …" form silently overwrites an existing profile (1.2.28) 2026-09-07 22:06:49 +07:00
BecomeCoachPage.tsx The Lab: warn before a "Become a …" form silently overwrites an existing profile (1.2.28) 2026-09-07 22:06:49 +07:00
BecomeEditorPage.tsx The Lab: warn before a "Become a …" form silently overwrites an existing profile (1.2.28) 2026-09-07 22:06:49 +07:00
BecomeFilmerPage.tsx The Lab: warn before a "Become a …" form silently overwrites an existing profile (1.2.28) 2026-09-07 22:06:49 +07:00
BecomeGraffitiPage.tsx Lab: add Designer/Artist, Graffiti, Tattoo, Trainer/Physio & Musician crafts (kinds 35007–35011) 2026-08-10 20:28:59 +07:00
BecomeJudgePage.tsx Add Judges tab to The Lab 2026-08-27 15:30:43 +07:00
BecomeMusicianPage.tsx Lab: add Designer/Artist, Graffiti, Tattoo, Trainer/Physio & Musician crafts (kinds 35007–35011) 2026-08-10 20:28:59 +07:00
BecomePhotographerPage.tsx The Lab: warn before a "Become a …" form silently overwrites an existing profile (1.2.28) 2026-09-07 22:06:49 +07:00
BecomeSkaterPage.tsx Skater profile: browse real map spots for home spot + always use kind-0 profile pic 2026-09-02 21:44:12 +07:00
BecomeTattooPage.tsx Lab: add Designer/Artist, Graffiti, Tattoo, Trainer/Physio & Musician crafts (kinds 35007–35011) 2026-08-10 20:28:59 +07:00
BecomeTrainerPage.tsx Lab: add Designer/Artist, Graffiti, Tattoo, Trainer/Physio & Musician crafts (kinds 35007–35011) 2026-08-10 20:28:59 +07:00
BountyLeaderboardPage.tsx fix: restore full skate-spots source tree from misplaced src/src/ copy 2026-06-15 22:18:28 +07:00
CoachDetailPage.tsx Fix final 2 type errors: cast profile through unknown in CoachDetailPage, remove invalid variant/size props from ZapButton in TourDetailPage 2026-09-03 21:23:32 +07:00
CollectionDetailPage.tsx fix: restore full skate-spots source tree from misplaced src/src/ copy 2026-06-15 22:18:28 +07:00
CommunityStatsPage.tsx Fix 78 pre-existing TypeScript errors surfaced by npm test 2026-09-03 21:18:02 +07:00
ContactsPage.tsx Private Contacts: fetch-before-write to prevent list clobber 2026-09-07 20:36:01 +07:00
ConversationPage.tsx Amber UX: honest multi-approval hint for encrypted chat/DM sends 2026-09-07 20:08:39 +07:00
CreateCrewPage.tsx Redesign create-crew into a guided, idiotproof wizard 2026-09-03 00:44:59 +07:00
CreateEventPage.tsx Fix 78 pre-existing TypeScript errors surfaced by npm test 2026-09-03 21:18:02 +07:00
CreateListingPage.tsx Fix 78 pre-existing TypeScript errors surfaced by npm test 2026-09-03 21:18:02 +07:00
CreateShopPage.tsx Shops: preserve unmanaged tags on edit + drop debug log (1.2.31) 2026-09-07 22:29:51 +07:00
CreateSpotPage.tsx Spot form: enforce required spot type, guard submit during Quick Snap upload, drop debug log (1.2.26) 2026-09-07 21:51:59 +07:00
CreateTourPage.tsx Improve Create Tour: consistent schedules, calendar export & punk redesign 2026-09-09 22:16:16 +07:00
CrewDetailPage.tsx Make Crew Agent genuinely crew-aware; swap bee emoji for Sasquatch avatar 2026-09-03 18:55:54 +07:00
CrewsPage.tsx Add "The Part" — crew video/montage (YouTube + Instagram) 2026-09-02 23:59:50 +07:00
DirectMessagesPage.tsx DM inbox: real unread indicators (was hardcoded to 0) 2026-09-03 18:35:13 +07:00
EditCrewPage.tsx Step 3: Crews — map-anchored collective feature (kind 35006) 2026-07-24 13:59:50 +07:00
EditEventPage.tsx EditEventPage: stop stripping unmanaged tags on edit (linked spots/crews, entry fee, Pro listing) (1.2.29) 2026-09-07 22:10:34 +07:00
EditShopPage.tsx Shops: preserve unmanaged tags on edit + drop debug log (1.2.31) 2026-09-07 22:29:51 +07:00
EditSpotPage.tsx Spot form: enforce required spot type, guard submit during Quick Snap upload, drop debug log (1.2.26) 2026-09-07 21:51:59 +07:00
EditTourPage.tsx Add tour editing — the gap flagged in the addressable-events audit (1.2.33) 2026-09-07 22:42:34 +07:00
EventDetailPage.tsx Fix event UX correctness: live countdown, cancellation banner, NIP-52 tag cleanup 2026-09-03 14:33:28 +07:00
EventsPage.tsx Add month-calendar view for events & tours (1.2.34) 2026-09-07 22:52:52 +07:00
FAQPage.tsx fix(mobile): redesign wallet page UI for mobile + global mobile polish 2026-07-23 16:35:49 +07:00
FoodPage.tsx Audit fixes: harden Amber signEvent response handling, fix web AmberSigner signEvent naming, add Blossom upload fallbacks, sanitize untrusted URLs in FoodPage/CreateTourPage 2026-09-03 20:20:08 +07:00
GearSwapPage.tsx UX audit fixes: iOS directions, Me tab profile link, onboarding banner, empty states, stats deltas, newsletter pill 2026-07-23 21:36:33 +07:00
GlossaryPage.tsx Glossary: drop difficulty levels, expand & correct tricks 2026-07-29 23:08:37 +07:00
Index.tsx Various UI cleanups: remove Nostr footer link, hide Map&Earn, update NostrHub links 2026-06-27 21:27:10 +07:00
LabPage.tsx Use vector skater glyph in Lab cross-link (1.3.12) 2026-09-09 11:20:19 +07:00
LicensePage.tsx Fix ESLint gate: scope ignores to app source (exclude android/.agents/cvm-server/public html/scripts), add index.html title, downgrade unused-vars & no-explicit-any to warnings, fix real lint errors (SkateGlobe unused-expr, EventsPage prefer-const, LicensePage Infinity shadow, useless-escape in SasquatchGuide/RiderCardPage, stale eslint-disable directives) 2026-09-03 21:30:56 +07:00
MapPage.tsx Instant cold-start: query persistence, optimistic geolocation, skeleton pins 2026-09-09 21:58:22 +07:00
MarketplacePage.tsx fix: restore full skate-spots source tree from misplaced src/src/ copy 2026-06-15 22:18:28 +07:00
NewsletterPage.tsx feat(ux): graceful image fallbacks for broken content images (1.2.18) 2026-09-07 19:46:40 +07:00
NIP19Page.tsx feat(ux): graceful image fallbacks for broken content images (1.2.18) 2026-09-07 19:46:40 +07:00
NotFound.tsx New project created with Shakespeare 2026-06-15 19:49:07 +07:00
OnboardingPage.tsx Fix signup flow skipping profile + recovery steps (1.3.16) 2026-09-09 11:34:23 +07:00
PrivacyPage.tsx Fix 78 pre-existing TypeScript errors surfaced by npm test 2026-09-03 21:18:02 +07:00
PyramidPage.tsx fix: restore full skate-spots source tree from misplaced src/src/ copy 2026-06-15 22:18:28 +07:00
RiderCardPage.tsx Fix ESLint gate: scope ignores to app source (exclude android/.agents/cvm-server/public html/scripts), add index.html title, downgrade unused-vars & no-explicit-any to warnings, fix real lint errors (SkateGlobe unused-expr, EventsPage prefer-const, LicensePage Infinity shadow, useless-escape in SasquatchGuide/RiderCardPage, stale eslint-disable directives) 2026-09-03 21:30:56 +07:00
SettingsPage.tsx Citrine audit: endpoint fallback, a11y, reduced-motion, UX polish (1.3.6) 2026-09-09 10:54:22 +07:00
ShopDetailPage.tsx feat(ux): graceful image fallbacks for broken content images (1.2.18) 2026-09-07 19:46:40 +07:00
SignersPage.tsx fix: restore full skate-spots source tree from misplaced src/src/ copy 2026-06-15 22:18:28 +07:00
SkatersPage.tsx Add soft NIP-05 verification for skaters (open directory + "Verified" filter) 2026-09-02 21:51:11 +07:00
SpotCollectionsPage.tsx fix: restore full skate-spots source tree from misplaced src/src/ copy 2026-06-15 22:18:28 +07:00
SpotDetailPage.tsx feat(ux): graceful image fallbacks for broken content images (1.2.18) 2026-09-07 19:46:40 +07:00
StashPage.tsx Stash: prevent data-loss clobber on save + confirm before deleting gear 2026-09-07 20:31:48 +07:00
SupportersPage.tsx Fix 78 pre-existing TypeScript errors surfaced by npm test 2026-09-03 21:18:02 +07:00
TourDetailPage.tsx Improve Create Tour: consistent schedules, calendar export & punk redesign 2026-09-09 22:16:16 +07:00
WalletPage.tsx Fix map search input visibility; align header sizes; de-dupe map Quick Actions 2026-07-24 10:24:52 +07:00