NewPageCreateButton.tsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import React, { type FC } from 'react';
  2. import { pagePathUtils } from '@growi/core/dist/utils';
  3. import { NotAvailableForGuest } from '~/components/NotAvailableForGuest';
  4. import { NotAvailableForReadOnlyUser } from '~/components/NotAvailableForReadOnlyUser';
  5. import type { IPageForItem } from '~/interfaces/page';
  6. type NewPageCreateButtonProps = {
  7. page: IPageForItem,
  8. onClick?: () => void,
  9. };
  10. export const NewPageCreateButton: FC<NewPageCreateButtonProps> = (props) => {
  11. const {
  12. page, onClick,
  13. } = props;
  14. return (
  15. <>
  16. {!pagePathUtils.isUsersTopPage(page.path ?? '') && (
  17. <NotAvailableForGuest>
  18. <NotAvailableForReadOnlyUser>
  19. <button
  20. id="page-create-button-in-page-tree"
  21. type="button"
  22. className="border-0 rounded btn btn-page-item-control p-0 grw-visible-on-hover"
  23. onClick={onClick}
  24. >
  25. <i className="icon-plus d-block p-0" />
  26. </button>
  27. </NotAvailableForReadOnlyUser>
  28. </NotAvailableForGuest>
  29. )}
  30. </>
  31. );
  32. };