BasicLayout.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React, { ReactNode } from 'react';
  2. import dynamic from 'next/dynamic';
  3. import { GrowiNavbar } from '../Navbar/GrowiNavbar';
  4. import Sidebar from '../Sidebar';
  5. import { RawLayout } from './RawLayout';
  6. type Props = {
  7. title: string
  8. className?: string,
  9. children?: ReactNode
  10. }
  11. export const BasicLayout = ({ children, title, className }: Props): JSX.Element => {
  12. // const HotkeysManager = dynamic(() => import('../client/js/components/Hotkeys/HotkeysManager'), { ssr: false });
  13. // const PageCreateModal = dynamic(() => import('../client/js/components/PageCreateModal'), { ssr: false });
  14. const GrowiNavbarBottom = dynamic(() => import('../Navbar/GrowiNavbarBottom').then(mod => mod.GrowiNavbarBottom), { ssr: false });
  15. const ShortcutsModal = dynamic(() => import('../ShortcutsModal'), { ssr: false });
  16. const SystemVersion = dynamic(() => import('../SystemVersion'), { ssr: false });
  17. // Page modals
  18. // const PageCreateModal = dynamic(() => import('../PageCreateModal'), { ssr: false });
  19. const PageDuplicateModal = dynamic(() => import('../PageDuplicateModal'), { ssr: false });
  20. const PageDeleteModal = dynamic(() => import('../PageDeleteModal'), { ssr: false });
  21. const PageRenameModal = dynamic(() => import('../PageRenameModal'), { ssr: false });
  22. return (
  23. <RawLayout title={title} className={className}>
  24. <GrowiNavbar />
  25. <div className="page-wrapper d-flex d-print-block">
  26. <div className="grw-sidebar-wrapper">
  27. <Sidebar />
  28. </div>
  29. <div className="flex-fill mw-0">
  30. {children}
  31. </div>
  32. </div>
  33. <GrowiNavbarBottom />
  34. {/* <PageCreateModal /> */} {/* Todo: render w/o depending on appContainer */}
  35. <PageDuplicateModal />
  36. <PageDeleteModal />
  37. <PageRenameModal />
  38. {/* <HotkeysManager /> */}
  39. <ShortcutsModal />
  40. <SystemVersion showShortcutsButton />
  41. </RawLayout>
  42. );
  43. };