chore(examples): cleanup

This commit is contained in:
moklick
2023-11-08 17:44:51 +01:00
parent e83079c5cd
commit d82a54fa5b
21 changed files with 700 additions and 557 deletions
+19 -16
View File
@@ -1,27 +1,30 @@
import { useState, useCallback } from 'react';
import { ReactFlow, applyNodeChanges, applyEdgeChanges, addEdge } from '@xyflow/react';
import {
ReactFlow,
applyNodeChanges,
applyEdgeChanges,
addEdge,
OnNodesChange,
OnEdgesChange,
OnConnect,
} from '@xyflow/react';
type FlowProps = {
generics: GenericTestCase;
flowConfig: FlowConfig;
};
export default ({ generics }: FlowProps) => {
const [nodes, setNodes] = useState(generics.flowProps.nodes);
const [edges, setEdges] = useState(generics.flowProps.edges);
export default ({ flowConfig }: FlowProps) => {
const [nodes, setNodes] = useState(flowConfig.flowProps.nodes);
const [edges, setEdges] = useState(flowConfig.flowProps.edges);
const props = { ...flowConfig.flowProps, nodes, edges };
const onNodesChange: OnNodesChange = useCallback((changes) => setNodes((nds) => applyNodeChanges(changes, nds)), []);
const onEdgesChange: OnEdgesChange = useCallback((changes) => setEdges((eds) => applyEdgeChanges(changes, eds)), []);
const onConnect: OnConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), []);
const onNodesChange = useCallback((changes) => setNodes((nds) => applyNodeChanges(changes, nds)), []);
const onEdgesChange = useCallback((changes) => setEdges((eds) => applyEdgeChanges(changes, eds)), []);
const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), []);
return (
<div style={{ height: '100%' }}>
<ReactFlow
{...generics.flowProps}
nodes={nodes}
onNodesChange={onNodesChange}
edges={edges}
onEdgesChange={onEdgesChange}
onConnect={onConnect}
></ReactFlow>
<ReactFlow {...props} onNodesChange={onNodesChange} onEdgesChange={onEdgesChange} onConnect={onConnect} />
</div>
);
};
@@ -160,4 +160,4 @@ export default {
// },
],
},
} satisfies GenericTestCase;
} satisfies FlowConfig;
+8 -8
View File
@@ -1,17 +1,17 @@
import { useLocation } from 'react-router-dom';
import Flow from './Flow';
const flowConfigs = import.meta.glob<FlowConfig>('./**/*.ts', { eager: true, import: 'default' });
export default () => {
const location = useLocation();
const files = import.meta.glob<GenericTestCase>('./**/*.ts', { eager: true, import: 'default' });
const path = `.${location.pathname.replace('/tests/generic', '')}.ts`;
const flowConfig = flowConfigs[path];
const testCasePath = `.${location.pathname.replace('/tests/generic', '')}.ts`;
const testCase = files[testCasePath];
if (!testCase) {
return <div></div>;
if (!flowConfig) {
return `404: This route doesn't exists.`;
}
return <Flow generics={testCase} />;
return <Flow flowConfig={flowConfig} />;
};
@@ -88,4 +88,4 @@ export default {
},
],
},
} satisfies GenericTestCase;
} satisfies FlowConfig;
@@ -34,4 +34,4 @@ export default {
},
],
},
} satisfies GenericTestCase;
} satisfies FlowConfig;
@@ -35,4 +35,4 @@ export default {
},
],
},
} satisfies GenericTestCase;
} satisfies FlowConfig;