UNPKG

@rxflow/base

Version:

BaseFlow - 核心 Flow 组件库

39 lines (38 loc) 1.42 kB
/** * @author: yanxianliang * @date: 2025-08-25 17:49 * @modified:2025/8/25 17:49 by yanxianliang * @desc: Render 监听并回传对应的事件 * * Copyright (c) 2025 by yanxianliang, All Rights Reserved. */ import { useNodes, useReactFlow } from "@xyflow/react"; import { useEffect, useRef } from "react"; import { useGetProps } from "./.."; export var useListenRender = function useListenRender() { var getProps = useGetProps(); var onRender = getProps().onRender; var nodes = useNodes(); var _useReactFlow = useReactFlow(), getEdges = _useReactFlow.getEdges; var startRenderTimeRef = useRef(performance.now()); var isWaitInitRef = useRef(true); // 等待触发初始化回调 useEffect(function () { if (nodes.length === 0) { startRenderTimeRef.current = performance.now(); } else { // 计算时间, if (isWaitInitRef.current) { setTimeout(function () { var timing = performance.now() - startRenderTimeRef.current; var edges = getEdges(); onRender === null || onRender === void 0 || onRender(nodes, edges, timing); if (getProps().debug) { console.log("\u521D\u59CB\u5316\u8282\u70B9\u6570\uFF1A".concat(nodes.length, ", \u8FB9\uFF1A").concat(edges.length, ", \u6E32\u67D3\u65F6\u957F\uFF1A").concat(timing)); } }, 1); } isWaitInitRef.current = false; } }, [nodes]); };