mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-08 04:50:12 +02:00
add prop to disable custom autoscroll on ItemTableList
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user