PageHeader.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import type { FC } from 'react';
  2. import { DevidedPagePath } from '@growi/core/dist/models';
  3. import { useSWRxCurrentPage } from '~/stores/page';
  4. import { useEditingUsers } from '~/stores/use-editing-users';
  5. import { EditingUserList } from './EditingUserList';
  6. import { PagePathHeader } from './PagePathHeader';
  7. import { PageTitleHeader } from './PageTitleHeader';
  8. import styles from './PageHeader.module.scss';
  9. const moduleClass = styles['page-header'] ?? '';
  10. export const PageHeader: FC = () => {
  11. const { data: currentPage } = useSWRxCurrentPage();
  12. const { data: editingUsers } = useEditingUsers();
  13. if (currentPage == null) {
  14. return <></>;
  15. }
  16. const dPagePath = new DevidedPagePath(currentPage.path, true);
  17. return (
  18. <div className={moduleClass}>
  19. <PagePathHeader
  20. currentPage={currentPage}
  21. />
  22. <div className="row mt-2">
  23. <PageTitleHeader
  24. className="col"
  25. currentPage={currentPage}
  26. />
  27. <EditingUserList
  28. className={`${dPagePath.isRoot ? 'mt-1' : 'col mt-2'}`}
  29. userList={editingUsers?.userList ?? []}
  30. />
  31. </div>
  32. </div>
  33. );
  34. };