fix: freeze log display when auto-scroll is disabled

This commit is contained in:
Memory 2026-03-01 23:37:02 +08:00 committed by GitHub
parent 31bec33064
commit 25b20250a1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -46,6 +46,8 @@ const Logs: React.FC = () => {
const [trace, setTrace] = useState(true)
const virtuosoRef = useRef<VirtuosoHandle>(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