From b4fd7b6a6615fe94f9d6a73850934831e88a4da8 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 22 Jan 2026 02:07:24 -0800 Subject: [PATCH] add prop to disable custom autoscroll on ItemTableList --- .../hooks/use-table-pane-sync.ts | 20 ++++++++++++++----- .../item-table-list/item-table-list.tsx | 4 ++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/renderer/components/item-list/item-table-list/hooks/use-table-pane-sync.ts b/src/renderer/components/item-list/item-table-list/hooks/use-table-pane-sync.ts index fffbed766..2089227e2 100644 --- a/src/renderer/components/item-list/item-table-list/hooks/use-table-pane-sync.ts +++ b/src/renderer/components/item-list/item-table-list/hooks/use-table-pane-sync.ts @@ -7,6 +7,7 @@ import { ItemListStateActions } from '/@/renderer/components/item-list/helpers/i export const useTablePaneSync = ({ enableDrag, + enableDragScroll, enableHeader, handleRef, onScrollEndRef, @@ -22,6 +23,7 @@ export const useTablePaneSync = ({ setShowTopShadow, }: { enableDrag: boolean | undefined; + enableDragScroll: boolean | undefined; enableHeader: boolean; handleRef: React.RefObject; onScrollEndRef: React.RefObject< @@ -105,7 +107,7 @@ export const useTablePaneSync = ({ }); let autoScrollCleanup: (() => void) | null = null; - if (enableDrag) { + if (enableDrag && enableDragScroll) { autoScrollCleanup = autoScrollForElements({ canScroll: () => true, element: viewport, @@ -137,7 +139,14 @@ export const useTablePaneSync = ({ // Ignore error } }; - }, [enableDrag, initialize, osInstance, pinnedRightColumnCount, scrollContainerRef]); + }, [ + enableDrag, + enableDragScroll, + initialize, + osInstance, + pinnedRightColumnCount, + scrollContainerRef, + ]); useEffect(() => { if (pinnedLeftColumnCount === 0) { @@ -153,7 +162,7 @@ export const useTablePaneSync = ({ const viewport = root.firstElementChild as HTMLElement; let autoScrollCleanup: (() => void) | null = null; - if (enableDrag) { + if (enableDrag && enableDragScroll) { autoScrollCleanup = autoScrollForElements({ canScroll: () => true, element: viewport, @@ -167,7 +176,7 @@ export const useTablePaneSync = ({ autoScrollCleanup(); } }; - }, [enableDrag, pinnedLeftColumnCount, pinnedLeftColumnRef]); + }, [enableDrag, enableDragScroll, pinnedLeftColumnCount, pinnedLeftColumnRef]); // Initialize overlayscrollbars for right pinned columns useEffect(() => { @@ -189,7 +198,7 @@ export const useTablePaneSync = ({ }); let autoScrollCleanup: (() => void) | null = null; - if (enableDrag) { + if (enableDrag && enableDragScroll) { autoScrollCleanup = autoScrollForElements({ canScroll: () => true, element: viewport, @@ -223,6 +232,7 @@ export const useTablePaneSync = ({ }; }, [ enableDrag, + enableDragScroll, initializeRightPinned, osInstanceRightPinned, pinnedRightColumnCount, diff --git a/src/renderer/components/item-list/item-table-list/item-table-list.tsx b/src/renderer/components/item-list/item-table-list/item-table-list.tsx index 4bf4fb385..e354e5a36 100644 --- a/src/renderer/components/item-list/item-table-list/item-table-list.tsx +++ b/src/renderer/components/item-list/item-table-list/item-table-list.tsx @@ -768,6 +768,7 @@ export interface TableItemProps { enableColumnReorder?: boolean; enableColumnResize?: boolean; enableDrag?: ItemTableListProps['enableDrag']; + enableDragScroll?: boolean; enableExpansion?: ItemTableListProps['enableExpansion']; enableHeader?: ItemTableListProps['enableHeader']; enableHorizontalBorders?: ItemTableListProps['enableHorizontalBorders']; @@ -802,6 +803,7 @@ interface ItemTableListProps { data: unknown[]; enableAlternateRowColors?: boolean; enableDrag?: boolean; + enableDragScroll?: boolean; enableEntranceAnimation?: boolean; enableExpansion?: boolean; enableHeader?: boolean; @@ -849,6 +851,7 @@ const BaseItemTableList = ({ data, enableAlternateRowColors = false, enableDrag = true, + enableDragScroll = true, enableEntranceAnimation = true, enableExpansion = true, enableHeader = true, @@ -1001,6 +1004,7 @@ const BaseItemTableList = ({ useTablePaneSync({ enableDrag, + enableDragScroll, enableHeader, handleRef, onScrollEndRef,