@tolokoban/ui 0.18.1 → 0.18.2
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/lib/dist/hooks/index.d.ts +1 -0
- package/lib/dist/hooks/index.d.ts.map +1 -1
- package/lib/dist/hooks/index.js +2 -1
- package/lib/dist/hooks/local-storage-state.d.ts +8 -0
- package/lib/dist/hooks/local-storage-state.d.ts.map +1 -0
- package/lib/dist/hooks/local-storage-state.js +31 -0
- package/lib/dist/info.d.ts +1 -1
- package/lib/dist/info.js +1 -1
- package/lib/dist/view/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAEhC,mBAAmB,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAEhC,mBAAmB,UAAU,CAAA"}
|
package/lib/dist/hooks/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export * from "./debounced-effect.js";
|
|
2
2
|
export * from "./hotkey.js";
|
|
3
|
+
export * from "./local-storage-state.js";
|
|
3
4
|
export * from "./resize-observer.js";
|
|
4
5
|
export * from "./state-updater.js";
|
|
5
6
|
export * from "./throwable.js";
|
|
6
7
|
export * from "./undoable-state.js";
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGtCQUFrQixDQUFBIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State variable that can be stored in local storage.
|
|
3
|
+
* @param defaultValue Default value for initialization.
|
|
4
|
+
* @param storageKey Key where to store it in local storage.
|
|
5
|
+
* @param ensureType If defined, it is used to transform the value read from storage.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useLocalStorageState<T>(defaultValue: T, storageKey: string, ensureType?: (value: unknown) => T): [value: T, setValue: (value: T) => void];
|
|
8
|
+
//# sourceMappingURL=local-storage-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-storage-state.d.ts","sourceRoot":"","sources":["../../src/hooks/local-storage-state.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAClC,YAAY,EAAE,CAAC,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAkC,GACnE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAW1C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* State variable that can be stored in local storage.
|
|
4
|
+
* @param defaultValue Default value for initialization.
|
|
5
|
+
* @param storageKey Key where to store it in local storage.
|
|
6
|
+
* @param ensureType If defined, it is used to transform the value read from storage.
|
|
7
|
+
*/
|
|
8
|
+
export function useLocalStorageState(defaultValue, storageKey, ensureType = (value) => value) {
|
|
9
|
+
const [value, setValue] = React.useState(get(storageKey, defaultValue, ensureType));
|
|
10
|
+
return [
|
|
11
|
+
value,
|
|
12
|
+
(newValue) => {
|
|
13
|
+
setValue(newValue);
|
|
14
|
+
window.localStorage.setItem(storageKey, JSON.stringify(newValue));
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
function get(key, defaultValue, ensureType) {
|
|
19
|
+
const text = window.localStorage.getItem(key);
|
|
20
|
+
if (text === null)
|
|
21
|
+
return defaultValue;
|
|
22
|
+
try {
|
|
23
|
+
const value = JSON.parse(text);
|
|
24
|
+
return ensureType(value);
|
|
25
|
+
}
|
|
26
|
+
catch (ex) {
|
|
27
|
+
console.error(`Unexpected value in local storage "${key}":`, ex);
|
|
28
|
+
return defaultValue;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy9sb2NhbC1zdG9yYWdlLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRTlCOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNoQyxZQUFlLEVBQ2YsVUFBa0IsRUFDbEIsYUFBb0MsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLEtBQVU7SUFFbEUsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUNwQyxHQUFHLENBQUksVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FDL0MsQ0FBQTtJQUNELE9BQU87UUFDSCxLQUFLO1FBQ0wsQ0FBQyxRQUFXLEVBQUUsRUFBRTtZQUNaLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNsQixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLENBQUM7S0FDSixDQUFBO0FBQ0wsQ0FBQztBQUVELFNBQVMsR0FBRyxDQUNSLEdBQVcsRUFDWCxZQUFlLEVBQ2YsVUFBaUM7SUFFakMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsSUFBSSxJQUFJLEtBQUssSUFBSTtRQUFFLE9BQU8sWUFBWSxDQUFBO0lBRXRDLElBQUksQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNoRSxPQUFPLFlBQVksQ0FBQTtJQUN2QixDQUFDO0FBQ0wsQ0FBQyJ9
|
package/lib/dist/info.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const name = "@tolokoban/ui";
|
|
2
|
-
export declare const version = "0.18.
|
|
2
|
+
export declare const version = "0.18.2";
|
|
3
3
|
export declare const description = "React components with theme";
|
|
4
4
|
export declare const homepage = "https://tolokoban.github.io/ui";
|
|
5
5
|
//# sourceMappingURL=info.d.ts.map
|
package/lib/dist/info.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const name = "@tolokoban/ui";
|
|
2
|
-
export const version = "0.18.
|
|
2
|
+
export const version = "0.18.2";
|
|
3
3
|
export const description = "React components with theme";
|
|
4
4
|
export const homepage = "https://tolokoban.github.io/ui";
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxlQUFlLENBQUE7QUFDbkMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQTtBQUMvQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsNkJBQTZCLENBQUE7QUFDeEQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLGdDQUFnQyxDQUFBIn0=
|
package/lib/dist/view/index.js
CHANGED