27 lines
807 B
TypeScript
27 lines
807 B
TypeScript
import type { NoteType } from '@/types/Note.type'
|
|
import { Lightbulb, FileWarning, TriangleAlert } from 'lucide-react'
|
|
|
|
type BlockquoteWrapperProps = {
|
|
type?: NoteType
|
|
children: React.ReactNode
|
|
}
|
|
|
|
const noteTypeIcons: Record<NoteType, React.ReactNode> = {
|
|
warning: <TriangleAlert className="w-4 h-4" />,
|
|
tip: <Lightbulb className="w-4 h-4" />,
|
|
info: <FileWarning className="w-4 h-4" />,
|
|
}
|
|
|
|
export function BlockquoteWrapper({ type, children }: BlockquoteWrapperProps) {
|
|
return (
|
|
<blockquote className={`note ${type}`}>
|
|
{type && (
|
|
<div className="note-icon flex items-center gap-2 mb-2">
|
|
{noteTypeIcons[type]}
|
|
<span className="capitalize font-bold">{type}</span>
|
|
</div>
|
|
)}
|
|
<div className="italic">{children}</div>
|
|
</blockquote>
|
|
)
|
|
}
|