@mantine/hooks 4.0.1 → 4.0.4
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.
- package/cjs/index.js +3 -2
- package/cjs/index.js.map +1 -1
- package/cjs/{use-local-storage-value/use-local-storage-value.js → use-local-storage/use-local-storage.js} +26 -8
- package/cjs/use-local-storage/use-local-storage.js.map +1 -0
- package/cjs/utils/random-id/random-id.js +1 -1
- package/cjs/utils/random-id/random-id.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/use-local-storage/use-local-storage.js +52 -0
- package/esm/use-local-storage/use-local-storage.js.map +1 -0
- package/esm/utils/random-id/random-id.js +1 -1
- package/esm/utils/random-id/random-id.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/use-local-storage/use-local-storage.d.ts +10 -0
- package/lib/use-local-storage/use-local-storage.d.ts.map +1 -0
- package/package.json +1 -1
- package/cjs/use-local-storage-value/use-local-storage-value.js.map +0 -1
- package/esm/use-local-storage-value/use-local-storage-value.js +0 -35
- package/esm/use-local-storage-value/use-local-storage-value.js.map +0 -1
- package/lib/use-local-storage-value/use-local-storage-value.d.ts +0 -5
- package/lib/use-local-storage-value/use-local-storage-value.d.ts.map +0 -1
package/cjs/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var useIdle = require('./use-idle/use-idle.js');
|
|
|
17
17
|
var useInterval = require('./use-interval/use-interval.js');
|
|
18
18
|
var useIsomorphicEffect = require('./use-isomorphic-effect/use-isomorphic-effect.js');
|
|
19
19
|
var useListState = require('./use-list-state/use-list-state.js');
|
|
20
|
-
var
|
|
20
|
+
var useLocalStorage = require('./use-local-storage/use-local-storage.js');
|
|
21
21
|
var useMediaQuery = require('./use-media-query/use-media-query.js');
|
|
22
22
|
var useMergedRef = require('./use-merged-ref/use-merged-ref.js');
|
|
23
23
|
var useMouse = require('./use-mouse/use-mouse.js');
|
|
@@ -74,7 +74,8 @@ exports.useIdle = useIdle.useIdle;
|
|
|
74
74
|
exports.useInterval = useInterval.useInterval;
|
|
75
75
|
exports.useIsomorphicEffect = useIsomorphicEffect.useIsomorphicEffect;
|
|
76
76
|
exports.useListState = useListState.useListState;
|
|
77
|
-
exports.
|
|
77
|
+
exports.useLocalStorage = useLocalStorage.useLocalStorage;
|
|
78
|
+
exports.useLocalStorageValue = useLocalStorage.useLocalStorageValue;
|
|
78
79
|
exports.useMediaQuery = useMediaQuery.useMediaQuery;
|
|
79
80
|
exports.mergeRefs = useMergedRef.mergeRefs;
|
|
80
81
|
exports.useMergedRef = useMergedRef.useMergedRef;
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -5,26 +5,42 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var useWindowEvent = require('../use-window-event/use-window-event.js');
|
|
7
7
|
|
|
8
|
-
function
|
|
8
|
+
function serializeJSON(value) {
|
|
9
|
+
try {
|
|
10
|
+
return JSON.stringify(value);
|
|
11
|
+
} catch (error) {
|
|
12
|
+
throw new Error("@mantine/hooks use-local-storage: Failed to serialize the value");
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function deserializeJSON(value) {
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(value);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function useLocalStorage({
|
|
9
23
|
key,
|
|
10
|
-
defaultValue = void 0
|
|
24
|
+
defaultValue = void 0,
|
|
25
|
+
deserialize = deserializeJSON,
|
|
26
|
+
serialize = serializeJSON
|
|
11
27
|
}) {
|
|
12
|
-
const [value, setValue] = react.useState(typeof window !== "undefined" && "localStorage" in window ? window.localStorage.getItem(key) : defaultValue != null ? defaultValue : "");
|
|
28
|
+
const [value, setValue] = react.useState(typeof window !== "undefined" && "localStorage" in window ? deserialize(window.localStorage.getItem(key)) : defaultValue != null ? defaultValue : "");
|
|
13
29
|
const setLocalStorageValue = react.useCallback((val) => {
|
|
14
|
-
if (
|
|
30
|
+
if (val instanceof Function) {
|
|
15
31
|
setValue((current) => {
|
|
16
32
|
const result = val(current);
|
|
17
|
-
window.localStorage.setItem(key, result);
|
|
33
|
+
window.localStorage.setItem(key, serialize(result));
|
|
18
34
|
return result;
|
|
19
35
|
});
|
|
20
36
|
} else {
|
|
21
|
-
window.localStorage.setItem(key, val);
|
|
37
|
+
window.localStorage.setItem(key, serialize(val));
|
|
22
38
|
setValue(val);
|
|
23
39
|
}
|
|
24
40
|
}, [key]);
|
|
25
41
|
useWindowEvent.useWindowEvent("storage", (event) => {
|
|
26
42
|
if (event.storageArea === window.localStorage && event.key === key) {
|
|
27
|
-
setValue(event.newValue);
|
|
43
|
+
setValue(deserialize(event.newValue));
|
|
28
44
|
}
|
|
29
45
|
});
|
|
30
46
|
react.useEffect(() => {
|
|
@@ -34,6 +50,8 @@ function useLocalStorageValue({
|
|
|
34
50
|
}, [defaultValue, value, setLocalStorageValue]);
|
|
35
51
|
return [value || defaultValue, setLocalStorageValue];
|
|
36
52
|
}
|
|
53
|
+
const useLocalStorageValue = useLocalStorage;
|
|
37
54
|
|
|
55
|
+
exports.useLocalStorage = useLocalStorage;
|
|
38
56
|
exports.useLocalStorageValue = useLocalStorageValue;
|
|
39
|
-
//# sourceMappingURL=use-local-storage
|
|
57
|
+
//# sourceMappingURL=use-local-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface UseLocalStorage<T> {\n key: string;\n defaultValue?: T;\n serialize?(value: T): string;\n deserialize?(value: string): T;\n}\n\nfunction serializeJSON<T>(value: T) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error('@mantine/hooks use-local-storage: Failed to serialize the value');\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function useLocalStorage<T = string>({\n key,\n defaultValue = undefined,\n deserialize = deserializeJSON,\n serialize = serializeJSON,\n}: UseLocalStorage<T>) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window\n ? deserialize(window.localStorage.getItem(key))\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, serialize(result));\n return result;\n });\n } else {\n window.localStorage.setItem(key, serialize(val));\n setValue(val);\n }\n },\n [key]\n );\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window.localStorage && event.key === key) {\n setValue(deserialize(event.newValue));\n }\n });\n\n useEffect(() => {\n if (defaultValue && !value) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n return [value || defaultValue, setLocalStorageValue] as const;\n}\n\nexport const useLocalStorageValue = useLocalStorage;\n"],"names":["useState","useCallback","useWindowEvent","useEffect"],"mappings":";;;;;;;AAEA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,IAAI;AACN,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;AACvF,GAAG;AACH,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,IAAI;AACN,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,CAAC;AACM,SAAS,eAAe,CAAC;AAChC,EAAE,GAAG;AACL,EAAE,YAAY,GAAG,KAAK,CAAC;AACvB,EAAE,WAAW,GAAG,eAAe;AAC/B,EAAE,SAAS,GAAG,aAAa;AAC3B,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,cAAc,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,IAAI,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;AAC3L,EAAE,MAAM,oBAAoB,GAAGC,iBAAW,CAAC,CAAC,GAAG,KAAK;AACpD,IAAI,IAAI,GAAG,YAAY,QAAQ,EAAE;AACjC,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,QAAQ,OAAO,MAAM,CAAC;AACtB,OAAO,CAAC,CAAC;AACT,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK;AACL,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,EAAEC,6BAAc,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACvC,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACxE,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE;AAChC,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACzC,KAAK;AACL,GAAG,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,CAAC,KAAK,IAAI,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACvD,CAAC;AACW,MAAC,oBAAoB,GAAG;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random-id.js","sources":["../../../src/utils/random-id/random-id.ts"],"sourcesContent":["export function randomId() {\n return `mantine-${Math.random().toString(36).
|
|
1
|
+
{"version":3,"file":"random-id.js","sources":["../../../src/utils/random-id/random-id.ts"],"sourcesContent":["export function randomId() {\n return `mantine-${Math.random().toString(36).slice(2, 11)}`;\n}\n"],"names":[],"mappings":";;;;AAAO,SAAS,QAAQ,GAAG;AAC3B,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D;;;;"}
|
package/esm/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { useIdle } from './use-idle/use-idle.js';
|
|
|
13
13
|
export { useInterval } from './use-interval/use-interval.js';
|
|
14
14
|
export { useIsomorphicEffect } from './use-isomorphic-effect/use-isomorphic-effect.js';
|
|
15
15
|
export { useListState } from './use-list-state/use-list-state.js';
|
|
16
|
-
export { useLocalStorageValue } from './use-local-storage
|
|
16
|
+
export { useLocalStorage, useLocalStorageValue } from './use-local-storage/use-local-storage.js';
|
|
17
17
|
export { useMediaQuery } from './use-media-query/use-media-query.js';
|
|
18
18
|
export { mergeRefs, useMergedRef } from './use-merged-ref/use-merged-ref.js';
|
|
19
19
|
export { useMouse } from './use-mouse/use-mouse.js';
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
2
|
+
import { useWindowEvent } from '../use-window-event/use-window-event.js';
|
|
3
|
+
|
|
4
|
+
function serializeJSON(value) {
|
|
5
|
+
try {
|
|
6
|
+
return JSON.stringify(value);
|
|
7
|
+
} catch (error) {
|
|
8
|
+
throw new Error("@mantine/hooks use-local-storage: Failed to serialize the value");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function deserializeJSON(value) {
|
|
12
|
+
try {
|
|
13
|
+
return JSON.parse(value);
|
|
14
|
+
} catch (e) {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function useLocalStorage({
|
|
19
|
+
key,
|
|
20
|
+
defaultValue = void 0,
|
|
21
|
+
deserialize = deserializeJSON,
|
|
22
|
+
serialize = serializeJSON
|
|
23
|
+
}) {
|
|
24
|
+
const [value, setValue] = useState(typeof window !== "undefined" && "localStorage" in window ? deserialize(window.localStorage.getItem(key)) : defaultValue != null ? defaultValue : "");
|
|
25
|
+
const setLocalStorageValue = useCallback((val) => {
|
|
26
|
+
if (val instanceof Function) {
|
|
27
|
+
setValue((current) => {
|
|
28
|
+
const result = val(current);
|
|
29
|
+
window.localStorage.setItem(key, serialize(result));
|
|
30
|
+
return result;
|
|
31
|
+
});
|
|
32
|
+
} else {
|
|
33
|
+
window.localStorage.setItem(key, serialize(val));
|
|
34
|
+
setValue(val);
|
|
35
|
+
}
|
|
36
|
+
}, [key]);
|
|
37
|
+
useWindowEvent("storage", (event) => {
|
|
38
|
+
if (event.storageArea === window.localStorage && event.key === key) {
|
|
39
|
+
setValue(deserialize(event.newValue));
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (defaultValue && !value) {
|
|
44
|
+
setLocalStorageValue(defaultValue);
|
|
45
|
+
}
|
|
46
|
+
}, [defaultValue, value, setLocalStorageValue]);
|
|
47
|
+
return [value || defaultValue, setLocalStorageValue];
|
|
48
|
+
}
|
|
49
|
+
const useLocalStorageValue = useLocalStorage;
|
|
50
|
+
|
|
51
|
+
export { useLocalStorage, useLocalStorageValue };
|
|
52
|
+
//# sourceMappingURL=use-local-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-local-storage.js","sources":["../../src/use-local-storage/use-local-storage.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\ninterface UseLocalStorage<T> {\n key: string;\n defaultValue?: T;\n serialize?(value: T): string;\n deserialize?(value: string): T;\n}\n\nfunction serializeJSON<T>(value: T) {\n try {\n return JSON.stringify(value);\n } catch (error) {\n throw new Error('@mantine/hooks use-local-storage: Failed to serialize the value');\n }\n}\n\nfunction deserializeJSON(value: string) {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nexport function useLocalStorage<T = string>({\n key,\n defaultValue = undefined,\n deserialize = deserializeJSON,\n serialize = serializeJSON,\n}: UseLocalStorage<T>) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window\n ? deserialize(window.localStorage.getItem(key))\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (val instanceof Function) {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, serialize(result));\n return result;\n });\n } else {\n window.localStorage.setItem(key, serialize(val));\n setValue(val);\n }\n },\n [key]\n );\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window.localStorage && event.key === key) {\n setValue(deserialize(event.newValue));\n }\n });\n\n useEffect(() => {\n if (defaultValue && !value) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n return [value || defaultValue, setLocalStorageValue] as const;\n}\n\nexport const useLocalStorageValue = useLocalStorage;\n"],"names":[],"mappings":";;;AAEA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,IAAI;AACN,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;AACvF,GAAG;AACH,CAAC;AACD,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,IAAI;AACN,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,CAAC;AACM,SAAS,eAAe,CAAC;AAChC,EAAE,GAAG;AACL,EAAE,YAAY,GAAG,KAAK,CAAC;AACvB,EAAE,WAAW,GAAG,eAAe;AAC/B,EAAE,SAAS,GAAG,aAAa;AAC3B,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,cAAc,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,IAAI,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;AAC3L,EAAE,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,GAAG,KAAK;AACpD,IAAI,IAAI,GAAG,YAAY,QAAQ,EAAE;AACjC,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,QAAQ,OAAO,MAAM,CAAC;AACtB,OAAO,CAAC,CAAC;AACT,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK;AACL,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACvC,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACxE,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE;AAChC,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACzC,KAAK;AACL,GAAG,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,CAAC,KAAK,IAAI,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACvD,CAAC;AACW,MAAC,oBAAoB,GAAG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random-id.js","sources":["../../../src/utils/random-id/random-id.ts"],"sourcesContent":["export function randomId() {\n return `mantine-${Math.random().toString(36).
|
|
1
|
+
{"version":3,"file":"random-id.js","sources":["../../../src/utils/random-id/random-id.ts"],"sourcesContent":["export function randomId() {\n return `mantine-${Math.random().toString(36).slice(2, 11)}`;\n}\n"],"names":[],"mappings":"AAAO,SAAS,QAAQ,GAAG;AAC3B,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D;;;;"}
|
package/lib/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export { useIdle } from './use-idle/use-idle';
|
|
|
14
14
|
export { useInterval } from './use-interval/use-interval';
|
|
15
15
|
export { useIsomorphicEffect } from './use-isomorphic-effect/use-isomorphic-effect';
|
|
16
16
|
export { useListState } from './use-list-state/use-list-state';
|
|
17
|
-
export { useLocalStorageValue } from './use-local-storage
|
|
17
|
+
export { useLocalStorageValue, useLocalStorage } from './use-local-storage/use-local-storage';
|
|
18
18
|
export { useMediaQuery } from './use-media-query/use-media-query';
|
|
19
19
|
export { useMergedRef, mergeRefs } from './use-merged-ref/use-merged-ref';
|
|
20
20
|
export { useMouse } from './use-mouse/use-mouse';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface UseLocalStorage<T> {
|
|
2
|
+
key: string;
|
|
3
|
+
defaultValue?: T;
|
|
4
|
+
serialize?(value: T): string;
|
|
5
|
+
deserialize?(value: string): T;
|
|
6
|
+
}
|
|
7
|
+
export declare function useLocalStorage<T = string>({ key, defaultValue, deserialize, serialize, }: UseLocalStorage<T>): readonly [T, (val: T | ((prevState: T) => T)) => void];
|
|
8
|
+
export declare const useLocalStorageValue: typeof useLocalStorage;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=use-local-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-local-storage.d.ts","sourceRoot":"","sources":["../../src/use-local-storage/use-local-storage.ts"],"names":[],"mappings":"AAGA,UAAU,eAAe,CAAC,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;CAChC;AAkBD,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,EAC1C,GAAG,EACH,YAAwB,EACxB,WAA6B,EAC7B,SAAyB,GAC1B,EAAE,eAAe,CAAC,CAAC,CAAC,uCAQM,CAAC,KAAK,CAAC,YA4BjC;AAED,eAAO,MAAM,oBAAoB,wBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-local-storage-value.js","sources":["../../src/use-local-storage-value/use-local-storage-value.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport function useLocalStorageValue<T extends string>({\n key,\n defaultValue = undefined,\n}: {\n key: string;\n defaultValue?: T;\n}) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window\n ? (window.localStorage.getItem(key) as T)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (typeof val === 'function') {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, result);\n return result;\n });\n } else {\n window.localStorage.setItem(key, val);\n setValue(val);\n }\n },\n [key]\n );\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window.localStorage && event.key === key) {\n setValue(event.newValue as T);\n }\n });\n\n useEffect(() => {\n if (defaultValue && !value) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n return [value || defaultValue, setLocalStorageValue] as const;\n}\n"],"names":["useState","useCallback","useWindowEvent","useEffect"],"mappings":";;;;;;;AAEO,SAAS,oBAAoB,CAAC;AACrC,EAAE,GAAG;AACL,EAAE,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;AAC9K,EAAE,MAAM,oBAAoB,GAAGC,iBAAW,CAAC,CAAC,GAAG,KAAK;AACpD,IAAI,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;AACnC,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACjD,QAAQ,OAAO,MAAM,CAAC;AACtB,OAAO,CAAC,CAAC;AACT,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK;AACL,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,EAAEC,6BAAc,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACvC,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACxE,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/B,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE;AAChC,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACzC,KAAK;AACL,GAAG,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,CAAC,KAAK,IAAI,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACvD;;;;"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
2
|
-
import { useWindowEvent } from '../use-window-event/use-window-event.js';
|
|
3
|
-
|
|
4
|
-
function useLocalStorageValue({
|
|
5
|
-
key,
|
|
6
|
-
defaultValue = void 0
|
|
7
|
-
}) {
|
|
8
|
-
const [value, setValue] = useState(typeof window !== "undefined" && "localStorage" in window ? window.localStorage.getItem(key) : defaultValue != null ? defaultValue : "");
|
|
9
|
-
const setLocalStorageValue = useCallback((val) => {
|
|
10
|
-
if (typeof val === "function") {
|
|
11
|
-
setValue((current) => {
|
|
12
|
-
const result = val(current);
|
|
13
|
-
window.localStorage.setItem(key, result);
|
|
14
|
-
return result;
|
|
15
|
-
});
|
|
16
|
-
} else {
|
|
17
|
-
window.localStorage.setItem(key, val);
|
|
18
|
-
setValue(val);
|
|
19
|
-
}
|
|
20
|
-
}, [key]);
|
|
21
|
-
useWindowEvent("storage", (event) => {
|
|
22
|
-
if (event.storageArea === window.localStorage && event.key === key) {
|
|
23
|
-
setValue(event.newValue);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
if (defaultValue && !value) {
|
|
28
|
-
setLocalStorageValue(defaultValue);
|
|
29
|
-
}
|
|
30
|
-
}, [defaultValue, value, setLocalStorageValue]);
|
|
31
|
-
return [value || defaultValue, setLocalStorageValue];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export { useLocalStorageValue };
|
|
35
|
-
//# sourceMappingURL=use-local-storage-value.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-local-storage-value.js","sources":["../../src/use-local-storage-value/use-local-storage-value.ts"],"sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nexport function useLocalStorageValue<T extends string>({\n key,\n defaultValue = undefined,\n}: {\n key: string;\n defaultValue?: T;\n}) {\n const [value, setValue] = useState<T>(\n typeof window !== 'undefined' && 'localStorage' in window\n ? (window.localStorage.getItem(key) as T)\n : ((defaultValue ?? '') as T)\n );\n\n const setLocalStorageValue = useCallback(\n (val: T | ((prevState: T) => T)) => {\n if (typeof val === 'function') {\n setValue((current) => {\n const result = val(current);\n window.localStorage.setItem(key, result);\n return result;\n });\n } else {\n window.localStorage.setItem(key, val);\n setValue(val);\n }\n },\n [key]\n );\n\n useWindowEvent('storage', (event) => {\n if (event.storageArea === window.localStorage && event.key === key) {\n setValue(event.newValue as T);\n }\n });\n\n useEffect(() => {\n if (defaultValue && !value) {\n setLocalStorageValue(defaultValue);\n }\n }, [defaultValue, value, setLocalStorageValue]);\n\n return [value || defaultValue, setLocalStorageValue] as const;\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,oBAAoB,CAAC;AACrC,EAAE,GAAG;AACL,EAAE,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,cAAc,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,IAAI,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;AAC9K,EAAE,MAAM,oBAAoB,GAAG,WAAW,CAAC,CAAC,GAAG,KAAK;AACpD,IAAI,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;AACnC,MAAM,QAAQ,CAAC,CAAC,OAAO,KAAK;AAC5B,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,QAAQ,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACjD,QAAQ,OAAO,MAAM,CAAC;AACtB,OAAO,CAAC,CAAC;AACT,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK;AACL,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACZ,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACvC,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACxE,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC/B,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,IAAI,CAAC,KAAK,EAAE;AAChC,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACzC,KAAK;AACL,GAAG,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,CAAC,KAAK,IAAI,YAAY,EAAE,oBAAoB,CAAC,CAAC;AACvD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-local-storage-value.d.ts","sourceRoot":"","sources":["../../src/use-local-storage-value/use-local-storage-value.ts"],"names":[],"mappings":"AAGA,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,EACrD,GAAG,EACH,YAAwB,GACzB,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,CAAC;CAClB,uCAQ0B,CAAC,KAAK,CAAC,YA4BjC"}
|