add prop to disable custom autoscroll on ItemTableList

This commit is contained in:
jeffvli
2026-01-22 02:07:24 -08:00
parent 81af324260
commit b4fd7b6a66
2 changed files with 19 additions and 5 deletions
@@ -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<null | { internalState: ItemListStateActions }>;
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,
@@ -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,