File name
Commit message
Commit date
File name
Commit message
Commit date
import type { ReactNode } from "react";
type ToastVariant = "info" | "success" | "danger" | "warning";
const ACCENT_CLASSES: Record<ToastVariant, string> = {
info: "border-l-primary",
success: "border-l-success",
danger: "border-l-danger",
warning: "border-l-warning",
};
interface ToastProps {
variant?: ToastVariant;
children: ReactNode;
}
/**
* 알림 비주얼(토스트 1개). 위치·스택·표시 타이머는 호출부(feature) 책임 —
* 이 컴포넌트는 상태를 가지지 않는다.
*/
export function Toast({ variant = "info", children }: ToastProps) {
return (
<div
role="status"
className={`animate-toast-in rounded-lg border-l-4 bg-surface px-4 py-3 text-body-md text-foreground shadow-toast ${ACCENT_CLASSES[variant]}`}
>
{children}
</div>
);
}