diff --git a/src/components/widgets/StaffCard.astro b/src/components/widgets/StaffCard.astro index badbf8a..f37bf1f 100644 --- a/src/components/widgets/StaffCard.astro +++ b/src/components/widgets/StaffCard.astro @@ -8,10 +8,11 @@ import { twMerge } from "tailwind-merge"; export interface Props { name: string; noSocials?: boolean; - forceAspectRatio?: boolean, + forceAspectRatio?: boolean; + title?: string; } -const { name, noSocials, forceAspectRatio } = Astro.props; +const { name, noSocials, forceAspectRatio, title } = Astro.props; const basePath = "/src/assets/images/staff/"; let leadershipData = getStaffRecord(name); @@ -48,7 +49,7 @@ const image = images[imagePath](); {name}

{name}

-

{leadershipData.title}

+

{title || leadershipData.title}

{leadershipData.major ||  }

diff --git a/src/components/widgets/SubteamInfo.astro b/src/components/widgets/SubteamInfo.astro index 620a770..69d0bdf 100644 --- a/src/components/widgets/SubteamInfo.astro +++ b/src/components/widgets/SubteamInfo.astro @@ -1,6 +1,6 @@ --- import Socials from "./Socials.astro"; -import { Image} from "astro:assets"; +import { Image } from "astro:assets"; import { type TeamMember } from "~/types"; import { type ImageProps } from "~/utils/images-optimization"; import getStaffRecord from "~/staffData"; @@ -8,42 +8,48 @@ import getStaffRecord from "~/staffData"; export interface Props { title: string; leads: string[]; - images: Array<{src: Promise, alt: string}>; + images: Array<{ src: Promise; alt: string }>; + content?: string; } -const { title, leads = [], images = [] } = Astro.props; +const { + title, + leads = [], + images = [], + content = await Astro.slots.render("content"), +} = Astro.props; --- -
-
-

{title}

+
+
+
+

{title}

-
-

- {leads.length > 1 ? "Team Leads: " : "Team Lead: "} - - { - leads.map((name) => ( -
- {name} - -
- )) - } -
-

+
+

+ {leads.length > 1 ? "Team Leads: " : "Team Lead: "} + + { + leads.map((name) => ( +
+ {name} + +
+ )) + } +
+

+
+ +
+ +
-
- +
+ {images.map((i) => )}
-
- { - images.map((i) => ( - - )) - } -
+
diff --git a/src/pages/leadership.astro b/src/pages/leadership.astro index 8942349..194f4a6 100644 --- a/src/pages/leadership.astro +++ b/src/pages/leadership.astro @@ -25,23 +25,27 @@ for (let { sectionShort, sectionId } of leadershipPageLayout) {   - { - leadershipPageLayout.map(({ section, sectionId, staff }) => ( - -
-

{section}

- -
- {staff.map((name) => ( - - ))} + + { + leadershipPageLayout.map(({ section, sectionId, staff }) => ( +
+
+

+ {section} +

+ +
+ {staff.map((name) => ( + + ))} +
+ )) + } - -
- - - )) - } + +
+
+ diff --git a/src/pages/projects/sac.astro b/src/pages/projects/sac.astro index 9263e50..6169ce3 100644 --- a/src/pages/projects/sac.astro +++ b/src/pages/projects/sac.astro @@ -8,6 +8,8 @@ import MeetTheTeams from "~/components/widgets/MeetTheTeams.astro"; import TeamOverview from "~/components/widgets/TeamOverview.astro"; import TeamOverviewLeader from "~/components/widgets/TeamOverviewLeader.astro"; import SubteamInfo from "~/components/widgets/SubteamInfo.astro"; +import StaffCard from "~/components/widgets/StaffCard.astro"; +import { flightSoftwareResponsibleEngineers } from "~/staffData"; const metadata = { title: "BSLI — The Ohio State University", @@ -158,6 +160,22 @@ const metadata = { teams to collect proper data for a successful flight. Additionally, they work closely with Recovery and Payload to assist and ensure the proper systems and data collection systems work for their needs. + + +

+ Responsible Engineers +

+ +
+ { + flightSoftwareResponsibleEngineers.map(({ name, title }) => + + ) + } +
+