aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/molecules/modals/modal.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/molecules/modals/modal.tsx')
-rw-r--r--src/components/molecules/modals/modal.tsx88
1 files changed, 0 insertions, 88 deletions
diff --git a/src/components/molecules/modals/modal.tsx b/src/components/molecules/modals/modal.tsx
deleted file mode 100644
index 344d5b9..0000000
--- a/src/components/molecules/modals/modal.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-import dynamic from 'next/dynamic';
-import { FC, ReactNode } from 'react';
-import {
- type CogProps,
- Heading,
- type HeadingProps,
- type MagnifyingGlassProps,
-} from '../../atoms';
-import styles from './modal.module.scss';
-
-export type Icons = 'cogs' | 'search';
-
-export type ModalProps = {
- /**
- * The modal body.
- */
- children: ReactNode;
- /**
- * Set additional classnames.
- */
- className?: string;
- /**
- * Set additional classnames to the heading.
- */
- headingClassName?: HeadingProps['className'];
- /**
- * A icon to illustrate the modal.
- */
- icon?: Icons;
- /**
- * The modal title.
- */
- title?: string;
-};
-
-const CogIcon = dynamic<CogProps>(
- () => import('../../atoms/icons/cog').then((mod) => mod.Cog),
- {
- ssr: false,
- }
-);
-const SearchIcon = dynamic<MagnifyingGlassProps>(
- () =>
- import('../../atoms/icons/magnifying-glass').then(
- (mod) => mod.MagnifyingGlass
- ),
- { ssr: false }
-);
-
-/**
- * Modal component
- *
- * Render a modal component with an optional title and icon.
- */
-export const Modal: FC<ModalProps> = ({
- children,
- className = '',
- headingClassName = '',
- icon,
- title,
-}) => {
- const getIcon = (id: Icons) => {
- switch (id) {
- case 'cogs':
- return <CogIcon />;
- case 'search':
- return <SearchIcon />;
- default:
- return <></>;
- }
- };
-
- return (
- <div className={`${styles.wrapper} ${className}`}>
- {title && (
- <Heading
- isFake={true}
- level={3}
- className={`${styles.title} ${headingClassName}`}
- >
- {icon && <span className={styles.icon}>{getIcon(icon)}</span>}
- {title}
- </Heading>
- )}
- {children}
- </div>
- );
-};