Leadership Page Integration #63
No reviewers
Labels
No labels
accessibility
api
auth.js
backend
copy
database
defect
dependencies
design
discussion
documentation
duplicate
enhancement
epic
feature
front-end
good first issue
help wanted
invalid
next.js
noscript
on hold
operations
optimization
postgresql
prisma
prototype
question
react
spike
stale
story
tailwind
vulnerability
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
SSE/WebsiteTheSSEquel!63
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev/leadership-page"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Leadership Page Integration
Description
User Story
As a website visitor, I want to easily access information about the leaders and committees of SSEqual, so that I can learn more about the organization's team and structure.
Objective
This pull request addresses the integration of the "Leadership Page" into the main SSEqual website.
The goal is to seamlessly incorporate the leadership page while maintaining a consistent and cohesive user experience across the entire website.
Preview
https://github.com/rit-sse/WebsiteTheSSEquel/assets/39078738/da6116c4-c8e5-4ff2-bc61-ddf0d18cb6a0
Great work overall! I just have a few minor requests to clean up the file and utilize typescript more.
@ -0,0 +1,61 @@import OfficerCard from "./OfficerCard";Let's pull this component into a separate file, to clean up the code in this file. You could create an
OfficerCard.tsxin the same folder alongside page.tsx, and export the component to be imported in the page.tsx file.I like that you have the 'content' pulled out into a data structure. Let's clean up this file some more by moving this array into a separate file in the same folder (a sibling to page.tsx)
Also, could you utilize typescript for each entry? You could create an 'officer.ts' file in the types folder, which defines all the fields. Then, you would use type annotations in your list declaration.
@ -74,0 +83,4 @@/*** Use stroke-* classes to change the border color of the icon.* Use fill-* classes to change the fill color of the icon.*/It looks like you replaced
base-contentwithslate-400. To be clear,base-contentrefers to a color in the daisyui color theme that changes based on the data theme (dark or light mode). What was the reason for changing this back to slate-400? Maybe once I understand that, I can help figure out any color issues.@ -74,0 +83,4 @@/*** Use stroke-* classes to change the border color of the icon.* Use fill-* classes to change the fill color of the icon.*/Oh, it was an uninformed decision. I have changed it back to base-content with room for customization.
Is this okay?
Icons.tsx
page.tsx
@ -74,0 +83,4 @@/*** Use stroke-* classes to change the border color of the icon.* Use fill-* classes to change the fill color of the icon.*/I love that you're generalizing the icon's color! This is a great start, and it got me thinking of a few additional considerations.
As it stands, only strings for colors already defined by either tailwind or the daisyUI config will work. That is, "primary", "base-100", "emerald-400". It's fine to retain this limitation (because it means developers need to go out of their way to use a random color that might not match the palette), but documentation of this limitation/constraint would be beneficial to future developers and people using the component.
You could use JSdocs for this: https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html
@ -0,0 +1,32 @@import { GitHub, LinkedIn, Email } from "../../../components/common/Icons";The "gray-400" is a tailwind color, and won't change with the daisyUI data theme. Is there an alternative color from the daisyUI config color schemes that work well in dark/light modes?
@ -0,0 +1,127 @@export interface TeamMember {You used the order in the existing website, which makes a lot of sense. The order in which we display the officers is something to think about, especially as the API is starting to be built out. Since this is all mock data, no need to spend time re-ordering it here.
The API endpoint to get all active officers could return the list in some default sort order, whether that be alphabetical by title or some other method. @joebaillie21
@ -0,0 +13,4 @@committee_heads: TeamMember[];}export const teamData = {export const teamData: Team = {Remember to use the types you defined 👍
FYI, "draft" mode for pull requests usually means it isn't ready for final review, which isn't the case here.
@ -74,0 +83,4 @@/*** Use stroke-* classes to change the border color of the icon.* Use fill-* classes to change the fill color of the icon.*/Another option is to just have the whole className string passed in as a prop, which I think is the optimal solution as it lets us use the same icon svg with a lot more flexibility across the app.
@ -0,0 +1,32 @@import { GitHub, LinkedIn, Email } from "../../../components/common/Icons";'neutral' should serve this purpose