import { X } from "lucide-react"; import { Button, DynText } from "../../ui/primitives"; import type { MessageRecord } from "../../store"; import { t } from "../../i18n"; import { formatRelative } from "../../utils/format"; import s from "./MessageList.module.css"; export interface MessageListProps { messages: MessageRecord[]; onDismiss: (id: string) => void; onClearAll: () => void; } export function MessageList(props: MessageListProps) { const { messages, onDismiss, onClearAll } = props; if (messages.length === 0) { return null; } return (
{t("home.message.title")} {t("home.message.countSuffix", { count: messages.length })}
{messages.map((m) => ( onDismiss(m.id)} /> ))}
); } function MessageRow(props: { m: MessageRecord; onDismiss: () => void }) { const { m, onDismiss } = props; const arrow = m.direction === "outgoing" ? "→" : "←"; const cls = [ s.row, m.direction === "incoming" ? s.rowIncoming : "" ].join(" "); return (
{arrow} {m.peerName} · {formatRelative(m.sentAt)}
{m.text}
); }