import classNames from 'classnames' import IconCancel from '~/icons/compiled/Cancel' import { useLocalStorage } from '~/utils/localStorage' interface IVAlertProps { id?: string theme: 'info' | 'warning' children: React.ReactNode icon?: React.ComponentType> className?: string dismissible?: boolean } export default function IVAlert({ id, theme, children, className, dismissible, ...props }: IVAlertProps) { const [isDismissed, setIsDismissed] = useLocalStorage( `alertDismissed-${id}`, false ) if (id && dismissible && (isDismissed || isDismissed === undefined)) { return null } return (
{props.icon && ( )}
{children}
{dismissible && ( )}
) }