@@ -216,7 +216,15 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
216
216
} , [ composableOptions , location . search ] ) ;
217
217
218
218
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
+ } ) => {
220
228
navigate (
221
229
`${ queryString . startsWith ( '?' ) ? '' : '?' } ${ queryString } ${
222
230
queryString . length > 0 && externalQueryParamsString . length > 0 ? '&' : ''
@@ -251,7 +259,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
251
259
setCurrentSelections ( selection ) ;
252
260
const queryString = new URLSearchParams ( selection ) . toString ( ) ;
253
261
isNavigatingRef . current = true ;
254
- return navigatePreservingExternalQueryParams ( `?${ queryString } ` , false , hash ) ;
262
+ return navigatePreservingExternalQueryParams ( { queryString : `?${ queryString } ` , preserveScroll : false , hash } ) ;
255
263
}
256
264
}
257
265
@@ -275,7 +283,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
275
283
const localStorage : Record < string , string > = getLocalValue ( LOCAL_STORAGE_KEY ) ?? { } ;
276
284
const [ defaultParams ] = filterValidQueryParams ( localStorage , composableOptions , validSelections , true ) ;
277
285
const queryString = new URLSearchParams ( defaultParams ) . toString ( ) ;
278
- navigatePreservingExternalQueryParams ( `?${ queryString } ` ) ;
286
+ navigatePreservingExternalQueryParams ( { queryString : `?${ queryString } ` , hash } ) ;
279
287
} , [
280
288
composableOptions ,
281
289
location . pathname ,
@@ -296,7 +304,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
296
304
if ( validSelections . has ( joinKeyValuesAsString ( correctedParams ) ) ) {
297
305
setCurrentSelections ( correctedParams ) ;
298
306
const queryString = new URLSearchParams ( correctedParams ) . toString ( ) ;
299
- return navigatePreservingExternalQueryParams ( `?${ queryString } ` , true ) ;
307
+ return navigatePreservingExternalQueryParams ( { queryString : `?${ queryString } ` , preserveScroll : true } ) ;
300
308
}
301
309
302
310
// need to correct preceding options
@@ -314,7 +322,7 @@ const ComposableTutorialInternal = ({ nodeData, ...rest }: ComposableProps) => {
314
322
315
323
const [ defaultParams ] = filterValidQueryParams ( persistSelections , composableOptions , validSelections , true ) ;
316
324
const queryString = new URLSearchParams ( defaultParams ) . toString ( ) ;
317
- return navigatePreservingExternalQueryParams ( `?${ queryString } ` ) ;
325
+ return navigatePreservingExternalQueryParams ( { queryString : `?${ queryString } ` } ) ;
318
326
} ,
319
327
[ composableOptions , currentSelections , validSelections , setCurrentSelections , navigatePreservingExternalQueryParams ]
320
328
) ;
0 commit comments