chore(react/store): cleanup

This commit is contained in:
moklick
2024-04-08 17:32:49 +02:00
parent 48ad9d3ccf
commit 4570b2494b
3 changed files with 22 additions and 13 deletions
+20 -9
View File
@@ -56,18 +56,19 @@ const initialEdges: Edge[] = [
const defaultEdgeOptions = {}; const defaultEdgeOptions = {};
const BasicFlow = () => { const BasicFlow = () => {
const { setNodes, getNodes, setEdges, getEdges, deleteElements, updateNodeData, toObject, setViewport } = const { addNodes, setNodes, getNodes, setEdges, getEdges, deleteElements, updateNodeData, toObject, setViewport } =
useReactFlow(); useReactFlow();
const updatePos = () => { const updatePos = () => {
setNodes((nodes) => setNodes((nodes) =>
nodes.map((node) => { nodes.map((node) => {
node.position = { return {
x: Math.random() * 400, ...node,
y: Math.random() * 400, position: {
x: Math.random() * 400,
y: Math.random() * 400,
},
}; };
return node;
}) })
); );
}; };
@@ -78,9 +79,10 @@ const BasicFlow = () => {
const toggleClassnames = () => { const toggleClassnames = () => {
setNodes((nodes) => setNodes((nodes) =>
nodes.map((node) => { nodes.map((node) => {
node.className = node.className === 'light' ? 'dark' : 'light'; return {
...node,
return node; className: node.className === 'light' ? 'dark' : 'light',
};
}) })
); );
}; };
@@ -108,6 +110,14 @@ const BasicFlow = () => {
updateNodeData('1', { label: 'update' }); updateNodeData('1', { label: 'update' });
updateNodeData('2', { label: 'update' }); updateNodeData('2', { label: 'update' });
}; };
const addNode = () => {
addNodes({
id: `${Math.random()}`,
data: { label: 'Node' },
position: { x: Math.random() * 300, y: Math.random() * 300 },
className: 'light',
});
};
return ( return (
<ReactFlow <ReactFlow
@@ -144,6 +154,7 @@ const BasicFlow = () => {
<button onClick={deleteSomeElements}>deleteSomeElements</button> <button onClick={deleteSomeElements}>deleteSomeElements</button>
<button onClick={onSetNodes}>setNodes</button> <button onClick={onSetNodes}>setNodes</button>
<button onClick={onUpdateNode}>updateNode</button> <button onClick={onUpdateNode}>updateNode</button>
<button onClick={addNode}>addNode</button>
</Panel> </Panel>
</ReactFlow> </ReactFlow>
); );
@@ -138,7 +138,6 @@ export function StoreUpdater<NodeType extends Node = Node, EdgeType extends Edge
if (fieldValue === previousFieldValue) continue; if (fieldValue === previousFieldValue) continue;
if (typeof props[fieldName] === 'undefined') continue; if (typeof props[fieldName] === 'undefined') continue;
// Custom handling with dedicated setters for some fields // Custom handling with dedicated setters for some fields
if (fieldName === 'nodes') setNodes(fieldValue as Node[]); if (fieldName === 'nodes') setNodes(fieldValue as Node[]);
else if (fieldName === 'edges') setEdges(fieldValue as Edge[]); else if (fieldName === 'edges') setEdges(fieldValue as Edge[]);
+2 -3
View File
@@ -73,7 +73,6 @@ const createRFStore = ({
// new dimensions and update the nodes. // new dimensions and update the nodes.
updateNodeDimensions: (updates) => { updateNodeDimensions: (updates) => {
const { const {
nodes,
onNodesChange, onNodesChange,
fitView, fitView,
nodeLookup, nodeLookup,
@@ -98,7 +97,7 @@ const createRFStore = ({
if (!fitViewDone && fitViewOnInit) { if (!fitViewDone && fitViewOnInit) {
nextFitViewDone = fitView({ nextFitViewDone = fitView({
...fitViewOnInitOptions, ...fitViewOnInitOptions,
nodes: fitViewOnInitOptions?.nodes || nodes, nodes: fitViewOnInitOptions?.nodes,
}); });
} }
@@ -107,7 +106,7 @@ const createRFStore = ({
// has not provided an onNodesChange handler. // has not provided an onNodesChange handler.
// Nodes are only rendered if they have a width and height // Nodes are only rendered if they have a width and height
// attribute which they get from this handler. // attribute which they get from this handler.
set({ nodes, fitViewDone: nextFitViewDone }); set({ fitViewDone: nextFitViewDone });
if (changes?.length > 0) { if (changes?.length > 0) {
if (debug) { if (debug) {