Skip to content

Commit 19b8f99

Browse files
committed
interns and visitors use the dialog component now (since they dont have enough content to justify their own page)
1 parent 1690d8a commit 19b8f99

File tree

3 files changed

+48
-9
lines changed

3 files changed

+48
-9
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"use client"
2+
3+
import { Dialog, DialogContent, DialogTrigger } from "@/components/ui/dialog"
4+
import TeamMemberCard from "./TeamMemberCard"
5+
import type { TeamMemberProps } from "@/types/types"
6+
7+
interface TeamMemberCardDialogProps extends TeamMemberProps {
8+
isOpen?: boolean
9+
onOpenChange?: (open: boolean) => void
10+
}
11+
12+
export default function TeamMemberCardDialog({
13+
isOpen,
14+
onOpenChange,
15+
...props
16+
}: TeamMemberCardDialogProps) {
17+
return (
18+
<Dialog open={isOpen} onOpenChange={onOpenChange}>
19+
<DialogTrigger asChild>
20+
<div className="flex flex-col items-center space-y-4 rounded-lg border p-6 text-center cursor-pointer hover:bg-accent/50 transition-colors">
21+
<img
22+
src={props.image}
23+
alt={props.name}
24+
className="h-24 w-24 rounded-full object-cover"
25+
/>
26+
<div className="space-y-2">
27+
<h3 className="text-xl font-bold">{props.name}</h3>
28+
<p className="text-sm text-muted-foreground">{props.role}</p>
29+
</div>
30+
</div>
31+
</DialogTrigger>
32+
<DialogContent className="max-w-[1024px] max-h-[85vh] overflow-y-auto">
33+
<TeamMemberCard {...props} />
34+
</DialogContent>
35+
</Dialog>
36+
)
37+
}

src/components/TeamMemberCardLink.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { TeamMemberProps } from "@/types/types"
22
import {BASE_PATH} from '../lib/utils';
33

4-
export default function TeamMemberCardDialog(props: TeamMemberProps) {
4+
export default function TeamMemberCardLink(props: TeamMemberProps) {
55
const slug = props.name.toLowerCase().replace(/\s+/g, '-')
66

77
return (

src/pages/team.astro

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
---
22
import Layout from '../layouts/Layout.astro';
33
import teamData from '../content/team/team.json';
4-
import TeamMemberCardDialog from '../components/TeamMemberCardLink';
4+
import TeamMemberCardLink from '../components/TeamMemberCardLink';
5+
import TeamMemberCardDialog from '../components/TeamMemberCardDialog';
56
import AlumniCard from '../components/AlumniCard.astro';
67
import { getInternalLink } from '../lib/utils';
78
import { getCollection } from 'astro:content';
9+
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog';
810
// Interfaces for GitHub team data
911
interface TeamMember {
1012
login: string;
@@ -50,7 +52,7 @@ const internsAndVisitorsTeam = githubTeamData?.teams.find(team => team.slug.toLo
5052
<h2 class="mb-8 text-2xl font-bold">Group Leader</h2>
5153
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
5254
{teamData.current.filter(member => member.role.includes("Group Leader")).map((member) => (
53-
<TeamMemberCardDialog
55+
<TeamMemberCardLink
5456
client:load
5557
name={member.name}
5658
role={member.role}
@@ -71,7 +73,7 @@ const internsAndVisitorsTeam = githubTeamData?.teams.find(team => team.slug.toLo
7173
<h2 class="mb-8 text-2xl font-bold">Administration</h2>
7274
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
7375
{teamData.current.filter(member => member.role.includes("Administration")).map((member) => (
74-
<TeamMemberCardDialog
76+
<TeamMemberCardLink
7577
client:load
7678
name={member.name}
7779
role={member.role}
@@ -92,7 +94,7 @@ const internsAndVisitorsTeam = githubTeamData?.teams.find(team => team.slug.toLo
9294
<h2 class="mb-8 text-2xl font-bold">Staff Scientists</h2>
9395
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
9496
{teamData.current.filter(member => member.role.includes("Staff Scientist")).map((member) => (
95-
<TeamMemberCardDialog
97+
<TeamMemberCardLink
9698
client:load
9799
name={member.name}
98100
role={member.role}
@@ -113,7 +115,7 @@ const internsAndVisitorsTeam = githubTeamData?.teams.find(team => team.slug.toLo
113115
<h2 class="mb-8 text-2xl font-bold">Bioinformaticians</h2>
114116
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
115117
{teamData.current.filter(member => member.role.includes("Bioinformatician")).map((member) => (
116-
<TeamMemberCardDialog
118+
<TeamMemberCardLink
117119
client:load
118120
name={member.name}
119121
role={member.role}
@@ -134,7 +136,7 @@ const internsAndVisitorsTeam = githubTeamData?.teams.find(team => team.slug.toLo
134136
<h2 class="mb-8 text-2xl font-bold">Postdocs</h2>
135137
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
136138
{teamData.current.filter(member => member.role.includes("Postdoc")).map((member) => (
137-
<TeamMemberCardDialog
139+
<TeamMemberCardLink
138140
client:load
139141
name={member.name}
140142
role={member.role}
@@ -155,7 +157,7 @@ const internsAndVisitorsTeam = githubTeamData?.teams.find(team => team.slug.toLo
155157
<h2 class="mb-8 text-2xl font-bold">PhD Students</h2>
156158
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
157159
{teamData.current.filter(member => member.role.includes("PhD Student")).map((member) => (
158-
<TeamMemberCardDialog
160+
<TeamMemberCardLink
159161
client:load
160162
name={member.name}
161163
role={member.role}
@@ -176,7 +178,7 @@ const internsAndVisitorsTeam = githubTeamData?.teams.find(team => team.slug.toLo
176178
<h2 class="mb-8 text-2xl font-bold">Associated Members</h2>
177179
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
178180
{teamData.current.filter(member => member.role.includes("Associated Member")).map((member) => (
179-
<TeamMemberCardDialog
181+
<TeamMemberCardLink
180182
client:load
181183
name={member.name}
182184
role={member.role}

0 commit comments

Comments
 (0)