@based/react 4.2.0 → 4.2.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/dist/index.d.ts +6 -3
- package/dist/index.js +26 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +30 -8
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
2
|
import { BasedClient, AuthState } from '@based/client';
|
|
3
|
-
export declare const Provider:
|
|
3
|
+
export declare const Provider: FC<{
|
|
4
4
|
client: BasedClient;
|
|
5
5
|
children: ReactNode;
|
|
6
|
-
}
|
|
6
|
+
}>;
|
|
7
7
|
export declare const useAuthState: () => AuthState;
|
|
8
|
+
export declare const useConnected: () => {
|
|
9
|
+
connected: boolean;
|
|
10
|
+
};
|
|
8
11
|
export declare const useQuery: (name?: string, payload?: any, opts?: {
|
|
9
12
|
persistent: boolean;
|
|
10
13
|
}) => {
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useClient = exports.useQuery = exports.useAuthState = exports.Provider = void 0;
|
|
3
|
+
exports.useClient = exports.useQuery = exports.useConnected = exports.useAuthState = exports.Provider = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
-
const Ctx = (0, react_1.createContext)();
|
|
6
|
-
const Provider = ({ client, children
|
|
5
|
+
const Ctx = (0, react_1.createContext)(null);
|
|
6
|
+
const Provider = ({ client, children }) => {
|
|
7
7
|
return (0, react_1.createElement)(Ctx.Provider, { value: client }, children);
|
|
8
8
|
};
|
|
9
9
|
exports.Provider = Provider;
|
|
@@ -23,9 +23,31 @@ const useAuthState = () => {
|
|
|
23
23
|
return state;
|
|
24
24
|
};
|
|
25
25
|
exports.useAuthState = useAuthState;
|
|
26
|
+
const useConnected = () => {
|
|
27
|
+
const client = (0, react_1.useContext)(Ctx);
|
|
28
|
+
const [connected, setConnected] = (0, react_1.useState)(client.connected);
|
|
29
|
+
(0, react_1.useEffect)(() => {
|
|
30
|
+
if (client) {
|
|
31
|
+
setConnected(client.connected);
|
|
32
|
+
const listener = () => {
|
|
33
|
+
setConnected(client.connected);
|
|
34
|
+
};
|
|
35
|
+
client.on('disconnect', listener);
|
|
36
|
+
client.on('reconnect', listener);
|
|
37
|
+
client.on('connect', listener);
|
|
38
|
+
return () => {
|
|
39
|
+
client.off('disconnect', listener);
|
|
40
|
+
client.off('reconnect', listener);
|
|
41
|
+
client.off('connect', listener);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}, [client]);
|
|
45
|
+
return { connected };
|
|
46
|
+
};
|
|
47
|
+
exports.useConnected = useConnected;
|
|
26
48
|
const useQuery = (name, payload, opts) => {
|
|
27
49
|
const client = (0, react_1.useContext)(Ctx);
|
|
28
|
-
if (name) {
|
|
50
|
+
if (client && name) {
|
|
29
51
|
const q = client.query(name, payload, opts);
|
|
30
52
|
const { id, cache } = q;
|
|
31
53
|
const [checksum, update] = (0, react_1.useState)(cache?.checksum);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@based/react",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": false,
|
|
12
12
|
"devDependencies": {
|
|
13
|
+
"@types/react": "^18.0.29",
|
|
13
14
|
"rimraf": "^3.0.2",
|
|
14
15
|
"ts-node": "10.9.1",
|
|
15
16
|
"typescript": "^4.3.5"
|
package/src/index.ts
CHANGED
|
@@ -2,21 +2,19 @@ import {
|
|
|
2
2
|
useContext,
|
|
3
3
|
createContext,
|
|
4
4
|
createElement,
|
|
5
|
-
ReactNode,
|
|
6
5
|
useState,
|
|
7
6
|
useEffect,
|
|
7
|
+
FC,
|
|
8
|
+
ReactNode,
|
|
8
9
|
} from 'react'
|
|
9
10
|
import { BasedClient, AuthState } from '@based/client'
|
|
10
11
|
|
|
11
|
-
const Ctx = createContext<BasedClient>()
|
|
12
|
+
const Ctx = createContext<BasedClient>(null)
|
|
12
13
|
|
|
13
|
-
export const Provider
|
|
14
|
-
client,
|
|
15
|
-
children,
|
|
16
|
-
}: {
|
|
14
|
+
export const Provider: FC<{
|
|
17
15
|
client: BasedClient
|
|
18
16
|
children: ReactNode
|
|
19
|
-
}) => {
|
|
17
|
+
}> = ({ client, children }) => {
|
|
20
18
|
return createElement(Ctx.Provider, { value: client }, children)
|
|
21
19
|
}
|
|
22
20
|
|
|
@@ -38,6 +36,30 @@ export const useAuthState = (): AuthState => {
|
|
|
38
36
|
return state
|
|
39
37
|
}
|
|
40
38
|
|
|
39
|
+
export const useConnected = () => {
|
|
40
|
+
const client: BasedClient = useContext(Ctx)
|
|
41
|
+
const [connected, setConnected] = useState(client.connected)
|
|
42
|
+
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (client) {
|
|
45
|
+
setConnected(client.connected)
|
|
46
|
+
const listener = () => {
|
|
47
|
+
setConnected(client.connected)
|
|
48
|
+
}
|
|
49
|
+
client.on('disconnect', listener)
|
|
50
|
+
client.on('reconnect', listener)
|
|
51
|
+
client.on('connect', listener)
|
|
52
|
+
return () => {
|
|
53
|
+
client.off('disconnect', listener)
|
|
54
|
+
client.off('reconnect', listener)
|
|
55
|
+
client.off('connect', listener)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}, [client])
|
|
59
|
+
|
|
60
|
+
return { connected }
|
|
61
|
+
}
|
|
62
|
+
|
|
41
63
|
export const useQuery = (
|
|
42
64
|
name?: string,
|
|
43
65
|
payload?: any,
|
|
@@ -51,7 +73,7 @@ export const useQuery = (
|
|
|
51
73
|
} => {
|
|
52
74
|
const client: BasedClient = useContext(Ctx)
|
|
53
75
|
|
|
54
|
-
if (name) {
|
|
76
|
+
if (client && name) {
|
|
55
77
|
const q = client.query(name, payload, opts)
|
|
56
78
|
const { id, cache } = q
|
|
57
79
|
const [checksum, update] = useState(cache?.checksum)
|