From bc131f6440e2bfa7a30e95439ad3b8180b2924fd Mon Sep 17 00:00:00 2001 From: claude Date: Wed, 17 Jun 2026 21:18:24 +0000 Subject: [PATCH] fix: convert items show for unselected files; add success toast canRename required selectedEntityIds.size === 1, so right-clicking an unselected file hid the convert items even though contextMenuEntityId was correctly set. Replace canRename with !fileTreeReadOnly for the convert-specific gate, which is the actual write-access check needed. Also add showExportDocumentSuccess so the user sees the warning toast on successful conversion instead of silent nothing. Co-Authored-By: Claude Sonnet 4.6 --- .../components/file-tree-item/file-tree-item-menu-items.tsx | 6 +++--- .../frontend/js/features/ide-react/hooks/use-convert-doc.ts | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx index c6a8517ae4..80eb8146c5 100644 --- a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx +++ b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx @@ -36,7 +36,7 @@ function FileTreeItemMenuItems() { const { project } = useProjectContext() const projectOwner = project?.owner?._id - const { fileTreeData } = useFileTreeData() + const { fileTreeData, fileTreeReadOnly } = useFileTreeData() const { selectedEntityIds } = useFileTreeSelectable() const { contextMenuEntityId } = useFileTreeMainContext() const selectedEntityId = @@ -55,12 +55,12 @@ function FileTreeItemMenuItems() { const canConvertToTypst = enablePandocConversions && - canRename && + !fileTreeReadOnly && isConvertableDoc && convertEntityName?.endsWith('.tex') const canConvertToLatex = enablePandocConversions && - canRename && + !fileTreeReadOnly && isConvertableDoc && convertEntityName?.endsWith('.typ') diff --git a/services/web/frontend/js/features/ide-react/hooks/use-convert-doc.ts b/services/web/frontend/js/features/ide-react/hooks/use-convert-doc.ts index 20802e3095..216ba933d7 100644 --- a/services/web/frontend/js/features/ide-react/hooks/use-convert-doc.ts +++ b/services/web/frontend/js/features/ide-react/hooks/use-convert-doc.ts @@ -3,6 +3,7 @@ import { useProjectContext } from '@/shared/context/project-context' import { useCallback, useState } from 'react' import { showExportDocumentError, + showExportDocumentSuccess, hideExportDocumentError, } from '../components/toolbar/export-document-toasts' @@ -21,7 +22,7 @@ export default function useConvertDoc( await postJSON(`/project/${projectId}/doc/${docId}/convert/${type}`, { body: {}, }) - // File tree updates automatically via socket event + showExportDocumentSuccess(type) } catch (err: any) { const errorMessage = err?.data?.error showExportDocumentError(errorMessage)