Preview.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import type { CSSProperties } from 'react';
  2. import React from 'react';
  3. import type { RendererOptions } from '~/interfaces/renderer-options';
  4. import RevisionRenderer from '../Page/RevisionRenderer';
  5. import styles from './Preview.module.scss';
  6. const moduleClass = styles['page-editor-preview-body'] ?? '';
  7. type Props = {
  8. rendererOptions: RendererOptions,
  9. markdown?: string,
  10. pagePath?: string | null,
  11. expandContentWidth?: boolean,
  12. style?: CSSProperties,
  13. onScroll?: (scrollTop: number) => void,
  14. }
  15. const Preview = (props: Props): JSX.Element => {
  16. const {
  17. rendererOptions,
  18. markdown, pagePath, style,
  19. expandContentWidth,
  20. } = props;
  21. const fluidLayoutClass = expandContentWidth ? 'fluid-layout' : '';
  22. return (
  23. <div
  24. data-testid="page-editor-preview-body"
  25. className={`${moduleClass} ${fluidLayoutClass} ${pagePath === '/Sidebar' ? 'preview-sidebar' : ''}`}
  26. style={style}
  27. >
  28. { markdown != null && (
  29. <RevisionRenderer rendererOptions={rendererOptions} markdown={markdown}></RevisionRenderer>
  30. ) }
  31. </div>
  32. );
  33. };
  34. export default Preview;