-
-
Notifications
You must be signed in to change notification settings - Fork 833
Fix issue where thread panel did not update correctly #9746
Conversation
62f9a1e
to
5f96720
Compare
@justjanne this looks ready to merge |
Thanks for the ping, was waiting for CI to pass first, but missed that it did |
@@ -305,7 +305,7 @@ const ThreadPanel: React.FC<IProps> = ({ roomId, onClose, permalinkCreator }) => | |||
<Measured sensor={card.current} onMeasurement={setNarrow} /> | |||
{timelineSet ? ( | |||
<TimelinePanel | |||
key={timelineSet.getFilter()?.filterId ?? roomId + ":" + filterOption} | |||
key={filterOption + ":" + (timelineSet.getFilter()?.filterId ?? roomId)} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like we should add a test for the problem that this fixes. We could add a test to ensure the filtered view shows a subset of what all threads shows.
Was there a React warning about duplicate keys being used? Can we fail tests if this ever occurs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do have a warning for this, it's the "timeline panel being reused with a different timelineset" warning. I don't think there's an easy way to reliably automate testing this, though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could add a test to ensure the filtered view shows a subset of what all threads shows.
What about a test for this scenario ^?
We do have a warning for this, it's the "timeline panel being reused with a different timelineset" warning.
Where is this warning emitted? Do you mean Replacing timelineSet on a TimelinePanel - confusion may ensue
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's exactly the warning I meant. Sorry, I'm on a personal device right now, going by memory.
I'll reply in more detail later when I'm back at work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@justjanne Friendly poke
We can write an end-to-end Cypress test for this particular case which avoids the internal hell implementation and the current test harness for it.
If the Replacing timelineSet on a TimelinePanel - confusion may ensue
warning is always considered a bug when we hit that point, we should do more to ask for a bug report when it happens. We can show a bug report suggestion in the thread view and explain that something went wrong.
* This allows the update server to be entirely static, such as a CDN or object store, as defined at https ([\element-hq#461](element-hq#461)). * Enable threads by default ([\#9736](matrix-org/matrix-react-sdk#9736)). Fixes element-hq/element-web#19270 element-hq/element-web#21910 and element-hq/element-web#23946. * Add inline code formatting to rich text editor ([\#9720](matrix-org/matrix-react-sdk#9720)). * Add emoji handling for plain text mode of the new rich text editor ([\#9727](matrix-org/matrix-react-sdk#9727)). * Overlay virtual room call events into main timeline ([\#9626](matrix-org/matrix-react-sdk#9626)). Fixes element-hq/element-web#22929. * Adds a new section under "Room Settings" > "Roles & Permissions" which adds the possibility to multiselect users from this room and grant them more permissions. ([\#9596](matrix-org/matrix-react-sdk#9596)). Contributed by @GoodGuyMarco. * Add emoji handling for rich text mode ([\#9661](matrix-org/matrix-react-sdk#9661)). * Add setting to hide bold notifications ([\#9705](matrix-org/matrix-react-sdk#9705)). * Further password reset flow enhancements ([\#9662](matrix-org/matrix-react-sdk#9662)). * Snooze the bulk unverified sessions reminder on dismiss ([\#9706](matrix-org/matrix-react-sdk#9706)). * Honor advanced audio processing settings when recording voice messages ([\#9610](matrix-org/matrix-react-sdk#9610)). Contributed by @MrAnno. * Improve the visual balance of bubble layout ([\#9704](matrix-org/matrix-react-sdk#9704)). * Add config setting to disable bulk unverified sessions nag ([\#9657](matrix-org/matrix-react-sdk#9657)). * Only display bulk unverified sessions nag when current sessions is verified ([\#9656](matrix-org/matrix-react-sdk#9656)). * Separate labs and betas more clearly ([\#8969](matrix-org/matrix-react-sdk#8969)). Fixes element-hq/element-web#22706. * Show user an error if we fail to create a DM for verification. ([\#9624](matrix-org/matrix-react-sdk#9624)). * Prevent unnecessary m.direct updates ([\#9805](matrix-org/matrix-react-sdk#9805)). Fixes element-hq/element-web#24059. * Fix checkForPreJoinUISI for thread roots ([\#9803](matrix-org/matrix-react-sdk#9803)). Fixes element-hq/element-web#24054. * Load RTE components only when RTE labs is enabled ([\#9804](matrix-org/matrix-react-sdk#9804)). * Fix issue where thread panel did not update correctly ([\#9746](matrix-org/matrix-react-sdk#9746)). Fixes element-hq/element-web#23971. * Remove async call to get virtual room from room load ([\#9743](matrix-org/matrix-react-sdk#9743)). Fixes element-hq/element-web#23968. * Check each thread for unread messages. ([\#9723](matrix-org/matrix-react-sdk#9723)). * Device manage - handle sessions that don't support encryption ([\#9717](matrix-org/matrix-react-sdk#9717)). Fixes element-hq/element-web#23722. * Fix hover state for formatting buttons (Rich text editor) (fix element-hq/element-web/issues/23832) ([\#9715](matrix-org/matrix-react-sdk#9715)). * Don't allow group calls to be unterminated ([\#9710](matrix-org/matrix-react-sdk#9710)). * Fix replies to emotes not showing as inline ([\#9707](matrix-org/matrix-react-sdk#9707)). Fixes element-hq/element-web#23903. * Update copy of 'Change layout' button to match Element Call ([\#9703](matrix-org/matrix-react-sdk#9703)). * Fix call splitbrains when switching between rooms ([\#9692](matrix-org/matrix-react-sdk#9692)). * bugfix: fix an issue where the Notifier would incorrectly fire for non-timeline events ([\#9664](matrix-org/matrix-react-sdk#9664)). Fixes element-hq/element-web#17263. * Fix power selector being wrongly disabled for admins themselves ([\#9681](matrix-org/matrix-react-sdk#9681)). Fixes element-hq/element-web#23882. * Show day counts in call durations ([\#9641](matrix-org/matrix-react-sdk#9641)).
* Add inline code formatting to rich text editor ([\element-hq#9720](matrix-org/matrix-react-sdk#9720)). * Add emoji handling for plain text mode of the new rich text editor ([\element-hq#9727](matrix-org/matrix-react-sdk#9727)). * Overlay virtual room call events into main timeline ([\element-hq#9626](matrix-org/matrix-react-sdk#9626)). Fixes element-hq#22929. * Adds a new section under "Room Settings" > "Roles & Permissions" which adds the possibility to multiselect users from this room and grant them more permissions. ([\element-hq#9596](matrix-org/matrix-react-sdk#9596)). Contributed by @GoodGuyMarco. * Add emoji handling for rich text mode ([\element-hq#9661](matrix-org/matrix-react-sdk#9661)). * Add setting to hide bold notifications ([\element-hq#9705](matrix-org/matrix-react-sdk#9705)). * Further password reset flow enhancements ([\element-hq#9662](matrix-org/matrix-react-sdk#9662)). * Snooze the bulk unverified sessions reminder on dismiss ([\element-hq#9706](matrix-org/matrix-react-sdk#9706)). * Honor advanced audio processing settings when recording voice messages ([\element-hq#9610](matrix-org/matrix-react-sdk#9610)). Contributed by @MrAnno. * Improve the visual balance of bubble layout ([\element-hq#9704](matrix-org/matrix-react-sdk#9704)). * Add config setting to disable bulk unverified sessions nag ([\element-hq#9657](matrix-org/matrix-react-sdk#9657)). * Only display bulk unverified sessions nag when current sessions is verified ([\element-hq#9656](matrix-org/matrix-react-sdk#9656)). * Separate labs and betas more clearly ([\element-hq#8969](matrix-org/matrix-react-sdk#8969)). Fixes element-hq#22706. * Show user an error if we fail to create a DM for verification. ([\element-hq#9624](matrix-org/matrix-react-sdk#9624)). * Prevent unnecessary m.direct updates ([\element-hq#9805](matrix-org/matrix-react-sdk#9805)). Fixes element-hq#24059. * Fix checkForPreJoinUISI for thread roots ([\element-hq#9803](matrix-org/matrix-react-sdk#9803)). Fixes element-hq#24054. * Load RTE components only when RTE labs is enabled ([\element-hq#9804](matrix-org/matrix-react-sdk#9804)). * Fix issue where thread panel did not update correctly ([\element-hq#9746](matrix-org/matrix-react-sdk#9746)). Fixes element-hq#23971. * Remove async call to get virtual room from room load ([\element-hq#9743](matrix-org/matrix-react-sdk#9743)). Fixes element-hq#23968. * Check each thread for unread messages. ([\element-hq#9723](matrix-org/matrix-react-sdk#9723)). * Device manage - handle sessions that don't support encryption ([\element-hq#9717](matrix-org/matrix-react-sdk#9717)). Fixes element-hq#23722. * Fix hover state for formatting buttons (Rich text editor) (fix element-hq/issues/23832) ([\element-hq#9715](matrix-org/matrix-react-sdk#9715)). * Don't allow group calls to be unterminated ([\element-hq#9710](matrix-org/matrix-react-sdk#9710)). * Fix replies to emotes not showing as inline ([\element-hq#9707](matrix-org/matrix-react-sdk#9707)). Fixes element-hq#23903. * Update copy of 'Change layout' button to match Element Call ([\element-hq#9703](matrix-org/matrix-react-sdk#9703)). * Fix call splitbrains when switching between rooms ([\element-hq#9692](matrix-org/matrix-react-sdk#9692)). * bugfix: fix an issue where the Notifier would incorrectly fire for non-timeline events ([\element-hq#9664](matrix-org/matrix-react-sdk#9664)). Fixes element-hq#17263. * Fix power selector being wrongly disabled for admins themselves ([\element-hq#9681](matrix-org/matrix-react-sdk#9681)). Fixes element-hq#23882. * Show day counts in call durations ([\element-hq#9641](matrix-org/matrix-react-sdk#9641)).
* Prevent unnecessary m.direct updates ([\matrix-org#9805](matrix-org#9805)). Fixes element-hq/element-web#24059. * Fix checkForPreJoinUISI for thread roots ([\matrix-org#9803](matrix-org#9803)). Fixes element-hq/element-web#24054. * Add inline code formatting to rich text editor ([\matrix-org#9720](matrix-org#9720)). * Add emoji handling for plain text mode of the new rich text editor ([\matrix-org#9727](matrix-org#9727)). * Overlay virtual room call events into main timeline ([\matrix-org#9626](matrix-org#9626)). Fixes element-hq/element-web#22929. * Adds a new section under "Room Settings" > "Roles & Permissions" which adds the possibility to multiselect users from this room and grant them more permissions. ([\matrix-org#9596](matrix-org#9596)). Contributed by @GoodGuyMarco. * Add emoji handling for rich text mode ([\matrix-org#9661](matrix-org#9661)). * Add setting to hide bold notifications ([\matrix-org#9705](matrix-org#9705)). * Further password reset flow enhancements ([\matrix-org#9662](matrix-org#9662)). * Snooze the bulk unverified sessions reminder on dismiss ([\matrix-org#9706](matrix-org#9706)). * Honor advanced audio processing settings when recording voice messages ([\matrix-org#9610](matrix-org#9610)). Contributed by @MrAnno. * Improve the visual balance of bubble layout ([\matrix-org#9704](matrix-org#9704)). * Add config setting to disable bulk unverified sessions nag ([\matrix-org#9657](matrix-org#9657)). * Only display bulk unverified sessions nag when current sessions is verified ([\matrix-org#9656](matrix-org#9656)). * Separate labs and betas more clearly ([\matrix-org#8969](matrix-org#8969)). Fixes element-hq/element-web#22706. * Show user an error if we fail to create a DM for verification. ([\matrix-org#9624](matrix-org#9624)). * Fix issue where thread panel did not update correctly ([\matrix-org#9746](matrix-org#9746)). Fixes element-hq/element-web#23971. * Remove async call to get virtual room from room load ([\matrix-org#9743](matrix-org#9743)). Fixes element-hq/element-web#23968. * Check each thread for unread messages. ([\matrix-org#9723](matrix-org#9723)). * Device manage - handle sessions that don't support encryption ([\matrix-org#9717](matrix-org#9717)). Fixes element-hq/element-web#23722. * Fix hover state for formatting buttons (Rich text editor) (fix element-hq/element-web/issues/23832) ([\matrix-org#9715](matrix-org#9715)). * Don't allow group calls to be unterminated ([\matrix-org#9710](matrix-org#9710)). * Fix replies to emotes not showing as inline ([\matrix-org#9707](matrix-org#9707)). Fixes element-hq/element-web#23903. * Update copy of 'Change layout' button to match Element Call ([\matrix-org#9703](matrix-org#9703)). * Fix call splitbrains when switching between rooms ([\matrix-org#9692](matrix-org#9692)). * bugfix: fix an issue where the Notifier would incorrectly fire for non-timeline events ([\matrix-org#9664](matrix-org#9664)). Fixes element-hq/element-web#17263. * Fix power selector being wrongly disabled for admins themselves ([\matrix-org#9681](matrix-org#9681)). Fixes element-hq/element-web#23882. * Show day counts in call durations ([\matrix-org#9641](matrix-org#9641)).
Changes in [1.11.17](https://github.com/vector-im/element-web/releases/tag/v1.11.17) (2022-12-21) ================================================================================================= ## ✨ Features * Add inline code formatting to rich text editor ([\#9720](matrix-org/matrix-react-sdk#9720)). * Add emoji handling for plain text mode of the new rich text editor ([\#9727](matrix-org/matrix-react-sdk#9727)). * Overlay virtual room call events into main timeline ([\#9626](matrix-org/matrix-react-sdk#9626)). Fixes #22929. * Adds a new section under "Room Settings" > "Roles & Permissions" which adds the possibility to multiselect users from this room and grant them more permissions. ([\#9596](matrix-org/matrix-react-sdk#9596)). Contributed by @GoodGuyMarco. * Add emoji handling for rich text mode ([\#9661](matrix-org/matrix-react-sdk#9661)). * Add setting to hide bold notifications ([\#9705](matrix-org/matrix-react-sdk#9705)). * Further password reset flow enhancements ([\#9662](matrix-org/matrix-react-sdk#9662)). * Snooze the bulk unverified sessions reminder on dismiss ([\#9706](matrix-org/matrix-react-sdk#9706)). * Honor advanced audio processing settings when recording voice messages ([\#9610](matrix-org/matrix-react-sdk#9610)). Contributed by @MrAnno. * Improve the visual balance of bubble layout ([\#9704](matrix-org/matrix-react-sdk#9704)). * Add config setting to disable bulk unverified sessions nag ([\#9657](matrix-org/matrix-react-sdk#9657)). * Only display bulk unverified sessions nag when current sessions is verified ([\#9656](matrix-org/matrix-react-sdk#9656)). * Separate labs and betas more clearly ([\#8969](matrix-org/matrix-react-sdk#8969)). Fixes #22706. * Show user an error if we fail to create a DM for verification. ([\#9624](matrix-org/matrix-react-sdk#9624)). ## 🐛 Bug Fixes * Prevent unnecessary m.direct updates ([\#9805](matrix-org/matrix-react-sdk#9805)). Fixes #24059. * Fix checkForPreJoinUISI for thread roots ([\#9803](matrix-org/matrix-react-sdk#9803)). Fixes #24054. * Load RTE components only when RTE labs is enabled ([\#9804](matrix-org/matrix-react-sdk#9804)). * Fix issue where thread panel did not update correctly ([\#9746](matrix-org/matrix-react-sdk#9746)). Fixes #23971. * Remove async call to get virtual room from room load ([\#9743](matrix-org/matrix-react-sdk#9743)). Fixes #23968. * Check each thread for unread messages. ([\#9723](matrix-org/matrix-react-sdk#9723)). * Device manage - handle sessions that don't support encryption ([\#9717](matrix-org/matrix-react-sdk#9717)). Fixes #23722. * Fix hover state for formatting buttons (Rich text editor) (fix element-hq/element-web/issues/23832) ([\#9715](matrix-org/matrix-react-sdk#9715)). * Don't allow group calls to be unterminated ([\#9710](matrix-org/matrix-react-sdk#9710)). * Fix replies to emotes not showing as inline ([\#9707](matrix-org/matrix-react-sdk#9707)). Fixes #23903. * Update copy of 'Change layout' button to match Element Call ([\#9703](matrix-org/matrix-react-sdk#9703)). * Fix call splitbrains when switching between rooms ([\#9692](matrix-org/matrix-react-sdk#9692)). * bugfix: fix an issue where the Notifier would incorrectly fire for non-timeline events ([\#9664](matrix-org/matrix-react-sdk#9664)). Fixes #17263. * Fix power selector being wrongly disabled for admins themselves ([\#9681](matrix-org/matrix-react-sdk#9681)). Fixes #23882. * Show day counts in call durations ([\#9641](matrix-org/matrix-react-sdk#9641)).
Type: Defect
Fixes: element-hq/element-web#23971
Reasoning
Previously, we accidentally reused the same timelinepanel for "my threads" and "all threads", which could lead to missing threads in the list.
Here's what your changelog entry will look like:
🐛 Bug Fixes