diff --git a/.changeset/fix-pinned-events-timeline-crash.md b/.changeset/fix-pinned-events-timeline-crash.md new file mode 100644 index 000000000..653e1ace2 --- /dev/null +++ b/.changeset/fix-pinned-events-timeline-crash.md @@ -0,0 +1,5 @@ +--- +default: patch +--- + +Fixed crash when rendering some `m.room.pinned_events` timeline rows (old/malformed pin state edge case). diff --git a/src/app/hooks/timeline/useTimelineEventRenderer.tsx b/src/app/hooks/timeline/useTimelineEventRenderer.tsx index b4d54d825..eb301257b 100644 --- a/src/app/hooks/timeline/useTimelineEventRenderer.tsx +++ b/src/app/hooks/timeline/useTimelineEventRenderer.tsx @@ -1060,6 +1060,9 @@ export function useTimelineEventRenderer({ const pinsRemoved = (prevPinned && pinned && prevPinned.filter((x: string) => !pinned.includes(x))) || []; + const pinPreviewIds = (pinsAdded ?? []).concat(...(pinsRemoved ?? [])); + const pinnedSet = new Set(pinned ?? []); + const timeJSX = (