diff --git a/client/src/components/main/MemberProfile.tsx b/client/src/components/main/MemberProfile.tsx index 13e9e434..859d4b6b 100644 --- a/client/src/components/main/MemberProfile.tsx +++ b/client/src/components/main/MemberProfile.tsx @@ -20,6 +20,7 @@ export type MemberProfileData = { link: string; socialMediaUserName: string; }[]; + pk: number; }; type MemberProfileProps = { diff --git a/client/src/hooks/useCommittee.ts b/client/src/hooks/useCommittee.ts index 69c6fb8a..5759947d 100644 --- a/client/src/hooks/useCommittee.ts +++ b/client/src/hooks/useCommittee.ts @@ -8,6 +8,11 @@ export type ApiMember = { profile_picture: string; pronouns: string; about: string; + social_media?: { + link: string; + socialMediaUserName: string; + }[]; + pk: number; }; export function useCommittee() { diff --git a/client/src/hooks/useMember.ts b/client/src/hooks/useMember.ts index c564657e..0d1f0581 100644 --- a/client/src/hooks/useMember.ts +++ b/client/src/hooks/useMember.ts @@ -11,6 +11,7 @@ type ApiMember = { link: string; socialMediaUserName: string; }[]; + pk: number; }; // return api member, import id number from router, is not enabled if not a number type diff --git a/client/src/pages/about.tsx b/client/src/pages/about.tsx index c64544aa..00383324 100644 --- a/client/src/pages/about.tsx +++ b/client/src/pages/about.tsx @@ -1,4 +1,5 @@ import Image from "next/image"; +import Link from "next/link"; import { ApiMember, useCommittee } from "@/hooks/useCommittee"; @@ -61,6 +62,18 @@ export default function AboutPage() { ); + function committeeImage(profilePic: string) { + return ( + /landing_placeholder.png + ); + } + if (isPending) { for (let i = 0; i < 8; i++) { if (i < 4) { @@ -69,6 +82,7 @@ export default function AboutPage() { pronouns: "", profile_picture: "/landing_placeholder.png", about: "", + pk: 0, }); } else { bottomRow.push({ @@ -76,6 +90,7 @@ export default function AboutPage() { pronouns: "", profile_picture: "/landing_placeholder.png", about: "", + pk: 0, }); } } @@ -109,7 +124,7 @@ export default function AboutPage() {
{about} {/* Portraits Section - DARK - Full Width */} -
+
{/* Top row - 4 Presidents */}
@@ -118,22 +133,23 @@ export default function AboutPage() { key={`top-${idx}`} className="flex flex-col items-start gap-0" > -
- /landing_placeholder.png +
+ {member.pk === 0 ? ( + committeeImage(member.profile_picture) + ) : ( + + {committeeImage(member.profile_picture)} + + )}
-
+

- {member.name} {member.pronouns} + {member.pk === 0 ? ( + <>{member.name} + ) : ( + {member.name} + )} + {member.pronouns}

{roleOrder[idx]} @@ -150,22 +166,23 @@ export default function AboutPage() { key={`bottom-${idx}`} className="flex flex-col items-start gap-0" > -

- /landing_placeholder.png +
+ {member.pk === 0 ? ( + committeeImage(member.profile_picture) + ) : ( + + {committeeImage(member.profile_picture)} + + )}
-
+

- {member.name} {member.pronouns} + {member.pk === 0 ? ( + <>{member.name} + ) : ( + {member.name} + )} + {member.pronouns}

{roleOrder[4 + idx]} diff --git a/server/game_dev/serializers.py b/server/game_dev/serializers.py index 4d278157..386ea930 100644 --- a/server/game_dev/serializers.py +++ b/server/game_dev/serializers.py @@ -103,4 +103,5 @@ class Meta: "about", "pronouns", "social_media", + "pk" ] diff --git a/server/game_dev/views.py b/server/game_dev/views.py index 40ea5457..086119cf 100644 --- a/server/game_dev/views.py +++ b/server/game_dev/views.py @@ -85,7 +85,7 @@ def get_queryset(self): outputList = [] roleOrder = ("P", "VP", "SEC", "TRE", "MARK", "EVE", "PRO", "FRE") placeholderMember = {"name": "Position not filled", "profile_picture": "url('/landing_placeholder.png')", - "about": "", "pronouns": ""} + "about": "", "pronouns": "", "pk": 0} for i in roleOrder: try: cur = Committee.objects.get(role=i).id