import { useAppSelector } from '@/redux/hooks/useAppSelector';
import { modalSelector } from '@/redux/modal/modal.selector';
import dynamic from 'next/dynamic';
import { LoginModal } from './LoginModal';
import { OverviewImagesModal } from './OverviewImagesModal';
import { PublicationsModal } from './PublicationsModal';
import { ModalLayout } from './ModalLayout';

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 === 'publications' && <PublicationsModal />}
    </>
  );
};