TreeItemForModal.tsx 978 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import type { FC } from 'react';
  2. import {
  3. TreeItemLayout, useNewPageInput, type TreeItemProps,
  4. } from '../TreeItem';
  5. import styles from './TreeItemForModal.module.scss';
  6. const moduleClass = styles['tree-item-for-modal'];
  7. type TreeItemForModalProps = TreeItemProps & {
  8. key?: React.Key | null,
  9. };
  10. export const TreeItemForModal: FC<TreeItemForModalProps> = (props) => {
  11. const { itemNode, targetPathOrId } = props;
  12. const { page } = itemNode;
  13. const { Input: NewPageInput, CreateButton: NewPageCreateButton } = useNewPageInput();
  14. const isSelected = page._id === targetPathOrId || page.path === targetPathOrId;
  15. const itemClassNames = [
  16. isSelected ? 'active' : '',
  17. ];
  18. return (
  19. <TreeItemLayout
  20. {...props}
  21. className={moduleClass}
  22. itemClass={TreeItemForModal}
  23. itemClassName={itemClassNames.join(' ')}
  24. customHeadOfChildrenComponents={[NewPageInput]}
  25. customHoveredEndComponents={[NewPageCreateButton]}
  26. />
  27. );
  28. };