feat: remember logs page filter keywords

This commit is contained in:
Memory 2025-09-11 11:25:14 +08:00 committed by GitHub
parent b21381062f
commit ae8582bf94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -9,6 +9,8 @@ import { useTranslation } from 'react-i18next'
import { includesIgnoreCase } from '@renderer/utils/includes'
const LOGS_FILTER_KEY = 'logs-filter'
const cachedLogs: {
log: IMihomoLogInfo[]
trigger: ((i: IMihomoLogInfo[]) => void) | null
@ -38,7 +40,9 @@ window.electron.ipcRenderer.on('mihomoLogs', (_e, log: IMihomoLogInfo) => {
const Logs: React.FC = () => {
const { t } = useTranslation()
const [logs, setLogs] = useState<IMihomoLogInfo[]>(cachedLogs.log)
const [filter, setFilter] = useState('')
const [filter, setFilter] = useState(() => {
return localStorage.getItem(LOGS_FILTER_KEY) || ''
})
const [trace, setTrace] = useState(true)
const virtuosoRef = useRef<VirtuosoHandle>(null)
@ -49,6 +53,10 @@ const Logs: React.FC = () => {
})
}, [logs, filter])
useEffect(() => {
localStorage.setItem(LOGS_FILTER_KEY, filter)
}, [filter])
useEffect(() => {
if (!trace) return
virtuosoRef.current?.scrollToIndex({