From 3ac1caca697ad87089b01a9aab9d61c10909de11 Mon Sep 17 00:00:00 2001 From: icarus Date: Tue, 14 Oct 2025 17:16:13 +0800 Subject: [PATCH] refactor(trace): simplify showList state management with useMemo Replace manual state updates for showList with derived state using useMemo --- src/renderer/src/trace/pages/index.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/trace/pages/index.tsx b/src/renderer/src/trace/pages/index.tsx index 1ffb638951..abf50c5f17 100644 --- a/src/renderer/src/trace/pages/index.tsx +++ b/src/renderer/src/trace/pages/index.tsx @@ -3,7 +3,7 @@ import './Trace.css' import { SpanEntity } from '@mcp-trace/trace-core' import { TraceModal } from '@renderer/trace/pages/TraceModel' import { Divider } from 'antd/lib' -import React, { useCallback, useEffect, useRef, useState } from 'react' +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import { findNodeById, mergeTraceModals, updatePercentAndStart } from '../utils' @@ -21,7 +21,7 @@ export interface TracePageProp { export const TracePage: React.FC = ({ topicId, traceId, modelName, reload = false }) => { const [spans, setSpans] = useState([]) const [selectNode, setSelectNode] = useState(null) - const [showList, setShowList] = useState(true) + const showList = useMemo(() => selectNode === null, [selectNode]) const intervalRef = useRef(null) const { t } = useTranslation() @@ -59,12 +59,10 @@ export const TracePage: React.FC = ({ topicId, traceId, modelName const latestNode = findNodeById(spans, nodeId) if (latestNode) { setSelectNode(latestNode) - setShowList(false) } } const handleShowList = () => { - setShowList(true) setSelectNode(null) } @@ -99,7 +97,6 @@ export const TracePage: React.FC = ({ topicId, traceId, modelName if (selectNode) { const latest = findNodeById(spans, selectNode.id) if (!latest) { - setShowList(true) setSelectNode(null) } else if (latest !== selectNode) { setSelectNode(latest)