UNPKG

@roopakv/nuqs

Version:

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

49 lines (45 loc) 1.18 kB
'use client'; import { resetQueue } from '../chunk-S2OHQSN3.js'; import '../chunk-3RCMAOX7.js'; import { context, renderQueryString } from '../chunk-DASHEO2X.js'; import { createElement } from 'react'; function NuqsTestingAdapter({ resetUrlUpdateQueueOnMount = true, ...props }) { if (resetUrlUpdateQueueOnMount) { resetQueue(); } const useAdapter = () => ({ searchParams: new URLSearchParams(props.searchParams), updateUrl(search, options) { props.onUrlUpdate?.({ searchParams: search, queryString: renderQueryString(search), options }); }, getSearchParamsSnapshot() { return new URLSearchParams(props.searchParams); }, rateLimitFactor: props.rateLimitFactor ?? 0 }); return createElement( context.Provider, { value: { useAdapter } }, props.children ); } function withNuqsTestingAdapter(props = {}) { return function NuqsTestingAdapterWrapper({ children }) { return createElement( NuqsTestingAdapter, // @ts-expect-error - Ignore missing children error props, children ); }; } export { NuqsTestingAdapter, withNuqsTestingAdapter };