Skip to content
This repository was archived by the owner on Jan 12, 2026. It is now read-only.
This repository was archived by the owner on Jan 12, 2026. It is now read-only.

Education Initiatives - Upcoming Events #50

@builderpepc

Description

@builderpepc

We will be grouping some of NEFAC's programs under an Education Initiatives category. Each program will have its own page, which will include some information about it in addition to upcoming and/or previous events depending on the program. This component will specifically be to implement the UI for upcoming presentations.

Image

Note - it's hard to see in this screenshot, but there is a rounded light gray rectangle surrounding the event list. You can currently find the design for this component on "Page 2" of the Figma, in the design for the First Amendment & Free Presss page - do not include the title above it, and try to generalize it so it can work for any program.

Let's define an interface for upcoming events:

// to represent an upcoming event for a particular education initiative program
interface UpcomingEvent {
	// a Date object representing the start date/time of the event
	startDate: Date;

	// event title
	title: string;

	// event location
	location: string;

	// optional URL the user can click on to register or learn more
	infoUrl?: string;
}

You should include the interface in your code and use it to define some mock data that can be passed into your component. The component should take in a list of UpcomingEvents as a property. Since the component won't be added to a page until #49 is done, you can create a testing page with that component (and the mock data) for now, and I'll remove it after reviewing.

The events should automatically be sorted from soonest (top) to latest (bottom) and limited to the first 5 events if there are more than 5 (use .slice()). If there are no events, show a user-friendly message like "There are no upcoming events for this program right now."

In the future, the UpcomingEvents will be fetched from some database or calendar, but you don't need to implement that functionality right now.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions