|
1 | 1 | import { getMembers } from "@/lib/data"; |
| 2 | +import { PageHeader } from "@/components/layout/page-header"; |
2 | 3 |
|
3 | 4 | export default async function MembersPage() { |
4 | | - const members = await getMembers(); |
| 5 | + const { data: members, fetchedAt } = await getMembers(); |
5 | 6 |
|
6 | 7 | return ( |
7 | | - <section className="py-32 px-6 md:px-12 bg-surface" id="members"> |
8 | | - <div className="mb-16"> |
9 | | - <span className="font-label text-tertiary tracking-widest uppercase text-xs mb-4 block"> |
10 | | - 04 // THE NODES |
11 | | - </span> |
12 | | - <h2 className="font-headline text-4xl md:text-6xl font-bold tracking-tighter"> |
13 | | - Members |
14 | | - </h2> |
15 | | - </div> |
16 | | - <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-0"> |
17 | | - {members.map((member) => ( |
18 | | - <div |
19 | | - key={member.핸들} |
20 | | - className="flex items-center justify-between py-6 px-4 border-b border-outline-variant/10 hover:bg-surface-container-low transition-colors" |
21 | | - > |
22 | | - <span className="font-headline font-bold text-lg"> |
23 | | - {member.이름} |
24 | | - </span> |
25 | | - <span className="font-label text-xs text-outline tracking-widest"> |
26 | | - @{member.핸들} |
27 | | - </span> |
28 | | - </div> |
29 | | - ))} |
30 | | - </div> |
| 8 | + <section className="bg-surface" id="members"> |
| 9 | + <PageHeader |
| 10 | + label="04 // THE NODES" |
| 11 | + title="Members" |
| 12 | + labelColor="tertiary" |
| 13 | + fetchedAt={fetchedAt} |
| 14 | + /> |
| 15 | + <div className="px-6 md:px-12 pb-16"> |
| 16 | + <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-0"> |
| 17 | + {members.map((member) => ( |
| 18 | + <div |
| 19 | + key={member.핸들} |
| 20 | + className="flex items-center justify-between py-6 px-4 border-b border-outline-variant/10 hover:bg-surface-container-low transition-colors" |
| 21 | + > |
| 22 | + <span className="font-headline font-bold text-lg"> |
| 23 | + {member.이름} |
| 24 | + </span> |
| 25 | + <a |
| 26 | + href={`https://www.acmicpc.net/user/${member.핸들}`} |
| 27 | + target="_blank" |
| 28 | + rel="noopener noreferrer" |
| 29 | + className="font-label text-xs text-outline tracking-widest hover:text-primary transition-colors" |
| 30 | + > |
| 31 | + @{member.핸들} |
| 32 | + </a> |
| 33 | + </div> |
| 34 | + ))} |
| 35 | + </div> |
31 | 36 |
|
32 | | - {members.length === 0 && ( |
33 | | - <p className="mt-14 text-center text-outline"> |
34 | | - 멤버 데이터를 불러오는 중입니다... |
35 | | - </p> |
36 | | - )} |
| 37 | + {members.length === 0 && ( |
| 38 | + <p className="mt-14 text-center text-outline"> |
| 39 | + 멤버 데이터를 불러오는 중입니다... |
| 40 | + </p> |
| 41 | + )} |
| 42 | + </div> |
37 | 43 | </section> |
38 | 44 | ); |
39 | 45 | } |
0 commit comments