el?.scrollIntoView({ block: "nearest" }) : undefined}
+ ref={(el) => { rowRefs.current[index] = el; }}
>
(null);
- // Reset selection to first item when streams change or view mode switches
+ // Initialize selection when streams first load; clear if streams become empty.
+ // Do NOT reset on every Firestore update — that would scroll the list to the top.
useEffect(() => {
- setSelectedIndex(streams.length > 0 ? 0 : null);
+ setSelectedIndex((prev) => {
+ if (streams.length === 0) return null;
+ if (prev === null) return 0;
+ return prev;
+ });
}, [streams.length]);
useEffect(() => {