Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix issue where thread panel did not update correctly #9746

Merged
merged 1 commit into from Dec 13, 2022

Conversation

justjanne
Copy link
Contributor

@justjanne justjanne commented Dec 13, 2022

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

@justjanne justjanne added the T-Defect Bugs, crashes, hangs, vulnerabilities, or other reported problems label Dec 13, 2022
@justjanne justjanne force-pushed the justjanne/fix/23971-missing-threads branch from 62f9a1e to 5f96720 Compare December 13, 2022 13:52
@germain-gg germain-gg added the X-Release-Blocker This affects the current release cycle and must be solved for a release to happen label Dec 13, 2022
@justjanne justjanne marked this pull request as ready for review December 13, 2022 14:24
@justjanne justjanne requested a review from a team as a code owner December 13, 2022 14:24
@t3chguy
Copy link
Member

t3chguy commented Dec 13, 2022

@justjanne this looks ready to merge

@justjanne justjanne merged commit 5d5e169 into develop Dec 13, 2022
@justjanne justjanne deleted the justjanne/fix/23971-missing-threads branch December 13, 2022 14:47
@justjanne
Copy link
Contributor Author

@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)}
Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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.

su-ex added a commit to SchildiChat/element-desktop that referenced this pull request Jan 15, 2023
* 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)).
su-ex added a commit to SchildiChat/element-web that referenced this pull request Jan 15, 2023
* 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)).
su-ex added a commit to SchildiChat/matrix-react-sdk that referenced this pull request Jan 15, 2023
* 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)).
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 18, 2023
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)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-Defect Bugs, crashes, hangs, vulnerabilities, or other reported problems X-Release-Blocker This affects the current release cycle and must be solved for a release to happen
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Thread list panel is missing recent thread that I participated in
4 participants