file-tree-inner.tsx 839 B

12345678910111213141516171819202122232425262728293031
  1. import { useFileTreeSelectable } from '../contexts/file-tree-selectable'
  2. import { useCallback } from 'react'
  3. type FileTreeInnerProps = {
  4. children: React.ReactNode
  5. }
  6. function FileTreeInner({ children }: FileTreeInnerProps) {
  7. const { setIsRootFolderSelected, selectedEntityIds, select } =
  8. useFileTreeSelectable()
  9. const handleFileTreeClick = useCallback(() => {
  10. setIsRootFolderSelected(true)
  11. if (selectedEntityIds.size > 1) {
  12. select([])
  13. }
  14. }, [select, selectedEntityIds.size, setIsRootFolderSelected])
  15. return (
  16. // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
  17. <div
  18. className="file-tree-inner"
  19. onClick={handleFileTreeClick}
  20. data-testid="file-tree-inner"
  21. >
  22. {children}
  23. </div>
  24. )
  25. }
  26. export default FileTreeInner