From 3ff6d2541cb169b5524a84a31c96629b91da09ba Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 22 Jul 2025 11:38:32 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20use=20more=20rel?= =?UTF-8?q?iable=20properties=20in=20useTreeUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using the treeContext was causing issues with the current parent detection, in many places the context is not available. "depth" property is more reliable than "nb_accesses_ancestors". --- .../features/docs/doc-tree/components/DocTree.tsx | 1 + .../docs/doc-tree/components/DocTreeItemActions.tsx | 13 ++++++------- .../features/docs/doc-tree/hooks/useTreeUtils.tsx | 9 ++------- .../docs/docs-grid/components/DocsGridItem.tsx | 5 +---- 4 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTree.tsx b/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTree.tsx index ec6817b5..08330138 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTree.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTree.tsx @@ -223,6 +223,7 @@ export const DocTree = ({ currentDoc }: DocTreeProps) => { treeContext?.treeData.addChild(null, newDoc); }} isOpen={rootActionsOpen} + isRoot={true} onOpenChange={setRootActionsOpen} /> diff --git a/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTreeItemActions.tsx b/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTreeItemActions.tsx index 0589f9de..c0ad2447 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTreeItemActions.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-tree/components/DocTreeItemActions.tsx @@ -20,29 +20,28 @@ import { import { useCreateChildrenDoc } from '../api/useCreateChildren'; import { useDetachDoc } from '../api/useDetach'; import MoveDocIcon from '../assets/doc-extract-bold.svg'; -import { useTreeUtils } from '../hooks'; type DocTreeItemActionsProps = { doc: Doc; isOpen?: boolean; - parentId?: string | null; + isRoot?: boolean; onCreateSuccess?: (newDoc: Doc) => void; onOpenChange?: (isOpen: boolean) => void; + parentId?: string | null; }; export const DocTreeItemActions = ({ doc, - parentId, - onCreateSuccess, isOpen, + isRoot = false, + onCreateSuccess, onOpenChange, + parentId, }: DocTreeItemActionsProps) => { const router = useRouter(); const { t } = useTranslation(); const deleteModal = useModal(); - const copyLink = useCopyDocLink(doc.id); - const { isCurrentParent } = useTreeUtils(doc); const { mutate: detachDoc } = useDetachDoc(); const treeContext = useTreeContext(); const { mutate: duplicateDoc } = useDuplicateDoc({ @@ -81,7 +80,7 @@ export const DocTreeItemActions = ({ icon: , callback: copyLink, }, - ...(!isCurrentParent + ...(!isRoot ? [ { label: t('Move to my docs'), diff --git a/src/frontend/apps/impress/src/features/docs/doc-tree/hooks/useTreeUtils.tsx b/src/frontend/apps/impress/src/features/docs/doc-tree/hooks/useTreeUtils.tsx index 562a84aa..34f4d02c 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-tree/hooks/useTreeUtils.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-tree/hooks/useTreeUtils.tsx @@ -1,14 +1,9 @@ -import { useTreeContext } from '@gouvfr-lasuite/ui-kit'; - import { Doc } from '@/docs/doc-management'; export const useTreeUtils = (doc: Doc) => { - const treeContext = useTreeContext(); - return { - isParent: doc.nb_accesses_ancestors <= 1, // it is a parent - isChild: doc.nb_accesses_ancestors > 1, // it is a child - isCurrentParent: treeContext?.root?.id === doc.id || doc.depth === 1, // it can be a child but not for the current user + isTopRoot: doc.depth === 1, + isChild: doc.depth > 1, isDesynchronized: !!( doc.ancestors_link_reach && (doc.computed_link_reach !== doc.ancestors_link_reach || diff --git a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx index dc6d96a4..722d5e7a 100644 --- a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx +++ b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx @@ -1,4 +1,3 @@ -import { TreeProvider } from '@gouvfr-lasuite/ui-kit'; import { Tooltip, useModal } from '@openfun/cunningham-react'; import { DateTime } from 'luxon'; import { useTranslation } from 'react-i18next'; @@ -142,9 +141,7 @@ export const DocsGridItem = ({ doc, dragMode = false }: DocsGridItemProps) => { {shareModal.isOpen && ( - - - + )} );