@xyo-network/react-node 2.45.0-rc.11 → 2.45.0-rc.13

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.
@@ -3,7 +3,7 @@ import { useAsyncEffect } from '@xylabs/react-shared';
3
3
  import { NodeWrapper } from '@xyo-network/node';
4
4
  import { useState } from 'react';
5
5
  import { useProvidedNode } from './useProvidedNode';
6
- export const createUseModuleHook = (wrapFunc, nodeFunc) => {
6
+ export const createUseModuleHook = (wrapFunc, nodeFunc, defaultModuleFunc = () => [undefined, undefined]) => {
7
7
  function use(nameOrAddressOrWrapOrAccount, wrap = false) {
8
8
  const [node, nodeError] = nodeFunc();
9
9
  const shouldWrap = typeof nameOrAddressOrWrapOrAccount === 'boolean' ? nameOrAddressOrWrapOrAccount : wrap;
@@ -26,7 +26,8 @@ export const createUseModuleHook = (wrapFunc, nodeFunc) => {
26
26
  const module = nameOrAddress
27
27
  ? await wrappedNode?.resolve(nameOrAddress)
28
28
  : (await wrappedNode.resolve()).pop();
29
- const finalModule = shouldWrap ? wrapFunc(module, account) : module;
29
+ const moduleWithDefault = nameOrAddress ? module : module ?? defaultModuleFunc()[0];
30
+ const finalModule = shouldWrap ? wrapFunc(moduleWithDefault, account) : moduleWithDefault;
30
31
  if (mounted()) {
31
32
  console.log(`Setting Module [${finalModule?.address}]`);
32
33
  setModule(finalModule);
@@ -53,5 +54,5 @@ export const createUseModuleHook = (wrapFunc, nodeFunc) => {
53
54
  }
54
55
  return use;
55
56
  };
56
- export const useNode = createUseModuleHook((module) => NodeWrapper.tryWrap(module), useProvidedNode);
57
+ export const useNode = createUseModuleHook((module) => NodeWrapper.tryWrap(module), useProvidedNode, useProvidedNode);
57
58
  //# sourceMappingURL=useNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"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"}
@@ -1,22 +1,24 @@
1
1
  import { NodeWrapper } from '@xyo-network/node';
2
- import { useContext, useState } from 'react';
2
+ import { useContext, useEffect, useState } from 'react';
3
3
  import { NodeContext } from '../contexts';
4
4
  function useProvidedNodeFunc(wrap) {
5
5
  const { node } = useContext(NodeContext);
6
6
  const [wrappedNode, setWrappedNode] = useState();
7
7
  const [error, setError] = useState();
8
- try {
9
- if (wrap) {
10
- const account = typeof wrap === 'boolean' ? undefined : wrap;
11
- const wrappedNode = wrap ? NodeWrapper.wrap(node, account) : undefined;
12
- setWrappedNode(wrappedNode);
13
- setError(undefined);
8
+ useEffect(() => {
9
+ try {
10
+ if (node) {
11
+ const account = typeof wrap === 'boolean' ? undefined : wrap;
12
+ const wrappedNode = wrap ? NodeWrapper.wrap(node, account) : undefined;
13
+ setWrappedNode(wrappedNode);
14
+ setError(undefined);
15
+ }
14
16
  }
15
- }
16
- catch (ex) {
17
- setError(ex);
18
- }
19
- return [wrap ? wrappedNode : node, error];
17
+ catch (ex) {
18
+ setError(ex);
19
+ }
20
+ }, [node, wrap]);
21
+ return [wrap ? wrappedNode : wrappedNode?.module, error];
20
22
  }
21
23
  export const useProvidedNode = useProvidedNodeFunc;
22
24
  //# sourceMappingURL=useProvidedNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProvidedNode.js","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAKzC,SAAS,mBAAmB,CAAC,IAAmC;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAe,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,IAAI;QACF,IAAI,IAAI,EAAE;YACR,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACtE,cAAc,CAAC,WAAW,CAAC,CAAA;YAC3B,QAAQ,CAAC,SAAS,CAAC,CAAA;SACpB;KACF;IAAC,OAAO,EAAE,EAAE;QACX,QAAQ,CAAC,EAAW,CAAC,CAAA;KACtB;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAA"}
1
+ {"version":3,"file":"useProvidedNode.js","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAKzC,SAAS,mBAAmB,CAAC,IAAmC;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAe,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI;YACF,IAAI,IAAI,EAAE;gBACR,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;gBAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBACtE,cAAc,CAAC,WAAW,CAAC,CAAA;gBAC3B,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAEhB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAA"}
@@ -43,7 +43,7 @@ export declare const createUseModuleHook: <TModule extends Module<import("@xyo-n
43
43
  storeQueries?: boolean | undefined;
44
44
  } & {
45
45
  schema: string;
46
- }>>, TWrapFunc extends WrapFunc<TModule, TWrapper> = WrapFunc<TModule, TWrapper>>(wrapFunc: TWrapFunc, nodeFunc: NodeFunc) => {
46
+ }>>, TWrapFunc extends WrapFunc<TModule, TWrapper> = WrapFunc<TModule, TWrapper>>(wrapFunc: TWrapFunc, nodeFunc: NodeFunc, defaultModuleFunc?: () => [TModule | undefined, Error | undefined]) => {
47
47
  (name?: string): [TModule | undefined, Error | undefined];
48
48
  (name: string | undefined, wrap: true | Account): [TWrapper | undefined, Error | undefined];
49
49
  (wrap: true | Account): [TWrapper | undefined, Error | undefined];
@@ -1 +1 @@
1
- {"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK3D,MAAM,MAAM,QAAQ,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,QAAQ,SAAS,aAAa,GAAG,aAAa,IAAI,CACtG,MAAM,CAAC,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,KACd,QAAQ,GAAG,SAAS,CAAA;AAEzB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AAExE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iHAMpB,QAAQ;YAEE,MAAM;WACP,MAAM,GAAG,SAAS,QAAQ,IAAI,GAAG,OAAO;WACxC,IAAI,GAAG,OAAO;cACX,MAAM;cACN,MAAM,QAAQ,IAAI,GAAG,OAAO;CAoDnD,CAAA;AAED,eAAO,MAAM,OAAO;YA1DE,MAAM;WACP,MAAM,GAAG,SAAS,QAAQ,IAAI,GAAG,OAAO;WACxC,IAAI,GAAG,OAAO;cACX,MAAM;cACN,MAAM,QAAQ,IAAI,GAAG,OAAO;CAsDyE,CAAA"}
1
+ {"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK3D,MAAM,MAAM,QAAQ,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,QAAQ,SAAS,aAAa,GAAG,aAAa,IAAI,CACtG,MAAM,CAAC,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,KACd,QAAQ,GAAG,SAAS,CAAA;AAEzB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AAExE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iHAMpB,QAAQ;YAGE,MAAM;WACP,MAAM,GAAG,SAAS,QAAQ,IAAI,GAAG,OAAO;WACxC,IAAI,GAAG,OAAO;cACX,MAAM;cACN,MAAM,QAAQ,IAAI,GAAG,OAAO;CAqDnD,CAAA;AAED,eAAO,MAAM,OAAO;YA3DE,MAAM;WACP,MAAM,GAAG,SAAS,QAAQ,IAAI,GAAG,OAAO;WACxC,IAAI,GAAG,OAAO;cACX,MAAM;cACN,MAAM,QAAQ,IAAI,GAAG,OAAO;CAuD0F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useProvidedNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK3D,iBAAS,mBAAmB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AAC3F,iBAAS,mBAAmB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AACtF,iBAAS,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AAmBhG,eAAO,MAAM,eAAe,4BAAsB,CAAA"}
1
+ {"version":3,"file":"useProvidedNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK3D,iBAAS,mBAAmB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AAC3F,iBAAS,mBAAmB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AACtF,iBAAS,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,CAAA;AAsBhG,eAAO,MAAM,eAAe,4BAAsB,CAAA"}
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "@xyo-network/module-model": "^2.51.2",
22
22
  "@xyo-network/node": "^2.51.2",
23
23
  "@xyo-network/payload-model": "^2.51.2",
24
- "@xyo-network/react-shared": "^2.45.0-rc.11",
24
+ "@xyo-network/react-shared": "^2.45.0-rc.13",
25
25
  "@xyo-network/witness": "^2.51.2"
26
26
  },
27
27
  "devDependencies": {
@@ -83,6 +83,6 @@
83
83
  },
84
84
  "sideEffects": false,
85
85
  "types": "dist/types/index.d.ts",
86
- "version": "2.45.0-rc.11",
86
+ "version": "2.45.0-rc.13",
87
87
  "stableVersion": "2.44.1"
88
88
  }
@@ -21,6 +21,7 @@ export const createUseModuleHook = <
21
21
  >(
22
22
  wrapFunc: TWrapFunc,
23
23
  nodeFunc: NodeFunc,
24
+ defaultModuleFunc: () => [TModule | undefined, Error | undefined] = () => [undefined, undefined],
24
25
  ) => {
25
26
  function use(name?: string): [TModule | undefined, Error | undefined]
26
27
  function use(name: string | undefined, wrap: true | Account): [TWrapper | undefined, Error | undefined]
@@ -51,7 +52,8 @@ export const createUseModuleHook = <
51
52
  const module: TModule | undefined = nameOrAddress
52
53
  ? await wrappedNode?.resolve<TModule>(nameOrAddress)
53
54
  : (await wrappedNode.resolve<TModule>()).pop()
54
- const finalModule = shouldWrap ? wrapFunc(module, account) : module
55
+ const moduleWithDefault = nameOrAddress ? module : module ?? defaultModuleFunc()[0]
56
+ const finalModule = shouldWrap ? wrapFunc(moduleWithDefault, account) : moduleWithDefault
55
57
  if (mounted()) {
56
58
  console.log(`Setting Module [${finalModule?.address}]`)
57
59
  setModule(finalModule)
@@ -80,4 +82,4 @@ export const createUseModuleHook = <
80
82
  return use
81
83
  }
82
84
 
83
- export const useNode = createUseModuleHook<NodeModule, NodeWrapper>((module) => NodeWrapper.tryWrap(module), useProvidedNode)
85
+ export const useNode = createUseModuleHook<NodeModule, NodeWrapper>((module) => NodeWrapper.tryWrap(module), useProvidedNode, useProvidedNode)
@@ -1,6 +1,6 @@
1
1
  import { Account } from '@xyo-network/account'
2
2
  import { NodeModule, NodeWrapper } from '@xyo-network/node'
3
- import { useContext, useState } from 'react'
3
+ import { useContext, useEffect, useState } from 'react'
4
4
 
5
5
  import { NodeContext } from '../contexts'
6
6
 
@@ -12,17 +12,20 @@ function useProvidedNodeFunc(wrap: boolean | Account | undefined): [NodeModule |
12
12
  const [wrappedNode, setWrappedNode] = useState<NodeWrapper>()
13
13
  const [error, setError] = useState<Error>()
14
14
 
15
- try {
16
- if (wrap) {
17
- const account = typeof wrap === 'boolean' ? undefined : wrap
18
- const wrappedNode = wrap ? NodeWrapper.wrap(node, account) : undefined
19
- setWrappedNode(wrappedNode)
20
- setError(undefined)
15
+ useEffect(() => {
16
+ try {
17
+ if (node) {
18
+ const account = typeof wrap === 'boolean' ? undefined : wrap
19
+ const wrappedNode = wrap ? NodeWrapper.wrap(node, account) : undefined
20
+ setWrappedNode(wrappedNode)
21
+ setError(undefined)
22
+ }
23
+ } catch (ex) {
24
+ setError(ex as Error)
21
25
  }
22
- } catch (ex) {
23
- setError(ex as Error)
24
- }
25
- return [wrap ? wrappedNode : node, error]
26
+ }, [node, wrap])
27
+
28
+ return [wrap ? wrappedNode : wrappedNode?.module, error]
26
29
  }
27
30
 
28
31
  export const useProvidedNode = useProvidedNodeFunc