@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 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: ({ client, children, }: {
3
+ export declare const Provider: FC<{
4
4
  client: BasedClient;
5
5
  children: ReactNode;
6
- }) => any;
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,iCAOc;AAGd,MAAM,GAAG,GAAG,IAAA,qBAAa,GAAe,CAAA;AAEjC,MAAM,QAAQ,GAAG,CAAC,EACvB,MAAM,EACN,QAAQ,GAIT,EAAE,EAAE;IACH,OAAO,IAAA,qBAAa,EAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;AACjE,CAAC,CAAA;AARY,QAAA,QAAQ,YAQpB;AAEM,MAAM,YAAY,GAAG,GAAc,EAAE;IAC1C,MAAM,MAAM,GAAgB,IAAA,kBAAU,EAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAY,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAA;IAEtE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE;YACV,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC1B,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,EAAE;gBAC7B,QAAQ,CAAC,SAAS,CAAC,CAAA;YACrB,CAAC,CAAA;YACD,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;YACvC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;SACtD;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAhBY,QAAA,YAAY,gBAgBxB;AAEM,MAAM,QAAQ,GAAG,CACtB,IAAa,EACb,OAAa,EACb,IAEC,EAKD,EAAE;IACF,MAAM,MAAM,GAAgB,IAAA,kBAAU,EAAC,GAAG,CAAC,CAAA;IAE3C,IAAI,IAAI,EAAE;QACR,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACvB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAEpD,IAAA,iBAAS,EAAC,GAAG,EAAE;YACb,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE;gBAC9C,MAAM,CAAC,QAAQ,CAAC,CAAA;YAClB,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG,EAAE;gBACV,WAAW,EAAE,CAAA;YACf,CAAC,CAAA;QACH,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAER,OAAO,KAAK;YACV,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE;YACjD,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;KACtB;IAED,QAAQ;IACR,IAAA,iBAAS,EAAC,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3B,IAAA,gBAAQ,GAAE,CAAA;IAEV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACtC,CAAC,CAAA;AAtCY,QAAA,QAAQ,YAsCpB;AAEM,MAAM,SAAS,GAAG,GAAgB,EAAE;IACzC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAHY,QAAA,SAAS,aAGrB"}
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.0",
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)