@xyo-network/react-node 2.56.3 → 2.56.4

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 (68) hide show
  1. package/dist/cjs/components/render/ModuleDescriptionBox.js +1 -1
  2. package/dist/cjs/components/render/ModuleDescriptionBox.js.map +1 -1
  3. package/dist/cjs/components/render/RenderModule.js +2 -4
  4. package/dist/cjs/components/render/RenderModule.js.map +1 -1
  5. package/dist/cjs/hooks/provided/useProvidedNode.js.map +1 -1
  6. package/dist/cjs/hooks/useModuleFromNode.js +32 -31
  7. package/dist/cjs/hooks/useModuleFromNode.js.map +1 -1
  8. package/dist/cjs/hooks/useModulesFromNode.js +5 -5
  9. package/dist/cjs/hooks/useModulesFromNode.js.map +1 -1
  10. package/dist/cjs/hooks/useNodeFromNode.js +1 -1
  11. package/dist/cjs/hooks/useNodeFromNode.js.map +1 -1
  12. package/dist/cjs/hooks/useNodesFromNode.js +1 -1
  13. package/dist/cjs/hooks/useNodesFromNode.js.map +1 -1
  14. package/dist/cjs/hooks/wrapped/WrappedModuleFromNodeHookFactory.js +1 -1
  15. package/dist/cjs/hooks/wrapped/WrappedModuleFromNodeHookFactory.js.map +1 -1
  16. package/dist/cjs/hooks/wrapped/WrappedModulesFromNodeHookFactory.js +2 -2
  17. package/dist/cjs/hooks/wrapped/WrappedModulesFromNodeHookFactory.js.map +1 -1
  18. package/dist/cjs/hooks/wrapped/provided/useWrappedProvidedNode.js.map +1 -1
  19. package/dist/docs.json +789 -856
  20. package/dist/esm/components/render/ModuleDescriptionBox.js +1 -1
  21. package/dist/esm/components/render/ModuleDescriptionBox.js.map +1 -1
  22. package/dist/esm/components/render/RenderModule.js +2 -4
  23. package/dist/esm/components/render/RenderModule.js.map +1 -1
  24. package/dist/esm/hooks/provided/useProvidedNode.js.map +1 -1
  25. package/dist/esm/hooks/useModuleFromNode.js +32 -31
  26. package/dist/esm/hooks/useModuleFromNode.js.map +1 -1
  27. package/dist/esm/hooks/useModulesFromNode.js +5 -5
  28. package/dist/esm/hooks/useModulesFromNode.js.map +1 -1
  29. package/dist/esm/hooks/useNodeFromNode.js +1 -1
  30. package/dist/esm/hooks/useNodeFromNode.js.map +1 -1
  31. package/dist/esm/hooks/useNodesFromNode.js +1 -1
  32. package/dist/esm/hooks/useNodesFromNode.js.map +1 -1
  33. package/dist/esm/hooks/wrapped/WrappedModuleFromNodeHookFactory.js +1 -1
  34. package/dist/esm/hooks/wrapped/WrappedModuleFromNodeHookFactory.js.map +1 -1
  35. package/dist/esm/hooks/wrapped/WrappedModulesFromNodeHookFactory.js +2 -2
  36. package/dist/esm/hooks/wrapped/WrappedModulesFromNodeHookFactory.js.map +1 -1
  37. package/dist/esm/hooks/wrapped/provided/useWrappedProvidedNode.js.map +1 -1
  38. package/dist/types/components/render/ModuleDescriptionBox.d.ts +1 -1
  39. package/dist/types/components/render/ModuleDescriptionBox.d.ts.map +1 -1
  40. package/dist/types/components/render/RenderModule.d.ts.map +1 -1
  41. package/dist/types/hooks/provided/useProvidedNode.d.ts +1 -1
  42. package/dist/types/hooks/provided/useProvidedNode.d.ts.map +1 -1
  43. package/dist/types/hooks/useModuleFromNode.d.ts +1 -2
  44. package/dist/types/hooks/useModuleFromNode.d.ts.map +1 -1
  45. package/dist/types/hooks/useModulesFromNode.d.ts +1 -2
  46. package/dist/types/hooks/useModulesFromNode.d.ts.map +1 -1
  47. package/dist/types/hooks/useNodeFromNode.d.ts +2 -3
  48. package/dist/types/hooks/useNodeFromNode.d.ts.map +1 -1
  49. package/dist/types/hooks/useNodesFromNode.d.ts +2 -3
  50. package/dist/types/hooks/useNodesFromNode.d.ts.map +1 -1
  51. package/dist/types/hooks/wrapped/WrappedModuleFromNodeHookFactory.d.ts.map +1 -1
  52. package/dist/types/hooks/wrapped/WrappedModulesFromNodeHookFactory.d.ts +1 -1
  53. package/dist/types/hooks/wrapped/WrappedModulesFromNodeHookFactory.d.ts.map +1 -1
  54. package/dist/types/hooks/wrapped/provided/useWrappedProvidedNode.d.ts +1 -1
  55. package/dist/types/hooks/wrapped/provided/useWrappedProvidedNode.d.ts.map +1 -1
  56. package/dist/types/hooks/wrapped/useWrappedModulesFromNode.d.ts +1 -1
  57. package/package.json +12 -12
  58. package/src/components/Node.stories.tsx +2 -3
  59. package/src/components/render/ModuleDescriptionBox.tsx +6 -4
  60. package/src/components/render/RenderModule.tsx +3 -4
  61. package/src/hooks/provided/useProvidedNode.tsx +1 -1
  62. package/src/hooks/useModuleFromNode.tsx +32 -35
  63. package/src/hooks/useModulesFromNode.ts +5 -7
  64. package/src/hooks/useNodeFromNode.tsx +2 -3
  65. package/src/hooks/useNodesFromNode.tsx +1 -3
  66. package/src/hooks/wrapped/WrappedModuleFromNodeHookFactory.tsx +0 -1
  67. package/src/hooks/wrapped/WrappedModulesFromNodeHookFactory.tsx +2 -2
  68. package/src/hooks/wrapped/provided/useWrappedProvidedNode.tsx +1 -1
@@ -3,20 +3,18 @@ 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
5
  import { ModuleAttachedEventArgs, ModuleDetachedEventArgs } from '@xyo-network/node'
6
- import { WalletInstance } from '@xyo-network/wallet-model'
7
6
  import { useMemo, useState } from 'react'
8
7
 
9
- import { useWrappedProvidedNode } from './wrapped'
8
+ import { useProvidedNode } from './provided'
10
9
 
11
10
  export const useModuleFromNode = <TModule extends Module = Module>(
12
11
  nameOrAddressOrFilter?: string | ModuleFilter,
13
- wallet?: WalletInstance,
14
12
  logger?: Logger,
15
- ): [TModule | undefined, Error | undefined] => {
13
+ ): [TModule | null | undefined, Error | undefined] => {
16
14
  const nameOrAddress = useMemo(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
17
15
  const filter = useMemo(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
18
- const [node, nodeError] = useWrappedProvidedNode(wallet)
19
- const [module, setModule] = useState<TModule>()
16
+ const [node] = useProvidedNode()
17
+ const [module, setModule] = useState<TModule | null>()
20
18
  const [error, setError] = useState<Error>()
21
19
 
22
20
  const address = useMemo(() => module?.address, [module])
@@ -26,40 +24,39 @@ export const useModuleFromNode = <TModule extends Module = Module>(
26
24
  async (mounted) => {
27
25
  const eventUnsubscribe: EventUnsubscribeFunction[] = []
28
26
  try {
29
- /* Check pre-conditions */
30
- if (nodeError || !node || !nameOrAddress) {
31
- if (mounted()) {
32
- nodeError && logger?.error(nodeError.message)
33
- setError(nodeError)
34
- setModule(undefined)
27
+ if (node) {
28
+ const attachHandler = (args: ModuleAttachedEventArgs) => {
29
+ const eventModule = args.module
30
+ if (nameOrAddress && (eventModule.address === nameOrAddress || eventModule?.config.name === nameOrAddress)) {
31
+ logger?.debug(`attachHandler-setting [${nameOrAddress}]`)
32
+ setModule(eventModule as TModule)
33
+ setError(undefined)
34
+ }
35
35
  }
36
- return
37
- }
38
-
39
- const attachHandler = (args: ModuleAttachedEventArgs) => {
40
- const eventModule = args.module
41
- if (nameOrAddress && (eventModule.address === nameOrAddress || eventModule?.config.name === nameOrAddress)) {
42
- logger?.debug(`attachHandler-setting [${nameOrAddress}]`)
43
- setModule(eventModule as TModule)
36
+ const detachHandler = (args: ModuleDetachedEventArgs) => {
37
+ const eventModule = args.module
38
+ if (eventModule.address === address) {
39
+ logger?.debug(`detachHandler-clearing [${address}]`)
40
+ setModule(undefined)
41
+ setError(undefined)
42
+ }
43
+ }
44
+ const module: TModule | undefined = nameOrAddress
45
+ ? (await node.downResolver.resolve<TModule>({ address: [nameOrAddress], name: [nameOrAddress] })).pop()
46
+ : (await node.downResolver.resolve<TModule>(filter)).pop()
47
+ if (mounted()) {
48
+ eventUnsubscribe.push(node.on('moduleAttached', attachHandler))
49
+ eventUnsubscribe.push(node.on('moduleDetached', detachHandler))
50
+ logger?.debug(`resolved [${nameOrAddress}]`)
51
+ setModule(module)
44
52
  setError(undefined)
45
53
  }
46
- }
47
- const detachHandler = (args: ModuleDetachedEventArgs) => {
48
- const eventModule = args.module
49
- if (eventModule.address === address) {
50
- logger?.debug(`detachHandler-clearing [${address}]`)
51
- setModule(undefined)
54
+ } else {
55
+ if (mounted()) {
56
+ setModule(node)
52
57
  setError(undefined)
53
58
  }
54
59
  }
55
- const module: TModule | undefined = nameOrAddress ? await node.resolve<TModule>(nameOrAddress) : (await node.resolve<TModule>(filter)).pop()
56
- if (mounted()) {
57
- eventUnsubscribe.push(node.on('moduleAttached', attachHandler))
58
- eventUnsubscribe.push(node.on('moduleDetached', detachHandler))
59
- logger?.debug(`resolved [${nameOrAddress}]`)
60
- setModule(module)
61
- setError(undefined)
62
- }
63
60
  return () => {
64
61
  //remove the event handler on unmount
65
62
  eventUnsubscribe.forEach((func) => func())
@@ -73,7 +70,7 @@ export const useModuleFromNode = <TModule extends Module = Module>(
73
70
  }
74
71
  }
75
72
  },
76
- [nameOrAddress, node, nodeError, address, filter, logger],
73
+ [nameOrAddress, node, address, filter, logger],
77
74
  )
78
75
 
79
76
  return [module, error]
@@ -2,17 +2,15 @@ import { usePromise } from '@xylabs/react-promise'
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 { WalletInstance } from '@xyo-network/wallet-model'
6
5
  import { useEffect, useRef } from 'react'
7
6
 
8
- import { useWrappedProvidedNode } from './wrapped'
7
+ import { useProvidedNode } from './provided'
9
8
 
10
9
  export const useModulesFromNode = <TModule extends Module = Module>(
11
10
  filter?: ModuleFilter,
12
- wallet?: WalletInstance,
13
11
  logger?: Logger,
14
- ): [TModule[] | undefined, Error | undefined] => {
15
- const [node, nodeError] = useWrappedProvidedNode(wallet)
12
+ ): [TModule[] | null | undefined, Error | undefined] => {
13
+ const [node] = useProvidedNode()
16
14
 
17
15
  const modulesLength = useRef<number>()
18
16
 
@@ -21,7 +19,7 @@ export const useModulesFromNode = <TModule extends Module = Module>(
21
19
  const [resolvedModules, resolvedModulesError] = usePromise<TModule[] | undefined>(async () => {
22
20
  const getModulesFromResolution = async () => {
23
21
  if (node) {
24
- const resolvedModules: TModule[] | undefined = await node.resolve<TModule>(filter)
22
+ const resolvedModules: TModule[] | undefined = await node.downResolver.resolve<TModule>(filter)
25
23
  if (resolvedModules?.length !== modulesLength.current) {
26
24
  logger?.debug(`getModulesFromResolution-setting: [${resolvedModules?.length}]`)
27
25
  modulesLength.current = resolvedModules?.length
@@ -54,7 +52,7 @@ export const useModulesFromNode = <TModule extends Module = Module>(
54
52
  //unsubscribe events
55
53
  eventUnsubscribe.forEach((func) => func())
56
54
  }
57
- }, [filter, node, logger, nodeError])
55
+ }, [filter, node, logger])
58
56
 
59
57
  return [resolvedModules, resolvedModulesError]
60
58
  }
@@ -1,9 +1,8 @@
1
1
  import { Logger } from '@xyo-network/core'
2
2
  import { ModuleFilter } from '@xyo-network/module'
3
3
  import { NodeModule } from '@xyo-network/node'
4
- import { WalletInstance } from '@xyo-network/wallet-model'
5
4
 
6
5
  import { useModuleFromNode } from './useModuleFromNode'
7
6
 
8
- export const useNodeFromNode = (nameOrAddressOrFilter?: string | ModuleFilter, wallet?: WalletInstance, logger?: Logger) =>
9
- useModuleFromNode<NodeModule>(nameOrAddressOrFilter, wallet, logger)
7
+ export const useNodeFromNode = (nameOrAddressOrFilter?: string | ModuleFilter, logger?: Logger) =>
8
+ useModuleFromNode<NodeModule>(nameOrAddressOrFilter, logger)
@@ -1,9 +1,7 @@
1
1
  import { Logger } from '@xyo-network/core'
2
2
  import { ModuleFilter } from '@xyo-network/module'
3
3
  import { NodeModule } from '@xyo-network/node'
4
- import { WalletInstance } from '@xyo-network/wallet-model'
5
4
 
6
5
  import { useModulesFromNode } from './useModulesFromNode'
7
6
 
8
- export const useNodesFromNode = (filter?: ModuleFilter, wallet?: WalletInstance, logger?: Logger) =>
9
- useModulesFromNode<NodeModule>(filter, wallet, logger)
7
+ export const useNodesFromNode = (filter?: ModuleFilter, logger?: Logger) => useModulesFromNode<NodeModule>(filter, logger)
@@ -15,7 +15,6 @@ export const WrappedModuleFromNodeHookFactory = {
15
15
  nameOrAddress ?? {
16
16
  query: [wrapperObject.requiredQueries],
17
17
  },
18
- walletToUse,
19
18
  logger,
20
19
  )
21
20
 
@@ -12,11 +12,11 @@ export const WrappedModulesFromNodeHookFactory = {
12
12
  const filter = {
13
13
  query: [wrapperObject.requiredQueries],
14
14
  }
15
- const useHook = (account?: WalletInstance, wallet?: WalletInstance, logger?: Logger): [TModuleWrapper[] | undefined, Error | undefined] => {
15
+ const useHook = (account?: WalletInstance, logger?: Logger): [TModuleWrapper[] | undefined, Error | undefined] => {
16
16
  logger?.debug(`Render: ${name}`)
17
17
 
18
18
  const [accountToUse] = useAccount({ account })
19
- const [modules, moduleError] = useModulesFromNode<TModuleWrapper['module']>(filter, wallet, logger)
19
+ const [modules, moduleError] = useModulesFromNode<TModuleWrapper['module']>(filter, logger)
20
20
 
21
21
  const [wrappers, setWrappers] = useState<TModuleWrapper[]>()
22
22
  const [error, setError] = useState<Error>()
@@ -5,7 +5,7 @@ import { useEffect, useState } from 'react'
5
5
 
6
6
  import { useProvidedNode } from '../../provided'
7
7
 
8
- export const useWrappedProvidedNode = (wallet?: WalletInstance): [NodeWrapper | undefined, Error | undefined] => {
8
+ export const useWrappedProvidedNode = (wallet?: WalletInstance | null): [NodeWrapper | undefined, Error | undefined] => {
9
9
  const [walletToUse] = useWallet({ wallet })
10
10
  const [node] = useProvidedNode()
11
11
  const [wrappedNode, setWrappedNode] = useState<NodeWrapper>()