index.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import type { IPageToDeleteWithMeta } from '@growi/core';
  2. import type { IPageForItem } from '~/interfaces/page';
  3. import type { IPageForPageDuplicateModal } from '~/stores/modal';
  4. import type { ItemNode } from '../ItemNode';
  5. type TreeItemBaseProps = {
  6. itemLevel?: number,
  7. itemNode: ItemNode,
  8. isEnableActions: boolean,
  9. isReadOnlyUser: boolean,
  10. onClickDuplicateMenuItem?(pageToDuplicate: IPageForPageDuplicateModal): void,
  11. onClickDeleteMenuItem?(pageToDelete: IPageToDeleteWithMeta): void,
  12. onRenamed?(fromPath: string | undefined, toPath: string): void,
  13. }
  14. export type TreeItemToolProps = TreeItemBaseProps & {
  15. stateHandlers?: {
  16. setIsOpen: React.Dispatch<React.SetStateAction<boolean>>,
  17. },
  18. };
  19. export type TreeItemProps = TreeItemBaseProps & {
  20. targetPath: string,
  21. targetPathOrId?: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. onWheelClick?(page: IPageForItem): void,
  33. };