SIGN IN SIGN UP
47ng / nuqs UNCLAIMED

Type-safe search params state manager for React frameworks - Like useState, but stored in the URL query string.

0 0 0 TypeScript

TAGS

20 tags
v2.8.9

fix: use process.env.DEBUG for server-side debug detection (#1344) Co-authored-by: Nguyen Dinh Phuc <dev.phucnguyen@gmail.com>

v2.8.8

chore(deps): bump @trpc/server from 11.5.0 to 11.8.0 (#1267) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: François Best <github@francoisbest.com>

v2.8.7

test: add repro 1293 for Next.js (#1317)

v2.8.6

chore(hotfix): disable shallow test in the pages router in Next.js latest

v2.8.5

fix: undefined means "leave as-is" in useQueryStates (#1262)

v2.8.4

fix: remove prebuild step failing on Windows (#1259)

v2.8.3

fix: forward processUrlSearchParams through the debounce queue (#1250)

v2.8.2

doc: add Databuddy as sponsor 💖 (#1237)

v2.8.1

fix: pass in full pathname + search in TSR to avoid trailing slashes (#1217)

v2.8.0

feat: add react-router v5 support (#1214)

v2.7.3

fix: make parseAsBoolean case insensitive (#1204)

v2.7.3-beta.1

chore: remove duplicate CI step

v2.7.2

fix: don't flush on debounced state updates (#1172)

v2.7.1

perf: bail out of state updates for equal values (#1160) Co-authored-by: François Best <github@francoisbest.com>

v2.7.0

fix: optimistic state flicker (#1143) * test: add 1099 reproduction in Next.js * test: add 1099 test for all frameworks * test: a state update in an effect is what seems to trigger the issue * fix: simplify the Next.js app router adapter * fix: only apply transition in shallow: false for react router On shallow: true, this caused the optimistic state to be updated after the queue has reset, and caused the 1099 issue where the state would be temporarily reset to the previous value by the hook's useEffect sync system. * test: add debug logs for 1099 * test: remove debug log (rr fix was flaky locally too) * fix(meh): don't clear the throttle queue (needs a better way) * fix: reset throttle queue before first push This solves a few issues: - The reset occurs synchronously with push, so in the same event loop tick where the internal state is updated: both states are invalidated at the same time - The queue doesn't build up over time - No more hacks in the pages router 🙌 We still need the auto-reset mechanism for the testing adapter, although I feel like we could probably get rid of that too. One thing at a time. * chore: restore StrictMode * test: restore the throw on NullDetector

v2.7.0-beta.1

feat: multi-parsers (#1134) Co-authored-by: Valerii Sidorenko <balepas@nebius.com> Co-authored-by: François Best <github@francoisbest.com>

v2.6.0

doc: Add Zod codecs community parsers (#1097)

v2.6.0-beta.3

doc: Fix links & add framework icons (#1116) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

v2.6.0-beta.2

feat: Add processUrlSearchParams middleware as adapter prop (#1110) Co-authored-by: François Best <github@francoisbest.com>

v2.6.0-beta.1

feat(debounce): add warning when shallow: true is used with debounce (#1104)