diff --git a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.jsx b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.jsx index 85431aa5ef..839707aeb9 100644 --- a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.jsx +++ b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.jsx @@ -1,30 +1,14 @@ -import { useCallback, useMemo } from 'react' +import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import * as eventTracking from '../../../../infrastructure/event-tracking' import { useProjectContext } from '@/shared/context/project-context' import { MenuItem } from 'react-bootstrap' import { useFileTreeActionable } from '../../contexts/file-tree-actionable' -import { useFileTreeData } from '@/shared/context/file-tree-data-context' -import { useFileTreeSelectable } from '../../contexts/file-tree-selectable' -import { findInTree } from '../../util/find-in-tree' function FileTreeItemMenuItems() { const { t } = useTranslation() - const { fileTreeData } = useFileTreeData() - const { selectedEntityIds } = useFileTreeSelectable() - - // return the name of the selected file or doc if there is only one selected - const selectedFileName = useMemo(() => { - if (selectedEntityIds.size === 1) { - const [selectedEntityId] = selectedEntityIds - const selectedEntity = findInTree(fileTreeData, selectedEntityId) - return selectedEntity?.entity?.name - } - return null - }, [fileTreeData, selectedEntityIds]) - const { canRename, canDelete, @@ -35,6 +19,7 @@ function FileTreeItemMenuItems() { startCreatingDocOrFile, startUploadingDocOrFile, downloadPath, + selectedFileName, } = useFileTreeActionable() const { owner } = useProjectContext() diff --git a/services/web/frontend/js/features/file-tree/contexts/file-tree-actionable.tsx b/services/web/frontend/js/features/file-tree/contexts/file-tree-actionable.tsx index be2ee58c16..c85926b61b 100644 --- a/services/web/frontend/js/features/file-tree/contexts/file-tree-actionable.tsx +++ b/services/web/frontend/js/features/file-tree/contexts/file-tree-actionable.tsx @@ -58,6 +58,7 @@ const FileTreeActionableContext = createContext< canRename: boolean canCreate: boolean parentFolderId: string + selectedFileName: string | null isDuplicate: (parentFolderId: string, name: string) => boolean startRenaming: any finishRenaming: any @@ -386,6 +387,16 @@ export const FileTreeActionableProvider: FC<{ ) }, [fileTreeData, selectedEntityIds, isRootFolderSelected]) + // return the name of the selected file or doc if there is only one selected + const selectedFileName = useMemo(() => { + if (selectedEntityIds.size === 1) { + const [selectedEntityId] = selectedEntityIds + const selectedEntity = findInTree(fileTreeData, selectedEntityId) + return selectedEntity?.entity?.name + } + return null + }, [fileTreeData, selectedEntityIds]) + const finishCreatingEntity = useCallback( entity => { const error = validateCreate(fileTreeData, parentFolderId, entity) @@ -498,6 +509,7 @@ export const FileTreeActionableProvider: FC<{ canCreate: selectedEntityIds.size < 2, ...state, parentFolderId, + selectedFileName, isDuplicate, startRenaming, finishRenaming,