11'use client'
22
3- import { useSearchParams } from 'next/navigation'
4- import React , { useEffect , useMemo , useState } from 'react'
3+ import { useRouter , useSearchParams } from 'next/navigation'
4+ import { useEffect , useMemo , useState } from 'react'
55import { Example } from 'types/example'
66import { track } from 'utils/matomo'
77import Card from 'components/cards/Card'
@@ -11,19 +11,16 @@ import ExamplesList from './ExamplesList'
1111import styles from './AllExamples.module.css'
1212
1313const AllExamples = ( { examples, communications } : { examples : Example [ ] ; communications : Example [ ] } ) => {
14- const [ activity , setActivity ] = useState ( 'all' )
15- const [ tool , setTool ] = useState ( 'all' )
16-
14+ const router = useRouter ( )
1715 const searchParams = useSearchParams ( )
16+ const [ activity , setActivity ] = useState (
17+ searchParams . get ( 'activity' ) ? decodeURI ( searchParams . get ( 'activity' ) ! ) : 'all'
18+ )
19+ const [ tool , setTool ] = useState ( searchParams . get ( 'tool' ) ? decodeURI ( searchParams . get ( 'tool' ) ! ) : 'all' )
20+
1821 useEffect ( ( ) => {
19- if ( ! searchParams ) {
20- return
21- }
22- const tool = searchParams . get ( 'tool' )
23- if ( tool ) {
24- setTool ( decodeURI ( tool ) )
25- }
26- } , [ searchParams ] )
22+ router . replace ( `/doc/exemples?activity=${ activity } &tool=${ tool } ` )
23+ } , [ activity , tool ] )
2724
2825 const filteredExamples = useMemo (
2926 ( ) => examples . filter ( ( example ) => ( tool === 'all' ? example : example . links . find ( ( link ) => link . label === tool ) ) ) ,
0 commit comments