dynamic.tsx 834 B

1234567891011121314151617181920212223
  1. import type { JSX } from 'react';
  2. import { useDrawioModalForEditorStatus } from '@growi/editor/dist/states/modal/drawio-for-editor';
  3. import { useLazyLoader } from '~/components/utils/use-lazy-loader';
  4. import { useDrawioModalStatus } from '~/states/ui/modal/drawio';
  5. type DrawioModalProps = Record<string, unknown>;
  6. export const DrawioModalLazyLoaded = (): JSX.Element => {
  7. const status = useDrawioModalStatus();
  8. const statusForEditor = useDrawioModalForEditorStatus();
  9. const isOpened = status?.isOpened ?? false;
  10. const isOpenedInEditor = statusForEditor?.isOpened ?? false;
  11. const DrawioModal = useLazyLoader<DrawioModalProps>(
  12. 'drawio-modal',
  13. () => import('./DrawioModal').then((mod) => ({ default: mod.DrawioModal })),
  14. isOpened || isOpenedInEditor,
  15. );
  16. return DrawioModal ? <DrawioModal /> : <></>;
  17. };