fix(flow): 修复未使用默认导出导致打包报错的问题

master
钟良源 4 months ago
parent 0230119987
commit d8196ab348

@ -26,12 +26,12 @@ interface HistoryProviderProps {
onHistoryChange: (nodes: Node[], edges: Edge[]) => void; onHistoryChange: (nodes: Node[], edges: Edge[]) => void;
} }
export const HistoryProvider: React.FC<HistoryProviderProps> = ({ const HistoryProvider: React.FC<HistoryProviderProps> = ({
children, children,
initialNodes, initialNodes,
initialEdges, initialEdges,
onHistoryChange onHistoryChange
}) => { }) => {
// 历史记录状态 // 历史记录状态
const [history, setHistory] = useState<{ nodes: Node[]; edges: Edge[] }[]>([ const [history, setHistory] = useState<{ nodes: Node[]; edges: Edge[] }[]>([
{ nodes: initialNodes, edges: initialEdges } { nodes: initialNodes, edges: initialEdges }
@ -45,7 +45,10 @@ export const HistoryProvider: React.FC<HistoryProviderProps> = ({
}); });
// 检查两个状态是否相等 // 检查两个状态是否相等
const isSameState = useCallback((state1: { nodes: Node[]; edges: Edge[] }, state2: { nodes: Node[]; edges: Edge[] }) => { const isSameState = useCallback((state1: { nodes: Node[]; edges: Edge[] }, state2: {
nodes: Node[];
edges: Edge[]
}) => {
// 只比较节点和边的关键属性,忽略拖动过程中的临时状态 // 只比较节点和边的关键属性,忽略拖动过程中的临时状态
if (state1.nodes.length !== state2.nodes.length || state1.edges.length !== state2.edges.length) { if (state1.nodes.length !== state2.nodes.length || state1.edges.length !== state2.edges.length) {
return false; return false;
@ -57,10 +60,10 @@ export const HistoryProvider: React.FC<HistoryProviderProps> = ({
const node2 = state2.nodes[i]; const node2 = state2.nodes[i];
if (node1.id !== node2.id || if (node1.id !== node2.id ||
node1.type !== node2.type || node1.type !== node2.type ||
node1.position.x !== node2.position.x || node1.position.x !== node2.position.x ||
node1.position.y !== node2.position.y || node1.position.y !== node2.position.y ||
JSON.stringify(node1.data) !== JSON.stringify(node2.data)) { JSON.stringify(node1.data) !== JSON.stringify(node2.data)) {
return false; return false;
} }
} }
@ -71,10 +74,10 @@ export const HistoryProvider: React.FC<HistoryProviderProps> = ({
const edge2 = state2.edges[i]; const edge2 = state2.edges[i];
if (edge1.id !== edge2.id || if (edge1.id !== edge2.id ||
edge1.source !== edge2.source || edge1.source !== edge2.source ||
edge1.target !== edge2.target || edge1.target !== edge2.target ||
edge1.sourceHandle !== edge2.sourceHandle || edge1.sourceHandle !== edge2.sourceHandle ||
edge1.targetHandle !== edge2.targetHandle) { edge1.targetHandle !== edge2.targetHandle) {
return false; return false;
} }
} }
@ -98,8 +101,8 @@ export const HistoryProvider: React.FC<HistoryProviderProps> = ({
// 添加新快照 // 添加新快照
newHistory.push({ newHistory.push({
nodes: nodes.map(node => ({...node})), nodes: nodes.map(node => ({ ...node })),
edges: edges.map(edge => ({...edge})) edges: edges.map(edge => ({ ...edge }))
}); });
// 限制历史记录长度,防止内存泄漏 // 限制历史记录长度,防止内存泄漏
@ -170,3 +173,5 @@ export const HistoryProvider: React.FC<HistoryProviderProps> = ({
</HistoryContext.Provider> </HistoryContext.Provider>
); );
}; };
export default HistoryProvider;

@ -41,7 +41,7 @@ import { setMainFlow } from '@/api/appRes';
import { getUserToken } from '@/api/user'; import { getUserToken } from '@/api/user';
import { Message } from '@arco-design/web-react'; import { Message } from '@arco-design/web-react';
import BasicNode from '@/components/FlowEditor/node/basicNode/BasicNode'; import BasicNode from '@/components/FlowEditor/node/basicNode/BasicNode';
import { HistoryProvider, useHistory } from './components/historyContext'; import HistoryProvider, { useHistory } from './components/historyContext';
import useWebSocket from '@/hooks/useWebSocket'; import useWebSocket from '@/hooks/useWebSocket';
const edgeTypes: EdgeTypes = { const edgeTypes: EdgeTypes = {

Loading…
Cancel
Save