Signup page and navigation enhancements - #169
Conversation
|
Visit the preview URL for this PR (updated for commit a4de8e8): https://sunday-service-vr--pr169-signup-page-enhancem-u5tgd53h.web.app (expires Sun, 11 Jan 2026 18:47:01 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 58385af7bd5a89154351e3a6f5764ea3ef89db5c |
…erviceVR/sunday-service-vr into signup-page-enhancements
There was a problem hiding this comment.
Pull request overview
This PR refactors the preflight checklist functionality into a modular structure with custom hooks and dedicated components. The changes improve code organization and add new features for event management including social media messaging, lineup poster uploads, and better modal-based workflows.
Key changes:
- Refactored preflight checklist from a monolithic component into modular, reusable components and custom hooks
- Added
socialMediaMessagefield to the Event type for separate social media messaging - Fixed navigation bug where debug breadcrumb incorrectly pointed to "announcements"
- Removed the EventAnnouncements page and messaging navigation link, consolidating functionality into the preflight checklist
- Moved MessagePasteCard to a shared components directory for better reusability
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
webapp/src/util/types.ts |
Added optional socialMediaMessage field to Event type |
webapp/src/features/event/routes.tsx |
Removed announcements route, fixed debug breadcrumb link, updated preflight import path |
webapp/src/features/event/preflight/usePreflightHandlers.ts |
New custom hook managing preflight modal states and event save handlers |
webapp/src/features/event/preflight/useChecklistItems.ts |
New custom hook generating checklist items from event data |
webapp/src/features/event/preflight/types.ts |
New type definitions for checklist items and actions |
webapp/src/features/event/preflight/messaging/UnifiedMessageEditModal.tsx |
New reusable modal component for editing Discord and social media messages |
webapp/src/features/event/preflight/PreflightChecklistStep.tsx |
New component rendering individual checklist steps with action buttons |
webapp/src/features/event/preflight/PreflightChecklist.tsx |
Refactored main preflight component using new modular structure |
webapp/src/features/event/preflight/OutdatedStepsAccordion.tsx |
New component displaying deprecated checklist items |
webapp/src/features/event/preflight/LineupPosterModal.tsx |
New modal for uploading and managing lineup poster images |
webapp/src/features/event/preflight/EventStatusCard.tsx |
New component displaying event status and publish controls |
webapp/src/features/event/lineup/EventLineupSlot.tsx |
Updated to use getEventsByDjId for fetching DJ events |
webapp/src/features/event/lineup/EventLineup.tsx |
Updated import path for MessagePasteCard |
webapp/src/features/event/basic/EventDetails.tsx |
Updated import path for MessagePasteCard |
webapp/src/features/event/PreflightChecklist.tsx |
Deleted - replaced by modular implementation |
webapp/src/features/event/EventRoot.tsx |
Removed announcements navigation link |
webapp/src/features/event/EventAnnouncements.tsx |
Deleted - functionality moved to preflight checklist |
webapp/src/components/currentOrNextEvent/CurrentOrNextEvent.tsx |
Updated navigation link from announcements to preflight |
webapp/src/components/MessagePasteCard.tsx |
Moved from event/messaging directory to shared components |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| onSave: (updatedMessage: string) => void | Promise<void>; | ||
| messageType: MessageType; | ||
| getMessageFromEvent: (event: Event) => string; | ||
| generatePreview?: (event: Event, message: string) => string; |
There was a problem hiding this comment.
Type mismatch: The generatePreview prop is defined as (event: Event, message: string) => string, but it's being passed functions that only take one parameter (event: Event) => string (e.g., getDiscordMessage on line 91). Either update the type definition to make the second parameter optional, or update the function signature and its usage throughout the component to match the expected two-parameter signature.
| generatePreview?: (event: Event, message: string) => string; | |
| generatePreview?: (event: Event, message?: string) => string; |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
No description provided.