Skip to content

feat(auxiliary): Implement Collaborators, Events, and Calendar Pages#18

Merged
TKanX merged 27 commits intomainfrom
feature/17-implement-auxiliary-pages-collaborators-events-calendar
Jan 31, 2026
Merged

feat(auxiliary): Implement Collaborators, Events, and Calendar Pages#18
TKanX merged 27 commits intomainfrom
feature/17-implement-auxiliary-pages-collaborators-events-calendar

Conversation

@TKanX
Copy link
Copy Markdown
Member

@TKanX TKanX commented Jan 31, 2026

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):

    • Interactive Map: Integrated Leaflet via a custom CollaboratorMap component to visualize collaborator locations globally.
    • Filterable List: Created CollaboratorList with country filtering and text search capabilities.
    • Dynamic Stats: Displayed real-time counts of collaborators and countries.
  • Implemented Group Photos Page (src/app/(public)/events/photos/page.tsx):

    • Virtualized Gallery: Developed PhotoGallery using @tanstack/react-virtual to efficiently render thousands of photos grouped by year.
    • Lightbox Viewer: Added PhotoLightbox for full-screen photo viewing with keyboard navigation and touch support.
    • Lazy Loading: Implemented PhotoCard with IntersectionObserver for performant image loading.
  • Implemented Calendar Page (src/app/(public)/events/calendar/page.tsx):

    • Integrated a responsive Google Calendar embed.
    • Added a direct "Add to Google Calendar" button for easy subscription.
  • Developed Database Queries:

    • Added src/lib/db/queries/collaborators.ts for fetching geospatial collaborator data and statistics.
    • Added src/lib/db/queries/photos.ts for efficient photo retrieval and grouping.
  • UI Components & Enhancements:

    • Select Component: Added src/components/ui/select.tsx (Radix UI wrapper) for dropdown filters.
    • Map Styling: Implemented custom dark/light mode styles for Leaflet maps.
    • Seed Data: Updated prisma/seed.ts to generate realistic mock data for thousands of group photos using picsum.photos and a calendar URL.
  • Configuration:

    • Updated next.config.mjs to allow images from picsum.photos for development seeding.

TKanX added 22 commits January 30, 2026 16:57
@TKanX TKanX self-assigned this Jan 31, 2026
Copilot AI review requested due to automatic review settings January 31, 2026 02:51
@TKanX TKanX added the enhancement ✨ New feature or request label Jan 31, 2026
@TKanX TKanX linked an issue Jan 31, 2026 that may be closed by this pull request
12 tasks
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread src/components/collaborator/collaborator-map.tsx
Comment thread src/config/site.ts
Comment thread src/components/collaborator/collaborator-map.tsx Outdated
Comment thread src/components/collaborator/collaborator-map.tsx Outdated
Comment thread src/lib/db/queries/photos.ts
Comment thread prisma/seed.ts
Comment thread src/components/events/photo-gallery.tsx Outdated
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
@TKanX TKanX force-pushed the feature/17-implement-auxiliary-pages-collaborators-events-calendar branch from fd0c7d2 to e5716fe Compare January 31, 2026 03:11
@TKanX TKanX merged commit 1743666 into main Jan 31, 2026
2 checks passed
@TKanX TKanX deleted the feature/17-implement-auxiliary-pages-collaborators-events-calendar branch January 31, 2026 03:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement ✨ New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Auxiliary Pages (Collaborators, Events, Calendar)

2 participants