Conversation
…ring and map integration
…markers and popups
…tion and swipe gestures
…nd lightbox support
… clean up constants
12 tasks
There was a problem hiding this comment.
Pull request overview
This pull request implements three new auxiliary pages for the MSC website: Collaborators, Group Photos Gallery, and Events Calendar. The implementation includes interactive features like a Leaflet-based map for collaborators, a virtualized photo gallery with lightbox viewing, and an embedded Google Calendar.
Changes:
- Added database queries for collaborators and group photos with geospatial filtering and statistics
- Implemented interactive collaborator map with Leaflet, including list filtering and search
- Created virtualized photo gallery with lazy loading, lightbox viewer, and keyboard navigation
- Integrated Google Calendar embed with responsive views for desktop and mobile
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
src/lib/db/queries/photos.ts |
Database queries for group photos with year grouping and statistics |
src/lib/db/queries/collaborators.ts |
Database queries for collaborators with geospatial filtering |
src/components/ui/select.tsx |
Radix UI select component wrapper for dropdowns |
src/components/events/photo-lightbox.tsx |
Full-screen photo viewer with keyboard navigation |
src/components/events/photo-gallery.tsx |
Virtualized gallery using @tanstack/react-virtual |
src/components/events/photo-card.tsx |
Photo card with lazy loading and hover effects |
src/components/events/index.ts |
Export barrel for event components |
src/components/collaborator/collaborator-map.tsx |
Leaflet map integration with custom markers |
src/components/collaborator/collaborator-list.tsx |
Filterable list with map integration |
src/components/collaborator/collaborator-card.tsx |
Collaborator display card |
src/components/collaborator/index.ts |
Export barrel for collaborator components |
src/app/(public)/events/photos/page.tsx |
Group photos page with gallery |
src/app/(public)/events/calendar/page.tsx |
Events calendar page with embedded Google Calendar |
src/app/(public)/collaborators/page.tsx |
Collaborators page with map and filtering |
src/config/site.ts |
Added calendar URL configuration |
prisma/seed.ts |
Updated to generate 1000 mock photos using picsum.photos |
package.json & package-lock.json |
Added dependencies: leaflet, @types/leaflet, @radix-ui/react-select, @tanstack/react-virtual |
next.config.mjs |
Updated allowed image hosts to include picsum.photos |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
TKanX
added a commit
that referenced
this pull request
Jan 31, 2026
- Add XSS protection with escapeHtml() for popup content (collaborator-map)
- Replace personal email with public US Holidays calendar placeholder
- Replace sync require('leaflet') with dynamic import for proper SSR
- Remove markers from useEffect deps (intentional, with eslint-disable comment)
- Make photo stats logic more explicit with early return for empty state
- Add 150ms debounce to resize handler in photo-gallery
fd0c7d2 to
e5716fe
Compare
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.
Summary:
Implemented the auxiliary sections of the website, including a comprehensive Collaborators map/list, a virtualized Group Photos gallery, and an Events Calendar. These additions provide a richer view of the group's global network and community activities.
Changes:
Implemented Collaborators Page (
src/app/(public)/collaborators/page.tsx):Leafletvia a customCollaboratorMapcomponent to visualize collaborator locations globally.CollaboratorListwith country filtering and text search capabilities.Implemented Group Photos Page (
src/app/(public)/events/photos/page.tsx):PhotoGalleryusing@tanstack/react-virtualto efficiently render thousands of photos grouped by year.PhotoLightboxfor full-screen photo viewing with keyboard navigation and touch support.PhotoCardwithIntersectionObserverfor performant image loading.Implemented Calendar Page (
src/app/(public)/events/calendar/page.tsx):Developed Database Queries:
src/lib/db/queries/collaborators.tsfor fetching geospatial collaborator data and statistics.src/lib/db/queries/photos.tsfor efficient photo retrieval and grouping.UI Components & Enhancements:
src/components/ui/select.tsx(Radix UI wrapper) for dropdown filters.prisma/seed.tsto generate realistic mock data for thousands of group photos usingpicsum.photosand a calendar URL.Configuration:
next.config.mjsto allow images frompicsum.photosfor development seeding.