UNPKG

@rxflow/base

Version:

BaseFlow - 核心 Flow 组件库

48 lines (45 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useListenRender = void 0; var _react = require("@xyflow/react"); var _react2 = require("react"); var _ = require("./.."); /** * @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. */ const useListenRender = () => { const getProps = (0, _.useGetProps)(); const onRender = getProps().onRender; const nodes = (0, _react.useNodes)(); const { getEdges } = (0, _react.useReactFlow)(); const startRenderTimeRef = (0, _react2.useRef)(performance.now()); const isWaitInitRef = (0, _react2.useRef)(true); // 等待触发初始化回调 (0, _react2.useEffect)(() => { if (nodes.length === 0) { startRenderTimeRef.current = performance.now(); } else { // 计算时间, if (isWaitInitRef.current) { setTimeout(() => { const timing = performance.now() - startRenderTimeRef.current; const edges = getEdges(); onRender?.(nodes, edges, timing); if (getProps().debug) { console.log(`初始化节点数:${nodes.length}, 边:${edges.length}, 渲染时长:${timing}`); } }, 1); } isWaitInitRef.current = false; } }, [nodes]); }; exports.useListenRender = useListenRender;