@xyo-network/react-node 2.48.5 → 2.48.7

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 (71) hide show
  1. package/dist/cjs/hooks/index.js +2 -2
  2. package/dist/cjs/hooks/index.js.map +1 -1
  3. package/dist/cjs/hooks/useModule.js +9 -3
  4. package/dist/cjs/hooks/useModule.js.map +1 -1
  5. package/dist/cjs/hooks/useModules.js +38 -43
  6. package/dist/cjs/hooks/useModules.js.map +1 -1
  7. package/dist/cjs/hooks/useNode.js +4 -4
  8. package/dist/cjs/hooks/useNode.js.map +1 -1
  9. package/dist/cjs/hooks/useProvidedNodeAttachedAddresses.js +23 -0
  10. package/dist/cjs/hooks/useProvidedNodeAttachedAddresses.js.map +1 -0
  11. package/dist/cjs/hooks/useProvidedNodeRegisteredAddresses.js +23 -0
  12. package/dist/cjs/hooks/useProvidedNodeRegisteredAddresses.js.map +1 -0
  13. package/dist/cjs/hooks/useWrappedModule.js +3 -7
  14. package/dist/cjs/hooks/useWrappedModule.js.map +1 -1
  15. package/dist/cjs/hooks/useWrappedModules.js +1 -7
  16. package/dist/cjs/hooks/useWrappedModules.js.map +1 -1
  17. package/dist/docs.json +798 -450
  18. package/dist/esm/hooks/index.js +2 -2
  19. package/dist/esm/hooks/index.js.map +1 -1
  20. package/dist/esm/hooks/useModule.js +9 -3
  21. package/dist/esm/hooks/useModule.js.map +1 -1
  22. package/dist/esm/hooks/useModules.js +39 -44
  23. package/dist/esm/hooks/useModules.js.map +1 -1
  24. package/dist/esm/hooks/useNode.js +4 -4
  25. package/dist/esm/hooks/useNode.js.map +1 -1
  26. package/dist/esm/hooks/useProvidedNodeAttachedAddresses.js +18 -0
  27. package/dist/esm/hooks/useProvidedNodeAttachedAddresses.js.map +1 -0
  28. package/dist/esm/hooks/useProvidedNodeRegisteredAddresses.js +18 -0
  29. package/dist/esm/hooks/useProvidedNodeRegisteredAddresses.js.map +1 -0
  30. package/dist/esm/hooks/useWrappedModule.js +3 -7
  31. package/dist/esm/hooks/useWrappedModule.js.map +1 -1
  32. package/dist/esm/hooks/useWrappedModules.js +1 -7
  33. package/dist/esm/hooks/useWrappedModules.js.map +1 -1
  34. package/dist/types/hooks/index.d.ts +2 -2
  35. package/dist/types/hooks/index.d.ts.map +1 -1
  36. package/dist/types/hooks/useModule.d.ts +2 -1
  37. package/dist/types/hooks/useModule.d.ts.map +1 -1
  38. package/dist/types/hooks/useModules.d.ts.map +1 -1
  39. package/dist/types/hooks/useNode.d.ts +2 -1
  40. package/dist/types/hooks/useNode.d.ts.map +1 -1
  41. package/dist/types/hooks/useProvidedNodeAttachedAddresses.d.ts +3 -0
  42. package/dist/types/hooks/useProvidedNodeAttachedAddresses.d.ts.map +1 -0
  43. package/dist/types/hooks/useProvidedNodeRegisteredAddresses.d.ts +3 -0
  44. package/dist/types/hooks/useProvidedNodeRegisteredAddresses.d.ts.map +1 -0
  45. package/dist/types/hooks/useWrappedModule.d.ts +3 -3
  46. package/dist/types/hooks/useWrappedModule.d.ts.map +1 -1
  47. package/dist/types/hooks/useWrappedModules.d.ts +2 -3
  48. package/dist/types/hooks/useWrappedModules.d.ts.map +1 -1
  49. package/package.json +15 -15
  50. package/src/hooks/index.ts +2 -2
  51. package/src/hooks/useModule.tsx +10 -2
  52. package/src/hooks/useModules.ts +42 -45
  53. package/src/hooks/useNode.tsx +5 -4
  54. package/src/hooks/useProvidedNodeAttachedAddresses.ts +25 -0
  55. package/src/hooks/useProvidedNodeRegisteredAddresses.ts +25 -0
  56. package/src/hooks/useWrappedModule.tsx +5 -13
  57. package/src/hooks/useWrappedModules.tsx +2 -11
  58. package/dist/cjs/hooks/useMemoryNodeUpdates.js +0 -27
  59. package/dist/cjs/hooks/useMemoryNodeUpdates.js.map +0 -1
  60. package/dist/cjs/hooks/useNodeAttachedAddresses.js +0 -22
  61. package/dist/cjs/hooks/useNodeAttachedAddresses.js.map +0 -1
  62. package/dist/esm/hooks/useMemoryNodeUpdates.js +0 -23
  63. package/dist/esm/hooks/useMemoryNodeUpdates.js.map +0 -1
  64. package/dist/esm/hooks/useNodeAttachedAddresses.js +0 -17
  65. package/dist/esm/hooks/useNodeAttachedAddresses.js.map +0 -1
  66. package/dist/types/hooks/useMemoryNodeUpdates.d.ts +0 -10
  67. package/dist/types/hooks/useMemoryNodeUpdates.d.ts.map +0 -1
  68. package/dist/types/hooks/useNodeAttachedAddresses.d.ts +0 -2
  69. package/dist/types/hooks/useNodeAttachedAddresses.d.ts.map +0 -1
  70. package/src/hooks/useMemoryNodeUpdates.tsx +0 -32
  71. package/src/hooks/useNodeAttachedAddresses.ts +0 -22
@@ -1,5 +1,6 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-async-effect'
2
2
  import { AccountInstance } from '@xyo-network/account-model'
3
+ import { Logger } from '@xyo-network/core'
3
4
  import { EventUnsubscribeFunction } from '@xyo-network/module'
4
5
  import { Module, ModuleFilter } from '@xyo-network/module-model'
5
6
  import { ModuleAttachedEventArgs, ModuleDetachedEventArgs } from '@xyo-network/node'
@@ -10,6 +11,7 @@ import { useProvidedWrappedNode } from './useProvidedNode'
10
11
  export const useModule = <TModule extends Module = Module>(
11
12
  nameOrAddressOrFilter?: string | ModuleFilter,
12
13
  account?: AccountInstance,
14
+ logger?: Logger,
13
15
  ): [TModule | undefined, Error | undefined] => {
14
16
  const nameOrAddress = useMemo(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
15
17
  const filter = useMemo(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
@@ -27,6 +29,7 @@ export const useModule = <TModule extends Module = Module>(
27
29
  /* Check pre-conditions */
28
30
  if (nodeError || !node || !nameOrAddress) {
29
31
  if (mounted()) {
32
+ nodeError && logger?.error(nodeError.message)
30
33
  setError(nodeError)
31
34
  setModule(undefined)
32
35
  }
@@ -36,6 +39,7 @@ export const useModule = <TModule extends Module = Module>(
36
39
  const attachHandler = (args: ModuleAttachedEventArgs) => {
37
40
  const eventModule = args.module
38
41
  if (nameOrAddress && (eventModule.address === nameOrAddress || eventModule?.config.name === nameOrAddress)) {
42
+ logger?.debug(`attachHandler-setting [${nameOrAddress}]`)
39
43
  setModule(eventModule as TModule)
40
44
  setError(undefined)
41
45
  }
@@ -43,6 +47,7 @@ export const useModule = <TModule extends Module = Module>(
43
47
  const detachHandler = (args: ModuleDetachedEventArgs) => {
44
48
  const eventModule = args.module
45
49
  if (eventModule.address === address) {
50
+ logger?.debug(`detachHandler-clearing [${address}]`)
46
51
  setModule(undefined)
47
52
  setError(undefined)
48
53
  }
@@ -51,6 +56,7 @@ export const useModule = <TModule extends Module = Module>(
51
56
  if (mounted()) {
52
57
  eventUnsubscribe.push(node.on('moduleAttached', attachHandler))
53
58
  eventUnsubscribe.push(node.on('moduleDetached', detachHandler))
59
+ logger?.debug(`resolved [${nameOrAddress}]`)
54
60
  setModule(module)
55
61
  setError(undefined)
56
62
  }
@@ -60,12 +66,14 @@ export const useModule = <TModule extends Module = Module>(
60
66
  }
61
67
  } catch (ex) {
62
68
  if (mounted()) {
63
- setError(ex as Error)
69
+ const error = ex as Error
70
+ logger?.error(error.message)
71
+ setError(error)
64
72
  setModule(undefined)
65
73
  }
66
74
  }
67
75
  },
68
- [nameOrAddress, node, nodeError, address, filter],
76
+ [nameOrAddress, node, nodeError, address, filter, logger],
69
77
  )
70
78
 
71
79
  return [module, error]
@@ -2,7 +2,7 @@ import { useAsyncEffect } from '@xylabs/react-async-effect'
2
2
  import { Logger } from '@xyo-network/core'
3
3
  import { EventUnsubscribeFunction } from '@xyo-network/module'
4
4
  import { Module, ModuleFilter } from '@xyo-network/module-model'
5
- import { useEffect, useState } from 'react'
5
+ import { useRef, useState } from 'react'
6
6
 
7
7
  import { useProvidedWrappedNode } from './useProvidedNode'
8
8
 
@@ -11,76 +11,73 @@ export const useModules = <TModule extends Module = Module>(filter?: ModuleFilte
11
11
  const [modules, setModules] = useState<TModule[]>()
12
12
  const [error, setError] = useState<Error>()
13
13
 
14
- useEffect(() => {
15
- if (nodeError) {
16
- setError(nodeError)
17
- setModules(undefined)
18
- }
19
- // eslint-disable-next-line react-hooks/exhaustive-deps
20
- }, [nodeError, logger])
14
+ const modulesLength = useRef<number>()
21
15
 
22
16
  useAsyncEffect(
23
17
  // eslint-disable-next-line react-hooks/exhaustive-deps
24
18
  async (mounted) => {
19
+ /* Check pre-conditions */
20
+ if (nodeError || !node || !filter) {
21
+ if (mounted()) {
22
+ nodeError && logger?.error(nodeError.message)
23
+ modulesLength.current = undefined
24
+ setModules(undefined)
25
+ setError(nodeError)
26
+ }
27
+ return
28
+ }
29
+
25
30
  const eventUnsubscribe: EventUnsubscribeFunction[] = []
26
- let modulesLength = modules?.length
27
31
 
28
32
  try {
29
- if (node) {
30
- const getModulesFromResolution = async () => {
31
- const resolvedModules: TModule[] | undefined = await node.resolve<TModule>(filter)
32
- if (mounted()) {
33
- logger?.debug(`getModulesFromResolution: [${resolvedModules.length}, ${modulesLength}]`)
34
- if (resolvedModules.length !== modulesLength) {
35
- modulesLength = resolvedModules.length
36
- setModules(resolvedModules)
37
- setError(undefined)
38
- }
33
+ const getModulesFromResolution = async () => {
34
+ const resolvedModules: TModule[] | undefined = await node.resolve<TModule>(filter)
35
+ if (mounted()) {
36
+ if (resolvedModules.length !== modulesLength.current) {
37
+ logger?.debug(`getModulesFromResolution-setting: [${resolvedModules.length}]`)
38
+ modulesLength.current = resolvedModules.length
39
+ setModules(resolvedModules)
40
+ setError(undefined)
39
41
  }
40
42
  }
41
- await getModulesFromResolution()
43
+ }
44
+ await getModulesFromResolution()
42
45
 
43
- eventUnsubscribe.push(
44
- node.on('moduleAttached', async () => {
45
- await getModulesFromResolution()
46
- }),
47
- )
48
- eventUnsubscribe.push(
49
- node.on('moduleDetached', async () => {
50
- await getModulesFromResolution()
51
- }),
52
- )
53
- //TODO: Obviously get rid of this timer
54
- const timeoutFunc = async () => {
46
+ eventUnsubscribe.push(
47
+ node.on('moduleAttached', async () => {
48
+ logger?.debug('moduleAttached: getModulesFromResolution')
55
49
  await getModulesFromResolution()
56
- if (mounted()) {
57
- setTimeout(timeoutFunc, 1000)
58
- }
59
- }
60
- setTimeout(timeoutFunc, 1000)
61
- } else {
50
+ }),
51
+ )
52
+ eventUnsubscribe.push(
53
+ node.on('moduleDetached', async () => {
54
+ logger?.debug('moduleDetached: getModulesFromResolution')
55
+ await getModulesFromResolution()
56
+ }),
57
+ )
58
+ //TODO: Obviously get rid of this timer
59
+ const timeoutFunc = async () => {
60
+ await getModulesFromResolution()
62
61
  if (mounted()) {
63
- setError(undefined)
64
- setModules(undefined)
62
+ setTimeout(timeoutFunc, 1000)
65
63
  }
66
64
  }
65
+ setTimeout(timeoutFunc, 1000)
67
66
  } catch (ex) {
68
67
  if (mounted()) {
69
68
  const error = ex as Error
70
69
  logger?.error(`useModules: useAsyncEffect [${error.message}]`)
71
- setError(error)
70
+ modulesLength.current = undefined
72
71
  setModules(undefined)
72
+ setError(error)
73
73
  }
74
74
  }
75
75
  return () => {
76
- logger?.debug('useModules: unmount')
77
76
  //unsubscribe events
78
77
  eventUnsubscribe.forEach((func) => func())
79
78
  }
80
79
  },
81
- // eslint-disable-next-line react-hooks/exhaustive-deps
82
- [filter, node, logger],
80
+ [filter, node, logger, nodeError],
83
81
  )
84
-
85
82
  return [modules, error]
86
83
  }
@@ -1,4 +1,5 @@
1
1
  import { AccountInstance } from '@xyo-network/account-model'
2
+ import { Logger } from '@xyo-network/core'
2
3
  import { NodeModule, NodeWrapper } from '@xyo-network/node'
3
4
  import { useEffect, useState } from 'react'
4
5
 
@@ -6,9 +7,9 @@ import { useModule } from './useModule'
6
7
  import { useProvidedNode } from './useProvidedNode'
7
8
 
8
9
  //AT: intentionally not exported
9
- const useNodeModule = (nameOrAddress?: string): [NodeModule | undefined, Error | undefined] => {
10
+ const useNodeModule = (nameOrAddress?: string, account?: AccountInstance, logger?: Logger): [NodeModule | undefined, Error | undefined] => {
10
11
  const [providedNode] = useProvidedNode()
11
- const [node, nodeError] = useModule(nameOrAddress)
12
+ const [node, nodeError] = useModule(nameOrAddress, account, logger)
12
13
 
13
14
  if (nameOrAddress) {
14
15
  if (providedNode) {
@@ -21,8 +22,8 @@ const useNodeModule = (nameOrAddress?: string): [NodeModule | undefined, Error |
21
22
  }
22
23
  }
23
24
 
24
- export const useNode = (nameOrAddress?: string, account?: AccountInstance): [NodeWrapper | undefined, Error | undefined] => {
25
- const [node, nodeError] = useNodeModule(nameOrAddress)
25
+ export const useNode = (nameOrAddress?: string, account?: AccountInstance, logger?: Logger): [NodeWrapper | undefined, Error | undefined] => {
26
+ const [node, nodeError] = useNodeModule(nameOrAddress, account, logger)
26
27
  const [wrapper, setWrapper] = useState<NodeWrapper>()
27
28
  const [error, setError] = useState<Error>()
28
29
 
@@ -0,0 +1,25 @@
1
+ import { useAsyncEffect } from '@xylabs/react-async-effect'
2
+ import { NodeModule } from '@xyo-network/node'
3
+ import { useMemo, useState } from 'react'
4
+
5
+ import { useProvidedNode } from './useProvidedNode'
6
+
7
+ export const useProvidedNodeAttachedAddresses = (node?: NodeModule) => {
8
+ const [providedNode] = useProvidedNode()
9
+ const [addresses, setAddresses] = useState<string[]>()
10
+
11
+ const nodeToUse = useMemo(() => node ?? providedNode, [node, providedNode])
12
+
13
+ useAsyncEffect(
14
+ // eslint-disable-next-line react-hooks/exhaustive-deps
15
+ async (mounted) => {
16
+ const attached = await nodeToUse?.attached()
17
+ if (mounted()) {
18
+ setAddresses(attached)
19
+ }
20
+ },
21
+ [nodeToUse],
22
+ )
23
+
24
+ return [addresses]
25
+ }
@@ -0,0 +1,25 @@
1
+ import { useAsyncEffect } from '@xylabs/react-async-effect'
2
+ import { NodeModule } from '@xyo-network/node'
3
+ import { useMemo, useState } from 'react'
4
+
5
+ import { useProvidedNode } from './useProvidedNode'
6
+
7
+ export const useProvidedNodeRegisteredAddresses = (node?: NodeModule) => {
8
+ const [providedNode] = useProvidedNode()
9
+ const [addresses, setAddresses] = useState<string[]>()
10
+
11
+ const nodeToUse = useMemo(() => node ?? providedNode, [node, providedNode])
12
+
13
+ useAsyncEffect(
14
+ // eslint-disable-next-line react-hooks/exhaustive-deps
15
+ async (mounted) => {
16
+ const registered = await nodeToUse?.registered()
17
+ if (mounted()) {
18
+ setAddresses(registered)
19
+ }
20
+ },
21
+ [nodeToUse],
22
+ )
23
+
24
+ return [addresses]
25
+ }
@@ -1,5 +1,5 @@
1
- import { RenderSpinCheckConfig, useRenderSpinCheck } from '@xylabs/react-render-spin-check'
2
1
  import { AccountInstance } from '@xyo-network/account-model'
2
+ import { Logger } from '@xyo-network/core'
3
3
  import { ConstructableModuleWrapper, ModuleWrapper } from '@xyo-network/module'
4
4
  import { useAccount } from '@xyo-network/react-wallet'
5
5
  import { useEffect, useMemo, useState } from 'react'
@@ -10,23 +10,15 @@ export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper>(
10
10
  wrapperObject: ConstructableModuleWrapper<TModuleWrapper>,
11
11
  name?: string,
12
12
  ) => {
13
- const useHook = (
14
- nameOrAddress?: string,
15
- account?: AccountInstance,
16
- spinCheck?: boolean | RenderSpinCheckConfig,
17
- ): [TModuleWrapper | undefined, Error | undefined] => {
18
- const spinCheckBounceNoCheck = useMemo(() => {
19
- return { name: name ?? 'WrappedModuleHookFactory-NoCheck' }
20
- }, [])
21
- useRenderSpinCheck(
22
- spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck,
23
- typeof spinCheck === 'object' ? spinCheck : undefined,
24
- )
13
+ const useHook = (nameOrAddress?: string, account?: AccountInstance, logger?: Logger): [TModuleWrapper | undefined, Error | undefined] => {
14
+ logger?.debug(`Render: ${name}`)
25
15
  const [providedAccount] = useAccount()
26
16
  const [module, moduleError] = useModule<TModuleWrapper['module']>(
27
17
  nameOrAddress ?? {
28
18
  query: [wrapperObject.requiredQueries],
29
19
  },
20
+ account,
21
+ logger,
30
22
  )
31
23
 
32
24
  const [wrapper, setWrapper] = useState<TModuleWrapper>()
@@ -1,4 +1,3 @@
1
- import { RenderSpinCheckConfig, useRenderSpinCheck } from '@xylabs/react-render-spin-check'
2
1
  import { AccountInstance } from '@xyo-network/account-model'
3
2
  import { Logger } from '@xyo-network/core'
4
3
  import { ConstructableModuleWrapper, ModuleWrapper } from '@xyo-network/module'
@@ -15,17 +14,9 @@ export const WrappedModulesHookFactory = <TModuleWrapper extends ModuleWrapper>(
15
14
  const filter = {
16
15
  query: [wrapperObject.requiredQueries],
17
16
  }
18
- const useHook = (
19
- account?: AccountInstance,
20
- spinCheck?: boolean | RenderSpinCheckConfig,
21
- logger?: Logger,
22
- ): [TModuleWrapper[] | undefined, Error | undefined] => {
23
- const spinCheckBounceNoCheck = useMemo(() => {
24
- logger?.debug('spinCheckBounceNoCheck.useMemo')
25
- return { name: name ?? 'WrappedModulesHookFactory-NoCheck' }
26
- }, [logger])
17
+ const useHook = (account?: AccountInstance, logger?: Logger): [TModuleWrapper[] | undefined, Error | undefined] => {
27
18
  logger?.debug(`Render: ${name}`)
28
- useRenderSpinCheck(spinCheck ? { name } : spinCheckBounceNoCheck, typeof spinCheck === 'object' ? spinCheck : undefined)
19
+
29
20
  const [providedAccount] = useAccount()
30
21
  const [modules, moduleError] = useModules<TModuleWrapper['module']>(filter, logger)
31
22
 
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useMemoryNodeUpdates = void 0;
4
- const react_1 = require("react");
5
- const useNode_1 = require("./useNode");
6
- const useMemoryNodeUpdates = (refreshAddresses) => {
7
- const [node] = (0, useNode_1.useNode)();
8
- const [module, setModule] = (0, react_1.useState)();
9
- (0, react_1.useEffect)(() => {
10
- if (node) {
11
- node.module.on('moduleAttached', (args) => {
12
- if (refreshAddresses) {
13
- if (refreshAddresses.some((address) => address === (args === null || args === void 0 ? void 0 : args.module.address)))
14
- setModule(args);
15
- }
16
- else {
17
- setModule(args);
18
- }
19
- });
20
- }
21
- }, [refreshAddresses, node]);
22
- return {
23
- module,
24
- };
25
- };
26
- exports.useMemoryNodeUpdates = useMemoryNodeUpdates;
27
- //# sourceMappingURL=useMemoryNodeUpdates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":";;;AAEA,iCAA2C;AAE3C,uCAAmC;AAQ5B,MAAM,oBAAoB,GAAG,CAAC,gBAA2B,EAAwB,EAAE;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,iBAAO,GAAE,CAAA;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAA2B,CAAA;IAE/D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAA6B,EAAE,EAAE;gBACjE,IAAI,gBAAgB,EAAE;oBACpB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,MAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,OAAO,CAAA,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;AAnBY,QAAA,oBAAoB,wBAmBhC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useNodeAttachedAddresses = void 0;
4
- const tslib_1 = require("tslib");
5
- const react_async_effect_1 = require("@xylabs/react-async-effect");
6
- const react_1 = require("react");
7
- const useNode_1 = require("./useNode");
8
- const useNodeAttachedAddresses = () => {
9
- const [node] = (0, useNode_1.useNode)();
10
- const [addresses, setAddresses] = (0, react_1.useState)();
11
- (0, react_async_effect_1.useAsyncEffect)(
12
- // eslint-disable-next-line react-hooks/exhaustive-deps
13
- (mounted) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
14
- const attached = yield (node === null || node === void 0 ? void 0 : node.attached());
15
- if (mounted()) {
16
- setAddresses(attached);
17
- }
18
- }), [node]);
19
- return [addresses, node === null || node === void 0 ? void 0 : node.registered()];
20
- };
21
- exports.useNodeAttachedAddresses = useNodeAttachedAddresses;
22
- //# sourceMappingURL=useNodeAttachedAddresses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNodeAttachedAddresses.js","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":";;;;AAAA,mEAA2D;AAC3D,iCAAgC;AAEhC,uCAAmC;AAE5B,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,iBAAO,GAAE,CAAA;IACxB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,GAAY,CAAA;IAEtD,IAAA,mCAAc;IACZ,uDAAuD;IACvD,CAAO,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,CAAA,CAAA;QACvC,IAAI,OAAO,EAAE,EAAE;YACb,YAAY,CAAC,QAAQ,CAAC,CAAA;SACvB;IACH,CAAC,CAAA,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,CAAC,CAAA;AACxC,CAAC,CAAA;AAhBY,QAAA,wBAAwB,4BAgBpC"}
@@ -1,23 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- import { useNode } from './useNode';
3
- export const useMemoryNodeUpdates = (refreshAddresses) => {
4
- const [node] = useNode();
5
- const [module, setModule] = useState();
6
- useEffect(() => {
7
- if (node) {
8
- node.module.on('moduleAttached', (args) => {
9
- if (refreshAddresses) {
10
- if (refreshAddresses.some((address) => address === args?.module.address))
11
- setModule(args);
12
- }
13
- else {
14
- setModule(args);
15
- }
16
- });
17
- }
18
- }, [refreshAddresses, node]);
19
- return {
20
- module,
21
- };
22
- };
23
- //# sourceMappingURL=useMemoryNodeUpdates.js.map
@@ -1 +0,0 @@
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,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAA6B,EAAE,EAAE;gBACjE,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,17 +0,0 @@
1
- import { useAsyncEffect } from '@xylabs/react-async-effect';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNodeAttachedAddresses.js","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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,10 +0,0 @@
1
- import { ModuleResolver } from '@xyo-network/module-model';
2
- import { ModuleAttachedEventArgs } from '@xyo-network/node';
3
- interface UseMemoryNodeUpdates {
4
- module?: ModuleAttachedEventArgs;
5
- /** @deprecated - use module events instead */
6
- resolver?: ModuleResolver;
7
- }
8
- export declare const useMemoryNodeUpdates: (refreshAddresses?: string[]) => UseMemoryNodeUpdates;
9
- export {};
10
- //# sourceMappingURL=useMemoryNodeUpdates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMemoryNodeUpdates.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAK3D,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,eAAO,MAAM,oBAAoB,sBAAuB,MAAM,EAAE,KAAG,oBAmBlE,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const useNodeAttachedAddresses: () => (string[] | Promise<string[]> | undefined)[];
2
- //# sourceMappingURL=useNodeAttachedAddresses.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useNodeAttachedAddresses.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,oDAgBpC,CAAA"}
@@ -1,32 +0,0 @@
1
- import { ModuleResolver } from '@xyo-network/module-model'
2
- import { ModuleAttachedEventArgs } from '@xyo-network/node'
3
- import { useEffect, useState } from 'react'
4
-
5
- import { useNode } from './useNode'
6
-
7
- interface UseMemoryNodeUpdates {
8
- module?: ModuleAttachedEventArgs
9
- /** @deprecated - use module events instead */
10
- resolver?: ModuleResolver
11
- }
12
-
13
- export const useMemoryNodeUpdates = (refreshAddresses?: string[]): UseMemoryNodeUpdates => {
14
- const [node] = useNode()
15
- const [module, setModule] = useState<ModuleAttachedEventArgs>()
16
-
17
- useEffect(() => {
18
- if (node) {
19
- node.module.on('moduleAttached', (args: ModuleAttachedEventArgs) => {
20
- if (refreshAddresses) {
21
- if (refreshAddresses.some((address) => address === args?.module.address)) setModule(args)
22
- } else {
23
- setModule(args)
24
- }
25
- })
26
- }
27
- }, [refreshAddresses, node])
28
-
29
- return {
30
- module,
31
- }
32
- }
@@ -1,22 +0,0 @@
1
- import { useAsyncEffect } from '@xylabs/react-async-effect'
2
- import { useState } from 'react'
3
-
4
- import { useNode } from './useNode'
5
-
6
- export const useNodeAttachedAddresses = () => {
7
- const [node] = useNode()
8
- const [addresses, setAddresses] = useState<string[]>()
9
-
10
- useAsyncEffect(
11
- // eslint-disable-next-line react-hooks/exhaustive-deps
12
- async (mounted) => {
13
- const attached = await node?.attached()
14
- if (mounted()) {
15
- setAddresses(attached)
16
- }
17
- },
18
- [node],
19
- )
20
-
21
- return [addresses, node?.registered()]
22
- }