ShareLinkLayout.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React, { ReactNode } from 'react';
  2. import dynamic from 'next/dynamic';
  3. import { useEditorModeClassName } from '../../client/services/layout';
  4. import { GrowiNavbar } from '../Navbar/GrowiNavbar';
  5. import { RawLayout } from './RawLayout';
  6. const PageCreateModal = dynamic(() => import('../PageCreateModal'), { ssr: false });
  7. const GrowiNavbarBottom = dynamic(() => import('../Navbar/GrowiNavbarBottom').then(mod => mod.GrowiNavbarBottom), { ssr: false });
  8. const ShortcutsModal = dynamic(() => import('../ShortcutsModal'), { ssr: false });
  9. const SystemVersion = dynamic(() => import('../SystemVersion'), { ssr: false });
  10. // Fab
  11. const Fab = dynamic(() => import('../Fab').then(mod => mod.Fab), { ssr: false });
  12. type Props = {
  13. children?: ReactNode
  14. }
  15. export const ShareLinkLayout = ({ children }: Props): JSX.Element => {
  16. const className = useEditorModeClassName();
  17. return (
  18. <RawLayout className={className}>
  19. <GrowiNavbar isGlobalSearchHidden />
  20. <div className="page-wrapper d-flex d-print-block">
  21. <div className="flex-fill mw-0">
  22. {children}
  23. </div>
  24. </div>
  25. <GrowiNavbarBottom />
  26. <Fab />
  27. <ShortcutsModal />
  28. <PageCreateModal />
  29. <SystemVersion showShortcutsButton />
  30. </RawLayout>
  31. );
  32. };