@xyo-network/react-node-renderer 2.75.1 → 2.75.3
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.
- package/dist/browser/components/module/graph/GraphFlexBox.d.cts +1 -1
- package/dist/browser/components/module/graph/GraphFlexBox.d.cts.map +1 -1
- package/dist/browser/components/module/graph/GraphFlexBox.d.mts +1 -1
- package/dist/browser/components/module/graph/GraphFlexBox.d.mts.map +1 -1
- package/dist/browser/components/module/graph/GraphFlexBox.d.ts +1 -1
- package/dist/browser/components/module/graph/GraphFlexBox.d.ts.map +1 -1
- package/dist/browser/components/relational/graph/ProvidedNodeRenderer.d.cts +1 -1
- package/dist/browser/components/relational/graph/ProvidedNodeRenderer.d.cts.map +1 -1
- package/dist/browser/components/relational/graph/ProvidedNodeRenderer.d.mts +1 -1
- package/dist/browser/components/relational/graph/ProvidedNodeRenderer.d.mts.map +1 -1
- package/dist/browser/components/relational/graph/ProvidedNodeRenderer.d.ts +1 -1
- package/dist/browser/components/relational/graph/ProvidedNodeRenderer.d.ts.map +1 -1
- package/dist/browser/hooks/cytoscape/elements/useCytoscapeElements.d.cts +1 -1
- package/dist/browser/hooks/cytoscape/elements/useCytoscapeElements.d.cts.map +1 -1
- package/dist/browser/hooks/cytoscape/elements/useCytoscapeElements.d.mts +1 -1
- package/dist/browser/hooks/cytoscape/elements/useCytoscapeElements.d.mts.map +1 -1
- package/dist/browser/hooks/cytoscape/elements/useCytoscapeElements.d.ts +1 -1
- package/dist/browser/hooks/cytoscape/elements/useCytoscapeElements.d.ts.map +1 -1
- package/dist/browser/hooks/cytoscape/useModuleDetails.d.cts +1 -1
- package/dist/browser/hooks/cytoscape/useModuleDetails.d.cts.map +1 -1
- package/dist/browser/hooks/cytoscape/useModuleDetails.d.mts +1 -1
- package/dist/browser/hooks/cytoscape/useModuleDetails.d.mts.map +1 -1
- package/dist/browser/hooks/cytoscape/useModuleDetails.d.ts +1 -1
- package/dist/browser/hooks/cytoscape/useModuleDetails.d.ts.map +1 -1
- package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.d.cts +1 -1
- package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.d.cts.map +1 -1
- package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.d.mts +1 -1
- package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.d.mts.map +1 -1
- package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.d.ts +1 -1
- package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.d.ts.map +1 -1
- package/dist/browser/index.cjs +10 -8
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +12 -10
- package/dist/browser/index.js.map +1 -1
- package/dist/node/components/module/graph/GraphFlexBox.d.cts +1 -1
- package/dist/node/components/module/graph/GraphFlexBox.d.cts.map +1 -1
- package/dist/node/components/module/graph/GraphFlexBox.d.mts +1 -1
- package/dist/node/components/module/graph/GraphFlexBox.d.mts.map +1 -1
- package/dist/node/components/module/graph/GraphFlexBox.d.ts +1 -1
- package/dist/node/components/module/graph/GraphFlexBox.d.ts.map +1 -1
- package/dist/node/components/relational/graph/ProvidedNodeRenderer.d.cts +1 -1
- package/dist/node/components/relational/graph/ProvidedNodeRenderer.d.cts.map +1 -1
- package/dist/node/components/relational/graph/ProvidedNodeRenderer.d.mts +1 -1
- package/dist/node/components/relational/graph/ProvidedNodeRenderer.d.mts.map +1 -1
- package/dist/node/components/relational/graph/ProvidedNodeRenderer.d.ts +1 -1
- package/dist/node/components/relational/graph/ProvidedNodeRenderer.d.ts.map +1 -1
- package/dist/node/hooks/cytoscape/elements/useCytoscapeElements.d.cts +1 -1
- package/dist/node/hooks/cytoscape/elements/useCytoscapeElements.d.cts.map +1 -1
- package/dist/node/hooks/cytoscape/elements/useCytoscapeElements.d.mts +1 -1
- package/dist/node/hooks/cytoscape/elements/useCytoscapeElements.d.mts.map +1 -1
- package/dist/node/hooks/cytoscape/elements/useCytoscapeElements.d.ts +1 -1
- package/dist/node/hooks/cytoscape/elements/useCytoscapeElements.d.ts.map +1 -1
- package/dist/node/hooks/cytoscape/useModuleDetails.d.cts +1 -1
- package/dist/node/hooks/cytoscape/useModuleDetails.d.cts.map +1 -1
- package/dist/node/hooks/cytoscape/useModuleDetails.d.mts +1 -1
- package/dist/node/hooks/cytoscape/useModuleDetails.d.mts.map +1 -1
- package/dist/node/hooks/cytoscape/useModuleDetails.d.ts +1 -1
- package/dist/node/hooks/cytoscape/useModuleDetails.d.ts.map +1 -1
- package/dist/node/hooks/cytoscape/useRelationalGraphOptions.d.cts +1 -1
- package/dist/node/hooks/cytoscape/useRelationalGraphOptions.d.cts.map +1 -1
- package/dist/node/hooks/cytoscape/useRelationalGraphOptions.d.mts +1 -1
- package/dist/node/hooks/cytoscape/useRelationalGraphOptions.d.mts.map +1 -1
- package/dist/node/hooks/cytoscape/useRelationalGraphOptions.d.ts +1 -1
- package/dist/node/hooks/cytoscape/useRelationalGraphOptions.d.ts.map +1 -1
- package/dist/node/index.cjs +13 -11
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +15 -13
- package/dist/node/index.js.map +1 -1
- package/package.json +7 -7
- package/src/components/module/graph/GraphFlexBox.stories.tsx +2 -2
- package/src/components/module/graph/GraphFlexBox.tsx +1 -1
- package/src/components/relational/graph/Graph.stories.tsx +10 -10
- package/src/components/relational/graph/GraphCola.stories.tsx +10 -10
- package/src/components/relational/graph/GraphCoseBilkent.stories.tsx +10 -10
- package/src/components/relational/graph/GraphDagre.stories.tsx +10 -10
- package/src/components/relational/graph/GraphEuler.stories.tsx +9 -9
- package/src/components/relational/graph/GraphEvents.stories.tsx +2 -2
- package/src/components/relational/graph/ProvidedNodeRenderer.tsx +3 -3
- package/src/hooks/cytoscape/elements/useCytoscapeElements.ts +4 -3
- package/src/hooks/cytoscape/elements/useNewElements.tsx +2 -2
- package/src/hooks/cytoscape/useModuleDetails.tsx +6 -5
- package/src/hooks/cytoscape/useRelationalGraphOptions.tsx +1 -1
|
@@ -6,7 +6,7 @@ import { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/http-bridge'
|
|
|
6
6
|
import { IdWitness, IdWitnessConfigSchema } from '@xyo-network/id-plugin'
|
|
7
7
|
import { MemoryNode } from '@xyo-network/node-memory'
|
|
8
8
|
import { NodeConfigSchema } from '@xyo-network/node-model'
|
|
9
|
-
import { NodeProvider, useNodeFromNode, useProvidedNode } from '@xyo-network/react-node'
|
|
9
|
+
import { NodeProvider, useNodeFromNode, useProvidedNode, useWeakNodeFromNode, useWeakProvidedNode } from '@xyo-network/react-node'
|
|
10
10
|
import { DefaultSeedPhrase } from '@xyo-network/react-storybook'
|
|
11
11
|
import { useWallet, WalletProvider } from '@xyo-network/react-wallet'
|
|
12
12
|
import { MemorySentinel, SentinelConfigSchema } from '@xyo-network/sentinel'
|
|
@@ -83,14 +83,14 @@ export default {
|
|
|
83
83
|
const Template: StoryFn<typeof NodeRelationalGraphFlexBox> = (props) => <NodeRelationalGraphFlexBox layout="euler" {...props} />
|
|
84
84
|
|
|
85
85
|
const TemplateDescribe: StoryFn<typeof NodeRelationalGraphFlexBox> = (props) => {
|
|
86
|
-
const [node] =
|
|
86
|
+
const [node] = useWeakProvidedNode()
|
|
87
87
|
const elements = useCytoscapeElements(node)
|
|
88
88
|
const options = useCytoscapeOptions(elements)
|
|
89
89
|
return <NodeRelationalGraphFlexBox layout="euler" options={options} {...props} />
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
const TemplateCustomAddress: StoryFn<typeof NodeRelationalGraphFlexBox> = (props) => {
|
|
93
|
-
const [node] =
|
|
93
|
+
const [node] = useWeakNodeFromNode('ChildNode')
|
|
94
94
|
const elements = useCytoscapeElements(node)
|
|
95
95
|
const options = useCytoscapeOptions(elements)
|
|
96
96
|
return <NodeRelationalGraphFlexBox layout="euler" options={options} {...props} />
|
|
@@ -99,7 +99,7 @@ const TemplateCustomAddress: StoryFn<typeof NodeRelationalGraphFlexBox> = (props
|
|
|
99
99
|
const TemplateProvidedNodeRenderer: StoryFn<typeof ProvidedNodeRenderer> = (props) => <ProvidedNodeRenderer layout="euler" {...props} />
|
|
100
100
|
|
|
101
101
|
const TemplateAttachDetach: StoryFn<typeof NodeRelationalGraphFlexBox> = (props) => {
|
|
102
|
-
const [node] =
|
|
102
|
+
const [node] = useWeakNodeFromNode('ChildNode')
|
|
103
103
|
const elements = useCytoscapeElements(node)
|
|
104
104
|
const options = useCytoscapeOptions(elements)
|
|
105
105
|
const [idWitness, setIdWitness] = useState<IdWitness>()
|
|
@@ -115,16 +115,16 @@ const TemplateAttachDetach: StoryFn<typeof NodeRelationalGraphFlexBox> = (props)
|
|
|
115
115
|
|
|
116
116
|
const handleAddWitness = async () => {
|
|
117
117
|
if (node && idWitness) {
|
|
118
|
-
const memoryNode = node as MemoryNode
|
|
119
|
-
await memoryNode
|
|
120
|
-
await memoryNode
|
|
118
|
+
const memoryNode = node.deref() as MemoryNode | undefined
|
|
119
|
+
await memoryNode?.register(idWitness)
|
|
120
|
+
await memoryNode?.attach(idWitness.address, true)
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
const handleRemoveWitness = async () => {
|
|
125
125
|
if (node && idWitness) {
|
|
126
|
-
const memoryNode = node as MemoryNode
|
|
127
|
-
if (memoryNode
|
|
126
|
+
const memoryNode = node.deref() as MemoryNode | undefined
|
|
127
|
+
if (memoryNode?.registered().includes(idWitness.address)) {
|
|
128
128
|
await memoryNode.unregister(idWitness)
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -3,7 +3,7 @@ import { useAsyncEffect } from '@xylabs/react-async-effect'
|
|
|
3
3
|
import { ArchivistConfigSchema, MemoryArchivist } from '@xyo-network/archivist'
|
|
4
4
|
import { MemoryNode } from '@xyo-network/node-memory'
|
|
5
5
|
import { NodeConfigSchema } from '@xyo-network/node-model'
|
|
6
|
-
import { NodeProvider, useProvidedNode } from '@xyo-network/react-node'
|
|
6
|
+
import { NodeProvider, useProvidedNode, useWeakProvidedNode } from '@xyo-network/react-node'
|
|
7
7
|
import { DefaultSeedPhrase } from '@xyo-network/react-storybook'
|
|
8
8
|
import { useWallet, WalletProvider } from '@xyo-network/react-wallet'
|
|
9
9
|
import { EventObject } from 'cytoscape'
|
|
@@ -50,7 +50,7 @@ export default {
|
|
|
50
50
|
} as Meta
|
|
51
51
|
|
|
52
52
|
const Template: StoryFn<typeof NodeRelationalGraphFlexBox> = (props) => {
|
|
53
|
-
const [node] =
|
|
53
|
+
const [node] = useWeakProvidedNode()
|
|
54
54
|
const elements = useCytoscapeElements(node)
|
|
55
55
|
const options = useCytoscapeOptions(elements)
|
|
56
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AccountInstance } from '@xyo-network/account-model'
|
|
2
2
|
import { NodeInstance } from '@xyo-network/node-model'
|
|
3
|
-
import {
|
|
3
|
+
import { useWeakProvidedNode } from '@xyo-network/react-node'
|
|
4
4
|
|
|
5
5
|
import { useCytoscapeElements, useCytoscapeOptions } from '../../../hooks'
|
|
6
6
|
import { NodeRelationalGraphProps } from '../../lib'
|
|
@@ -10,11 +10,11 @@ export interface ProvidedNodeRendererProps extends NodeRelationalGraphProps {
|
|
|
10
10
|
account?: AccountInstance
|
|
11
11
|
layout?: 'dagre' | 'euler' | 'cose-bilkent' | 'cola'
|
|
12
12
|
layoutOptions?: object
|
|
13
|
-
node?: NodeInstance
|
|
13
|
+
node?: WeakRef<NodeInstance>
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export const ProvidedNodeRenderer: React.FC<ProvidedNodeRendererProps> = ({ node, ...props }) => {
|
|
17
|
-
const [providedNode] =
|
|
17
|
+
const [providedNode] = useWeakProvidedNode()
|
|
18
18
|
const elements = useCytoscapeElements(node ?? providedNode)
|
|
19
19
|
const options = useCytoscapeOptions(elements)
|
|
20
20
|
|
|
@@ -7,14 +7,15 @@ import { useEffect, useState } from 'react'
|
|
|
7
7
|
|
|
8
8
|
import { CytoscapeElements } from '../../../Cytoscape'
|
|
9
9
|
|
|
10
|
-
export const useCytoscapeElements = (module?: ModuleInstance | null) => {
|
|
10
|
+
export const useCytoscapeElements = (module?: WeakRef<ModuleInstance> | null) => {
|
|
11
11
|
const [elements, setElements] = useState<ElementDefinition[]>([])
|
|
12
12
|
|
|
13
13
|
useAsyncEffect(
|
|
14
14
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
15
|
async () => {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const moduleInstance = module?.deref()
|
|
17
|
+
if (moduleInstance) {
|
|
18
|
+
const newElements = (await CytoscapeElements.buildElements(moduleInstance)) ?? []
|
|
18
19
|
setElements(newElements)
|
|
19
20
|
}
|
|
20
21
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useWeakModuleFromNode } from '@xyo-network/react-node'
|
|
2
2
|
import { NodeSingular } from 'cytoscape'
|
|
3
3
|
import { useMemo } from 'react'
|
|
4
4
|
|
|
@@ -10,7 +10,7 @@ export const useNewElements = (selectedElement?: NodeSingular) => {
|
|
|
10
10
|
return selectedAddress
|
|
11
11
|
}, [selectedElement])
|
|
12
12
|
|
|
13
|
-
const [module] =
|
|
13
|
+
const [module] = useWeakModuleFromNode(selectedAddress)
|
|
14
14
|
const newElements = useCytoscapeElements(module)
|
|
15
15
|
|
|
16
16
|
return newElements
|
|
@@ -4,14 +4,15 @@ import { useEffect, useState } from 'react'
|
|
|
4
4
|
|
|
5
5
|
import { useCytoscapeInstance } from '../../contexts'
|
|
6
6
|
|
|
7
|
-
export const useModuleDetails = (rootModule?: ModuleInstance | null, onFoundModule?: () => void) => {
|
|
7
|
+
export const useModuleDetails = (rootModule?: WeakRef<ModuleInstance> | null, onFoundModule?: () => void) => {
|
|
8
8
|
const { cy } = useCytoscapeInstance()
|
|
9
9
|
const [moduleAddress, setModuleAddress] = useState<string | null>()
|
|
10
10
|
|
|
11
11
|
const [foundModule] = usePromise(async () => {
|
|
12
12
|
if (moduleAddress === null) return null
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const rootModuleInstance = rootModule?.deref()
|
|
14
|
+
if (moduleAddress && rootModuleInstance) {
|
|
15
|
+
const foundModule = await rootModuleInstance.resolve(moduleAddress)
|
|
15
16
|
return foundModule ?? null
|
|
16
17
|
}
|
|
17
18
|
}, [moduleAddress, rootModule])
|
|
@@ -41,7 +42,7 @@ export const useModuleDetails = (rootModule?: ModuleInstance | null, onFoundModu
|
|
|
41
42
|
return () => {
|
|
42
43
|
if (container) resizeObserver.unobserve(container)
|
|
43
44
|
}
|
|
44
|
-
}, [cy, moduleAddress, foundModule, rootModule
|
|
45
|
+
}, [cy, moduleAddress, foundModule, rootModule])
|
|
45
46
|
|
|
46
47
|
useEffect(() => {
|
|
47
48
|
if (foundModule) {
|
|
@@ -51,7 +52,7 @@ export const useModuleDetails = (rootModule?: ModuleInstance | null, onFoundModu
|
|
|
51
52
|
|
|
52
53
|
const onModuleDetails = (address?: string | null) => {
|
|
53
54
|
const moduleNode = cy?.deref()?.nodes(`[id="${address}"]`)
|
|
54
|
-
const rootModuleNode = cy?.deref()?.nodes(`[id="${rootModule?.address}"]`)
|
|
55
|
+
const rootModuleNode = cy?.deref()?.nodes(`[id="${rootModule?.deref()?.address}"]`)
|
|
55
56
|
const foundModuleNode = cy?.deref()?.nodes(`[id="${foundModule?.address}"]`)
|
|
56
57
|
const notModuleNode = cy?.deref()?.nodes(`[id != "${address}"]`)
|
|
57
58
|
|
|
@@ -6,7 +6,7 @@ import { useCytoscapeElements } from './elements'
|
|
|
6
6
|
import { useCytoscapeOptions } from './useCytoscapeOptions'
|
|
7
7
|
import { useCytoscapeStyle } from './useCytoscapeStyle'
|
|
8
8
|
|
|
9
|
-
export const useRelationalGraphOptions = (module?: ModuleInstance) => {
|
|
9
|
+
export const useRelationalGraphOptions = (module?: WeakRef<ModuleInstance>) => {
|
|
10
10
|
const [hideLabels, setHideLabels] = useState(true)
|
|
11
11
|
|
|
12
12
|
const handleToggleLabels = () => {
|