From e964c8ecf89886818b2f772d3217eda4b3c72dd2 Mon Sep 17 00:00:00 2001 From: Syngnat Date: Tue, 10 Mar 2026 10:42:34 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(DataGrid):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=99=9A=E6=8B=9F=E6=BB=9A=E5=8A=A8=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E4=B8=8B=E5=8F=B3=E9=94=AE=E8=8F=9C=E5=8D=95=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 行级和单元格级右键菜单的启用条件互斥,虚拟滚动模式下两者同时失效 - enableLargeResultOptimizedEditing 关闭了内联编辑但未回退启用行级菜单 - 修改 useContextMenuRow 和 enableRowContextMenu 条件,虚拟模式下启用行级菜单 - 更新 dataContextValue 的 useMemo 依赖数组 - refs #209 --- frontend/src/components/DataGrid.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/DataGrid.tsx b/frontend/src/components/DataGrid.tsx index 0a4d5b7..fc885d7 100644 --- a/frontend/src/components/DataGrid.tsx +++ b/frontend/src/components/DataGrid.tsx @@ -2746,9 +2746,9 @@ const DataGrid: React.FC = ({ handleExportSelected, copyToClipboard, tableName, - enableRowContextMenu: !canModifyData, + enableRowContextMenu: !canModifyData || enableLargeResultOptimizedEditing, supportsCopyInsert, - }), [handleCopyCsv, handleCopyInsert, handleCopyJson, handleExportSelected, copyToClipboard, tableName, canModifyData, supportsCopyInsert]); + }), [handleCopyCsv, handleCopyInsert, handleCopyJson, handleExportSelected, copyToClipboard, tableName, canModifyData, enableLargeResultOptimizedEditing, supportsCopyInsert]); const cellContextMenuValue = useMemo(() => ({ showMenu: showCellContextMenu, @@ -2764,7 +2764,7 @@ const DataGrid: React.FC = ({ const rowPropsFactory = useCallback((record: any) => ({ record } as any), []); const totalWidth = columns.reduce((sum, col) => sum + (Number(col.width) || 200), 0) + selectionColumnWidth; - const useContextMenuRow = !canModifyData; + const useContextMenuRow = !canModifyData || enableLargeResultOptimizedEditing; const tableScrollX = useMemo(() => { const baseWidth = Math.max(totalWidth, 1000); if (!isMacLike || tableViewportWidth <= 0) return baseWidth;