@xyo-network/react-node 2.45.0-rc.18 → 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 (102) 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 +15 -3
  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 +36 -4
  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/docs.json +408 -1168
  14. package/dist/esm/hooks/index.js +1 -9
  15. package/dist/esm/hooks/index.js.map +1 -1
  16. package/dist/esm/hooks/useMemoryNodeUpdates.js +1 -1
  17. package/dist/esm/hooks/useMemoryNodeUpdates.js.map +1 -1
  18. package/dist/esm/hooks/useModule.js +15 -3
  19. package/dist/esm/hooks/useModule.js.map +1 -1
  20. package/dist/esm/hooks/useModules.js +31 -6
  21. package/dist/esm/hooks/useModules.js.map +1 -1
  22. package/dist/esm/hooks/useNode.js +37 -5
  23. package/dist/esm/hooks/useNode.js.map +1 -1
  24. package/dist/esm/hooks/useNodeAttachedAddresses.js +17 -0
  25. package/dist/esm/hooks/useNodeAttachedAddresses.js.map +1 -0
  26. package/dist/types/hooks/index.d.ts +1 -9
  27. package/dist/types/hooks/index.d.ts.map +1 -1
  28. package/dist/types/hooks/useModule.d.ts.map +1 -1
  29. package/dist/types/hooks/useModules.d.ts +5 -5
  30. package/dist/types/hooks/useModules.d.ts.map +1 -1
  31. package/dist/types/hooks/useNode.d.ts +3 -2
  32. package/dist/types/hooks/useNode.d.ts.map +1 -1
  33. package/dist/types/hooks/useNodeAttachedAddresses.d.ts +2 -0
  34. package/dist/types/hooks/useNodeAttachedAddresses.d.ts.map +1 -0
  35. package/package.json +6 -11
  36. package/src/hooks/index.ts +1 -9
  37. package/src/hooks/useMemoryNodeUpdates.tsx +1 -1
  38. package/src/hooks/useModule.tsx +16 -3
  39. package/src/hooks/useModules.ts +31 -9
  40. package/src/hooks/useNode.tsx +40 -8
  41. package/src/hooks/{useModuleAddresses.ts → useNodeAttachedAddresses.ts} +6 -6
  42. package/dist/cjs/hooks/useArchiveArchivists.js +0 -38
  43. package/dist/cjs/hooks/useArchiveArchivists.js.map +0 -1
  44. package/dist/cjs/hooks/useArchivistModule.js +0 -12
  45. package/dist/cjs/hooks/useArchivistModule.js.map +0 -1
  46. package/dist/cjs/hooks/useArchivistModules.js +0 -11
  47. package/dist/cjs/hooks/useArchivistModules.js.map +0 -1
  48. package/dist/cjs/hooks/useDivinerModule.js +0 -12
  49. package/dist/cjs/hooks/useDivinerModule.js.map +0 -1
  50. package/dist/cjs/hooks/useDivinerModules.js +0 -12
  51. package/dist/cjs/hooks/useDivinerModules.js.map +0 -1
  52. package/dist/cjs/hooks/useModuleAddresses.js.map +0 -1
  53. package/dist/cjs/hooks/useNodeQueryDiviner.js +0 -43
  54. package/dist/cjs/hooks/useNodeQueryDiviner.js.map +0 -1
  55. package/dist/cjs/hooks/useWitnessModule.js +0 -12
  56. package/dist/cjs/hooks/useWitnessModule.js.map +0 -1
  57. package/dist/cjs/hooks/useWitnessModules.js +0 -11
  58. package/dist/cjs/hooks/useWitnessModules.js.map +0 -1
  59. package/dist/esm/hooks/useArchiveArchivists.js +0 -33
  60. package/dist/esm/hooks/useArchiveArchivists.js.map +0 -1
  61. package/dist/esm/hooks/useArchivistModule.js +0 -8
  62. package/dist/esm/hooks/useArchivistModule.js.map +0 -1
  63. package/dist/esm/hooks/useArchivistModules.js +0 -7
  64. package/dist/esm/hooks/useArchivistModules.js.map +0 -1
  65. package/dist/esm/hooks/useDivinerModule.js +0 -8
  66. package/dist/esm/hooks/useDivinerModule.js.map +0 -1
  67. package/dist/esm/hooks/useDivinerModules.js +0 -8
  68. package/dist/esm/hooks/useDivinerModules.js.map +0 -1
  69. package/dist/esm/hooks/useModuleAddresses.js +0 -17
  70. package/dist/esm/hooks/useModuleAddresses.js.map +0 -1
  71. package/dist/esm/hooks/useNodeQueryDiviner.js +0 -37
  72. package/dist/esm/hooks/useNodeQueryDiviner.js.map +0 -1
  73. package/dist/esm/hooks/useWitnessModule.js +0 -8
  74. package/dist/esm/hooks/useWitnessModule.js.map +0 -1
  75. package/dist/esm/hooks/useWitnessModules.js +0 -7
  76. package/dist/esm/hooks/useWitnessModules.js.map +0 -1
  77. package/dist/types/hooks/useArchiveArchivists.d.ts +0 -9
  78. package/dist/types/hooks/useArchiveArchivists.d.ts.map +0 -1
  79. package/dist/types/hooks/useArchivistModule.d.ts +0 -4
  80. package/dist/types/hooks/useArchivistModule.d.ts.map +0 -1
  81. package/dist/types/hooks/useArchivistModules.d.ts +0 -3
  82. package/dist/types/hooks/useArchivistModules.d.ts.map +0 -1
  83. package/dist/types/hooks/useDivinerModule.d.ts +0 -4
  84. package/dist/types/hooks/useDivinerModule.d.ts.map +0 -1
  85. package/dist/types/hooks/useDivinerModules.d.ts +0 -3
  86. package/dist/types/hooks/useDivinerModules.d.ts.map +0 -1
  87. package/dist/types/hooks/useModuleAddresses.d.ts +0 -2
  88. package/dist/types/hooks/useModuleAddresses.d.ts.map +0 -1
  89. package/dist/types/hooks/useNodeQueryDiviner.d.ts +0 -6
  90. package/dist/types/hooks/useNodeQueryDiviner.d.ts.map +0 -1
  91. package/dist/types/hooks/useWitnessModule.d.ts +0 -4
  92. package/dist/types/hooks/useWitnessModule.d.ts.map +0 -1
  93. package/dist/types/hooks/useWitnessModules.d.ts +0 -3
  94. package/dist/types/hooks/useWitnessModules.d.ts.map +0 -1
  95. package/src/hooks/useArchiveArchivists.tsx +0 -49
  96. package/src/hooks/useArchivistModule.ts +0 -10
  97. package/src/hooks/useArchivistModules.ts +0 -8
  98. package/src/hooks/useDivinerModule.ts +0 -10
  99. package/src/hooks/useDivinerModules.ts +0 -9
  100. package/src/hooks/useNodeQueryDiviner.tsx +0 -54
  101. package/src/hooks/useWitnessModule.ts +0 -10
  102. 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"}
@@ -5,23 +5,35 @@ export const useModule = (nameOrAddress) => {
5
5
  const [node, nodeError] = useProvidedWrappedNode();
6
6
  const [module, setModule] = useState();
7
7
  const [error, setError] = useState();
8
+ const address = module?.address;
8
9
  useAsyncEffect(
9
10
  // eslint-disable-next-line react-hooks/exhaustive-deps
10
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
+ };
11
19
  try {
12
20
  if (nodeError) {
13
- console.log(`Setting NodeError [${nodeError.message}]`);
14
21
  setError(nodeError);
15
22
  setModule(undefined);
16
23
  }
17
24
  else {
18
25
  if (node) {
26
+ const emitter = node.module;
19
27
  const module = nameOrAddress ? await node.resolve(nameOrAddress) : (await node.resolve()).pop();
20
28
  if (mounted()) {
21
- console.log(`Setting Module [${module?.address}]`);
29
+ emitter.on('moduleDetached', detachHandler);
22
30
  setModule(module);
23
31
  setError(undefined);
24
32
  }
33
+ return () => {
34
+ //remove the event handler on unmount
35
+ emitter.on('moduleDetached', detachHandler, true);
36
+ };
25
37
  }
26
38
  else {
27
39
  console.log('Setting All to undefined');
@@ -38,7 +50,7 @@ export const useModule = (nameOrAddress) => {
38
50
  setModule(undefined);
39
51
  }
40
52
  }
41
- }, [nameOrAddress, node, nodeError]);
53
+ }, [nameOrAddress, node, nodeError, address]);
42
54
  return [module, error];
43
55
  };
44
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;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,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,IAAI,IAAI,EAAE;oBACR,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,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"}
@@ -2,16 +2,41 @@ import { useAsyncEffect } from '@xylabs/react-shared';
2
2
  import { useState } from 'react';
3
3
  import { useProvidedWrappedNode } from './useProvidedNode';
4
4
  export const useModules = (filter) => {
5
- const [node] = useProvidedWrappedNode();
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,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4B,MAAqB,EAAE,EAAE;IAC7E,MAAM,CAAC,IAAI,CAAC,GAAG,sBAAsB,EAAE,CAAA;IACvC,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,18 +1,50 @@
1
+ import { NodeWrapper } from '@xyo-network/node';
2
+ import { useEffect, useState } from 'react';
1
3
  import { useModule } from './useModule';
2
- import { useProvidedWrappedNode } from './useProvidedNode';
3
- export const useNode = (nameOrAddress) => {
4
- const [providedNode, providedNodeError] = useProvidedWrappedNode();
4
+ import { useProvidedNode } from './useProvidedNode';
5
+ //AT: intentionally not exported
6
+ const useNodeModule = (nameOrAddress) => {
7
+ const [providedNode] = useProvidedNode();
5
8
  const [node, nodeError] = useModule(nameOrAddress);
6
9
  if (nameOrAddress) {
7
10
  if (providedNode) {
8
11
  return [node, nodeError];
9
12
  }
10
13
  else {
11
- return [providedNode, providedNodeError];
14
+ return [providedNode, undefined];
12
15
  }
13
16
  }
14
17
  else {
15
- return [providedNode, providedNodeError];
18
+ return [providedNode, undefined];
16
19
  }
17
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];
49
+ };
18
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,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,aAAsB,EAA+C,EAAE;IAC7F,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,SAAS,CAAa,aAAa,CAAC,CAAA;IAE9D,IAAI,aAAa,EAAE;QACjB,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;SACzB;aAAM;YACL,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;SACzC;KACF;SAAM;QACL,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;KACzC;AACH,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,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,6CAuChF,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,CAa1F,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"}
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.18",
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.18",
81
+ "version": "2.45.0-rc.19",
87
82
  "stableVersion": "2.44.1"
88
83
  }
@@ -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,5 +1,6 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared'
2
2
  import { Module } from '@xyo-network/module-model'
3
+ import { ModuleDetachedEventArgs, ModuleDetachedEventEmitter } from '@xyo-network/node'
3
4
  import { useState } from 'react'
4
5
 
5
6
  import { useProvidedWrappedNode } from './useProvidedNode'
@@ -8,22 +9,34 @@ export const useModule = <TModule extends Module = Module>(nameOrAddress?: strin
8
9
  const [node, nodeError] = useProvidedWrappedNode()
9
10
  const [module, setModule] = useState<TModule>()
10
11
  const [error, setError] = useState<Error>()
12
+ const address = module?.address
11
13
  useAsyncEffect(
12
14
  // eslint-disable-next-line react-hooks/exhaustive-deps
13
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
+ }
14
23
  try {
15
24
  if (nodeError) {
16
- console.log(`Setting NodeError [${nodeError.message}]`)
17
25
  setError(nodeError)
18
26
  setModule(undefined)
19
27
  } else {
20
28
  if (node) {
29
+ const emitter = node.module as ModuleDetachedEventEmitter
21
30
  const module: TModule | undefined = nameOrAddress ? await node.resolve<TModule>(nameOrAddress) : (await node.resolve<TModule>()).pop()
22
31
  if (mounted()) {
23
- console.log(`Setting Module [${module?.address}]`)
32
+ emitter.on('moduleDetached', detachHandler)
24
33
  setModule(module)
25
34
  setError(undefined)
26
35
  }
36
+ return () => {
37
+ //remove the event handler on unmount
38
+ emitter.on('moduleDetached', detachHandler, true)
39
+ }
27
40
  } else {
28
41
  console.log('Setting All to undefined')
29
42
  setError(undefined)
@@ -39,7 +52,7 @@ export const useModule = <TModule extends Module = Module>(nameOrAddress?: strin
39
52
  }
40
53
  }
41
54
  },
42
- [nameOrAddress, node, nodeError],
55
+ [nameOrAddress, node, nodeError, address],
43
56
  )
44
57
 
45
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
5
  import { useProvidedWrappedNode } from './useProvidedNode'
6
6
 
7
- export const useModules = <T extends Module = Module>(filter?: ModuleFilter) => {
8
- const [node] = useProvidedWrappedNode()
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
  }
@@ -1,19 +1,51 @@
1
- import { NodeModule } from '@xyo-network/node'
1
+ import { AccountInstance } from '@xyo-network/account-model'
2
+ import { NodeModule, NodeWrapper } from '@xyo-network/node'
3
+ import { useEffect, useState } from 'react'
2
4
 
3
5
  import { useModule } from './useModule'
4
- import { useProvidedWrappedNode } from './useProvidedNode'
6
+ import { useProvidedNode } from './useProvidedNode'
5
7
 
6
- export const useNode = (nameOrAddress?: string): [NodeModule | undefined, Error | undefined] => {
7
- const [providedNode, providedNodeError] = useProvidedWrappedNode()
8
- const [node, nodeError] = useModule<NodeModule>(nameOrAddress)
8
+ //AT: intentionally not exported
9
+ const useNodeModule = (nameOrAddress?: string): [NodeModule | undefined, Error | undefined] => {
10
+ const [providedNode] = useProvidedNode()
11
+ const [node, nodeError] = useModule(nameOrAddress)
9
12
 
10
13
  if (nameOrAddress) {
11
14
  if (providedNode) {
12
- return [node, nodeError]
15
+ return [node as NodeModule, nodeError]
13
16
  } else {
14
- return [providedNode, providedNodeError]
17
+ return [providedNode, undefined]
15
18
  }
16
19
  } else {
17
- return [providedNode, providedNodeError]
20
+ return [providedNode, undefined]
18
21
  }
19
22
  }
23
+
24
+ export const useNode = (nameOrAddress?: string, account?: AccountInstance): [NodeWrapper | undefined, Error | undefined] => {
25
+ const [node, nodeError] = useNodeModule()
26
+ const [wrapper, setWrapper] = useState<NodeWrapper>()
27
+ const [error, setError] = useState<Error>()
28
+
29
+ useEffect(() => {
30
+ if (node) {
31
+ if (nodeError) {
32
+ setError(nodeError)
33
+ setWrapper(undefined)
34
+ } else {
35
+ try {
36
+ const wrapper = NodeWrapper.wrap(node, account)
37
+ setWrapper(wrapper)
38
+ setError(undefined)
39
+ } catch (ex) {
40
+ setWrapper(undefined)
41
+ setError(ex as Error)
42
+ }
43
+ }
44
+ } else {
45
+ setWrapper(undefined)
46
+ setError(undefined)
47
+ }
48
+ }, [node, account, nodeError])
49
+
50
+ return [wrapper, error]
51
+ }
@@ -1,22 +1,22 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared'
2
2
  import { useState } from 'react'
3
3
 
4
- import { useProvidedNode } from './useProvidedNode'
4
+ import { useNode } from './useNode'
5
5
 
6
- export const useModuleAddresses = () => {
7
- const [node] = useProvidedNode()
8
- const [attachedAddresses, setAttachedAddresses] = useState<string[]>()
6
+ export const useNodeAttachedAddresses = () => {
7
+ const [node] = useNode()
8
+ const [addresses, setAddresses] = useState<string[]>()
9
9
 
10
10
  useAsyncEffect(
11
11
  // eslint-disable-next-line react-hooks/exhaustive-deps
12
12
  async (mounted) => {
13
13
  const attached = await node?.attached()
14
14
  if (mounted()) {
15
- setAttachedAddresses(attached)
15
+ setAddresses(attached)
16
16
  }
17
17
  },
18
18
  [node],
19
19
  )
20
20
 
21
- return [attachedAddresses, node?.registered()]
21
+ return [addresses, node?.registered()]
22
22
  }
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useArchiveArchivists = exports.useArchiveArchivistsRaw = void 0;
4
- const archivist_1 = require("@xyo-network/archivist");
5
- const react_shared_1 = require("@xyo-network/react-shared");
6
- const react_1 = require("react");
7
- const useMemoryNodeUpdates_1 = require("./useMemoryNodeUpdates");
8
- const useProvidedNode_1 = require("./useProvidedNode");
9
- const useArchiveArchivistsRaw = (archiveName, refresher) => {
10
- const [node] = (0, useProvidedNode_1.useProvidedWrappedNode)();
11
- const buildReq = (0, react_1.useCallback)((type) => (archiveName && node) || refresher
12
- ? node === null || node === void 0 ? void 0 : node.resolveWrapped(archivist_1.ArchivistWrapper, { name: [encodeURIComponent(`${archiveName}[${type}]`)] })
13
- : undefined, [archiveName, node, refresher]);
14
- const payloadArchivistReq = (0, react_1.useMemo)(() => buildReq('payload'), [buildReq]);
15
- const boundWitnessArchivistReq = (0, react_1.useMemo)(() => buildReq('boundwitness'), [buildReq]);
16
- const [archivePayloadWrapper] = (0, react_shared_1.usePromise)(payloadArchivistReq, [payloadArchivistReq]);
17
- const [archiveBoundWitnessWrapper] = (0, react_shared_1.usePromise)(boundWitnessArchivistReq, [boundWitnessArchivistReq]);
18
- const archivists = (0, react_1.useMemo)(() => {
19
- if ((archiveBoundWitnessWrapper === null || archiveBoundWitnessWrapper === void 0 ? void 0 : archiveBoundWitnessWrapper[0]) && (archivePayloadWrapper === null || archivePayloadWrapper === void 0 ? void 0 : archivePayloadWrapper[0])) {
20
- return {
21
- archiveBoundWitnessWrapper: archiveBoundWitnessWrapper[0],
22
- archivePayloadWrapper: archivePayloadWrapper[0],
23
- };
24
- }
25
- else {
26
- return;
27
- }
28
- }, [archiveBoundWitnessWrapper, archivePayloadWrapper]);
29
- return archivists;
30
- };
31
- exports.useArchiveArchivistsRaw = useArchiveArchivistsRaw;
32
- const useArchiveArchivists = (archiveName, refresher, refreshAddresses) => {
33
- const { module } = (0, useMemoryNodeUpdates_1.useMemoryNodeUpdates)(refreshAddresses);
34
- const archivists = (0, exports.useArchiveArchivistsRaw)(archiveName, refresher !== null && refresher !== void 0 ? refresher : module);
35
- return archivists;
36
- };
37
- exports.useArchiveArchivists = useArchiveArchivists;
38
- //# sourceMappingURL=useArchiveArchivists.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useArchiveArchivists.js","sourceRoot":"","sources":["../../../src/hooks/useArchiveArchivists.tsx"],"names":[],"mappings":";;;AAAA,sDAAyD;AACzD,4DAAsD;AACtD,iCAA4C;AAE5C,iEAA6D;AAC7D,uDAA0D;AAOnD,MAAM,uBAAuB,GAAG,CAAC,WAAoB,EAAE,SAAmB,EAAoC,EAAE;IACrH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,wCAAsB,GAAE,CAAA;IAEvC,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAC1B,CAAC,IAAgC,EAAE,EAAE,CACnC,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,SAAS;QAChC,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,4BAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,WAAW,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACnG,CAAC,CAAC,SAAS,EACf,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAC/B,CAAA;IAED,MAAM,mBAAmB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1E,MAAM,wBAAwB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEpF,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAA,yBAAU,EAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtF,MAAM,CAAC,0BAA0B,CAAC,GAAG,IAAA,yBAAU,EAAC,wBAAwB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAErG,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,IAAI,CAAA,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAG,CAAC,CAAC,MAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,CAAC,CAAC,CAAA,EAAE;YACjE,OAAO;gBACL,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAqB;gBAC7E,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAqB;aACpE,CAAA;SACF;aAAM;YACL,OAAM;SACP;IACH,CAAC,EAAE,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAEvD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AA7BY,QAAA,uBAAuB,2BA6BnC;AAEM,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,SAAmB,EAAE,gBAA2B,EAAE,EAAE;IAC7G,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,2CAAoB,EAAC,gBAAgB,CAAC,CAAA;IACzD,MAAM,UAAU,GAAG,IAAA,+BAAuB,EAAC,WAAW,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,MAAM,CAAC,CAAA;IAE5E,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AALY,QAAA,oBAAoB,wBAKhC"}