import { useAppSelector } from '@/redux/hooks/useAppSelector'; import { modalSelector } from '@/redux/modal/modal.selector'; import dynamic from 'next/dynamic'; import { AccessDeniedModal } from '@/components/FunctionalArea/Modal/AccessDeniedModal/AccessDeniedModal.component'; import { AddCommentModal } from '@/components/FunctionalArea/Modal/AddCommentModal/AddCommentModal.component'; import { LicenseModal } from '@/components/FunctionalArea/Modal/LicenseModal'; import { ToSModal } from '@/components/FunctionalArea/Modal/ToSModal/ToSModal.component'; import { EditOverlayModal } from './EditOverlayModal'; import { LoginModal } from './LoginModal'; import { ErrorReportModal } from './ErrorReportModal'; import { ModalLayout } from './ModalLayout'; import { OverviewImagesModal } from './OverviewImagesModal'; import { PublicationsModal } from './PublicationsModal'; import { LoggedInMenuModal } from './LoggedInMenuModal'; const MolArtModal = dynamic( () => import('./MolArtModal/MolArtModal.component').then(mod => mod.MolArtModal), { ssr: false }, ); export const Modal = (): React.ReactNode => { const { isOpen, modalName } = useAppSelector(modalSelector); return ( <> {isOpen && modalName === 'overview-images' && ( <ModalLayout> <OverviewImagesModal /> </ModalLayout> )} {isOpen && modalName === 'mol-art' && ( <ModalLayout> <MolArtModal /> </ModalLayout> )} {isOpen && modalName === 'login' && ( <ModalLayout> <LoginModal /> </ModalLayout> )} {isOpen && modalName === 'error-report' && ( <ModalLayout> <ErrorReportModal /> </ModalLayout> )} {isOpen && modalName === 'license' && ( <ModalLayout> <LicenseModal /> </ModalLayout> )} {isOpen && modalName === 'publications' && <PublicationsModal />} {isOpen && modalName === 'edit-overlay' && ( <ModalLayout> <EditOverlayModal /> </ModalLayout> )} {isOpen && modalName === 'logged-in-menu' && ( <ModalLayout> <LoggedInMenuModal /> </ModalLayout> )} {isOpen && modalName === 'access-denied' && ( <ModalLayout> <AccessDeniedModal /> </ModalLayout> )} {isOpen && modalName === 'terms-of-service' && ( <ModalLayout> <ToSModal /> </ModalLayout> )} {isOpen && modalName === 'select-project' && ( <ModalLayout> <AccessDeniedModal /> </ModalLayout> )} {isOpen && modalName === 'add-comment' && ( <ModalLayout> <AddCommentModal /> </ModalLayout> )} </> ); };