sample-ui-component-library 0.0.45-dev → 0.0.46-dev

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sample-ui-component-library",
3
- "version": "0.0.45-dev",
3
+ "version": "0.0.46-dev",
4
4
  "description": "A library which contains sample UI elements that can be used for populating layouts.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -28,15 +28,12 @@ export const BehavioralGraphBuilder = forwardRef(({connectBehaviors, deleteTrans
28
28
  return () => observer.disconnect();
29
29
  }, []);
30
30
 
31
-
31
+ // States
32
32
  const [edges, setEdges] = useState([]);
33
33
  const [nodes, setNodes] = useState([]);
34
34
  const [selections, setSelections] = useState([]);
35
- '1'
36
- const onNodeLink =(_event, from, to) => {
37
- connectBehaviors(from, to);
38
- }
39
35
 
36
+ // API Methods and Imperative Handle
40
37
  const updateEngine = useCallback((engine) => {
41
38
  if (engine) {
42
39
  const { nodes, edges } = designToNodes(engine);
@@ -53,50 +50,57 @@ export const BehavioralGraphBuilder = forwardRef(({connectBehaviors, deleteTrans
53
50
 
54
51
  useImperativeHandle(ref, () => api, [api]);
55
52
 
53
+
54
+ // Callbacks
56
55
  const handleWheel = useCallback((e) => {
57
- if (e.deltaY < 0) {
58
- canvasRef.current.zoomIn()
59
- } else {
60
- canvasRef.current.zoomOut();
61
- }
56
+ (e.deltaY < 0)?canvasRef.current.zoomIn():canvasRef.current.zoomOut();
62
57
  }, [canvasRef]);
63
58
 
59
+ const nodeClick = useCallback((e, node) => {
60
+ setSelections([node.id]);
61
+ selectBehavior(node.id);
62
+ }, [selectBehavior]);
63
+
64
+ const nodeRemove = useCallback((e, node) => {
65
+ deleteBehavior(node);
66
+ setSelections([]);
67
+ }, [deleteBehavior]);
68
+
69
+ const edgeClick = useCallback((e, edge) => {
70
+ setSelections([edge.id]);
71
+ }, []);
72
+
73
+ const edgeRemove = useCallback((e, edge) => {
74
+ deleteTransition(edge);
75
+ setSelections([]);
76
+ }, [deleteTransition]);
77
+
78
+ const canvasClick = useCallback((e) => {
79
+ selectBehavior(null);
80
+ setSelections([]);
81
+ }, [selectBehavior]);
82
+
83
+ const nodeLink = useCallback((e, from, to) => {
84
+ if (!to) return;
85
+ connectBehaviors(from, to);
86
+ }, [connectBehaviors]);
87
+
64
88
  return (
65
89
  <div onWheel={handleWheel} ref={containerRef} className="canvas-wrapper">
66
90
  <Canvas
91
+ panType="drag"
92
+ fit
93
+ center
67
94
  ref={canvasRef}
68
95
  nodes={nodes}
69
96
  edges={edges}
70
97
  width={size.width}
71
98
  height={size.height}
72
- onNodeLink={onNodeLink}
73
- panType="drag"
74
- selections={selections}node={
75
- <Node
76
- onClick={(event, node) => {
77
- setSelections([node.id]);
78
- selectBehavior(node.id);
79
- }}
80
- onRemove={(event, node) => {
81
- deleteBehavior(node);
82
- setSelections([]);
83
- }}
84
- />
85
- }
86
- edge={
87
- <Edge
88
- onClick={(event, edge) => {
89
- setSelections([edge.id]);
90
- }}
91
- onRemove={(event, edge) => {
92
- deleteTransition(edge);
93
- setSelections([]);
94
- }}
95
- />
96
- }
97
- onCanvasClick={(event) => {setSelections([]);}}
98
- fit
99
- center
99
+ selections={selections}
100
+ onNodeLink={nodeLink}
101
+ node={ <Node onClick={nodeClick} onRemove={nodeRemove} /> }
102
+ edge={ <Edge onClick={edgeClick} onRemove={edgeRemove}/> }
103
+ onCanvasClick={canvasClick}
100
104
  />
101
105
  </div>
102
106
  )
@@ -104,5 +108,7 @@ export const BehavioralGraphBuilder = forwardRef(({connectBehaviors, deleteTrans
104
108
 
105
109
  BehavioralGraphBuilder.propTypes = {
106
110
  connectBehaviors: PropTypes.func.isRequired,
107
- deleteBehavior: PropTypes.func.isRequired
111
+ deleteTransition: PropTypes.func.isRequired,
112
+ deleteBehavior: PropTypes.func.isRequired,
113
+ selectBehavior: PropTypes.func.isRequired,
108
114
  }