index.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import type { IPageToDeleteWithMeta } from '@growi/core';
  2. import type { Nullable } from 'vitest';
  3. import type { IPageForItem } from '~/interfaces/page';
  4. import type { IPageForPageDuplicateModal } from '~/stores/modal';
  5. import type { ItemNode } from '../ItemNode';
  6. type TreeItemBaseProps = {
  7. itemLevel?: number,
  8. itemNode: ItemNode,
  9. isEnableActions: boolean,
  10. isReadOnlyUser: boolean,
  11. onClickDuplicateMenuItem?(pageToDuplicate: IPageForPageDuplicateModal): void,
  12. onClickDeleteMenuItem?(pageToDelete: IPageToDeleteWithMeta): void,
  13. onRenamed?(fromPath: string | undefined, toPath: string): void,
  14. }
  15. export type TreeItemToolProps = TreeItemBaseProps & {
  16. stateHandlers?: {
  17. setIsOpen: React.Dispatch<React.SetStateAction<boolean>>,
  18. },
  19. };
  20. export type TreeItemProps = TreeItemBaseProps & {
  21. targetPathOrId?: Nullable<string>,
  22. isOpen?: boolean,
  23. isWipPageShown?: boolean,
  24. itemClass?: React.FunctionComponent<TreeItemProps>,
  25. itemClassName?: string,
  26. customEndComponents?: Array<React.FunctionComponent<TreeItemToolProps>>,
  27. customHoveredEndComponents?: Array<React.FunctionComponent<TreeItemToolProps>>,
  28. customHeadOfChildrenComponents?: Array<React.FunctionComponent<TreeItemToolProps>>,
  29. showAlternativeContent?: boolean,
  30. customAlternativeComponents?: Array<React.FunctionComponent<TreeItemToolProps>>,
  31. onClick?(page: IPageForItem): void,
  32. };