From 25b20250a19efdddc9dead6b53a50046e055351d Mon Sep 17 00:00:00 2001 From: Memory <134070804+Memory2314@users.noreply.github.com> Date: Sun, 1 Mar 2026 23:37:02 +0800 Subject: [PATCH] fix: freeze log display when auto-scroll is disabled --- src/renderer/src/pages/logs.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/pages/logs.tsx b/src/renderer/src/pages/logs.tsx index 137f8f5..148f6d3 100644 --- a/src/renderer/src/pages/logs.tsx +++ b/src/renderer/src/pages/logs.tsx @@ -46,6 +46,8 @@ const Logs: React.FC = () => { const [trace, setTrace] = useState(true) const virtuosoRef = useRef(null) + const traceRef = useRef(trace) + const filteredLogs = useMemo(() => { if (filter === '') return logs return logs.filter((log) => { @@ -57,6 +59,13 @@ const Logs: React.FC = () => { localStorage.setItem(LOGS_FILTER_KEY, filter) }, [filter]) + useEffect(() => { + traceRef.current = trace + if (trace) { + setLogs([...cachedLogs.log]) + } + }, [trace]) + useEffect(() => { if (!trace) return virtuosoRef.current?.scrollToIndex({ @@ -70,7 +79,9 @@ const Logs: React.FC = () => { useEffect(() => { const old = cachedLogs.trigger cachedLogs.trigger = (a): void => { - setLogs([...a]) + if (traceRef.current) { + setLogs([...a]) + } } return (): void => { cachedLogs.trigger = old