@tolokoban/ui 0.20.4 → 0.21.0

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.
@@ -0,0 +1,16 @@
1
+ import { GenericEvent } from "../util/event";
2
+ export declare function useEventValue<TArgument>(defaultValue: TArgument, event: GenericEvent<TArgument>): TArgument;
3
+ /**
4
+ * This hook doesn't care about the event argument.
5
+ * @returns Number of times the event was fired.
6
+ */
7
+ export declare function useEvent<TArgument>(event: GenericEvent<TArgument>): number;
8
+ /**
9
+ * This hook doesn't care about the event argument.
10
+ * @returns Number of times the event was fired.
11
+ */
12
+ export declare function useDebouncedEvent<TArgument>(event: {
13
+ add(listener: (arg: TArgument) => void): void;
14
+ remove(listener: (arg: TArgument) => void): void;
15
+ }, delay: number): number;
16
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/hooks/event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,wBAAgB,aAAa,CAAC,SAAS,EACnC,YAAY,EAAE,SAAS,EACvB,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,aAajC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,UAWjE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EACvC,KAAK,EAAE;IACH,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,CAAA;IAC7C,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI,CAAA;CACnD,EACD,KAAK,EAAE,MAAM,UAqBhB"}
@@ -0,0 +1,56 @@
1
+ import React from "react";
2
+ export function useEventValue(defaultValue, event) {
3
+ const [counter, setCounter] = React.useState(0);
4
+ const [value, setValue] = React.useState(defaultValue);
5
+ React.useEffect(() => {
6
+ const listener = (arg) => {
7
+ setCounter(counter + 1);
8
+ setValue(arg);
9
+ };
10
+ event.addListener(listener);
11
+ return () => event.removeListener(listener);
12
+ }, [event]);
13
+ return value;
14
+ }
15
+ /**
16
+ * This hook doesn't care about the event argument.
17
+ * @returns Number of times the event was fired.
18
+ */
19
+ export function useEvent(event) {
20
+ const [counter, setCounter] = React.useState(0);
21
+ React.useEffect(() => {
22
+ setCounter(0);
23
+ const listener = () => {
24
+ setCounter(counter + 1);
25
+ };
26
+ event.addListener(listener);
27
+ return () => event.removeListener(listener);
28
+ }, [event]);
29
+ return counter;
30
+ }
31
+ /**
32
+ * This hook doesn't care about the event argument.
33
+ * @returns Number of times the event was fired.
34
+ */
35
+ export function useDebouncedEvent(event, delay) {
36
+ const refCounter = React.useRef(0);
37
+ const refTimeout = React.useRef(0);
38
+ const [counter, setCounter] = React.useState(0);
39
+ React.useEffect(() => {
40
+ setCounter(0);
41
+ const listener = () => {
42
+ window.clearTimeout(refTimeout.current);
43
+ refTimeout.current = window.setTimeout(() => {
44
+ refCounter.current++;
45
+ setCounter(refCounter.current);
46
+ }, delay);
47
+ };
48
+ event.add(listener);
49
+ return () => {
50
+ window.clearTimeout(refTimeout.current);
51
+ event.remove(listener);
52
+ };
53
+ }, [event]);
54
+ return counter;
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBSXpCLE1BQU0sVUFBVSxhQUFhLENBQ3pCLFlBQXVCLEVBQ3ZCLEtBQThCO0lBRTlCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDdEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDakIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQUUsRUFBRTtZQUNoQyxVQUFVLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ3ZCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNqQixDQUFDLENBQUE7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzNCLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMvQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ1gsT0FBTyxLQUFLLENBQUE7QUFDaEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQVksS0FBOEI7SUFDOUQsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2pCLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNiLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNsQixVQUFVLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzNCLENBQUMsQ0FBQTtRQUNELEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDM0IsT0FBTyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDWCxPQUFPLE9BQU8sQ0FBQTtBQUNsQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUM3QixLQUdDLEVBQ0QsS0FBYTtJQUViLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNsQyxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDakIsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2IsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3ZDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtnQkFDcEIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNsQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDYixDQUFDLENBQUE7UUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ25CLE9BQU8sR0FBRyxFQUFFO1lBQ1IsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDdkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMxQixDQUFDLENBQUE7SUFDTCxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ1gsT0FBTyxPQUFPLENBQUE7QUFDbEIsQ0FBQyJ9
@@ -1,4 +1,5 @@
1
1
  export * from "./debounced-effect";
2
+ export * from "./event";
2
3
  export * from "./hotkey";
3
4
  export * from "./local-storage-state";
4
5
  export * from "./resize-observer";
@@ -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,uBAAuB,CAAA;AACrC,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,SAAS,CAAA;AACvB,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"}
@@ -1,8 +1,9 @@
1
1
  export * from "./debounced-effect.js";
2
+ export * from "./event.js";
2
3
  export * from "./hotkey.js";
3
4
  export * from "./local-storage-state.js";
4
5
  export * from "./resize-observer.js";
5
6
  export * from "./state-updater.js";
6
7
  export * from "./throwable.js";
7
8
  export * from "./undoable-state.js";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGtCQUFrQixDQUFBIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGtCQUFrQixDQUFBIn0=
@@ -1,5 +1,5 @@
1
1
  export declare const name = "@tolokoban/ui";
2
- export declare const version = "0.20.4";
2
+ export declare const version = "0.21.0";
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.20.4";
2
+ export const version = "0.21.0";
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=
@@ -1,4 +1,4 @@
1
- // This file has been generated on Tue, 26 Nov 2024 09:29:14 GMT
1
+ // This file has been generated on Thu, 19 Dec 2024 08:13:26 GMT
2
2
  export * from "./Button/index.js";
3
3
  export * from "./Chip/index.js";
4
4
  export * from "./CodeHighlighter/index.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tolokoban/ui",
3
- "version": "0.20.4",
3
+ "version": "0.21.0",
4
4
  "description": "React components with theme",
5
5
  "homepage": "https://tolokoban.github.io/ui",
6
6
  "main": "./lib/dist/index.js",