Focus latest activity item by id

This commit is contained in:
武阳
2026-05-07 15:54:27 +08:00
parent b0ae8ad0be
commit a4a0677ce4
@@ -120,13 +120,18 @@ export function ActivityPanel() {
const visibleItems = selectedMessageId const visibleItems = selectedMessageId
? items.filter((item) => activityMessageId(item.id) === selectedMessageId) ? items.filter((item) => activityMessageId(item.id) === selectedMessageId)
: items; : items;
const prevCountRef = useRef(0); const prevLatestIdRef = useRef<string | null>(null);
useEffect(() => { useEffect(() => {
if (mode === "activity" && items.length > prevCountRef.current) { const latestId = items.at(-1)?.id ?? null;
openItem(items.at(-1)?.id ?? items[0]?.id ?? ""); if (
mode === "activity" &&
latestId &&
latestId !== prevLatestIdRef.current
) {
openItem(latestId);
} }
prevCountRef.current = items.length; prevLatestIdRef.current = latestId;
}, [items, mode, openItem]); }, [items, mode, openItem]);
if (!open) return null; if (!open) return null;