fix(bug,perf): poll first-vote race, stale timeline ref, lazy GifPicker/EmojiBoard, focusItem timer leak, RoomNavItem memo
BUG-18: clearTimeout cleanup in focusItem useLayoutEffect prevents leaked timers BUG-24: Room timeline listener catches first poll vote before Relations object exists BUG-25: Use timelineRef.current in handleOpenEvent to prevent stale index on rapid navigation Perf-6: React.lazy + Suspense for GifPicker and EmojiBoard (initial bundle -114 kB) Perf-7: React.memo on RoomNavItem to prevent re-renders on unrelated state Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -245,7 +245,7 @@ type RoomNavItemProps = {
|
||||
showAvatar?: boolean;
|
||||
direct?: boolean;
|
||||
};
|
||||
export function RoomNavItem({
|
||||
function RoomNavItem_({
|
||||
room,
|
||||
selected,
|
||||
showAvatar,
|
||||
@@ -440,3 +440,4 @@ export function RoomNavItem({
|
||||
</NavItem>
|
||||
);
|
||||
}
|
||||
export const RoomNavItem = React.memo(RoomNavItem_);
|
||||
Reference in New Issue
Block a user