Skip to content

Commit 82401d9

Browse files
committed
feat: add reusable PageHeader component
1 parent 8f8b712 commit 82401d9

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

components/layout/page-header.tsx

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
interface PageHeaderProps {
2+
label: string;
3+
title: string;
4+
labelColor?: "primary" | "tertiary";
5+
fetchedAt?: Date;
6+
}
7+
8+
export function PageHeader({
9+
label,
10+
title,
11+
labelColor = "primary",
12+
fetchedAt,
13+
}: PageHeaderProps) {
14+
const colorClass =
15+
labelColor === "tertiary" ? "text-tertiary" : "text-primary";
16+
17+
return (
18+
<div className="pt-32 pb-12 px-6 md:px-12">
19+
<div className="flex flex-col md:flex-row justify-between md:items-end gap-4">
20+
<div>
21+
<span
22+
className={`font-label ${colorClass} tracking-widest uppercase text-xs mb-4 block`}
23+
>
24+
{label}
25+
</span>
26+
<h2 className="font-headline text-4xl md:text-6xl font-bold tracking-tighter">
27+
{title}
28+
</h2>
29+
</div>
30+
{fetchedAt && (
31+
<div className="text-right hidden md:block">
32+
<p className="font-label text-[10px] tracking-widest text-outline">
33+
최근 갱신 //{" "}
34+
{fetchedAt.toLocaleString("ko-KR", {
35+
timeZone: "Asia/Seoul",
36+
year: "numeric",
37+
month: "2-digit",
38+
day: "2-digit",
39+
hour: "2-digit",
40+
minute: "2-digit",
41+
})}
42+
</p>
43+
</div>
44+
)}
45+
</div>
46+
</div>
47+
);
48+
}

0 commit comments

Comments
 (0)