Skip to content

Commit d427080

Browse files
committed
Prevent select location scroll position reset on pop
1 parent a94ee24 commit d427080

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

gui/src/renderer/components/select-location/ScrollPositionContext.tsx

+10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import { Action } from 'history';
12
import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
23

4+
import { useHistory } from '../../lib/history';
35
import { useNormalRelaySettings, useStyledRef } from '../../lib/utilityHooks';
46
import { CustomScrollbarsRef } from '../CustomScrollbars';
57
import { LocationType } from './select-location-types';
@@ -37,6 +39,9 @@ export function ScrollPositionContextProvider(props: ScrollPositionContextProps)
3739
const { locationType, searchTerm } = useSelectLocationContext();
3840
const relaySettings = useNormalRelaySettings();
3941

42+
const { action } = useHistory();
43+
const recentNavigationAction = useRef<Action | null>(action);
44+
4045
const scrollPositions = useRef<Partial<Record<LocationType, ScrollPosition>>>({});
4146
const scrollViewRef = useRef<CustomScrollbarsRef>(null);
4247
const spacePreAllocationViewRef = useStyledRef<SpacePreAllocationView>();
@@ -82,6 +87,11 @@ export function ScrollPositionContextProvider(props: ScrollPositionContextProps)
8287

8388
// Restore the scroll position when parameters change
8489
useEffect(() => {
90+
if (recentNavigationAction.current === 'POP') {
91+
recentNavigationAction.current = null;
92+
return;
93+
}
94+
8595
const scrollPosition = scrollPositions.current?.[locationType];
8696
if (scrollPosition) {
8797
scrollViewRef.current?.scrollTo(...scrollPosition);

0 commit comments

Comments
 (0)