This repository has been archived by the owner on Mar 13, 2024. It is now read-only.
MM-28833 Remove computed details from getChannel selector #6794
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As I mentioned earlier this week,
getChannel
is problematic because its a selector that takes an argument without being behind a factory function, so if you have two or more components both using it, they'll constantly be overwriting each others' results, leading to those components re-rendering constantly. The main reason that this causes problems is thatgetChannel
returns a new object each time for DMs and GMs because it adds on some additional derived fields such as the dynamic display_name for DM and GM channels. On the current version of master, this leads to things like parts of the new sidebar and all of the RHS re-rendering constantly.I changed
getChannel
to be a plain function that doesn't compute any data so that it can be re-used easily wherever we don't need the computed fields, and I've usedmakeGetChannel
to generate one-off selectors for everywhere that does need that data.Ticket Link
https://mattermost.atlassian.net/browse/MM-28833
Related Pull Requests
mattermost/mattermost-redux#1257