23 lines
539 B
TypeScript
23 lines
539 B
TypeScript
|
import { clsx } from "clsx"
|
||
|
|
||
|
enum MessageVariant {
|
||
|
Warning = "Warning",
|
||
|
Error = "Error",
|
||
|
}
|
||
|
|
||
|
const VARIANT_CLASSES = {
|
||
|
[MessageVariant.Warning]: "text-amber-600 dark:text-amber-200",
|
||
|
[MessageVariant.Error]: "text-red-500 dark:text-red-300",
|
||
|
} as const
|
||
|
|
||
|
interface MessageProps {
|
||
|
variant: MessageVariant
|
||
|
className?: string
|
||
|
}
|
||
|
|
||
|
function Message({ variant, className, children }: React.PropsWithChildren<MessageProps>) {
|
||
|
return <p className={clsx(VARIANT_CLASSES[variant], className)}>{children}</p>
|
||
|
}
|
||
|
|
||
|
export { Message, MessageVariant }
|