summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2024-04-17 10:15:52 +0200
committerOskar Nyberg <oskar@mullvad.net>2024-04-17 10:15:52 +0200
commit3f06c5015118374f494887ffa50f5843f43a3fad (patch)
treed76ff2189e59858c79af905ff7e6b98f4ffa152f
parenta94ee24bd54f0b513676f0959c8755df0ab0e602 (diff)
parentd4270807cd360ab7b659628782255811ee0af579 (diff)
downloadmullvadvpn-3f06c5015118374f494887ffa50f5843f43a3fad.tar.xz
mullvadvpn-3f06c5015118374f494887ffa50f5843f43a3fad.zip
Merge branch 'fix-select-location-pop-scroll-position'
-rw-r--r--gui/src/renderer/components/select-location/ScrollPositionContext.tsx10
1 files changed, 10 insertions, 0 deletions
diff --git a/gui/src/renderer/components/select-location/ScrollPositionContext.tsx b/gui/src/renderer/components/select-location/ScrollPositionContext.tsx
index 04fcd0bccc..d27e252427 100644
--- a/gui/src/renderer/components/select-location/ScrollPositionContext.tsx
+++ b/gui/src/renderer/components/select-location/ScrollPositionContext.tsx
@@ -1,5 +1,7 @@
+import { Action } from 'history';
import React, { useCallback, useContext, useEffect, useMemo, useRef } from 'react';
+import { useHistory } from '../../lib/history';
import { useNormalRelaySettings, useStyledRef } from '../../lib/utilityHooks';
import { CustomScrollbarsRef } from '../CustomScrollbars';
import { LocationType } from './select-location-types';
@@ -37,6 +39,9 @@ export function ScrollPositionContextProvider(props: ScrollPositionContextProps)
const { locationType, searchTerm } = useSelectLocationContext();
const relaySettings = useNormalRelaySettings();
+ const { action } = useHistory();
+ const recentNavigationAction = useRef<Action | null>(action);
+
const scrollPositions = useRef<Partial<Record<LocationType, ScrollPosition>>>({});
const scrollViewRef = useRef<CustomScrollbarsRef>(null);
const spacePreAllocationViewRef = useStyledRef<SpacePreAllocationView>();
@@ -82,6 +87,11 @@ export function ScrollPositionContextProvider(props: ScrollPositionContextProps)
// Restore the scroll position when parameters change
useEffect(() => {
+ if (recentNavigationAction.current === 'POP') {
+ recentNavigationAction.current = null;
+ return;
+ }
+
const scrollPosition = scrollPositions.current?.[locationType];
if (scrollPosition) {
scrollViewRef.current?.scrollTo(...scrollPosition);