Focus latest activity item by id
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user