mirror of
https://gh.catmak.name/https://github.com/mihomo-party-org/mihomo-party
synced 2026-04-15 00:50:35 +08:00
fix: freeze log display when auto-scroll is disabled
This commit is contained in:
parent
31bec33064
commit
25b20250a1
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user