You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.8 KiB
TypeScript

// frontend/components/dashboard/ScheduleCard.tsx
"use client";
import type { CSSProperties } from "react";
import { Icon } from "@/components/Icon";
import type { ScheduleItem } from "@/lib/types";
export function ScheduleCard({ items }: { items: ScheduleItem[] }) {
return (
<section className="card">
<div className="ch">
<div className="ico">
<Icon name="cal" />
</div>
<div className="htext">
<h3> </h3>
<div className="sub">{items.length} · 2</div>
</div>
<button className="tool" aria-label="더보기">
<Icon name="more" />
</button>
</div>
{items.length === 0 ? (
<div className="appr-empty">
<span className="ae-tick">
<Icon name="tick" w={3} />
</span>
. .
</div>
) : (
<div className="sched">
{items.map((e) => (
<div className="ev" key={e.id}>
<div className="ev-time mono">{e.time}</div>
<div className="ev-body" style={{ "--accent": `var(--${e.tone})` } as CSSProperties}>
<div className="ev-title">{e.title}</div>
<div className="ev-meta">
<span>{e.tag}</span>
<span className="dur">{e.dur}</span>
</div>
</div>
{e.soon && <span className="soon"></span>}
</div>
))}
<div className="sched-note" key="sched-note">
<Icon name="bell" />
16:00 .
</div>
</div>
)}
</section>
);
}