import classNames from 'classnames'; import { motion } from 'framer-motion'; import type { ReactNode } from 'react'; import React, { useMemo } from 'react'; import { useKey } from 'react-use'; import { Heading } from './Heading'; import { IconButton } from './IconButton'; export interface ToastProps { children: ReactNode; open: boolean; onClose: () => void; title?: ReactNode; className?: string; timeout: number; } export function Toast({ children, className, open, onClose, title, timeout }: ToastProps) { const titleId = useMemo(() => Math.random().toString(36).slice(2), []); useKey( 'Escape', () => { if (!open) return; onClose(); }, {}, [open], ); return (
{title && ( {title} )}
{children}
); }