import Heading from '@components/atoms/headings/heading'; import dynamic from 'next/dynamic'; import { FC, ReactNode } from 'react'; import styles from './modal.module.scss'; export type Icons = 'cogs' | 'search'; export type ModalProps = { icon?: Icons; title?: string; }; const CogIcon = dynamic(() => import('@components/atoms/icons/cog')); const SearchIcon = dynamic( () => import('@components/atoms/icons/magnifying-glass') ); /** * Modal component * * Render a modal component with an optional title and icon. */ const Modal: FC = ({ children, icon, title }) => { const getIcon = (id: Icons) => { switch (id) { case 'cogs': return ; case 'search': return ; default: return <>; } }; return (
{title && ( {icon && {getIcon(icon)}} {title} )} {children}
); }; export default Modal;