Comments.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import React from 'react';
  2. import { PageComment } from '~/components/PageComment';
  3. import { useCommentPreviewOptions } from '~/stores/renderer';
  4. import { useIsTrashPage } from '../stores/context';
  5. import { CommentEditorLazyRenderer } from './PageComment/CommentEditorLazyRenderer';
  6. type CommentsProps = {
  7. pageId?: string,
  8. }
  9. export const Comments = (props: CommentsProps): JSX.Element => {
  10. const { pageId } = props;
  11. const { data: rendererOptions } = useCommentPreviewOptions();
  12. const { data: isDeleted } = useIsTrashPage();
  13. // TODO: Implement or refactor Skelton if server-side rendering
  14. if (rendererOptions == null || isDeleted == null) {
  15. return <></>;
  16. }
  17. return (
  18. // TODO: Check and refactor CSS import
  19. <div className="page-comments-row mt-5 py-4 d-edit-none d-print-none">
  20. <div className="container-lg">
  21. <div className="page-comments">
  22. <div id="page-comments-list" className="page-comments-list">
  23. <PageComment pageId={pageId} isReadOnly={false} titleAlign="left" />
  24. </div>
  25. { !isDeleted && (
  26. <div id="page-comment-write">
  27. <CommentEditorLazyRenderer pageId={pageId} rendererOptions={rendererOptions} />
  28. </div>
  29. )}
  30. </div>
  31. </div>
  32. </div>
  33. );
  34. };