Compare commits

..

3 Commits

Author SHA1 Message Date
Memory
25b20250a1
fix: freeze log display when auto-scroll is disabled 2026-03-01 23:37:02 +08:00
Memory
31bec33064
fix: auto-refresh relative time on profiles page 2026-03-01 22:50:47 +08:00
agoudbg
9bbb495dae
fix: badge not clickable 2026-03-01 21:53:08 +08:00
3 changed files with 19 additions and 2 deletions

View File

@ -479,7 +479,7 @@ const Connections: React.FC = () => {
</span>
</div>
<Badge
className="mt-2"
className="app-nodrag pointer-events-none mt-2"
color="primary"
variant="flat"
showOutline={false}

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

View File

@ -59,6 +59,7 @@ const Profiles: React.FC = () => {
const [updating, setUpdating] = useState(false)
const [fileOver, setFileOver] = useState(false)
const [url, setUrl] = useState('')
const [, setNow] = useState(new Date())
const isUrlEmpty = url.trim() === ''
const sensors = useSensors(useSensor(PointerSensor))
const { data: subs = [], mutate: mutateSubs } = useSWR(
@ -218,6 +219,11 @@ const Profiles: React.FC = () => {
}
}, [])
useEffect(() => {
const timer = setInterval(() => setNow(new Date()), 30000)
return () => clearInterval(timer)
}, [])
useEffect(() => {
setSortedItems(items)
}, [items])