|
1 | 1 | 'use client'
|
2 | 2 |
|
3 | 3 | import { useSearchParams } from 'next/navigation'
|
4 |
| -import { subscribeToQueryUpdates } from 'nuqs' |
5 | 4 | import React from 'react'
|
6 | 5 | import { QuerySpySkeleton } from './query-spy.skeleton'
|
7 | 6 |
|
8 | 7 | export function QuerySpy(props: React.ComponentProps<'pre'>) {
|
9 |
| - const initialSearchParams = useSearchParams() |
10 |
| - const [search, setSearch] = React.useState<URLSearchParams>(() => { |
11 |
| - if (typeof location !== 'object') { |
12 |
| - // SSR |
13 |
| - const out = new URLSearchParams() |
14 |
| - if (!initialSearchParams) { |
15 |
| - return out |
16 |
| - } |
17 |
| - for (const [key, value] of initialSearchParams) { |
18 |
| - out.set(key, value) |
19 |
| - } |
20 |
| - return out |
21 |
| - } else { |
22 |
| - return new URLSearchParams(location.search) |
23 |
| - } |
24 |
| - }) |
25 |
| - |
26 |
| - React.useLayoutEffect( |
27 |
| - () => subscribeToQueryUpdates(({ search }) => setSearch(search)), |
28 |
| - [] |
29 |
| - ) |
30 |
| - |
| 8 | + const searchParams = useSearchParams() |
31 | 9 | return (
|
32 | 10 | <QuerySpySkeleton {...props}>
|
33 |
| - {search.size > 0 && ( |
| 11 | + {searchParams.size > 0 && ( |
34 | 12 | <span className="text-zinc-500">
|
35 | 13 | ?
|
36 |
| - {Array.from(search.entries()).map(([key, value], i) => ( |
| 14 | + {Array.from(searchParams.entries()).map(([key, value], i) => ( |
37 | 15 | <React.Fragment key={key + i}>
|
38 | 16 | <span className="text-[#005CC5] dark:text-[#79B8FF]">{key}</span>=
|
39 | 17 | <span className="text-[#D73A49] dark:text-[#F97583]">
|
40 | 18 | {value}
|
41 | 19 | </span>
|
42 |
| - {i < search.size - 1 && <span className="text-zinc-500">&</span>} |
| 20 | + {i < searchParams.size - 1 && ( |
| 21 | + <span className="text-zinc-500">&</span> |
| 22 | + )} |
43 | 23 | </React.Fragment>
|
44 | 24 | ))}
|
45 | 25 | </span>
|
46 | 26 | )}
|
47 |
| - {search.size === 0 && ( |
| 27 | + {searchParams.size === 0 && ( |
48 | 28 | <span className="italic text-zinc-500">{'<empty query>'}</span>
|
49 | 29 | )}
|
50 | 30 | </QuerySpySkeleton>
|
|
0 commit comments