MainPane.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { ReactNode } from 'react';
  2. type Props = {
  3. className?: string,
  4. children?: ReactNode,
  5. sideContents?: ReactNode,
  6. footerContents?: ReactNode,
  7. }
  8. export const MainPane = (props: Props): JSX.Element => {
  9. const {
  10. className, children, sideContents, footerContents,
  11. } = props;
  12. return (
  13. <>
  14. <div className="flex-grow-1">
  15. <div id="main" className={`main ${className}`}>
  16. <div id="content-main" className="content-main grw-container-convertible">
  17. { sideContents != null
  18. ? (
  19. <div className="d-flex flex-column flex-lg-row">
  20. <div className="flex-grow-1 flex-basis-0 mw-0">
  21. {children}
  22. </div>
  23. <div className="grw-side-contents-container d-edit-none" data-vrt-blackout-side-contents>
  24. <div className="grw-side-contents-sticky-container">
  25. {sideContents}
  26. </div>
  27. </div>
  28. </div>
  29. )
  30. : (
  31. <>{children}</>
  32. )
  33. }
  34. </div>
  35. </div>
  36. </div>
  37. { footerContents != null && (
  38. <footer className="footer d-edit-none">
  39. {footerContents}
  40. </footer>
  41. ) }
  42. </>
  43. );
  44. };