Skip to content

Commit 26cc415

Browse files
committed
fix: don't expose viewPortScrollingState use getViewPortScrollingState() instead
1 parent eca15b0 commit 26cc415

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

packages/webui/src/client/lib/VirtualElement.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react'
22
import { InView } from 'react-intersection-observer'
3-
import { viewPortScrollingState } from './viewPort'
3+
import { getViewPortScrollingState } from './viewPort'
44

55
interface IElementMeasurements {
66
width: string | number
@@ -91,11 +91,11 @@ export function VirtualElement({
9191

9292
const isScrolling = (): boolean => {
9393
// Don't do updates while scrolling:
94-
if (viewPortScrollingState.isProgrammaticScrollInProgress) {
94+
if (getViewPortScrollingState().isProgrammaticScrollInProgress) {
9595
return true
9696
}
9797
// And wait if a programmatic scroll was done recently:
98-
const timeSinceLastProgrammaticScroll = Date.now() - viewPortScrollingState.lastProgrammaticScrollTime
98+
const timeSinceLastProgrammaticScroll = Date.now() - getViewPortScrollingState().lastProgrammaticScrollTime
9999
if (timeSinceLastProgrammaticScroll < 100) {
100100
return true
101101
}

packages/webui/src/client/lib/viewPort.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@ const focusState = {
1616
startTime: 0,
1717
}
1818

19+
const viewPortScrollingState = {
20+
isProgrammaticScrollInProgress: false,
21+
lastProgrammaticScrollTime: 0,
22+
}
23+
24+
export function getViewPortScrollingState(): {
25+
isProgrammaticScrollInProgress: boolean
26+
lastProgrammaticScrollTime: number
27+
} {
28+
return viewPortScrollingState
29+
}
30+
1931
export function maintainFocusOnPartInstance(
2032
partInstanceId: PartInstanceId,
2133
timeWindow: number,
@@ -275,11 +287,6 @@ function getRegionPosition(topElement: HTMLElement, bottomElement: HTMLElement):
275287
return { top, bottom }
276288
}
277289

278-
export const viewPortScrollingState = {
279-
isProgrammaticScrollInProgress: false,
280-
lastProgrammaticScrollTime: 0,
281-
}
282-
283290
export async function scrollToPosition(scrollPosition: number, noAnimation?: boolean): Promise<void> {
284291
// Calculate the exact position
285292
const headerOffset = getHeaderHeight() + HEADER_MARGIN

0 commit comments

Comments
 (0)