@peerbit/react 0.0.20 → 0.0.22
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/esm/useCount.d.ts +1 -1
- package/lib/esm/useCount.js +4 -1
- package/lib/esm/useCount.js.map +1 -1
- package/lib/esm/useProgram.js +25 -15
- package/lib/esm/useProgram.js.map +1 -1
- package/lib/esm/useQuery.d.ts +14 -13
- package/lib/esm/useQuery.js +166 -131
- package/lib/esm/useQuery.js.map +1 -1
- package/package.json +2 -2
- package/src/useCount.tsx +5 -2
- package/src/useProgram.tsx +38 -23
- package/src/useQuery.tsx +234 -213
package/src/useCount.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import { debounceLeadingTrailing } from "./utils";
|
|
|
5
5
|
|
|
6
6
|
type QueryOptons = {
|
|
7
7
|
query: indexerTypes.Query[] | indexerTypes.QueryLike;
|
|
8
|
-
id
|
|
8
|
+
id?: string;
|
|
9
9
|
};
|
|
10
10
|
export const useCount = <T extends Record<string, any>>(
|
|
11
11
|
db?: Documents<T, any, any>,
|
|
@@ -54,7 +54,10 @@ export const useCount = <T extends Record<string, any>>(
|
|
|
54
54
|
db.events.removeEventListener("change", handleChange);
|
|
55
55
|
debounced.cancel();
|
|
56
56
|
};
|
|
57
|
-
}, [
|
|
57
|
+
}, [
|
|
58
|
+
db?.closed ? undefined : db?.rootAddress,
|
|
59
|
+
options?.id ?? options?.query,
|
|
60
|
+
]);
|
|
58
61
|
|
|
59
62
|
return count;
|
|
60
63
|
};
|
package/src/useProgram.tsx
CHANGED
|
@@ -38,26 +38,39 @@ export const useProgram = <
|
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
40
|
setLoading(true);
|
|
41
|
-
let changeListener: () => void;
|
|
41
|
+
let changeListener: (() => void) | undefined = undefined;
|
|
42
42
|
|
|
43
43
|
closingRef.current.then(() => {
|
|
44
44
|
programLoadingRef.current = peer
|
|
45
45
|
?.open(addressOrOpen, { ...options, existing: "reuse" })
|
|
46
46
|
.then((p) => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
// if program has topics do change listening on peers
|
|
48
|
+
if (
|
|
49
|
+
[p, ...p.allPrograms].filter(
|
|
50
|
+
(x) =>
|
|
51
|
+
x.closed === false &&
|
|
52
|
+
x.getTopics &&
|
|
53
|
+
x.getTopics?.().length > 0
|
|
54
|
+
).length === 0
|
|
55
|
+
) {
|
|
56
|
+
setPeers([peer.identity.publicKey]);
|
|
57
|
+
} else {
|
|
58
|
+
changeListener = () => {
|
|
59
|
+
p.getReady().then((set) => {
|
|
60
|
+
setPeers([...set.values()]);
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
p.events.addEventListener("join", changeListener);
|
|
64
|
+
p.events.addEventListener("leave", changeListener);
|
|
65
|
+
p.getReady()
|
|
66
|
+
.then((set) => {
|
|
67
|
+
setPeers([...set.values()]);
|
|
68
|
+
})
|
|
69
|
+
.catch((e) => {
|
|
70
|
+
console.log("Error getReady()", e);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
61
74
|
setProgram(p);
|
|
62
75
|
forceUpdate();
|
|
63
76
|
if (options?.id) {
|
|
@@ -83,14 +96,16 @@ export const useProgram = <
|
|
|
83
96
|
closingRef.current =
|
|
84
97
|
programLoadingRef.current.then((p) => {
|
|
85
98
|
const unsubscribe = () => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
99
|
+
changeListener &&
|
|
100
|
+
p.events.removeEventListener(
|
|
101
|
+
"join",
|
|
102
|
+
changeListener
|
|
103
|
+
);
|
|
104
|
+
changeListener &&
|
|
105
|
+
p.events.removeEventListener(
|
|
106
|
+
"leave",
|
|
107
|
+
changeListener
|
|
108
|
+
);
|
|
94
109
|
};
|
|
95
110
|
if (options?.keepOpenOnUnmount) {
|
|
96
111
|
unsubscribe();
|