Skip to content

Feature/past events#72

Open
Richman-Tan wants to merge 6 commits into
mainfrom
feature/past-events
Open

Feature/past events#72
Richman-Tan wants to merge 6 commits into
mainfrom
feature/past-events

Conversation

@Richman-Tan
Copy link
Copy Markdown
Contributor

This pull request implements a new "Past Events" section for the events page, featuring a responsive, filterable, and searchable grid of past event cards. The section is built with reusable, accessible React components and uses static mock data for now, with plans to replace it with CMS data in the future. The most important changes are as follows:

Past Events Section Feature:

  • Added PastEventsSection component with search, filtering, and "View More" pagination for browsing past events in a responsive grid layout. The section supports accessibility features and maintains a consistent user experience across filter/search changes.
  • Integrated the new PastEventsSection into the main EventsPage, replacing the placeholder with the actual past events UI.

Past Event Card Components:

  • Created PastEventCard component to display individual event details, including image, name, location, date, tags, and a hover overlay with a "See Photos" call-to-action.
  • Introduced ArrowRightIcon as a reusable SVG icon for navigation elements in event cards and buttons.

Mock Data and Types:

  • Added pastEventsData.ts with TypeScript types (PastEvent, PastEventTag, EventFilter), predefined filter options, and a static array of mock event data to power the UI.

Copilot AI review requested due to automatic review settings May 12, 2026 11:30
Copy link
Copy Markdown
Contributor

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 PR adds a client-side “Past Events” browsing experience to the Events page, including a searchable/filterable grid of past event cards backed by static mock data (intended to be replaced by CMS data later).

Changes:

  • Replaced the Events page placeholder with a PastEventsSection containing search, filter chips, and “View More” pagination.
  • Added PastEventCard (event card UI) and ArrowRightIcon (shared icon).
  • Introduced pastEventsData.ts with types, filter options, and mock past events data.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
web/src/app/events/page.tsx Renders the new Past Events section on the Events page.
web/src/app/events/_components/PastEventsSection.tsx Implements search, filtering, pagination, and responsive grid layout.
web/src/app/events/_components/pastEventsData.ts Adds mock data + types + filter list used by the UI.
web/src/app/events/_components/PastEventCard.tsx Adds a card UI for each past event with image, metadata, tags, and CTA overlay.
web/src/app/events/_components/ArrowRightIcon.tsx Adds a reusable right-arrow SVG icon component.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread web/src/app/events/_components/PastEventCard.tsx Outdated
Comment thread web/src/app/events/_components/PastEventCard.tsx
Comment thread web/src/app/events/_components/PastEventsSection.tsx Outdated
Comment thread web/src/app/events/_components/PastEventsSection.tsx
Richman-Tan and others added 2 commits May 12, 2026 23:38
…nctionality

Co-authored-by: Copilot <copilot@github.com>
Copilot AI review requested due to automatic review settings May 12, 2026 11:53
Copy link
Copy Markdown
Contributor

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

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Comment thread web/src/app/events/[slug]/gallery/page.tsx
Copy link
Copy Markdown
Collaborator

@joengy joengy left a comment

Choose a reason for hiding this comment

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

Hey Richamn, really great work on the grid for past events as well as the search bar + filter functionality. Just a heads up you'll have to deal with merge conflicts, but we're going with your implementation of this page so it shouldn't be too hard to fix. I've left some other comments regarding small things to change but it should be pretty easy to implement.

Comment thread web/src/app/events/_components/ArrowRightIcon.tsx Outdated
Comment thread web/src/app/events/_components/PastEventsSection.tsx
date: string
thumbnail: string
thumbnailAlt: string
tags: PastEventTag[]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Since we're keeping your EVENT_FILTERS over the loose pastEventCategories string array on main, just remember to delete the one in web/src/app/events/page.tsx:12 after rebase.

Comment thread web/src/app/events/_components/PastEventCard.tsx Outdated
Copilot AI review requested due to automatic review settings May 20, 2026 03:23
Copy link
Copy Markdown
Contributor

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

Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.

Comment on lines +4 to +10
params: Promise<{ slug: string }>
}

export default async function EventGalleryPage({
params,
}: Readonly<GalleryPageProps>) {
const { slug } = await params
Comment on lines +10 to +19
/**
* Maps each tag to a Tailwind background utility from the project palette
* (defined in globals.css). Keeps a tag's colour stable across cards.
*/
const TAG_COLOURS: Record<PastEventTag, string> = {
Food: 'bg-ssa-red/80',
Community: 'bg-ssa-red/80',
Games: 'bg-ssa-red/80',
AGM: 'bg-ssa-red/80',
}
type="search"
value={query}
onChange={(e) => handleQueryChange(e.target.value)}
placeholder="Search event..."
Comment on lines +4 to +6
import { FaArrowRight, FaMagnifyingGlass } from 'react-icons/fa6'
import PastEventCard from './PastEventCard'
import { EVENT_FILTERS, pastEvents, type EventFilter } from './pastEventsData'
Copy link
Copy Markdown
Collaborator

@oorjagandhi oorjagandhi left a comment

Choose a reason for hiding this comment

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

Looks really good! Some small UI fixes:

  • replace text-white to text-ssa-white
  • increase the hover blur and opacity on the image
  • make the icons on card same size as text
  • bump the card corner radius to match Figma
  • add a #000 at 25% opacity overlay across the full image

other than that looks really good thank you!!!

Copy link
Copy Markdown
Collaborator

@joengy joengy left a comment

Choose a reason for hiding this comment

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

Code looks ready to be merged. I just made a comment clarifying one tihng otherwise everything else looks good to me.

Comment on lines +10 to +19
/**
* Maps each tag to a Tailwind background utility from the project palette
* (defined in globals.css). Keeps a tag's colour stable across cards.
*/
const TAG_COLOURS: Record<PastEventTag, string> = {
Food: 'bg-ssa-red/80',
Community: 'bg-ssa-red/80',
Games: 'bg-ssa-red/80',
AGM: 'bg-ssa-red/80',
}
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is a good point, the design has the tags all in the red and it's being implemented the same way. If that is the case you can just set tags to all be the ssa red by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants