@kuindji/reactive 1.0.1 → 1.0.3
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/README.md +13 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/react/useListenToStoreChanges.d.ts +5 -0
- package/dist/react/useListenToStoreChanges.js +22 -0
- package/dist/react.d.ts +1 -0
- package/dist/react.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -937,9 +937,20 @@ const store = useStore<PropTypes>(
|
|
|
937
937
|
Use store value as state
|
|
938
938
|
|
|
939
939
|
```typescript
|
|
940
|
-
const [ value, setValue ] =
|
|
940
|
+
const [ value: TypeOfValue, setValue: (value: TypeOfValue) => void ] = useStoreState(
|
|
941
941
|
store: Store,
|
|
942
|
-
key:
|
|
942
|
+
key: KeyInStore
|
|
943
|
+
)
|
|
944
|
+
```
|
|
945
|
+
|
|
946
|
+
Listen to value changes
|
|
947
|
+
|
|
948
|
+
```typescript
|
|
949
|
+
useListenToStoreChanges(
|
|
950
|
+
store: Store,
|
|
951
|
+
key: KeyInStore,
|
|
952
|
+
listener: (value: TypeOfValue, previousValue?: TypeOfValue) => void
|
|
953
|
+
listenerOptions?: ListenerOptions
|
|
943
954
|
)
|
|
944
955
|
```
|
|
945
956
|
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -15,6 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./action"), exports);
|
|
18
|
+
__exportStar(require("./actionBus"), exports);
|
|
19
|
+
__exportStar(require("./actionMap"), exports);
|
|
18
20
|
__exportStar(require("./event"), exports);
|
|
19
21
|
__exportStar(require("./eventBus"), exports);
|
|
20
22
|
__exportStar(require("./lib/types"), exports);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ListenerOptions } from "../event";
|
|
2
|
+
import { KeyOf } from "../lib/types";
|
|
3
|
+
import type { BaseStore } from "../store";
|
|
4
|
+
export type { BaseStore, ListenerOptions };
|
|
5
|
+
export declare function useListenToStoreChanges<TStore extends BaseStore, TKey extends KeyOf<TStore["__type"]["propTypes"]>, TListener extends TStore["__type"]["changeEvents"][TKey]>(store: TStore, key: TKey, listener: TListener, options?: ListenerOptions): void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useListenToStoreChanges = useListenToStoreChanges;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useListenToStoreChanges(store, key, listener, options) {
|
|
6
|
+
const listenerRef = (0, react_1.useRef)(listener);
|
|
7
|
+
const storeRef = (0, react_1.useRef)(store);
|
|
8
|
+
listenerRef.current = listener;
|
|
9
|
+
const genericHandler = (0, react_1.useCallback)((value, previousValue) => {
|
|
10
|
+
return listenerRef.current(value, previousValue);
|
|
11
|
+
}, []);
|
|
12
|
+
(0, react_1.useEffect)(() => {
|
|
13
|
+
return () => {
|
|
14
|
+
storeRef.current.removeOnChange(key, genericHandler);
|
|
15
|
+
};
|
|
16
|
+
}, []);
|
|
17
|
+
(0, react_1.useEffect)(() => {
|
|
18
|
+
storeRef.current.removeOnChange(key, genericHandler);
|
|
19
|
+
storeRef.current = store;
|
|
20
|
+
storeRef.current.onChange(key, genericHandler, options);
|
|
21
|
+
}, [store]);
|
|
22
|
+
}
|
package/dist/react.d.ts
CHANGED
|
@@ -6,5 +6,6 @@ export * from "./react/useEventBus";
|
|
|
6
6
|
export * from "./react/useListenToAction";
|
|
7
7
|
export * from "./react/useListenToEvent";
|
|
8
8
|
export * from "./react/useListenToEventBus";
|
|
9
|
+
export * from "./react/useListenToStoreChanges";
|
|
9
10
|
export * from "./react/useStore";
|
|
10
11
|
export * from "./react/useStoreState";
|
package/dist/react.js
CHANGED
|
@@ -22,5 +22,6 @@ __exportStar(require("./react/useEventBus"), exports);
|
|
|
22
22
|
__exportStar(require("./react/useListenToAction"), exports);
|
|
23
23
|
__exportStar(require("./react/useListenToEvent"), exports);
|
|
24
24
|
__exportStar(require("./react/useListenToEventBus"), exports);
|
|
25
|
+
__exportStar(require("./react/useListenToStoreChanges"), exports);
|
|
25
26
|
__exportStar(require("./react/useStore"), exports);
|
|
26
27
|
__exportStar(require("./react/useStoreState"), exports);
|
package/package.json
CHANGED