state-in-url 4.0.8 → 4.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useRouter } from "next/navigation";
|
|
1
2
|
import { type JSONCompatible } from "../../utils";
|
|
2
3
|
/**
|
|
3
4
|
* @deprecated .
|
|
@@ -17,9 +18,12 @@ export declare function useUrlState<T extends JSONCompatible>({ defaultState: T,
|
|
|
17
18
|
* NextJS hook. Returns `urlState`, `setState`, and `setUrl` functions
|
|
18
19
|
*
|
|
19
20
|
* @param {JSONCompatible<T>} [defaultState] Fallback (default) values for state
|
|
20
|
-
* @param {Object} params - Object with other parameters
|
|
21
|
-
* @param {
|
|
21
|
+
* @param {Object} params - Object with other parameters, including params from App router
|
|
22
|
+
* @param {boolean} params.replace replace URL of push, default `true`
|
|
22
23
|
* @param {boolean} params.useHistory use window.history for navigation, default true, no _rsc requests https://github.com/vercel/next.js/discussions/59167
|
|
24
|
+
* @param {?SearchParams<T>} params.searchParams searchParams from Next server component
|
|
25
|
+
* @param {boolean} params.scroll reset scroll, default `false`
|
|
26
|
+
|
|
23
27
|
*
|
|
24
28
|
* * Example:
|
|
25
29
|
* ```ts
|
|
@@ -29,9 +33,7 @@ export declare function useUrlState<T extends JSONCompatible>({ defaultState: T,
|
|
|
29
33
|
* const { urlState, setState, setUrl } = useUrlState(form, { searchParams });
|
|
30
34
|
*
|
|
31
35
|
* setState({ name: 'test' });
|
|
32
|
-
* // by default it's uses router.push with scroll: false
|
|
33
36
|
* setUrl({ name: 'test' }, { replace: true, scroll: true });
|
|
34
|
-
* // similar to React.useState
|
|
35
37
|
* setUrl(curr => ({ ...curr, name: 'test' }), { replace: true, scroll: true });
|
|
36
38
|
* ```
|
|
37
39
|
*
|
|
@@ -40,8 +42,13 @@ export declare function useUrlState<T extends JSONCompatible>({ defaultState: T,
|
|
|
40
42
|
export declare function useUrlState<T extends JSONCompatible>(defaultState: T, params?: Params): {
|
|
41
43
|
urlState: T;
|
|
42
44
|
setState: (value: Partial<T> | ((currState: T) => T)) => void;
|
|
43
|
-
setUrl: (value?: Partial<T> | ((currState: T) => T)) => void;
|
|
45
|
+
setUrl: (value?: Partial<T> | ((currState: T) => T), options?: Options) => void;
|
|
44
46
|
};
|
|
47
|
+
type Router = ReturnType<typeof useRouter>;
|
|
48
|
+
type RouterOptions = NonNullable<Parameters<Router["push"]>[1] | Parameters<Router["replace"]>[1]>;
|
|
49
|
+
interface Options extends RouterOptions {
|
|
50
|
+
replace?: boolean;
|
|
51
|
+
}
|
|
45
52
|
interface OldParams<T> {
|
|
46
53
|
defaultState: T;
|
|
47
54
|
searchParams?: object;
|
|
@@ -20,7 +20,9 @@ export declare function useUrlState<T extends JSONCompatible>({ defaultState: T,
|
|
|
20
20
|
* @param {JSONCompatible<T>} [defaultState] Fallback (default) values for state
|
|
21
21
|
* @param {Object} params - Object with other parameters
|
|
22
22
|
* @param {NavigateOptions} params.NavigateOptions See type from `react-router-dom`
|
|
23
|
-
* @param {boolean} params.
|
|
23
|
+
* @param {boolean} params.replace replace URL of push, default `true`
|
|
24
|
+
* @param {boolean} params.useHistory use window.history for navigation, default `false`
|
|
25
|
+
* @param {boolean} params.preventScrollReset keep scroll position, default `true`
|
|
24
26
|
* * Example:
|
|
25
27
|
* ```ts
|
|
26
28
|
* export const form = { name: '', age: 0 };
|
|
@@ -37,7 +39,7 @@ export declare function useUrlState<T extends JSONCompatible>({ defaultState: T,
|
|
|
37
39
|
export declare function useUrlState<T extends JSONCompatible>(defaultState: T, params?: Params): {
|
|
38
40
|
urlState: T;
|
|
39
41
|
setState: (value: Partial<T> | ((currState: T) => T)) => void;
|
|
40
|
-
setUrl: (value?: Partial<T> | ((currState: T) => T)) => void;
|
|
42
|
+
setUrl: (value?: Partial<T> | ((currState: T) => T), options?: Params) => void;
|
|
41
43
|
};
|
|
42
44
|
type OldParams<T> = {
|
|
43
45
|
defaultState: T;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "state-in-url",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.9",
|
|
4
4
|
"description": "Easily share complex state objects between unrelated React components, preserve types and structure, with TS validation. Deep links and url state synchronization wthout any hasssle or boilerplate.",
|
|
5
5
|
"homepage": "https://state-in-url.dev",
|
|
6
6
|
"repository": {
|