@xyo-network/react-node 2.45.0-rc.17 → 2.45.0-rc.19

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.
Files changed (110) hide show
  1. package/dist/cjs/hooks/index.js +1 -9
  2. package/dist/cjs/hooks/index.js.map +1 -1
  3. package/dist/cjs/hooks/useMemoryNodeUpdates.js +1 -1
  4. package/dist/cjs/hooks/useMemoryNodeUpdates.js.map +1 -1
  5. package/dist/cjs/hooks/useModule.js +18 -10
  6. package/dist/cjs/hooks/useModule.js.map +1 -1
  7. package/dist/cjs/hooks/useModules.js +31 -6
  8. package/dist/cjs/hooks/useModules.js.map +1 -1
  9. package/dist/cjs/hooks/useNode.js +41 -7
  10. package/dist/cjs/hooks/useNode.js.map +1 -1
  11. package/dist/cjs/hooks/{useModuleAddresses.js → useNodeAttachedAddresses.js} +9 -9
  12. package/dist/cjs/hooks/useNodeAttachedAddresses.js.map +1 -0
  13. package/dist/cjs/hooks/useProvidedNode.js +13 -9
  14. package/dist/cjs/hooks/useProvidedNode.js.map +1 -1
  15. package/dist/docs.json +516 -1350
  16. package/dist/esm/hooks/index.js +1 -9
  17. package/dist/esm/hooks/index.js.map +1 -1
  18. package/dist/esm/hooks/useMemoryNodeUpdates.js +1 -1
  19. package/dist/esm/hooks/useMemoryNodeUpdates.js.map +1 -1
  20. package/dist/esm/hooks/useModule.js +19 -11
  21. package/dist/esm/hooks/useModule.js.map +1 -1
  22. package/dist/esm/hooks/useModules.js +32 -7
  23. package/dist/esm/hooks/useModules.js.map +1 -1
  24. package/dist/esm/hooks/useNode.js +41 -7
  25. package/dist/esm/hooks/useNode.js.map +1 -1
  26. package/dist/esm/hooks/useNodeAttachedAddresses.js +17 -0
  27. package/dist/esm/hooks/useNodeAttachedAddresses.js.map +1 -0
  28. package/dist/esm/hooks/useProvidedNode.js +10 -8
  29. package/dist/esm/hooks/useProvidedNode.js.map +1 -1
  30. package/dist/types/hooks/index.d.ts +1 -9
  31. package/dist/types/hooks/index.d.ts.map +1 -1
  32. package/dist/types/hooks/useModule.d.ts.map +1 -1
  33. package/dist/types/hooks/useModules.d.ts +5 -5
  34. package/dist/types/hooks/useModules.d.ts.map +1 -1
  35. package/dist/types/hooks/useNode.d.ts +3 -2
  36. package/dist/types/hooks/useNode.d.ts.map +1 -1
  37. package/dist/types/hooks/useNodeAttachedAddresses.d.ts +2 -0
  38. package/dist/types/hooks/useNodeAttachedAddresses.d.ts.map +1 -0
  39. package/dist/types/hooks/useProvidedNode.d.ts +3 -6
  40. package/dist/types/hooks/useProvidedNode.d.ts.map +1 -1
  41. package/package.json +6 -11
  42. package/src/components/Node.stories.tsx +1 -1
  43. package/src/hooks/index.ts +1 -9
  44. package/src/hooks/useMemoryNodeUpdates.tsx +1 -1
  45. package/src/hooks/useModule.tsx +20 -11
  46. package/src/hooks/useModules.ts +32 -10
  47. package/src/hooks/useNode.tsx +41 -8
  48. package/src/hooks/{useModuleAddresses.ts → useNodeAttachedAddresses.ts} +6 -6
  49. package/src/hooks/useProvidedNode.tsx +12 -12
  50. package/dist/cjs/hooks/useArchiveArchivists.js +0 -38
  51. package/dist/cjs/hooks/useArchiveArchivists.js.map +0 -1
  52. package/dist/cjs/hooks/useArchivistModule.js +0 -12
  53. package/dist/cjs/hooks/useArchivistModule.js.map +0 -1
  54. package/dist/cjs/hooks/useArchivistModules.js +0 -11
  55. package/dist/cjs/hooks/useArchivistModules.js.map +0 -1
  56. package/dist/cjs/hooks/useDivinerModule.js +0 -12
  57. package/dist/cjs/hooks/useDivinerModule.js.map +0 -1
  58. package/dist/cjs/hooks/useDivinerModules.js +0 -12
  59. package/dist/cjs/hooks/useDivinerModules.js.map +0 -1
  60. package/dist/cjs/hooks/useModuleAddresses.js.map +0 -1
  61. package/dist/cjs/hooks/useNodeQueryDiviner.js +0 -43
  62. package/dist/cjs/hooks/useNodeQueryDiviner.js.map +0 -1
  63. package/dist/cjs/hooks/useWitnessModule.js +0 -12
  64. package/dist/cjs/hooks/useWitnessModule.js.map +0 -1
  65. package/dist/cjs/hooks/useWitnessModules.js +0 -11
  66. package/dist/cjs/hooks/useWitnessModules.js.map +0 -1
  67. package/dist/esm/hooks/useArchiveArchivists.js +0 -33
  68. package/dist/esm/hooks/useArchiveArchivists.js.map +0 -1
  69. package/dist/esm/hooks/useArchivistModule.js +0 -8
  70. package/dist/esm/hooks/useArchivistModule.js.map +0 -1
  71. package/dist/esm/hooks/useArchivistModules.js +0 -7
  72. package/dist/esm/hooks/useArchivistModules.js.map +0 -1
  73. package/dist/esm/hooks/useDivinerModule.js +0 -8
  74. package/dist/esm/hooks/useDivinerModule.js.map +0 -1
  75. package/dist/esm/hooks/useDivinerModules.js +0 -8
  76. package/dist/esm/hooks/useDivinerModules.js.map +0 -1
  77. package/dist/esm/hooks/useModuleAddresses.js +0 -17
  78. package/dist/esm/hooks/useModuleAddresses.js.map +0 -1
  79. package/dist/esm/hooks/useNodeQueryDiviner.js +0 -37
  80. package/dist/esm/hooks/useNodeQueryDiviner.js.map +0 -1
  81. package/dist/esm/hooks/useWitnessModule.js +0 -8
  82. package/dist/esm/hooks/useWitnessModule.js.map +0 -1
  83. package/dist/esm/hooks/useWitnessModules.js +0 -7
  84. package/dist/esm/hooks/useWitnessModules.js.map +0 -1
  85. package/dist/types/hooks/useArchiveArchivists.d.ts +0 -9
  86. package/dist/types/hooks/useArchiveArchivists.d.ts.map +0 -1
  87. package/dist/types/hooks/useArchivistModule.d.ts +0 -4
  88. package/dist/types/hooks/useArchivistModule.d.ts.map +0 -1
  89. package/dist/types/hooks/useArchivistModules.d.ts +0 -3
  90. package/dist/types/hooks/useArchivistModules.d.ts.map +0 -1
  91. package/dist/types/hooks/useDivinerModule.d.ts +0 -4
  92. package/dist/types/hooks/useDivinerModule.d.ts.map +0 -1
  93. package/dist/types/hooks/useDivinerModules.d.ts +0 -3
  94. package/dist/types/hooks/useDivinerModules.d.ts.map +0 -1
  95. package/dist/types/hooks/useModuleAddresses.d.ts +0 -2
  96. package/dist/types/hooks/useModuleAddresses.d.ts.map +0 -1
  97. package/dist/types/hooks/useNodeQueryDiviner.d.ts +0 -6
  98. package/dist/types/hooks/useNodeQueryDiviner.d.ts.map +0 -1
  99. package/dist/types/hooks/useWitnessModule.d.ts +0 -4
  100. package/dist/types/hooks/useWitnessModule.d.ts.map +0 -1
  101. package/dist/types/hooks/useWitnessModules.d.ts +0 -3
  102. package/dist/types/hooks/useWitnessModules.d.ts.map +0 -1
  103. package/src/hooks/useArchiveArchivists.tsx +0 -49
  104. package/src/hooks/useArchivistModule.ts +0 -10
  105. package/src/hooks/useArchivistModules.ts +0 -8
  106. package/src/hooks/useDivinerModule.ts +0 -10
  107. package/src/hooks/useDivinerModules.ts +0 -9
  108. package/src/hooks/useNodeQueryDiviner.tsx +0 -54
  109. package/src/hooks/useWitnessModule.ts +0 -10
  110. package/src/hooks/useWitnessModules.ts +0 -8
@@ -1,16 +1,8 @@
1
- export * from './useArchiveArchivists';
2
- export * from './useArchivistModule';
3
- export * from './useArchivistModules';
4
- export * from './useDivinerModule';
5
- export * from './useDivinerModules';
6
1
  export * from './useMemoryNodeUpdates';
7
2
  export * from './useModule';
8
- export * from './useModuleAddresses';
9
3
  export * from './useModules';
10
4
  export * from './useNode';
11
- export * from './useNodeQueryDiviner';
5
+ export * from './useNodeAttachedAddresses';
12
6
  export * from './useProvidedNode';
13
- export * from './useWitnessModule';
14
- export * from './useWitnessModules';
15
7
  export * from './useWrappedModule';
16
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -5,7 +5,7 @@ export const useMemoryNodeUpdates = (refreshAddresses) => {
5
5
  const [module, setModule] = useState();
6
6
  useEffect(() => {
7
7
  if (node) {
8
- const onFunc = node.on;
8
+ const onFunc = node.module.on;
9
9
  onFunc('moduleAttached', (args) => {
10
10
  if (refreshAddresses) {
11
11
  if (refreshAddresses.some((address) => address === args?.module.address))
@@ -1 +1 @@
1
- {"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAA2B,EAAwB,EAAE;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,EAAsC,CAAA;YAC1D,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,gBAAgB,EAAE;oBACpB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;wBAAE,SAAS,CAAC,IAAI,CAAC,CAAA;iBAC1F;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,CAAA;iBAChB;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE5B,OAAO;QACL,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAA2B,EAAwB,EAAE;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAsC,CAAA;YACjE,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,gBAAgB,EAAE;oBACpB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;wBAAE,SAAS,CAAC,IAAI,CAAC,CAAA;iBAC1F;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,CAAA;iBAChB;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE5B,OAAO;QACL,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}
@@ -1,31 +1,39 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared';
2
- import { NodeWrapper } from '@xyo-network/node';
3
2
  import { useState } from 'react';
4
- import { useProvidedNode } from './useProvidedNode';
3
+ import { useProvidedWrappedNode } from './useProvidedNode';
5
4
  export const useModule = (nameOrAddress) => {
6
- const [node, nodeError] = useProvidedNode();
5
+ const [node, nodeError] = useProvidedWrappedNode();
7
6
  const [module, setModule] = useState();
8
7
  const [error, setError] = useState();
8
+ const address = module?.address;
9
9
  useAsyncEffect(
10
10
  // eslint-disable-next-line react-hooks/exhaustive-deps
11
11
  async (mounted) => {
12
+ const detachHandler = (args) => {
13
+ const eventModule = args.module;
14
+ if (eventModule.address === address && mounted()) {
15
+ setModule(undefined);
16
+ setError(undefined);
17
+ }
18
+ };
12
19
  try {
13
20
  if (nodeError) {
14
- console.log(`Setting NodeError [${nodeError.message}]`);
15
21
  setError(nodeError);
16
22
  setModule(undefined);
17
23
  }
18
24
  else {
19
- const wrappedNode = NodeWrapper.tryWrap(node);
20
- if (wrappedNode) {
21
- const module = nameOrAddress
22
- ? await wrappedNode?.resolve(nameOrAddress)
23
- : (await wrappedNode.resolve()).pop();
25
+ if (node) {
26
+ const emitter = node.module;
27
+ const module = nameOrAddress ? await node.resolve(nameOrAddress) : (await node.resolve()).pop();
24
28
  if (mounted()) {
25
- console.log(`Setting Module [${module?.address}]`);
29
+ emitter.on('moduleDetached', detachHandler);
26
30
  setModule(module);
27
31
  setError(undefined);
28
32
  }
33
+ return () => {
34
+ //remove the event handler on unmount
35
+ emitter.on('moduleDetached', detachHandler, true);
36
+ };
29
37
  }
30
38
  else {
31
39
  console.log('Setting All to undefined');
@@ -42,7 +50,7 @@ export const useModule = (nameOrAddress) => {
42
50
  setModule(undefined);
43
51
  }
44
52
  }
45
- }, [nameOrAddress, node, nodeError]);
53
+ }, [nameOrAddress, node, nodeError, address]);
46
54
  return [module, error];
47
55
  };
48
56
  //# sourceMappingURL=useModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAkC,aAAsB,EAA4C,EAAE;IAC7H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,eAAe,EAAE,CAAA;IAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,CAAC,OAAO,GAAG,CAAC,CAAA;gBACvD,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;iBAAM;gBACL,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC7C,IAAI,WAAW,EAAE;oBACf,MAAM,MAAM,GAAwB,aAAa;wBAC/C,CAAC,CAAC,MAAM,WAAW,EAAE,OAAO,CAAU,aAAa,CAAC;wBACpD,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,EAAW,CAAC,CAAC,GAAG,EAAE,CAAA;oBAChD,IAAI,OAAO,EAAE,EAAE;wBACb,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,EAAE,OAAO,GAAG,CAAC,CAAA;wBAClD,SAAS,CAAC,MAAM,CAAC,CAAA;wBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,CACjC,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAkC,aAAsB,EAA4C,EAAE;IAC7H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAA;IAC/B,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,aAAa,GAAG,CAAC,IAA6B,EAAE,EAAE;YACtD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAA;YAC/B,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,EAAE;gBAChD,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpB,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;QACH,CAAC,CAAA;QACD,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,OAAO,GAAG,IAAI,CAAC,MAAoC,CAAA;oBACzD,MAAM,MAAM,GAAwB,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAU,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAW,CAAC,CAAC,GAAG,EAAE,CAAA;oBACtI,IAAI,OAAO,EAAE,EAAE;wBACb,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;wBAC3C,SAAS,CAAC,MAAM,CAAC,CAAA;wBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;oBACD,OAAO,GAAG,EAAE;wBACV,qCAAqC;wBACrC,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;oBACnD,CAAC,CAAA;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAC1C,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
@@ -1,17 +1,42 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared';
2
2
  import { useState } from 'react';
3
- import { useProvidedNode } from './useProvidedNode';
3
+ import { useProvidedWrappedNode } from './useProvidedNode';
4
4
  export const useModules = (filter) => {
5
- const [node] = useProvidedNode(true);
5
+ const [node, nodeError] = useProvidedWrappedNode();
6
6
  const [modules, setModules] = useState();
7
+ const [error, setError] = useState();
7
8
  useAsyncEffect(
8
9
  // eslint-disable-next-line react-hooks/exhaustive-deps
9
10
  async (mounted) => {
10
- const modules = await node?.resolve(filter);
11
- if (mounted()) {
12
- setModules(modules);
11
+ try {
12
+ if (nodeError) {
13
+ setError(nodeError);
14
+ setModules(undefined);
15
+ }
16
+ else {
17
+ if (node) {
18
+ const modules = await node.resolve(filter);
19
+ if (mounted()) {
20
+ setModules(modules);
21
+ setError(undefined);
22
+ }
23
+ }
24
+ else {
25
+ console.log('Setting All to undefined');
26
+ setError(undefined);
27
+ setModules(undefined);
28
+ }
29
+ }
13
30
  }
14
- }, [filter, node]);
15
- return modules;
31
+ catch (ex) {
32
+ if (mounted()) {
33
+ const error = ex;
34
+ console.log(`Setting Error [${error.message}]`);
35
+ setError(error);
36
+ setModules(undefined);
37
+ }
38
+ }
39
+ }, [filter, node, nodeError]);
40
+ return [modules, error];
16
41
  };
17
42
  //# sourceMappingURL=useModules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4B,MAAqB,EAAE,EAAE;IAC7E,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAO,CAAA;IAE7C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,OAAO,CAAI,MAAM,CAAC,CAAA;QAC9C,IAAI,OAAO,EAAE,EAAE;YACb,UAAU,CAAC,OAAO,CAAC,CAAA;SACpB;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,CAAC,CACf,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,MAAqB,EAA8C,EAAE;IAC/H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,OAAO,GAA0B,MAAM,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;oBAC1E,IAAI,OAAO,EAAE,EAAE;wBACb,UAAU,CAAC,OAAO,CAAC,CAAA;wBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;iBACtB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;SACF;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAC1B,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
@@ -1,16 +1,50 @@
1
+ import { NodeWrapper } from '@xyo-network/node';
2
+ import { useEffect, useState } from 'react';
1
3
  import { useModule } from './useModule';
2
4
  import { useProvidedNode } from './useProvidedNode';
3
- export const useNode = (nameOrAddress) => {
4
- const providedNode = useProvidedNode();
5
- const node = useModule(nameOrAddress);
5
+ //AT: intentionally not exported
6
+ const useNodeModule = (nameOrAddress) => {
7
+ const [providedNode] = useProvidedNode();
8
+ const [node, nodeError] = useModule(nameOrAddress);
6
9
  if (nameOrAddress) {
7
- if (providedNode && node) {
8
- return node;
10
+ if (providedNode) {
11
+ return [node, nodeError];
12
+ }
13
+ else {
14
+ return [providedNode, undefined];
9
15
  }
10
16
  }
11
17
  else {
12
- return providedNode;
18
+ return [providedNode, undefined];
13
19
  }
14
- return [undefined, undefined];
20
+ };
21
+ export const useNode = (nameOrAddress, account) => {
22
+ const [node, nodeError] = useNodeModule();
23
+ const [wrapper, setWrapper] = useState();
24
+ const [error, setError] = useState();
25
+ useEffect(() => {
26
+ if (node) {
27
+ if (nodeError) {
28
+ setError(nodeError);
29
+ setWrapper(undefined);
30
+ }
31
+ else {
32
+ try {
33
+ const wrapper = NodeWrapper.wrap(node, account);
34
+ setWrapper(wrapper);
35
+ setError(undefined);
36
+ }
37
+ catch (ex) {
38
+ setWrapper(undefined);
39
+ setError(ex);
40
+ }
41
+ }
42
+ }
43
+ else {
44
+ setWrapper(undefined);
45
+ setError(undefined);
46
+ }
47
+ }, [node, account, nodeError]);
48
+ return [wrapper, error];
15
49
  };
16
50
  //# sourceMappingURL=useNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,aAAsB,EAA+C,EAAE;IAC7F,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,IAAI,GAAG,SAAS,CAAa,aAAa,CAAC,CAAA;IAEjD,IAAI,aAAa,EAAE;QACjB,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,OAAO,IAAI,CAAA;SACZ;KACF;SAAM;QACL,OAAO,YAAY,CAAA;KACpB;IACD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAC/B,CAAC,CAAA"}
1
+ {"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,gCAAgC;AAChC,MAAM,aAAa,GAAG,CAAC,aAAsB,EAA+C,EAAE;IAC5F,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;IAElD,IAAI,aAAa,EAAE;QACjB,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAkB,EAAE,SAAS,CAAC,CAAA;SACvC;aAAM;YACL,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;SACjC;KACF;SAAM;QACL,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;KACjC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,aAAsB,EAAE,OAAyB,EAAgD,EAAE;IACzH,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,aAAa,EAAE,CAAA;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAe,CAAA;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI;oBACF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBAC/C,UAAU,CAAC,OAAO,CAAC,CAAA;oBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;SACF;aAAM;YACL,UAAU,CAAC,SAAS,CAAC,CAAA;YACrB,QAAQ,CAAC,SAAS,CAAC,CAAA;SACpB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAE9B,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { useAsyncEffect } from '@xylabs/react-shared';
2
+ import { useState } from 'react';
3
+ import { useNode } from './useNode';
4
+ export const useNodeAttachedAddresses = () => {
5
+ const [node] = useNode();
6
+ const [addresses, setAddresses] = useState();
7
+ useAsyncEffect(
8
+ // eslint-disable-next-line react-hooks/exhaustive-deps
9
+ async (mounted) => {
10
+ const attached = await node?.attached();
11
+ if (mounted()) {
12
+ setAddresses(attached);
13
+ }
14
+ }, [node]);
15
+ return [addresses, node?.registered()];
16
+ };
17
+ //# sourceMappingURL=useNodeAttachedAddresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeAttachedAddresses.js","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAY,CAAA;IAEtD,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,QAAQ,EAAE,CAAA;QACvC,IAAI,OAAO,EAAE,EAAE;YACb,YAAY,CAAC,QAAQ,CAAC,CAAA;SACvB;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;AACxC,CAAC,CAAA"}
@@ -1,24 +1,26 @@
1
1
  import { NodeWrapper } from '@xyo-network/node';
2
2
  import { useContext, useEffect, useState } from 'react';
3
3
  import { NodeContext } from '../contexts';
4
- function useProvidedNodeFunc(wrap) {
4
+ export const useProvidedNode = () => {
5
5
  const { node } = useContext(NodeContext);
6
+ return [node];
7
+ };
8
+ export const useProvidedWrappedNode = (account) => {
9
+ const [node] = useProvidedNode();
6
10
  const [wrappedNode, setWrappedNode] = useState();
7
11
  const [error, setError] = useState();
8
12
  useEffect(() => {
9
13
  try {
10
14
  if (node) {
11
- const account = typeof wrap === 'boolean' ? undefined : wrap;
12
- const wrappedNode = wrap ? NodeWrapper.wrap(node, account) : undefined;
13
- setWrappedNode(wrappedNode);
15
+ setWrappedNode(NodeWrapper.wrap(node, account));
14
16
  setError(undefined);
15
17
  }
16
18
  }
17
19
  catch (ex) {
20
+ setWrappedNode(undefined);
18
21
  setError(ex);
19
22
  }
20
- }, [node, wrap]);
21
- return [wrap ? wrappedNode : wrappedNode?.module, error];
22
- }
23
- export const useProvidedNode = useProvidedNodeFunc;
23
+ }, [node, account]);
24
+ return [wrappedNode, error];
25
+ };
24
26
  //# 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,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"}
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;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,GAA6B,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IAExC,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAyB,EAAgD,EAAE;IAChH,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,CAAA;IAChC,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,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;gBAC/C,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAEnB,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC,CAAA"}
@@ -1,16 +1,8 @@
1
- export * from './useArchiveArchivists';
2
- export * from './useArchivistModule';
3
- export * from './useArchivistModules';
4
- export * from './useDivinerModule';
5
- export * from './useDivinerModules';
6
1
  export * from './useMemoryNodeUpdates';
7
2
  export * from './useModule';
8
- export * from './useModuleAddresses';
9
3
  export * from './useModules';
10
4
  export * from './useNode';
11
- export * from './useNodeQueryDiviner';
5
+ export * from './useNodeAttachedAddresses';
12
6
  export * from './useProvidedNode';
13
- export * from './useWitnessModule';
14
- export * from './useWitnessModules';
15
7
  export * from './useWrappedModule';
16
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;oBAAqD,MAAM,6CA0ChF,CAAA"}
1
+ {"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;oBAAqD,MAAM,6CAmDhF,CAAA"}
@@ -1,9 +1,9 @@
1
- import { Module, ModuleFilter } from '@xyo-network/module';
2
- export declare const useModules: <T extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
1
+ import { Module, ModuleFilter } from '@xyo-network/module-model';
2
+ export declare const useModules: <TModule extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
3
3
  name?: string | undefined;
4
4
  security?: {
5
5
  allowAnonymous?: boolean | undefined;
6
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
6
+ allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
7
7
  disallowed?: Record<string, string[]> | undefined;
8
8
  } | undefined;
9
9
  storeQueries?: boolean | undefined;
@@ -13,11 +13,11 @@ export declare const useModules: <T extends Module<import("@xyo-network/payload-
13
13
  name?: string | undefined;
14
14
  security?: {
15
15
  allowAnonymous?: boolean | undefined;
16
- allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
16
+ allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
17
17
  disallowed?: Record<string, string[]> | undefined;
18
18
  } | undefined;
19
19
  storeQueries?: boolean | undefined;
20
20
  } & {
21
21
  schema: string;
22
- }>>(filter?: ModuleFilter) => T[] | undefined;
22
+ }>>(filter?: ModuleFilter) => [TModule[] | undefined, Error | undefined];
23
23
  //# sourceMappingURL=useModules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAK1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAAwC,YAAY,oBAgB1E,CAAA"}
1
+ {"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAA8C,YAAY,+CAsChF,CAAA"}
@@ -1,3 +1,4 @@
1
- import { NodeModule } from '@xyo-network/node';
2
- export declare const useNode: (nameOrAddress?: string) => [NodeModule | undefined, Error | undefined];
1
+ import { AccountInstance } from '@xyo-network/account-model';
2
+ import { NodeWrapper } from '@xyo-network/node';
3
+ export declare const useNode: (nameOrAddress?: string, account?: AccountInstance) => [NodeWrapper | undefined, Error | undefined];
3
4
  //# sourceMappingURL=useNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAK9C,eAAO,MAAM,OAAO,mBAAoB,MAAM,KAAG,CAAC,UAAU,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAY1F,CAAA"}
1
+ {"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAsB3D,eAAO,MAAM,OAAO,mBAAoB,MAAM,YAAY,eAAe,KAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2BtH,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const useNodeAttachedAddresses: () => (string[] | Promise<string[]> | undefined)[];
2
+ //# sourceMappingURL=useNodeAttachedAddresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNodeAttachedAddresses.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,oDAgBpC,CAAA"}
@@ -1,8 +1,5 @@
1
- import { Account } from '@xyo-network/account';
1
+ import { AccountInstance } from '@xyo-network/account-model';
2
2
  import { NodeModule, NodeWrapper } from '@xyo-network/node';
3
- declare function useProvidedNodeFunc(wrap?: undefined): [NodeModule | undefined, Error | undefined];
4
- declare function useProvidedNodeFunc(wrap: false): [NodeModule | undefined, Error | undefined];
5
- declare function useProvidedNodeFunc(wrap: true | Account): [NodeWrapper | undefined, Error | undefined];
6
- export declare const useProvidedNode: typeof useProvidedNodeFunc;
7
- export {};
3
+ export declare const useProvidedNode: () => [NodeModule | undefined];
4
+ export declare const useProvidedWrappedNode: (account?: AccountInstance) => [NodeWrapper | undefined, Error | undefined];
8
5
  //# sourceMappingURL=useProvidedNode.d.ts.map
@@ -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;AAsBhG,eAAO,MAAM,eAAe,4BAAsB,CAAA"}
1
+ {"version":3,"file":"useProvidedNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK3D,eAAO,MAAM,eAAe,QAAO,CAAC,UAAU,GAAG,SAAS,CAIzD,CAAA;AAED,eAAO,MAAM,sBAAsB,aAAc,eAAe,KAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CAkB7G,CAAA"}
package/package.json CHANGED
@@ -13,16 +13,11 @@
13
13
  "@mui/lab": "^5.0.0-alpha.121",
14
14
  "@xylabs/react-flexbox": "^2.16.8",
15
15
  "@xylabs/react-shared": "^2.16.8",
16
- "@xyo-network/account": "^2.51.2",
17
- "@xyo-network/archivist": "^2.51.2",
18
- "@xyo-network/diviner-model": "^2.51.2",
19
- "@xyo-network/diviner-wrapper": "^2.51.2",
20
- "@xyo-network/module": "^2.51.2",
21
- "@xyo-network/module-model": "^2.51.2",
22
- "@xyo-network/node": "^2.51.2",
23
- "@xyo-network/payload-model": "^2.51.2",
24
- "@xyo-network/react-shared": "^2.45.0-rc.17",
25
- "@xyo-network/witness": "^2.51.2"
16
+ "@xyo-network/account-model": "^2.51.4",
17
+ "@xyo-network/module": "^2.51.4",
18
+ "@xyo-network/module-model": "^2.51.4",
19
+ "@xyo-network/node": "^2.51.4",
20
+ "@xyo-network/react-shared": "^2.45.0-rc.19"
26
21
  },
27
22
  "devDependencies": {
28
23
  "@storybook/react": "^6.5.16",
@@ -83,6 +78,6 @@
83
78
  },
84
79
  "sideEffects": false,
85
80
  "types": "dist/types/index.d.ts",
86
- "version": "2.45.0-rc.17",
81
+ "version": "2.45.0-rc.19",
87
82
  "stableVersion": "2.44.1"
88
83
  }
@@ -23,7 +23,7 @@ export default {
23
23
  } as Meta
24
24
 
25
25
  const Template: ComponentStory<React.FC> = (props) => {
26
- const [node] = useProvidedNode() as [MemoryNode, Error]
26
+ const [node] = useProvidedNode() as [MemoryNode]
27
27
  const [description, setDescription] = useState<string>()
28
28
 
29
29
  useAsyncEffect(
@@ -1,15 +1,7 @@
1
- export * from './useArchiveArchivists'
2
- export * from './useArchivistModule'
3
- export * from './useArchivistModules'
4
- export * from './useDivinerModule'
5
- export * from './useDivinerModules'
6
1
  export * from './useMemoryNodeUpdates'
7
2
  export * from './useModule'
8
- export * from './useModuleAddresses'
9
3
  export * from './useModules'
10
4
  export * from './useNode'
11
- export * from './useNodeQueryDiviner'
5
+ export * from './useNodeAttachedAddresses'
12
6
  export * from './useProvidedNode'
13
- export * from './useWitnessModule'
14
- export * from './useWitnessModules'
15
7
  export * from './useWrappedModule'
@@ -16,7 +16,7 @@ export const useMemoryNodeUpdates = (refreshAddresses?: string[]): UseMemoryNode
16
16
 
17
17
  useEffect(() => {
18
18
  if (node) {
19
- const onFunc = node.on as ModuleAttachedEventEmitter['on']
19
+ const onFunc = node.module.on as ModuleAttachedEventEmitter['on']
20
20
  onFunc('moduleAttached', (args) => {
21
21
  if (refreshAddresses) {
22
22
  if (refreshAddresses.some((address) => address === args?.module.address)) setModule(args)
@@ -1,33 +1,42 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared'
2
2
  import { Module } from '@xyo-network/module-model'
3
- import { NodeWrapper } from '@xyo-network/node'
3
+ import { ModuleDetachedEventArgs, ModuleDetachedEventEmitter } from '@xyo-network/node'
4
4
  import { useState } from 'react'
5
5
 
6
- import { useProvidedNode } from './useProvidedNode'
6
+ import { useProvidedWrappedNode } from './useProvidedNode'
7
7
 
8
8
  export const useModule = <TModule extends Module = Module>(nameOrAddress?: string): [TModule | undefined, Error | undefined] => {
9
- const [node, nodeError] = useProvidedNode()
9
+ const [node, nodeError] = useProvidedWrappedNode()
10
10
  const [module, setModule] = useState<TModule>()
11
11
  const [error, setError] = useState<Error>()
12
+ const address = module?.address
12
13
  useAsyncEffect(
13
14
  // eslint-disable-next-line react-hooks/exhaustive-deps
14
15
  async (mounted) => {
16
+ const detachHandler = (args: ModuleDetachedEventArgs) => {
17
+ const eventModule = args.module
18
+ if (eventModule.address === address && mounted()) {
19
+ setModule(undefined)
20
+ setError(undefined)
21
+ }
22
+ }
15
23
  try {
16
24
  if (nodeError) {
17
- console.log(`Setting NodeError [${nodeError.message}]`)
18
25
  setError(nodeError)
19
26
  setModule(undefined)
20
27
  } else {
21
- const wrappedNode = NodeWrapper.tryWrap(node)
22
- if (wrappedNode) {
23
- const module: TModule | undefined = nameOrAddress
24
- ? await wrappedNode?.resolve<TModule>(nameOrAddress)
25
- : (await wrappedNode.resolve<TModule>()).pop()
28
+ if (node) {
29
+ const emitter = node.module as ModuleDetachedEventEmitter
30
+ const module: TModule | undefined = nameOrAddress ? await node.resolve<TModule>(nameOrAddress) : (await node.resolve<TModule>()).pop()
26
31
  if (mounted()) {
27
- console.log(`Setting Module [${module?.address}]`)
32
+ emitter.on('moduleDetached', detachHandler)
28
33
  setModule(module)
29
34
  setError(undefined)
30
35
  }
36
+ return () => {
37
+ //remove the event handler on unmount
38
+ emitter.on('moduleDetached', detachHandler, true)
39
+ }
31
40
  } else {
32
41
  console.log('Setting All to undefined')
33
42
  setError(undefined)
@@ -43,7 +52,7 @@ export const useModule = <TModule extends Module = Module>(nameOrAddress?: strin
43
52
  }
44
53
  }
45
54
  },
46
- [nameOrAddress, node, nodeError],
55
+ [nameOrAddress, node, nodeError, address],
47
56
  )
48
57
 
49
58
  return [module, error]
@@ -1,23 +1,45 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared'
2
- import { Module, ModuleFilter } from '@xyo-network/module'
2
+ import { Module, ModuleFilter } from '@xyo-network/module-model'
3
3
  import { useState } from 'react'
4
4
 
5
- import { useProvidedNode } from './useProvidedNode'
5
+ import { useProvidedWrappedNode } from './useProvidedNode'
6
6
 
7
- export const useModules = <T extends Module = Module>(filter?: ModuleFilter) => {
8
- const [node] = useProvidedNode(true)
9
- const [modules, setModules] = useState<T[]>()
7
+ export const useModules = <TModule extends Module = Module>(filter?: ModuleFilter): [TModule[] | undefined, Error | undefined] => {
8
+ const [node, nodeError] = useProvidedWrappedNode()
9
+ const [modules, setModules] = useState<TModule[]>()
10
+ const [error, setError] = useState<Error>()
10
11
 
11
12
  useAsyncEffect(
12
13
  // eslint-disable-next-line react-hooks/exhaustive-deps
13
14
  async (mounted) => {
14
- const modules = await node?.resolve<T>(filter)
15
- if (mounted()) {
16
- setModules(modules)
15
+ try {
16
+ if (nodeError) {
17
+ setError(nodeError)
18
+ setModules(undefined)
19
+ } else {
20
+ if (node) {
21
+ const modules: TModule[] | undefined = await node.resolve<TModule>(filter)
22
+ if (mounted()) {
23
+ setModules(modules)
24
+ setError(undefined)
25
+ }
26
+ } else {
27
+ console.log('Setting All to undefined')
28
+ setError(undefined)
29
+ setModules(undefined)
30
+ }
31
+ }
32
+ } catch (ex) {
33
+ if (mounted()) {
34
+ const error = ex as Error
35
+ console.log(`Setting Error [${error.message}]`)
36
+ setError(error)
37
+ setModules(undefined)
38
+ }
17
39
  }
18
40
  },
19
- [filter, node],
41
+ [filter, node, nodeError],
20
42
  )
21
43
 
22
- return modules
44
+ return [modules, error]
23
45
  }