Skip to content

Commit 57f0155

Browse files
committed
preserve hash when going to hash not found in content
1 parent 85de376 commit 57f0155

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/components/ComposableTutorial/ComposableTutorial.tsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,15 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
216216
}, [composableOptions, location.search]);
217217

218218
const navigatePreservingExternalQueryParams = useCallback(
219-
(queryString: string, preserveScroll = false, hash = '') => {
219+
({
220+
queryString,
221+
preserveScroll = false,
222+
hash = '',
223+
}: {
224+
queryString: string;
225+
preserveScroll?: boolean;
226+
hash?: string;
227+
}) => {
220228
navigate(
221229
`${queryString.startsWith('?') ? '' : '?'}${queryString}${
222230
queryString.length > 0 && externalQueryParamsString.length > 0 ? '&' : ''
@@ -251,7 +259,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
251259
setCurrentSelections(selection);
252260
const queryString = new URLSearchParams(selection).toString();
253261
isNavigatingRef.current = true;
254-
return navigatePreservingExternalQueryParams(`?${queryString}`, false, hash);
262+
return navigatePreservingExternalQueryParams({ queryString: `?${queryString}`, preserveScroll: false, hash });
255263
}
256264
}
257265

@@ -275,7 +283,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
275283
const localStorage: Record<string, string> = getLocalValue(LOCAL_STORAGE_KEY) ?? {};
276284
const [defaultParams] = filterValidQueryParams(localStorage, composableOptions, validSelections, true);
277285
const queryString = new URLSearchParams(defaultParams).toString();
278-
navigatePreservingExternalQueryParams(`?${queryString}`);
286+
navigatePreservingExternalQueryParams({ queryString: `?${queryString}`, hash });
279287
}, [
280288
composableOptions,
281289
location.pathname,
@@ -296,7 +304,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
296304
if (validSelections.has(joinKeyValuesAsString(correctedParams))) {
297305
setCurrentSelections(correctedParams);
298306
const queryString = new URLSearchParams(correctedParams).toString();
299-
return navigatePreservingExternalQueryParams(`?${queryString}`, true);
307+
return navigatePreservingExternalQueryParams({ queryString: `?${queryString}`, preserveScroll: true });
300308
}
301309

302310
// need to correct preceding options
@@ -314,7 +322,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
314322

315323
const [defaultParams] = filterValidQueryParams(persistSelections, composableOptions, validSelections, true);
316324
const queryString = new URLSearchParams(defaultParams).toString();
317-
return navigatePreservingExternalQueryParams(`?${queryString}`);
325+
return navigatePreservingExternalQueryParams({ queryString: `?${queryString}` });
318326
},
319327
[composableOptions, currentSelections, validSelections, setCurrentSelections, navigatePreservingExternalQueryParams]
320328
);

0 commit comments

Comments
 (0)