index.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  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. 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. stateHandlers?: {
  14. isOpen: boolean,
  15. setIsOpen: React.Dispatch<React.SetStateAction<boolean>>,
  16. },
  17. }
  18. export type TreeItemToolProps = TreeItemBaseProps;
  19. export type TreeItemProps = TreeItemBaseProps & {
  20. targetPathOrId?: Nullable<string>,
  21. isOpen?: boolean,
  22. isWipPageShown?: boolean,
  23. itemClass?: React.FunctionComponent<TreeItemProps>,
  24. mainClassName?: string,
  25. customEndComponents?: Array<React.FunctionComponent<TreeItemToolProps>>,
  26. customNextComponents?: Array<React.FunctionComponent<TreeItemToolProps>>,
  27. onClick?(page: IPageForItem): void,
  28. };