Skip to content
This repository has been archived by the owner on Mar 13, 2024. It is now read-only.

[MM-24335] Show recently viewed channels when channel switcher opens #8215

Merged
merged 10 commits into from
Jun 18, 2021
Merged

[MM-24335] Show recently viewed channels when channel switcher opens #8215

merged 10 commits into from
Jun 18, 2021

Conversation

AshishDhama
Copy link
Contributor

@AshishDhama AshishDhama commented Jun 6, 2021

Summary

Show recently viewed channels when channel switcher opens
Fixes mattermost/mattermost#14633

Ticket Link

https://mattermost.atlassian.net/browse/MM-24335

Related Pull Requests

  • None

Screenshots

Screenshot 2021-06-07 at 9 10 39 AM

Screenshot 2021-06-07 at 9 10 50 AM

Release Note

New features and improvements, including behavioural changes, UI changes and CLI changes

- Before anything is typed, show a list of channels you are a member of sorted by Recency (last viewed at time).
- Cap the number of channels shown here in the default state to maximum of 20

- If there is no recent channel activity (in the case of new users), show an alphabetical list of channels showing ‘My Channels’ first and other ‘Public Channels’ next - still maxing out at 20 for the default state

@mm-cloud-bot
Copy link

@AshishDhama: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

I understand the commands that are listed here

@mattermod
Copy link
Contributor

Hello @AshishDhama,

Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

@mattermod mattermod requested a review from Willyfrog June 6, 2021 13:21
@mattermod mattermod added 2: Dev Review Requires review by a core commiter 3: QA Review Requires review by a QA tester labels Jun 6, 2021
@AshishDhama
Copy link
Contributor Author

@hmhealey
Issue: getPublicChannels doesn't return all the public channels, is there any alternative for that.

@AshishDhama
Copy link
Contributor Author

AshishDhama commented Jun 7, 2021

@hmhealey Have added server fetch if you are part of just one channel, For more than one channel case last viewed at logic take over. Could not find any case where my channels will work if you are aware of any such flow let me know I will implement that.

@Willyfrog Willyfrog requested a review from hmhealey June 7, 2021 08:07
Copy link
Contributor

@Willyfrog Willyfrog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor nit, but looking good

components/suggestion/switch_channel_provider.jsx Outdated Show resolved Hide resolved
@hmhealey hmhealey added the Setup Cloud Test Server Setup a test server using Mattermost Cloud label Jun 7, 2021
components/suggestion/switch_channel_provider.jsx Outdated Show resolved Hide resolved
components/searchable_channel_list.jsx Outdated Show resolved Hide resolved
components/suggestion/suggestion_box.jsx Outdated Show resolved Hide resolved
components/suggestion/switch_channel_provider.jsx Outdated Show resolved Hide resolved
components/suggestion/switch_channel_provider.jsx Outdated Show resolved Hide resolved
@AshishDhama
Copy link
Contributor Author

@hmhealey Please take a look now and let me know if there is something that needs to be changed.

@hmhealey hmhealey requested a review from jgilliam17 June 10, 2021 13:16
@hmhealey
Copy link
Member

@AshishDhama I talked with Eric about the current behaviour, and while it's not perfect, we decided it was good enough to ship. While it's a bit weird that the Recent Channels aren't correct after refreshing, they're still close enough that this should be fine. Most users won't be paying close attention to the orders of those channels anyway, so they likely won't notice any differences.


@jgilliam17 Be aware that the order of the channels in the channel switcher after refreshing won't be the exact order the channels were read in. They'll be in order of the latest post when you viewed the channel, but we've decided that's fine as in the first half of this comment. Any channels you view during the session will stay in the correct order until you refresh.

The only place this will cause real weirdness is if you view channels without any posts in them (notably new DMs). Since they have no posts and we're setting the "last viewed" to the time of the last post (which doesn't exist), they'll always start at the bottom of the channel switcher when you refresh. That's not very likely to happen in practice though, so it's something else we're accepting for now.

@AshishDhama AshishDhama changed the title Show recently viewed channels when channel switcher opens [MM-24335] Show recently viewed channels when channel switcher opens Jun 15, 2021
@jgilliam17
Copy link
Contributor

/update-branch

@jgilliam17
Copy link
Contributor

Thanks @AshishDhama
I am not seeing any recent DMs on the channel switcher open, even though I received a message, read it and replied in some.
Based on previous comment I should see DMS with activity, but only Channels are shown. Since there are more than 20 channels already on the list, do DMs/GMs remain hidden on the bottom despite having had activity? Thanks

@AshishDhama
Copy link
Contributor Author

@jgilliam17 thanks for your detailed analysis have found one issue which was causing it I think now it will work properly. @hmhealey getChannelsInCurrentTeam isn't returning Dms/Gms so have changed it to getAllRecentChannels, the Second issue was Dms keys which had info related to last_viewded_at was getting overridden so have fixed that as well.
I think after this fix Dms will get sorted correctly even if they don't have any post in them, as we are saving the last opened timestamp in preferences and we have put the logic for that as suggested by you.

@jgilliam17
Copy link
Contributor

Thanks @AshishDhama
Recently viewed DMs a GMs are now listed on the channel switcher.
@hmhealey do you mind doing a quick review of the recent changes? Thanks

@hmhealey
Copy link
Member

Yeah, this sounds good to me. I forgot DMs/GMs would have to be included as well since they're not in any team. getAllRecentChannels does some extra sorting that isn't necessary here, but that shouldn't have any noticeable effect on the performance of this anyway.

@hmhealey hmhealey removed the 2: Dev Review Requires review by a core commiter label Jun 17, 2021
Copy link
Contributor

@jgilliam17 jgilliam17 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @AshishDhama
Tested, looks good to merge.

  • Verified, on open, Channel Switcher displays a list of up to 20 channels, DMs and/or GMs user belongs to, sorted by recently viewed.

@jgilliam17 jgilliam17 added 4: Reviews Complete All reviewers have approved the pull request and removed 3: QA Review Requires review by a QA tester Setup Cloud Test Server Setup a test server using Mattermost Cloud labels Jun 18, 2021
@mm-cloud-bot
Copy link

Test server destroyed

@jgilliam17 jgilliam17 merged commit f92186e into mattermost:master Jun 18, 2021
@amyblais amyblais added Changelog/Done Required changelog entry has been written Docs/Needed Requires documentation labels Jun 18, 2021
@amyblais amyblais added this to the v5.37.0 milestone Jun 18, 2021
cwarnermm added a commit to mattermost/docs that referenced this pull request Jul 6, 2021
Documentation for: mattermost/mattermost-webapp#8215

Updated:
- Messaging > Manage Teams, Channels, and Members > Managing Channels > Switching channels
   - Updated the section to clarify that the channel switcher UI includes recently visited channels and to add a screenshot
amyblais pushed a commit to mattermost/docs that referenced this pull request Jul 10, 2021
…4698)

* MM-24335 Show recently viewed channels when channel switcher opens

Documentation for: mattermost/mattermost-webapp#8215

Updated:
- Messaging > Manage Teams, Channels, and Members > Managing Channels > Switching channels
   - Updated the section to clarify that the channel switcher UI includes recently visited channels and to add a screenshot

* Added screenshot
@amyblais amyblais added Docs/Done Required documentation has been written and removed Docs/Needed Requires documentation labels Jul 10, 2021
amyblais added a commit to mattermost/docs that referenced this pull request Jul 16, 2021
* Update conf.py

* 5.37 upgrade notes (#4706)

* Update important-upgrade-notes.rst

* Update important-upgrade-notes.rst

* Update open-source-components.rst

* Update release-lifecycle.rst

* Update upgrade.rst

* Update extended-support-release.rst

* Update version-archive.rst

* Update release-lifecycle.rst

* Update important-upgrade-notes.rst

* Adding English Australian to translated languages (#4699)

* Adding English Australian to translated languages

Documentation for: mattermost/mattermost-webapp#8192

Updated:
- About Mattermost > Product Overview 
   - Updated languages count to 20, including Australian English
- About Mattermost > Product Overview > Mattermost Team Edition 
   - Added Australian English as a supported language

* Added Australian English to supported languages list

* Updated supported languages count

* MM-34475 Emoji 13.0 with new library (#4700)

* MM-34475 Emoji 13.0 with new library

Documentation for: mattermost/mattermost-webapp#8220

Updated:
- Messaging > Work with Messages > Using Emojis > Adding Emojis to messages
   - Added details about selecting skin tone when selecting or typing emojis
   - Removed the Accessing Alternate Skin Tones section
   - Corrected RST formatting so that custom emoji sections now display as intended on the same page

* removed custom emoji topic from toctree

* Replace 1 screenshot

* Reverted screenshot replacement

* Added new screenshot for default skin tone selection

* Added skin tone selection screenshot

* Update source/help/messaging/emoji.rst

* Minor text updates for clarity

* Replaced first image with redesigned Emoji Picker

* Update source/help/messaging/emoji.rst

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

* Allow uploading .jpeg files on Linux (#4701)

* Allow uploading .jpeg files on Linux

Documentation for: mattermost/mattermost-webapp#8224

Updated:
- Messaging > Customize Mattermost Messaging > Account Settings > General > Profile Picture
   - Clarified that BMP, JPG, JPEG, and PNG file formats are supported

* Update source/help/settings/account-settings.rst

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

* Clarify Add Member to Channel limit (#4704)

Documentation for: mattermost/mattermost-webapp#8077

Updated:
- Messaging > Manage Teams, Channels, and Members > Managing Channels > Adding members to a channel
   - clarified that up to 20 members can be added at a time

* Custom status expiry (#4697)

* Custom status expiry

Documentation for: mattermost/mattermost-webapp#8059

Updated:
- Messaging > Customize Mattermost Messaging > Setting Your Status and Availability > Clearing a Custom Status
   - Added details about setting a custom status expiry

* Added new custom status expiry screenshot

* Applied reviewer feedback

* MM-24335 Show recently viewed channels when channel switcher opens (#4698)

* MM-24335 Show recently viewed channels when channel switcher opens

Documentation for: mattermost/mattermost-webapp#8215

Updated:
- Messaging > Manage Teams, Channels, and Members > Managing Channels > Switching channels
   - Updated the section to clarify that the channel switcher UI includes recently visited channels and to add a screenshot

* Added screenshot

* Update and rename source/help/getting-started/organizing-conversations.rst to source/getting-started/organizing-conversations.rst

Moved source file to its new home & updated relative image links

* Moved source file to its new home and fixed relative links

* Updated source file name and source path

* v5.37 Changelog (#4702)

* Update changelog.md

* Update changelog.md

* Update changelog.md

* Update changelog.md

* Update changelog.md

* Update changelog.md

* Update changelog.md

* Apply suggestions from code review

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update changelog.md

* Update changelog.md

* Update changelog.md

* Add known issue

* Rename source/administration/changelog.md to source/install/self-managed-changelog.md

* Update self-managed-changelog.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>
Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>

* Moved source file to its new home and updated relative image links

* Moved source file to its new home and updated relative image paths

* Moved source file to its new home

* Moved the source file to its new home

* Moved source file to its new home

* Moved source file to its new home

* Moved source file to its new home

* Moved source file to its new home

* Moved source file to its new home

* Moved source file to its new home and updated ThreadAutoFollow details

* Update important-upgrade-notes.rst

* Update self-managed-changelog.md

* Update self-managed-changelog.md

* Update self-managed-changelog.md

* Update self-managed-changelog.md

* Update self-managed-changelog.md

* Update self-managed-changelog.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>
Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>
jwilander added a commit that referenced this pull request Jul 20, 2021
…8414)

* [MM-35780] - Update add users to channel modal test case (#8146)

* [MM-35780] - Update add users to channel modal test cas

* fix lint error

Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* [MM-34169] Data retention cypress tests (#8039)

* adding cypress tests for data retention

Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* WIP ci/test: add NODE_OPTIONS max_old_space_size=500 (#8163)

* ci/test: add NODE_OPTIONS max_old_space_size=500

* update gitlab to use the same

* [MM-34303] Add team ID to response when linking a channel to a group (#8071)

* delete channels when a team is removed from group

Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>

* Use Node 16 for CI (#8154)

* Re-add cross-env to set test timezone

* Update package-lock.json again

* Update CI to Node 16

* Add workspaces section to package.json

* Update package-lock.json

* Close empty brackets

* MM-34758 Collapsed Reply Threads without mobile support (#7933)

Summary
Update webapp to pass collapsed_threads_supported parameters to the server API to indicate that the webapp supports collapsed reply threads.
Update webapp to correctly mark channels and threads as unread/read.

Ticket Link
https://mattermost.atlassian.net/browse/MM-34758

Related Pull Requests
Has server changes: mattermost/mattermost-server#17424

* MM-35435 - add multiple SKU options to purchase modal (#8119)

* MM-35435 -  add multiple sku options to purchase modal

* MM-35435 - add multiple sku options to purchase modal

* add initial logic to update the subscription price

* dictionary changes

* refactor the api endpoint call

* add the right api call

* linter changes

* remove unnecessary code

* add the right productId

* fix types problems

* first fixes to MR comments

* add unit test to radio button group

* remove unnecessary space, organize styles

* fix linter and types problem, use the current subscription product id

* fix snapshots

* Revert "fix snapshots"

This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb.

* improve the findProduct function

* reorganize return value

* style improvements based on UX feedback

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-35838/MM-35923 Fix memoization of selectors (#8143)

* Remove max-lines warning in test files

* MM-35838/MM-35923 Fix memoization of makeGetChannelIdsForCategory when channel order changes

* MM-35838/MM-35923 Fix memoization of getChannelsNameMapInCurrentTeam when channels change

* Clarify memoization pattern

* Add getChannelNameToDisplayNameMap for channel linking in Markdown

* Remove unused type

* MM-32801 : Webapp: In mention autocomplete, remove (Nickname) when (you) is present  (#7984)

* to ts

* added the fix

* revert 1

* revert 2

* rvert 3

* revr 4

* rever 5

* req changes

* added tests

* String update: Clarify Add Member to Channel hint text (#8077)

* Clarify Add Member to Channel Hint Text

When adding members to a channel, the existing hint text ambiguously suggests that a maximum of 20 members can be added to a given channel. Updated hint text to note that users can add up to 20 members at a time to the channel.

* Update MultiSelect to support new text

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* CRT: removes comment count (#8134)

Removes comment count from post info component.
Justification: we show it in root post's thread footer.

* Cypress/E2E: Apply temp fix to dnd e2e (#8158)

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-T2369 : Aspect Ratio is preserved in RHS (#8165)

* test

* Update e2e/cypress/integration/scroll/image_aspect_ratio_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Translations update from Weblate (#8184)

* Translated using Weblate (French)

Currently translated at 90.9% (4307 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (4756 of 4756 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (4737 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4737 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Hungarian)

Currently translated at 99.2% (4701 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (German)

Currently translated at 83.0% (3949 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

Translated using Weblate (German)

Currently translated at 83.0% (3952 of 4756 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (Dutch)

Currently translated at 99.4% (4732 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Polish)

Currently translated at 77.3% (3679 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/pl/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (French)

Currently translated at 90.4% (4305 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

Co-authored-by: wget <william@gathoye.be>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Zsolt Godó <zsolttokio@gmail.com>
Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Michał Sobkiewicz <perceptron8@gmail.com>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr>

* Fixes: position of clear custom status icon (#8173)

* ref: migrate announcement_bar to ts (#8133)

Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com>

* Update PULL_REQUEST_TEMPLATE.md (#8138)

* [MM-35922] Fixed a couple style issues with the sidebar category headers on drag (#8157)

Automatic Merge

* Fixed custom status issues (#8177)

Automatic Merge

* MM - 35835 show cc info in purchase modal (#8155)

* MM-35435 -  add multiple sku options to purchase modal

* MM-35435 - add multiple sku options to purchase modal

* add initial logic to update the subscription price

* dictionary changes

* refactor the api endpoint call

* add the right api call

* linter changes

* remove unnecessary code

* add the right productId

* fix types problems

* first fixes to MR comments

* add unit test to radio button group

* remove unnecessary space, organize styles

* fix linter and types problem, use the current subscription product id

* fix snapshots

* Revert "fix snapshots"

This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb.

* improve the findProduct function

* reorganize return value

* style improvements based on UX feedback

* MM-35835 - show cc info in purchase modal

* fix i18n texts

* show the billing address information in the purchase form

* add the badge and select the next upgrade product

* fix styles and translations

* add PR review comments

* add space between title and checkboxes

* rename the selectedProduct variable

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* prevent  purchase modal Object.keys invocation with null value (#8188)

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Translations update from Weblate (#8194)

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (French)

Currently translated at 90.4% (4305 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

* Added translation using Weblate (English (Australia))

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: matthew-w <matthew-w@somehting.au>

* Changed the api call for the remove recent custom status action (#7751)

Co-authored-by: Manoj <manoj@brightscout.com>

* added `align-items: center` and increased `line-height` on the `span` (#8190)

* MM-36172 - purchase modal empty address issue (#8195)

* MM-36172 - purchase modal empty address issue

* remove redundant isValid function

* remove unnecessary import

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Cleanup store initialization (#8156)

* assume enableThunk is never false

* drop unused clientOptions

* inline createMiddleware

* collapse prod/dev configureStore

* typescript magic

* redux-devtools-extension/developmentOnly

* fix linting

* MM-T2372 Deleting: Thread does not move when deleting post (#8176)

* Add Cypress test for MM-T3080

* MM-T3080 fix lint issues

* Login smoke test codereview fixes

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Remove extra spaces

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Adding test for MM-T2372 Deleting

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* resolve conflicts

Co-authored-by: Yulyana <yulyana@phntms.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* tests/MM-T947 : When deactivating users in the System Console, email address should not disappear (#8175)

* test

* rewrote the test

* Update e2e/cypress/integration/system_console/user_management/users_deactivation_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* tests/MM-T1321 : WebApp: Truncated Numbered List on Chat History Panel (#8178)

* test

* Update e2e/cypress/integration/messaging/message_bullets_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Fixed Test Case (#8202)

* [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured (#8179)

* [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured

* [MM-T1282] Ensure that the system 'about' link and model render the expected site name

* Capitalize action verb in e2e test step

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* lint fixup: remove padding blank line from function block

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* MM-36035 - Removing status from bot posts (#8182)

Automatic Merge

* tests/MM-T1128 : Announcement Banner - Dismissible banner shows long text truncated (#8168)

* test

* live link

* enter big text

* Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* rev

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* remove cy.clearLocalStorage that probably causing to hold test and eventually timeout error (#8214)

* test (#8181)

* tests/CTRL+CMD+K : Unread Channels and input field focus (#8185)

* test

* few improvments

* fix

* Translations update from Weblate (#8217)

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>

* [GH-15803] fix: migrate this.ref.dotMenu to React.createRef (#6667)

* fix: migrate this.ref.dotMenu to React.createRef

* fix: use correct name and delete eslint ref

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Guillermo Vayá <guillermo.vaya@mattermost.com>

* [MM-35669] - Align channel globe icons with sidebar navigator icons (#8145)

* [MM-35669] - Align channel globe icons with sidebar navigator icons

* UI fixes

* Fix icon position

Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local>

* test (#8174)

* MM-35717: CRT, new messages line (#8149)

MM-35717: CRT, new messages line

Adds a "new messages" line separator in the thread viewer.

Adds a state.views.threads.lastViewedAt to cache the last_viewed_at of
the thread when opening a thread either from the global threads or via
selectPost action, or when marking a reply as unread.
Websocket events also change the lastViewedAt, but on the condition that
the window is not active or the thread is not the selected thread.

Marks thread as read as soon as a reply arrives and th thread is open.

* MM-35719: CRT, shows following when single message (#8152)

MM-35719: CRT, shows following when single message

Adds:
    - It shows a "following" button in the thread footer
    when a single message is followed.

* MM-32788: Permalink'ed replies open thread viewer and jump to in RHS (#8081)

MM-32788: CRT, permalink replies open thread in RHS and jump to reply

When CRT is enabled clicking to open a permalink to a reply should open
the thread viewer in the RHS, highlight, and jump to reply linked.

The center view remains the same AKA the channel user clicked the reply (returnTo),
with one exception, if the permalink is not in the same team as the
current center channel, then redirect to the channel where the reply's
root post exists, and open the RHS thread viewer there.

* MM-35405: hides reply notifications user setting (#8205)

MM-35405: hides reply notifications user setting

When CRT is on reply notifications user setting makes no sense as it is.
This commit hides that section.
Later on a setting about threads will be added on desktop notifications section,
when CRT is on.

* MM-36112 - hide upgrade references when only one product (#8201)

* MM-36112 - hide upgrade references when only one product

* replace upgrade button with contact sales

* fix typo

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Mm 36066 open cloud pricing link in new tab (#8200)

* MM-36066 - open cloud pricing link in new tab

* fix translation file reference

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Update NOTICE.txt (#8199)

* Update NOTICE.txt

* Update NOTICE.txt

* MM-36095 Fix text overflow in announcement banner (#8225)

* MM-36095 Fix text overflow in announcement banner

* Update snapshots

* Update E2E test text

* Force recalculate emoji picker position on open (#8208)

* [MM-35653] Data Retention redux tests (#8118)

* adding action tests for data retention

* adding more tests for reducers

Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>

* MM-35626: Export PurchaseModal component and related utils (#8228)

* Fix plugin buttons on the LHS showing one below the other, instead of one after the other (#8198)

* Fix plugin buttons on the LHS showing one below the other, instead of one after the other

* Fix snapshots

* [MM-36173] Fix spacing and opacity on descriptions for special mentions (#8235)

* Adding English Australian to translated languages (#8192)

* Adding English Australian to translated languages

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elisabeth Kulzer <elikul@elikul.de>

* add marketplace flag (#8207)

* MM-36068 Update avatars and reply count correctly for unfollowed threads (#8209)

* Update participants for root post for newly received posts

* Correctly update reply count for unfollowed threads

* Fix unit tests

* Fix lint issues

* Do not delete unfollowed threads and instead keep data for unfollowed threads up to date

* MM-36054, MM-35968: Fix following button and prevent no-op/server error (#8167)

* fix: use getThreadOrSynthetic

* fix: only fetch thread if there are replies

* only fetch if actually following

* only fetch when there are replies

* remove legacy fetch, handled in other places

* [MM-36270] Add overflow to emoji rendering (#8227)

* add overflow to emoji rendering

* actually fix scss

* Allow uploading `.jpeg` files on Linux (#8224)

* Allow users to upload jpeg pictures as their profile picture

* Make constants for image upload types to accept

* Cypress/e2e: Fixed Webhook and Tutorial navigation test cases (#8210)

* fixed test case

* fixed tutorial navigation test case

* fixed tutorial nav test case

* Fixed link customization Test case (#8213)

* Thread move edit (#8203)

* Add Cypress test for MM-T3080

* MM-T3080 fix lint issues

* Login smoke test codereview fixes

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Remove extra spaces

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Adding test for MM-T2372 Deleting

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* resolve conflicts

* Added tTest for MM-T2371 Editing a post

* Change comment details

* Remove duplicated file

* Codereview fixes for scroll editing scenarios

* Codereview fixes for scroll editing scenarios

* Split editing and deleting scenarios into different files

* Code style changes for editing and deleting scenarios

Co-authored-by: Yulyana <yulyana@phntms.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* tests/MM-T1808 : Hover effect exists to add a channel description / header (when not already present) (#8186)

* test

* test

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* rev

* rev3

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Migrate 'components/profile_popover' module and associated tests to T… (#8216)

* Migrate 'components/profile_popover' module and associated tests to TypeScript

* spanshot test added

* fix linting error in utils.jsx

* update test snapshot

* fix wrong types and type casting

* change overwriteName type to React.ReactNode from string and minor refactoring related to that

* change type of OverwriteIcon to string and openDirectChannelToUserId return promise type to object

* hide unread indicator when not following thread (#8221)

* Fixes tests in thread viewer (#8247)

* MM-35837 Improve batching of channel-related actions on post receipt (#8222)

* MM-35837 Improve batching of channel-related actions on post receipt

* Remove unused imports

* Remove accidental artificial delay

* Update tests to expect new batching

* MM-35346, MM-35394: Fix unread selectors/indicators (#8159)

* fix: keep badge on hover

* remove unneeded importants

* CRT unread channel filter

* other LHS selectors

* fix selector

* add test

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixes: crash at global threads on root post delete (#8231)

If a root post is deleted and the user is at global threads view,
the app crashes.

This commit fixes that by removing the thread from the threads reducer.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-34578 - update permission name to see button in main menu (#8229)

* MM-34578 - update permission name to see button in main menu

* add tests for when there is no valid permissions

* fix linter

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* MM-35538 - display purchase modal when coming from email (#8234)

* MM-35538 - display purchase modal when coming from email

* use better name for query param

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Cypress/E2E: Update Zephyr Scale API URL (#8252)

* MM-35919: CRT makes threads nav menu sticky (#8239)

Threads nav menu, both in legacy and regular sidebar, is moved outside
of the scrollable area, so it always 'sticky' at the same position.

* ref: migrate call_button to ts (#8183)

* Downgrading Polish, Italian and German to beta (#8254)

* Downgrading Polish, Italian and German to beta

* Update latex_block.test.tsx.snap

* Update snapshot latex_block.test.tsx.snap

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>

* [MM-36294] Update marketplace install command (#8244)

* Translations update from Weblate (#8265)

* Translated using Weblate (German)

Currently translated at 83.5% (3976 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Hungarian)

Currently translated at 99.2% (4726 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (French)

Currently translated at 90.7% (4318 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Zsolt Godó <zsolttokio@gmail.com>
Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr>

* Set build image version as variable (#8261)

* Handle is_following not being set for edited posts (#8262)

* MM-36389 Prevent unnecessary Post children components re-rendering due to comment count propagation (#8259)

* Remove unnecessary comment count propagation needed for delete modal

* Remove unnecessary reply count propagation through post components

* Remove unnecessary reply count propagation through PostInfo component

* Fix style

* Update snapshots

* Hide comment count on root posts for CRT

* Use reply count from post if thread not tracked in postsInThread reducer (#8271)

* [MM-36704] Add selector specifically for search channel name to handle its cases (#8237)

* [MM-36704] Add selector specifically for search channel name to handle its cases

* Update packages/mattermost-redux/src/selectors/entities/channels.ts

Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com>

* Refactor based on Harrison's comments

* Other PR feedback

* Use completeDirectGroupInfo to get GM user names with a little modification

Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com>

* [34475] Emoji 13.0 with new library (#8220)

* generated files

* emoji-data install

* first pass at generating intermediate files

* aliases to short_names

* categories and translations

* move emoji_data.go to server if defined

* improve messages, comment on usage

* add library and notices

* change makefile

* use new library

* remove unused categories

* remove commented code

* typo

* fix package-lock

* fix formatting test

* fix emoji_utils tests

* fix emoticon provider tests

* fix emoji actions test

* fix categories for emoji-picker

* temporarily undo makefile changes so mattermod doesn't complain

* fix recent categories being empty

* fix testt

* fix using sprites, fix custom emojis section

* fix search with custom emojis

* make linter happy

* fix tests

* MM-34188 Add basic framework and example for tracking memoization effectiveness (#8189)

* Add basic framework and example for tracking memoization effectiveness

* Updates per feedback

* Create custom reselect package and update all usages of createSelector to pass in names

* Re-add selector tracking

* Add second test for typing

* Fix storybook reselect resolution

* ref: migrate request_button to ts (#8120)

* ref: migrate request_button to ts

* test: update request button snapshot

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* increased opacity on muted channels for bot-icons and avatars (with and without status) (#8270)

* MM-35840: fixes up arrow edit in CRT (#8238)

* MM-35840: fixes up arrow edit in CRT

We used to get post ids from the channel to find current user's last
post. This worked in threads when CRT off, but if you turn CRT on
replies are not added in the channel thus not being able to find the
user's last post correctly.

This commit fixes that by getting post ids from the thread*
(postsInThread) and not the channel, this way both CRT on/off are
working as expected.

*renamed the selector from makeGetCurrentUsersLatestPost to
makeGetCurrentUsersLatestReply.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixes selector's name for tracking (#8275)

* MM-35917: closes RHS upon navigating to threads (#8257)

* MM-35917: closes RHS upon navigating to threads

Clicking on global threads link closes the RHS.
This is done to reduce the amount of panels in
the global threads view upon arriving

* Saves and restores RHS state

Saves RHS state when navigating to global threads,
and restores the state upon leaving global threads.
This is done so we open the RHS, if needed, upon leaving global threads.

* Changes stash/restore logic to just a boolean

Rename rhs_stash to rhs_suppressed which only holds a boolean on whether
to suppress rhs (close) or not.

Suppressing functions as stashing did before.
Upon visiting global threads page it suppresses the RHS and upon exiting
it re-instates RHS to its previous state.

* Fixes weird search menu focus on RHS suppress

Fixes a bug when suppressing the RHS by going to the global threads,
and then using search and going to a channel and back to the global
threads it would show the search menu.

* Renames reducer to a more appropriate name

* Shrinks RHS upon suppressing

Suppressing RHS shrinks the sidebar.
Similarly switching from global threads to a channel also shrinks
the sidebar.

* MM-35806: shows participants when toggling CRT (#8255)

Toggling CRT 'on' wouldn't show participants at all for unfollowed
posts.
We short-circuit receiving posts in the reducers based on old/new
post's `update_at` property. Posts have some extra properties though
which didn't got updated in redux when toggling CRT on.

This commit refactors the short-circuit into a `shouldUpdatePost` utility function,
taking into account not only the `update_at` but the CRT posts' extra
properties.

* MM-36218,MM-36219: CRT thread read flashes (#8272)

New messages that arrive while the thread is open are marked as read and
the indicators don't flash anymore.

Furthermore if a thread is manually marked as unread it should stay
unread even if new messages arrive while it's open.

* MM-35769: CRT, shows unread indicator (#8267)

* MM-35769: CRT: shows unread indicator

Shows unread indicator when on global threads page as well.

* Removes unnecessary lines

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-35720,MM-36293: land at new messages line (#8226)

* MM-35720: land at new messages line

When opening a followed thread with unreads, land at/scroll to New
Messages line

* Fixes scrolling to bottom on thread viewer on open

We used to call `scrollToBottom` on mount, but when the thread was empty
it had no effect.
This commit fixes it so that scrolling is called after getting the
thread/posts.

* Fixes typing issue

* Fixes marking as read

The last thread opened in the global threads kept getting marked as
read even when user had navigated to a channel.
This commit fixes that by clearing the selected thread id in the reducer
upon leaving global threads page.

* Fixes tests

* Removes unwanted guard

* Fixes landing on new messages line

Scroll to bottom should be blocked when highlighting a post,
or when we are yet to scroll on new messages line.

* Adds loading screen to thread viewer

Shows a loading screen when when not all messages are loaded.

* Fixes tests

* Shows new messages line on new threads

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-34437 Preventing infinite trial requests (#7944)

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* WIP

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* #MM-34437 cleanup and adding comments

* #MM-34437 Fixed lint errors

* #MM-34437 added missing function params

* #MM-34437 fixed existing tests

* #MM-34437 added new tests

* #MM-34437 restored package lock

* #MM-34437 lint fixes

* #MM-34437 Added contact sales button in feature discovery component

* #MM-34437 reverted package lock changes commited accidently

* #MM-34437 made ContactUp compoonent easier to use anss other improvements and fixes

* #MM-34437 Refactored ContactUs component to avoid issues with mmjstools

* #MM-34437 used t to avoid messy ContactUs component

* #MM-34437 fixed global state type

* #MM-34437 renamed contact sales to contact us in remianing places

* #MM-34437 updated snaps

* #MM-34437 added sales contact link in upload trial error message

* #MM-34437 make contact sales component accept text component

* #MM-34437 addech trial check via flag

* #MM-34437 removed unnecessary async

* MM-34437 shortcircuit if trial flag is set

* Fixed paid license renbew button styling

* #MM-34437 Adjusted trial time for sacntioned

* Fixed missed brace

* Fix several autocomplete problems (#8197)

* [MM-24335] Show recently viewed channels when channel switcher opens (#8215)

* Show recently viewed channels when channel switcher opens

* update snapshot cause change in quick switch component ui

* add public channel fetch method if user isn't part of more than one channel and minor refactoring

* minor code clean up

* code refactoring and changes last viewed at logic due to some weird behaviour of last_viewed_at

* minor refactoring unified variable names

* fix missing params issue with getTimestampFromPrefs

* use getChannelsInCurrentTeam method for getting data from store instead of getAllRecentChannels

* fix Dms/Gms not showing up in list even if they have recent activity

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Emoji makefile (#8276)

* make golang linter happy

* makefile and license for go files

* MM-36561: fixes loader shown on socket reconnect (#8281)

* Cypress/E2E: Promote category sorting (#8285)

* Show thread as followed immediately on webapp when marking posts unread from the thread (#8283)

* Translations update from Weblate (#8288)

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Translated using Weblate (English (Australia))

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 99.9% (4760 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (Dutch)

Currently translated at 99.8% (4756 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Hungarian)

Currently translated at 99.8% (4754 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 99.6% (4744 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 93.6% (4459 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Japanese)

Currently translated at 99.8% (4754 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu>
Co-authored-by: aeomin <lin@aeomin.net>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>

* MM-30446: Fix toast dismiss hover console error (#8284)

* fix: use intl-compat OverlayTrigger

* hoist OverlayTrigger

* update snapshots

* Implement FileDropdown Actions Plugin Method  (#8139)

* Add file drpdown action plugins framework

* Fix search-item-snippet CSS

* Show post menu when file dropdown is open

* Code refactoring

* Fix lint

* Update tests props

* make handleFileDropdownOpened prop optional

* Update handleFileDropdownOpened implementation

* Fix lint

* Update CSS styles

* Use memoization for plugin file dropdown items

* Fix lint

* Fixed type check errors

* update snapshots

* Update snapshots

* use createSelector for files dropdown plugin selector

* Update components/file_attachment/file_attachment.tsx

Co-authored-by: Daniel Espino García <larkox@gmail.com>

Co-authored-by: Manoj <manoj@brightscout.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>

* MM-36590 Re-add old emoji aliases (#8287)

* Re-add old emoji aliases

* Update unit tests

* Custom status expiry (#8059)

* Made the UI for expiry
Made expiry menu component with all the expiry items
Made the dateTimeInput component with the react-day-picker along with customized navbar
Removed the memoization from the getCustomStatus selector
Solved the propType issue in the menuItemToggleModalRedux

* Review fixes and added timepicker menu
Changed the custom status selector to a simple function and changed its use everywhere
Made constants for the expiry menu items and used them
Changed the expiry menu items to use localized text
Removed the daypicker.scss file and did the changes in _daypicker.scss file
Added all the localization ids in en.json

* Completed the timepicker menu
Made a util for getting current date and time for timezone
Made the function to round current time to nearest 30 min time
Made the function to fill the menu with 30 minute intervals
Unified the separate state variables for day and time to only time
Made the dateTimeInput component to be controlled by the custom status modal
Fixed the styles for the timepicker and daypicker
Fixed lint errors and type check errors

* Fixed some issues in daypicker
Fixed the styling in daypicker
Added logic for disabled days in daypicker
Fixed the issue of prevMonth button not working in daypicker

* Complete expiry support in custom status modal
Changed the custom status type to include duration and expires_at and made enum duration
Removed the duration constants from constants file and used enum type everywhere
Added localization in the expiry menu values
Modified custom status modal to send expiry with the custom status
Modified custom status modal to handle initial custom expiry time
Modified the disable set status variable to handle the confirm button disability
Modified the custom status selector to return custom status only when it's not expired

* Review fixes
Code refactoring in custom status modal and dateTime input and expiry menu

* Changed name of enum Duration to CustomStatusDuration

* MI-1235

* Added expiry support in custom status suggestions
Made durationValues constant to store all duration values with localization ids and default messages
Modified expiry_menu to use durationValues constant
Modified custom status suggestion component to handle duration of status
Added duration in default custom status suggestions
Fixed the calculateExpiryTime function to take right currentTime
Modified handle and clear suggestion functions to include expiry

* Display expiry time in custom status emoji tooltip
Made relative range for tomorrow
Fixed styling for the expiry in suggestions
Added the logic for showing expiry time in custom status emoji component

* Completed showing expiry time in several places
Made custom status util for displaying expiry time
Made getCurrentUserTimezone memoized selector
Refactored custom status emoji and modal to use getCurrentUserTimezone selector
Fixed the custom status modal UI accordingg to the comments on community
Added expiry time in status dropdown and profile popover

* Review fixes
Memoized displayExpiryTime in custom status emoji component

* Added memoization in expiry time in some places
Added memoization in status dropdown and profile popover
Added logic to show tooltip in custom status emoji in channel header
Refactored some code in custom status emoji and custom status selector
Added timezone dependent current time in custom status selector

* Added unit tests and several fixes
Sorted the order of imports in several files
Made unit tests for date_time_input and expiry_menu components
Updated some snapshots

* Fixed custom status emoji unit tests

* Fix types

* Refactored some code
Converted displayExpiryTime util to a separate functional component
Replaced use of util with component everywhere
Fixed styling of date time input
Refactored disabling set status button in custom status modal

* Fixed styles in status dropdown menu

* Fixed types and added some unit tests
Fixed type in custom status emoji tests
Added unit tests in status dropdown and profile popover
Updated snapshots

* Code refactoring and localization ids change
Added localization in Until and changed ids of all expiry dropdown options
Modified ExpiryTime component to accept classname and wihinBrackets prop
Fixed disableSetStatus bug in custom status modal
Fixed styling of expiry time everywhere
Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component

* Updated snapshots

* Changed default custom status duration to Today

* Fixed i18n-check failing test

* Fixed failing unit and e2e tests
Refactoed getCustomStatus selector

* Added functionality to handle suggestions without duration

* Review UI fixes
Added font-weight and opacity in expiry value in clear after dropdown
Fixed the styling for clear button in the custom status input
Fixed the padding for the custom status modal and adjusted all components inside it
Changed the opacity for duration in the suggestions
Changed the styling for date and time input titles
Changed the size of the daypicker
Changed the date and time icons from font-awesome to compass icons

* Trigger server creation

* Fixed the timezone issue in date time input

* WIP: Fixing timezone issues for custom status expiry

* Fixed the timezone issue in the custom status modal and date/time input
Made util for getCurrentMomentForTimezone
Changed type for customExpiryTime from Date to Moment
Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs

* Changed value of DONT_CLEAR key of CustomStatusDuration enum

* Changed behavior of Clear after component and showing date/time component and review fixes (#57)

* WIP : Fixing the flow for the custom date time if status already set

* Changed display value of Clear after value and review fixes
Added prop showPrefix in expiry_time component
Changed the behaviour of timestamp in the expiry_time
Moved custom status constants from constants.jsx to custom_status_modal and date_time_input
Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum
Changed the logic of disabling Set Status button and showing/hiding suggestions
Fixed the failing unit tests of expiry_menu and date_time_input
Added localization in date_time_input using useIntl instead of localizeMessage
Added showing expiryTime feature in expiry menu component

* Review fixes with some optimization
Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry
Changed the use of getCustomStatus selector in all places
Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components
Memoized the time options in the date/time input container by memoizing the handleTimeChange function
Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount
Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component
Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function

* Added/Updated unit tests and fixed type check errors
Changed the format of expiry time for periods longer than 6 days
Fixed the styling of custom status in status dropdown and daypicker in custom status modal

* Complete e2e tests (#58)

* Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry
Resolved conflicts, updated snapshots and fixed type check errors

* WIP : MM-T4063 e2e test for the custom status expiry

* Complete e2e tests for expiry
Modified and completed MM-T4063 test
Completed MM-T4064, MM-T4065, MM-T4066 e2e tests

* Updated snapshot

* Updated custom_status_emoji to pass the tests

* Fixed suggestion without duration bug in the custom status modal

* Code refactoring and some bug fixes

* Updated snapshots

* UI review fixes (#61)

Changed the text for Date and time to Custom Date and Time
Removed duration from the suggestions if duration is Don't clear
Changed the width of the suggestions dynamically based on the presence of duration
Added a unit test for the suggestion and updated the existing snapshot

* Resolved conflicts and updated snapshots

* Apply suggestions from code review

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Added feature to show year in expiry time if expiry time is after the current year

* Review fixes (#62)

* Review fixes
Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps
Memoized the handleTimeChange function in the menu items of time picker by binding the function

* Fixed memoization of makeGetCustomStatus in functional components
Fixed memoization in custom_status_emoji, modal and post_header_custom_status components

* Refactored some code

* Fixed type check errors

Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com>
Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* fix reselect signature (#8296)

* fix import errors (#8298)

* [MM-25435] Emoji picker + skin tones (#8282)

* generated files

* emoji-data install

* first pass at generating intermediate files

* aliases to short_names

* categories and translations

* move emoji_data.go to server if defined

* improve messages, comment on usage

* add library and notices

* change makefile

* use new library

* remove unused categories

* remove commented code

* wip

* typo

* fix package-lock

* fix formatting test

* fix emoji_utils tests

* fix emoticon provider tests

* fix emoji actions test

* fix categories for emoji-picker

* wip

* temporarily undo makefile changes so mattermod doesn't complain

* fix recent categories being empty

* fix testt

* emoji gen with skin switching

* add skin categories, place skin selector

* initial version

* css fixes

* fix height

* fix tests

* fix position

* address some review comments

* more review fixes

* more css fixes

* more fix css

* remove async from action dispatch

* check emoji creation permissions to enable button

* more CR fixes

* css fixes

* fix jumping magnifier

* fix skin tone selector position

* set label as default always

* make skin picker behave better

* fix reducer

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Add app icon to Marketplace (#8187)

* MM-36341 - order plan lists (#8253)

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* [MM-18496] Private channels should appear in channel link autocomplete (#8286)

* MM-36542: getOpenThreadId should consider suppressed RHS (#8279)

* MM-36542: getOpenThreadId should consider suppressed RHS

Fixes a bug when suppressing RHS via going to global threads,
and then receiving new replies to the thread open in the suppressed RHS,
kept marking them as read.

This commit changes `getOpenThreadId` to consider if RHS is open or not.
Also mounting and unmounting components in the RHS with account to RHS
hidden/visible,
this last change was made because we are able to suppress the
RHS and suppressing does not clear rhsState nor selectedPostId etc..

* Fixes: more than one threads can be open

isThreadOpen didn't took into account that more than one threads can be
open at the same time.
This commit changes that.

* [MM-36626] fix emoji picker colors (#8303)

* [MM-36626] fix emoji picker colors

* review changes

* fix review changes, make tabs more consistent

* handle hover as a whole

* remove opacity

* MM-35191 - show banner in user timezone (#8243)

* MM-35191 - show banner in user timezone

* fix en locale

* add the user timezone to the date format

* add the trial ends value

* fix the duplicated title

* Change the string date format

* remove the user timezone from the date portion of the string

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* MM-36654 Re-add Mattermost emoji (#8309)

* MM-36654 Re-add Mattermost emoji

* Move custom emoji preview to match system emojis

* Remove extra entry from _emojisprint.scss

* MM-36593 RHS performance improvements (#8292)

* Use createIdsSelector for makeGetPostsForThread

* Fix re-rendering caused by SearchResults's mapStateToProps

* Fix unit test for makeGetPostsForThread

* Translations update from Weblate (#8314)

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4777 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

Translated using Weblate (Spanish)

Currently translated at 97.9% (4677 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

Translated using Weblate (Spanish)

Currently translated at 96.9% (4630 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 99.7% (4763 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr…
isacikgoz added a commit that referenced this pull request Aug 4, 2021
…8514)

* [MM-35780] - Update add users to channel modal test case (#8146)

* [MM-35780] - Update add users to channel modal test cas

* fix lint error

Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* [MM-34169] Data retention cypress tests (#8039)

* adding cypress tests for data retention

Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* WIP ci/test: add NODE_OPTIONS max_old_space_size=500 (#8163)

* ci/test: add NODE_OPTIONS max_old_space_size=500

* update gitlab to use the same

* [MM-34303] Add team ID to response when linking a channel to a group (#8071)

* delete channels when a team is removed from group

Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>

* Use Node 16 for CI (#8154)

* Re-add cross-env to set test timezone

* Update package-lock.json again

* Update CI to Node 16

* Add workspaces section to package.json

* Update package-lock.json

* Close empty brackets

* MM-34758 Collapsed Reply Threads without mobile support (#7933)

Summary
Update webapp to pass collapsed_threads_supported parameters to the server API to indicate that the webapp supports collapsed reply threads.
Update webapp to correctly mark channels and threads as unread/read.

Ticket Link
https://mattermost.atlassian.net/browse/MM-34758

Related Pull Requests
Has server changes: mattermost/mattermost-server#17424

* MM-35435 - add multiple SKU options to purchase modal (#8119)

* MM-35435 -  add multiple sku options to purchase modal

* MM-35435 - add multiple sku options to purchase modal

* add initial logic to update the subscription price

* dictionary changes

* refactor the api endpoint call

* add the right api call

* linter changes

* remove unnecessary code

* add the right productId

* fix types problems

* first fixes to MR comments

* add unit test to radio button group

* remove unnecessary space, organize styles

* fix linter and types problem, use the current subscription product id

* fix snapshots

* Revert "fix snapshots"

This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb.

* improve the findProduct function

* reorganize return value

* style improvements based on UX feedback

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-35838/MM-35923 Fix memoization of selectors (#8143)

* Remove max-lines warning in test files

* MM-35838/MM-35923 Fix memoization of makeGetChannelIdsForCategory when channel order changes

* MM-35838/MM-35923 Fix memoization of getChannelsNameMapInCurrentTeam when channels change

* Clarify memoization pattern

* Add getChannelNameToDisplayNameMap for channel linking in Markdown

* Remove unused type

* MM-32801 : Webapp: In mention autocomplete, remove (Nickname) when (you) is present  (#7984)

* to ts

* added the fix

* revert 1

* revert 2

* rvert 3

* revr 4

* rever 5

* req changes

* added tests

* String update: Clarify Add Member to Channel hint text (#8077)

* Clarify Add Member to Channel Hint Text

When adding members to a channel, the existing hint text ambiguously suggests that a maximum of 20 members can be added to a given channel. Updated hint text to note that users can add up to 20 members at a time to the channel.

* Update MultiSelect to support new text

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* CRT: removes comment count (#8134)

Removes comment count from post info component.
Justification: we show it in root post's thread footer.

* Cypress/E2E: Apply temp fix to dnd e2e (#8158)

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-T2369 : Aspect Ratio is preserved in RHS (#8165)

* test

* Update e2e/cypress/integration/scroll/image_aspect_ratio_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Translations update from Weblate (#8184)

* Translated using Weblate (French)

Currently translated at 90.9% (4307 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (4756 of 4756 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (4737 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4737 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Hungarian)

Currently translated at 99.2% (4701 of 4737 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (German)

Currently translated at 83.0% (3949 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

Translated using Weblate (German)

Currently translated at 83.0% (3952 of 4756 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (Dutch)

Currently translated at 99.4% (4732 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Polish)

Currently translated at 77.3% (3679 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/pl/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4757 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (French)

Currently translated at 90.4% (4305 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

Co-authored-by: wget <william@gathoye.be>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Zsolt Godó <zsolttokio@gmail.com>
Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Michał Sobkiewicz <perceptron8@gmail.com>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr>

* Fixes: position of clear custom status icon (#8173)

* ref: migrate announcement_bar to ts (#8133)

Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com>

* Update PULL_REQUEST_TEMPLATE.md (#8138)

* [MM-35922] Fixed a couple style issues with the sidebar category headers on drag (#8157)

Automatic Merge

* Fixed custom status issues (#8177)

Automatic Merge

* MM - 35835 show cc info in purchase modal (#8155)

* MM-35435 -  add multiple sku options to purchase modal

* MM-35435 - add multiple sku options to purchase modal

* add initial logic to update the subscription price

* dictionary changes

* refactor the api endpoint call

* add the right api call

* linter changes

* remove unnecessary code

* add the right productId

* fix types problems

* first fixes to MR comments

* add unit test to radio button group

* remove unnecessary space, organize styles

* fix linter and types problem, use the current subscription product id

* fix snapshots

* Revert "fix snapshots"

This reverts commit f7dbe85f53c290a720871550747a27d5e17e44fb.

* improve the findProduct function

* reorganize return value

* style improvements based on UX feedback

* MM-35835 - show cc info in purchase modal

* fix i18n texts

* show the billing address information in the purchase form

* add the badge and select the next upgrade product

* fix styles and translations

* add PR review comments

* add space between title and checkboxes

* rename the selectedProduct variable

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* prevent  purchase modal Object.keys invocation with null value (#8188)

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Translations update from Weblate (#8194)

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (French)

Currently translated at 90.4% (4305 of 4757 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

* Added translation using Weblate (English (Australia))

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: matthew-w <matthew-w@somehting.au>

* Changed the api call for the remove recent custom status action (#7751)

Co-authored-by: Manoj <manoj@brightscout.com>

* added `align-items: center` and increased `line-height` on the `span` (#8190)

* MM-36172 - purchase modal empty address issue (#8195)

* MM-36172 - purchase modal empty address issue

* remove redundant isValid function

* remove unnecessary import

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Cleanup store initialization (#8156)

* assume enableThunk is never false

* drop unused clientOptions

* inline createMiddleware

* collapse prod/dev configureStore

* typescript magic

* redux-devtools-extension/developmentOnly

* fix linting

* MM-T2372 Deleting: Thread does not move when deleting post (#8176)

* Add Cypress test for MM-T3080

* MM-T3080 fix lint issues

* Login smoke test codereview fixes

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Remove extra spaces

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Adding test for MM-T2372 Deleting

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* resolve conflicts

Co-authored-by: Yulyana <yulyana@phntms.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* tests/MM-T947 : When deactivating users in the System Console, email address should not disappear (#8175)

* test

* rewrote the test

* Update e2e/cypress/integration/system_console/user_management/users_deactivation_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* tests/MM-T1321 : WebApp: Truncated Numbered List on Chat History Panel (#8178)

* test

* Update e2e/cypress/integration/messaging/message_bullets_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Fixed Test Case (#8202)

* [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured (#8179)

* [MM-T1282] Add e2e test coverage for default behaviour when an empty site name is configured

* [MM-T1282] Ensure that the system 'about' link and model render the expected site name

* Capitalize action verb in e2e test step

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* lint fixup: remove padding blank line from function block

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* MM-36035 - Removing status from bot posts (#8182)

Automatic Merge

* tests/MM-T1128 : Announcement Banner - Dismissible banner shows long text truncated (#8168)

* test

* live link

* enter big text

* Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/system_console/site_configuration/announcement_banner_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* rev

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* remove cy.clearLocalStorage that probably causing to hold test and eventually timeout error (#8214)

* test (#8181)

* tests/CTRL+CMD+K : Unread Channels and input field focus (#8185)

* test

* few improvments

* fix

* Translations update from Weblate (#8217)

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>

* [GH-15803] fix: migrate this.ref.dotMenu to React.createRef (#6667)

* fix: migrate this.ref.dotMenu to React.createRef

* fix: use correct name and delete eslint ref

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Guillermo Vayá <guillermo.vaya@mattermost.com>

* [MM-35669] - Align channel globe icons with sidebar navigator icons (#8145)

* [MM-35669] - Align channel globe icons with sidebar navigator icons

* UI fixes

* Fix icon position

Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local>

* test (#8174)

* MM-35717: CRT, new messages line (#8149)

MM-35717: CRT, new messages line

Adds a "new messages" line separator in the thread viewer.

Adds a state.views.threads.lastViewedAt to cache the last_viewed_at of
the thread when opening a thread either from the global threads or via
selectPost action, or when marking a reply as unread.
Websocket events also change the lastViewedAt, but on the condition that
the window is not active or the thread is not the selected thread.

Marks thread as read as soon as a reply arrives and th thread is open.

* MM-35719: CRT, shows following when single message (#8152)

MM-35719: CRT, shows following when single message

Adds:
    - It shows a "following" button in the thread footer
    when a single message is followed.

* MM-32788: Permalink'ed replies open thread viewer and jump to in RHS (#8081)

MM-32788: CRT, permalink replies open thread in RHS and jump to reply

When CRT is enabled clicking to open a permalink to a reply should open
the thread viewer in the RHS, highlight, and jump to reply linked.

The center view remains the same AKA the channel user clicked the reply (returnTo),
with one exception, if the permalink is not in the same team as the
current center channel, then redirect to the channel where the reply's
root post exists, and open the RHS thread viewer there.

* MM-35405: hides reply notifications user setting (#8205)

MM-35405: hides reply notifications user setting

When CRT is on reply notifications user setting makes no sense as it is.
This commit hides that section.
Later on a setting about threads will be added on desktop notifications section,
when CRT is on.

* MM-36112 - hide upgrade references when only one product (#8201)

* MM-36112 - hide upgrade references when only one product

* replace upgrade button with contact sales

* fix typo

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Mm 36066 open cloud pricing link in new tab (#8200)

* MM-36066 - open cloud pricing link in new tab

* fix translation file reference

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Update NOTICE.txt (#8199)

* Update NOTICE.txt

* Update NOTICE.txt

* MM-36095 Fix text overflow in announcement banner (#8225)

* MM-36095 Fix text overflow in announcement banner

* Update snapshots

* Update E2E test text

* Force recalculate emoji picker position on open (#8208)

* [MM-35653] Data Retention redux tests (#8118)

* adding action tests for data retention

* adding more tests for reducers

Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>

* MM-35626: Export PurchaseModal component and related utils (#8228)

* Fix plugin buttons on the LHS showing one below the other, instead of one after the other (#8198)

* Fix plugin buttons on the LHS showing one below the other, instead of one after the other

* Fix snapshots

* [MM-36173] Fix spacing and opacity on descriptions for special mentions (#8235)

* Adding English Australian to translated languages (#8192)

* Adding English Australian to translated languages

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elisabeth Kulzer <elikul@elikul.de>

* add marketplace flag (#8207)

* MM-36068 Update avatars and reply count correctly for unfollowed threads (#8209)

* Update participants for root post for newly received posts

* Correctly update reply count for unfollowed threads

* Fix unit tests

* Fix lint issues

* Do not delete unfollowed threads and instead keep data for unfollowed threads up to date

* MM-36054, MM-35968: Fix following button and prevent no-op/server error (#8167)

* fix: use getThreadOrSynthetic

* fix: only fetch thread if there are replies

* only fetch if actually following

* only fetch when there are replies

* remove legacy fetch, handled in other places

* [MM-36270] Add overflow to emoji rendering (#8227)

* add overflow to emoji rendering

* actually fix scss

* Allow uploading `.jpeg` files on Linux (#8224)

* Allow users to upload jpeg pictures as their profile picture

* Make constants for image upload types to accept

* Cypress/e2e: Fixed Webhook and Tutorial navigation test cases (#8210)

* fixed test case

* fixed tutorial navigation test case

* fixed tutorial nav test case

* Fixed link customization Test case (#8213)

* Thread move edit (#8203)

* Add Cypress test for MM-T3080

* MM-T3080 fix lint issues

* Login smoke test codereview fixes

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Remove extra spaces

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Adding test for MM-T2372 Deleting

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* resolve conflicts

* Added tTest for MM-T2371 Editing a post

* Change comment details

* Remove duplicated file

* Codereview fixes for scroll editing scenarios

* Codereview fixes for scroll editing scenarios

* Split editing and deleting scenarios into different files

* Code style changes for editing and deleting scenarios

Co-authored-by: Yulyana <yulyana@phntms.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* tests/MM-T1808 : Hover effect exists to add a channel description / header (when not already present) (#8186)

* test

* test

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* rev

* rev3

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Migrate 'components/profile_popover' module and associated tests to T… (#8216)

* Migrate 'components/profile_popover' module and associated tests to TypeScript

* spanshot test added

* fix linting error in utils.jsx

* update test snapshot

* fix wrong types and type casting

* change overwriteName type to React.ReactNode from string and minor refactoring related to that

* change type of OverwriteIcon to string and openDirectChannelToUserId return promise type to object

* hide unread indicator when not following thread (#8221)

* Fixes tests in thread viewer (#8247)

* MM-35837 Improve batching of channel-related actions on post receipt (#8222)

* MM-35837 Improve batching of channel-related actions on post receipt

* Remove unused imports

* Remove accidental artificial delay

* Update tests to expect new batching

* MM-35346, MM-35394: Fix unread selectors/indicators (#8159)

* fix: keep badge on hover

* remove unneeded importants

* CRT unread channel filter

* other LHS selectors

* fix selector

* add test

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixes: crash at global threads on root post delete (#8231)

If a root post is deleted and the user is at global threads view,
the app crashes.

This commit fixes that by removing the thread from the threads reducer.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-34578 - update permission name to see button in main menu (#8229)

* MM-34578 - update permission name to see button in main menu

* add tests for when there is no valid permissions

* fix linter

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* MM-35538 - display purchase modal when coming from email (#8234)

* MM-35538 - display purchase modal when coming from email

* use better name for query param

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Cypress/E2E: Update Zephyr Scale API URL (#8252)

* MM-35919: CRT makes threads nav menu sticky (#8239)

Threads nav menu, both in legacy and regular sidebar, is moved outside
of the scrollable area, so it always 'sticky' at the same position.

* ref: migrate call_button to ts (#8183)

* Downgrading Polish, Italian and German to beta (#8254)

* Downgrading Polish, Italian and German to beta

* Update latex_block.test.tsx.snap

* Update snapshot latex_block.test.tsx.snap

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>

* [MM-36294] Update marketplace install command (#8244)

* Translations update from Weblate (#8265)

* Translated using Weblate (German)

Currently translated at 83.5% (3976 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Hungarian)

Currently translated at 99.2% (4726 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (French)

Currently translated at 90.7% (4318 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Zsolt Godó <zsolttokio@gmail.com>
Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr>

* Set build image version as variable (#8261)

* Handle is_following not being set for edited posts (#8262)

* MM-36389 Prevent unnecessary Post children components re-rendering due to comment count propagation (#8259)

* Remove unnecessary comment count propagation needed for delete modal

* Remove unnecessary reply count propagation through post components

* Remove unnecessary reply count propagation through PostInfo component

* Fix style

* Update snapshots

* Hide comment count on root posts for CRT

* Use reply count from post if thread not tracked in postsInThread reducer (#8271)

* [MM-36704] Add selector specifically for search channel name to handle its cases (#8237)

* [MM-36704] Add selector specifically for search channel name to handle its cases

* Update packages/mattermost-redux/src/selectors/entities/channels.ts

Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com>

* Refactor based on Harrison's comments

* Other PR feedback

* Use completeDirectGroupInfo to get GM user names with a little modification

Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com>

* [34475] Emoji 13.0 with new library (#8220)

* generated files

* emoji-data install

* first pass at generating intermediate files

* aliases to short_names

* categories and translations

* move emoji_data.go to server if defined

* improve messages, comment on usage

* add library and notices

* change makefile

* use new library

* remove unused categories

* remove commented code

* typo

* fix package-lock

* fix formatting test

* fix emoji_utils tests

* fix emoticon provider tests

* fix emoji actions test

* fix categories for emoji-picker

* temporarily undo makefile changes so mattermod doesn't complain

* fix recent categories being empty

* fix testt

* fix using sprites, fix custom emojis section

* fix search with custom emojis

* make linter happy

* fix tests

* MM-34188 Add basic framework and example for tracking memoization effectiveness (#8189)

* Add basic framework and example for tracking memoization effectiveness

* Updates per feedback

* Create custom reselect package and update all usages of createSelector to pass in names

* Re-add selector tracking

* Add second test for typing

* Fix storybook reselect resolution

* ref: migrate request_button to ts (#8120)

* ref: migrate request_button to ts

* test: update request button snapshot

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* increased opacity on muted channels for bot-icons and avatars (with and without status) (#8270)

* MM-35840: fixes up arrow edit in CRT (#8238)

* MM-35840: fixes up arrow edit in CRT

We used to get post ids from the channel to find current user's last
post. This worked in threads when CRT off, but if you turn CRT on
replies are not added in the channel thus not being able to find the
user's last post correctly.

This commit fixes that by getting post ids from the thread*
(postsInThread) and not the channel, this way both CRT on/off are
working as expected.

*renamed the selector from makeGetCurrentUsersLatestPost to
makeGetCurrentUsersLatestReply.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixes selector's name for tracking (#8275)

* MM-35917: closes RHS upon navigating to threads (#8257)

* MM-35917: closes RHS upon navigating to threads

Clicking on global threads link closes the RHS.
This is done to reduce the amount of panels in
the global threads view upon arriving

* Saves and restores RHS state

Saves RHS state when navigating to global threads,
and restores the state upon leaving global threads.
This is done so we open the RHS, if needed, upon leaving global threads.

* Changes stash/restore logic to just a boolean

Rename rhs_stash to rhs_suppressed which only holds a boolean on whether
to suppress rhs (close) or not.

Suppressing functions as stashing did before.
Upon visiting global threads page it suppresses the RHS and upon exiting
it re-instates RHS to its previous state.

* Fixes weird search menu focus on RHS suppress

Fixes a bug when suppressing the RHS by going to the global threads,
and then using search and going to a channel and back to the global
threads it would show the search menu.

* Renames reducer to a more appropriate name

* Shrinks RHS upon suppressing

Suppressing RHS shrinks the sidebar.
Similarly switching from global threads to a channel also shrinks
the sidebar.

* MM-35806: shows participants when toggling CRT (#8255)

Toggling CRT 'on' wouldn't show participants at all for unfollowed
posts.
We short-circuit receiving posts in the reducers based on old/new
post's `update_at` property. Posts have some extra properties though
which didn't got updated in redux when toggling CRT on.

This commit refactors the short-circuit into a `shouldUpdatePost` utility function,
taking into account not only the `update_at` but the CRT posts' extra
properties.

* MM-36218,MM-36219: CRT thread read flashes (#8272)

New messages that arrive while the thread is open are marked as read and
the indicators don't flash anymore.

Furthermore if a thread is manually marked as unread it should stay
unread even if new messages arrive while it's open.

* MM-35769: CRT, shows unread indicator (#8267)

* MM-35769: CRT: shows unread indicator

Shows unread indicator when on global threads page as well.

* Removes unnecessary lines

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-35720,MM-36293: land at new messages line (#8226)

* MM-35720: land at new messages line

When opening a followed thread with unreads, land at/scroll to New
Messages line

* Fixes scrolling to bottom on thread viewer on open

We used to call `scrollToBottom` on mount, but when the thread was empty
it had no effect.
This commit fixes it so that scrolling is called after getting the
thread/posts.

* Fixes typing issue

* Fixes marking as read

The last thread opened in the global threads kept getting marked as
read even when user had navigated to a channel.
This commit fixes that by clearing the selected thread id in the reducer
upon leaving global threads page.

* Fixes tests

* Removes unwanted guard

* Fixes landing on new messages line

Scroll to bottom should be blocked when highlighting a post,
or when we are yet to scroll on new messages line.

* Adds loading screen to thread viewer

Shows a loading screen when when not all messages are loaded.

* Fixes tests

* Shows new messages line on new threads

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-34437 Preventing infinite trial requests (#7944)

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* WIP

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* #MM-34437 cleanup and adding comments

* #MM-34437 Fixed lint errors

* #MM-34437 added missing function params

* #MM-34437 fixed existing tests

* #MM-34437 added new tests

* #MM-34437 restored package lock

* #MM-34437 lint fixes

* #MM-34437 Added contact sales button in feature discovery component

* #MM-34437 reverted package lock changes commited accidently

* #MM-34437 made ContactUp compoonent easier to use anss other improvements and fixes

* #MM-34437 Refactored ContactUs component to avoid issues with mmjstools

* #MM-34437 used t to avoid messy ContactUs component

* #MM-34437 fixed global state type

* #MM-34437 renamed contact sales to contact us in remianing places

* #MM-34437 updated snaps

* #MM-34437 added sales contact link in upload trial error message

* #MM-34437 make contact sales component accept text component

* #MM-34437 addech trial check via flag

* #MM-34437 removed unnecessary async

* MM-34437 shortcircuit if trial flag is set

* Fixed paid license renbew button styling

* #MM-34437 Adjusted trial time for sacntioned

* Fixed missed brace

* Fix several autocomplete problems (#8197)

* [MM-24335] Show recently viewed channels when channel switcher opens (#8215)

* Show recently viewed channels when channel switcher opens

* update snapshot cause change in quick switch component ui

* add public channel fetch method if user isn't part of more than one channel and minor refactoring

* minor code clean up

* code refactoring and changes last viewed at logic due to some weird behaviour of last_viewed_at

* minor refactoring unified variable names

* fix missing params issue with getTimestampFromPrefs

* use getChannelsInCurrentTeam method for getting data from store instead of getAllRecentChannels

* fix Dms/Gms not showing up in list even if they have recent activity

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Emoji makefile (#8276)

* make golang linter happy

* makefile and license for go files

* MM-36561: fixes loader shown on socket reconnect (#8281)

* Cypress/E2E: Promote category sorting (#8285)

* Show thread as followed immediately on webapp when marking posts unread from the thread (#8283)

* Translations update from Weblate (#8288)

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Translated using Weblate (English (Australia))

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 99.9% (4760 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (Dutch)

Currently translated at 99.8% (4756 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Hungarian)

Currently translated at 99.8% (4754 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 99.6% (4744 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 93.6% (4459 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Japanese)

Currently translated at 99.8% (4754 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu>
Co-authored-by: aeomin <lin@aeomin.net>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>

* MM-30446: Fix toast dismiss hover console error (#8284)

* fix: use intl-compat OverlayTrigger

* hoist OverlayTrigger

* update snapshots

* Implement FileDropdown Actions Plugin Method  (#8139)

* Add file drpdown action plugins framework

* Fix search-item-snippet CSS

* Show post menu when file dropdown is open

* Code refactoring

* Fix lint

* Update tests props

* make handleFileDropdownOpened prop optional

* Update handleFileDropdownOpened implementation

* Fix lint

* Update CSS styles

* Use memoization for plugin file dropdown items

* Fix lint

* Fixed type check errors

* update snapshots

* Update snapshots

* use createSelector for files dropdown plugin selector

* Update components/file_attachment/file_attachment.tsx

Co-authored-by: Daniel Espino García <larkox@gmail.com>

Co-authored-by: Manoj <manoj@brightscout.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>

* MM-36590 Re-add old emoji aliases (#8287)

* Re-add old emoji aliases

* Update unit tests

* Custom status expiry (#8059)

* Made the UI for expiry
Made expiry menu component with all the expiry items
Made the dateTimeInput component with the react-day-picker along with customized navbar
Removed the memoization from the getCustomStatus selector
Solved the propType issue in the menuItemToggleModalRedux

* Review fixes and added timepicker menu
Changed the custom status selector to a simple function and changed its use everywhere
Made constants for the expiry menu items and used them
Changed the expiry menu items to use localized text
Removed the daypicker.scss file and did the changes in _daypicker.scss file
Added all the localization ids in en.json

* Completed the timepicker menu
Made a util for getting current date and time for timezone
Made the function to round current time to nearest 30 min time
Made the function to fill the menu with 30 minute intervals
Unified the separate state variables for day and time to only time
Made the dateTimeInput component to be controlled by the custom status modal
Fixed the styles for the timepicker and daypicker
Fixed lint errors and type check errors

* Fixed some issues in daypicker
Fixed the styling in daypicker
Added logic for disabled days in daypicker
Fixed the issue of prevMonth button not working in daypicker

* Complete expiry support in custom status modal
Changed the custom status type to include duration and expires_at and made enum duration
Removed the duration constants from constants file and used enum type everywhere
Added localization in the expiry menu values
Modified custom status modal to send expiry with the custom status
Modified custom status modal to handle initial custom expiry time
Modified the disable set status variable to handle the confirm button disability
Modified the custom status selector to return custom status only when it's not expired

* Review fixes
Code refactoring in custom status modal and dateTime input and expiry menu

* Changed name of enum Duration to CustomStatusDuration

* MI-1235

* Added expiry support in custom status suggestions
Made durationValues constant to store all duration values with localization ids and default messages
Modified expiry_menu to use durationValues constant
Modified custom status suggestion component to handle duration of status
Added duration in default custom status suggestions
Fixed the calculateExpiryTime function to take right currentTime
Modified handle and clear suggestion functions to include expiry

* Display expiry time in custom status emoji tooltip
Made relative range for tomorrow
Fixed styling for the expiry in suggestions
Added the logic for showing expiry time in custom status emoji component

* Completed showing expiry time in several places
Made custom status util for displaying expiry time
Made getCurrentUserTimezone memoized selector
Refactored custom status emoji and modal to use getCurrentUserTimezone selector
Fixed the custom status modal UI accordingg to the comments on community
Added expiry time in status dropdown and profile popover

* Review fixes
Memoized displayExpiryTime in custom status emoji component

* Added memoization in expiry time in some places
Added memoization in status dropdown and profile popover
Added logic to show tooltip in custom status emoji in channel header
Refactored some code in custom status emoji and custom status selector
Added timezone dependent current time in custom status selector

* Added unit tests and several fixes
Sorted the order of imports in several files
Made unit tests for date_time_input and expiry_menu components
Updated some snapshots

* Fixed custom status emoji unit tests

* Fix types

* Refactored some code
Converted displayExpiryTime util to a separate functional component
Replaced use of util with component everywhere
Fixed styling of date time input
Refactored disabling set status button in custom status modal

* Fixed styles in status dropdown menu

* Fixed types and added some unit tests
Fixed type in custom status emoji tests
Added unit tests in status dropdown and profile popover
Updated snapshots

* Code refactoring and localization ids change
Added localization in Until and changed ids of all expiry dropdown options
Modified ExpiryTime component to accept classname and wihinBrackets prop
Fixed disableSetStatus bug in custom status modal
Fixed styling of expiry time everywhere
Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component

* Updated snapshots

* Changed default custom status duration to Today

* Fixed i18n-check failing test

* Fixed failing unit and e2e tests
Refactoed getCustomStatus selector

* Added functionality to handle suggestions without duration

* Review UI fixes
Added font-weight and opacity in expiry value in clear after dropdown
Fixed the styling for clear button in the custom status input
Fixed the padding for the custom status modal and adjusted all components inside it
Changed the opacity for duration in the suggestions
Changed the styling for date and time input titles
Changed the size of the daypicker
Changed the date and time icons from font-awesome to compass icons

* Trigger server creation

* Fixed the timezone issue in date time input

* WIP: Fixing timezone issues for custom status expiry

* Fixed the timezone issue in the custom status modal and date/time input
Made util for getCurrentMomentForTimezone
Changed type for customExpiryTime from Date to Moment
Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs

* Changed value of DONT_CLEAR key of CustomStatusDuration enum

* Changed behavior of Clear after component and showing date/time component and review fixes (#57)

* WIP : Fixing the flow for the custom date time if status already set

* Changed display value of Clear after value and review fixes
Added prop showPrefix in expiry_time component
Changed the behaviour of timestamp in the expiry_time
Moved custom status constants from constants.jsx to custom_status_modal and date_time_input
Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum
Changed the logic of disabling Set Status button and showing/hiding suggestions
Fixed the failing unit tests of expiry_menu and date_time_input
Added localization in date_time_input using useIntl instead of localizeMessage
Added showing expiryTime feature in expiry menu component

* Review fixes with some optimization
Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry
Changed the use of getCustomStatus selector in all places
Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components
Memoized the time options in the date/time input container by memoizing the handleTimeChange function
Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount
Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component
Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function

* Added/Updated unit tests and fixed type check errors
Changed the format of expiry time for periods longer than 6 days
Fixed the styling of custom status in status dropdown and daypicker in custom status modal

* Complete e2e tests (#58)

* Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry
Resolved conflicts, updated snapshots and fixed type check errors

* WIP : MM-T4063 e2e test for the custom status expiry

* Complete e2e tests for expiry
Modified and completed MM-T4063 test
Completed MM-T4064, MM-T4065, MM-T4066 e2e tests

* Updated snapshot

* Updated custom_status_emoji to pass the tests

* Fixed suggestion without duration bug in the custom status modal

* Code refactoring and some bug fixes

* Updated snapshots

* UI review fixes (#61)

Changed the text for Date and time to Custom Date and Time
Removed duration from the suggestions if duration is Don't clear
Changed the width of the suggestions dynamically based on the presence of duration
Added a unit test for the suggestion and updated the existing snapshot

* Resolved conflicts and updated snapshots

* Apply suggestions from code review

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Added feature to show year in expiry time if expiry time is after the current year

* Review fixes (#62)

* Review fixes
Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps
Memoized the handleTimeChange function in the menu items of time picker by binding the function

* Fixed memoization of makeGetCustomStatus in functional components
Fixed memoization in custom_status_emoji, modal and post_header_custom_status components

* Refactored some code

* Fixed type check errors

Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com>
Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* fix reselect signature (#8296)

* fix import errors (#8298)

* [MM-25435] Emoji picker + skin tones (#8282)

* generated files

* emoji-data install

* first pass at generating intermediate files

* aliases to short_names

* categories and translations

* move emoji_data.go to server if defined

* improve messages, comment on usage

* add library and notices

* change makefile

* use new library

* remove unused categories

* remove commented code

* wip

* typo

* fix package-lock

* fix formatting test

* fix emoji_utils tests

* fix emoticon provider tests

* fix emoji actions test

* fix categories for emoji-picker

* wip

* temporarily undo makefile changes so mattermod doesn't complain

* fix recent categories being empty

* fix testt

* emoji gen with skin switching

* add skin categories, place skin selector

* initial version

* css fixes

* fix height

* fix tests

* fix position

* address some review comments

* more review fixes

* more css fixes

* more fix css

* remove async from action dispatch

* check emoji creation permissions to enable button

* more CR fixes

* css fixes

* fix jumping magnifier

* fix skin tone selector position

* set label as default always

* make skin picker behave better

* fix reducer

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Add app icon to Marketplace (#8187)

* MM-36341 - order plan lists (#8253)

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* [MM-18496] Private channels should appear in channel link autocomplete (#8286)

* MM-36542: getOpenThreadId should consider suppressed RHS (#8279)

* MM-36542: getOpenThreadId should consider suppressed RHS

Fixes a bug when suppressing RHS via going to global threads,
and then receiving new replies to the thread open in the suppressed RHS,
kept marking them as read.

This commit changes `getOpenThreadId` to consider if RHS is open or not.
Also mounting and unmounting components in the RHS with account to RHS
hidden/visible,
this last change was made because we are able to suppress the
RHS and suppressing does not clear rhsState nor selectedPostId etc..

* Fixes: more than one threads can be open

isThreadOpen didn't took into account that more than one threads can be
open at the same time.
This commit changes that.

* [MM-36626] fix emoji picker colors (#8303)

* [MM-36626] fix emoji picker colors

* review changes

* fix review changes, make tabs more consistent

* handle hover as a whole

* remove opacity

* MM-35191 - show banner in user timezone (#8243)

* MM-35191 - show banner in user timezone

* fix en locale

* add the user timezone to the date format

* add the trial ends value

* fix the duplicated title

* Change the string date format

* remove the user timezone from the date portion of the string

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* MM-36654 Re-add Mattermost emoji (#8309)

* MM-36654 Re-add Mattermost emoji

* Move custom emoji preview to match system emojis

* Remove extra entry from _emojisprint.scss

* MM-36593 RHS performance improvements (#8292)

* Use createIdsSelector for makeGetPostsForThread

* Fix re-rendering caused by SearchResults's mapStateToProps

* Fix unit test for makeGetPostsForThread

* Translations update from Weblate (#8314)

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4777 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

Translated using Weblate (Spanish)

Currently translated at 97.9% (4677 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

Translated using Weblate (Spanish)

Currently translated at 96.9% (4630 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 99.7% (4763 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr…
isacikgoz added a commit that referenced this pull request Aug 17, 2021
…8598)

* Mm 36066 open cloud pricing link in new tab (#8200)

* MM-36066 - open cloud pricing link in new tab

* fix translation file reference

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Update NOTICE.txt (#8199)

* Update NOTICE.txt

* Update NOTICE.txt

* MM-36095 Fix text overflow in announcement banner (#8225)

* MM-36095 Fix text overflow in announcement banner

* Update snapshots

* Update E2E test text

* Force recalculate emoji picker position on open (#8208)

* [MM-35653] Data Retention redux tests (#8118)

* adding action tests for data retention

* adding more tests for reducers

Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local>

* MM-35626: Export PurchaseModal component and related utils (#8228)

* Fix plugin buttons on the LHS showing one below the other, instead of one after the other (#8198)

* Fix plugin buttons on the LHS showing one below the other, instead of one after the other

* Fix snapshots

* [MM-36173] Fix spacing and opacity on descriptions for special mentions (#8235)

* Adding English Australian to translated languages (#8192)

* Adding English Australian to translated languages

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elisabeth Kulzer <elikul@elikul.de>

* add marketplace flag (#8207)

* MM-36068 Update avatars and reply count correctly for unfollowed threads (#8209)

* Update participants for root post for newly received posts

* Correctly update reply count for unfollowed threads

* Fix unit tests

* Fix lint issues

* Do not delete unfollowed threads and instead keep data for unfollowed threads up to date

* MM-36054, MM-35968: Fix following button and prevent no-op/server error (#8167)

* fix: use getThreadOrSynthetic

* fix: only fetch thread if there are replies

* only fetch if actually following

* only fetch when there are replies

* remove legacy fetch, handled in other places

* [MM-36270] Add overflow to emoji rendering (#8227)

* add overflow to emoji rendering

* actually fix scss

* Allow uploading `.jpeg` files on Linux (#8224)

* Allow users to upload jpeg pictures as their profile picture

* Make constants for image upload types to accept

* Cypress/e2e: Fixed Webhook and Tutorial navigation test cases (#8210)

* fixed test case

* fixed tutorial navigation test case

* fixed tutorial nav test case

* Fixed link customization Test case (#8213)

* Thread move edit (#8203)

* Add Cypress test for MM-T3080

* MM-T3080 fix lint issues

* Login smoke test codereview fixes

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Remove extra spaces

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/signin_authentication/login_logout_smoke_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Adding test for MM-T2372 Deleting

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/scroll/deleting_scroll_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* resolve conflicts

* Added tTest for MM-T2371 Editing a post

* Change comment details

* Remove duplicated file

* Codereview fixes for scroll editing scenarios

* Codereview fixes for scroll editing scenarios

* Split editing and deleting scenarios into different files

* Code style changes for editing and deleting scenarios

Co-authored-by: Yulyana <yulyana@phntms.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* tests/MM-T1808 : Hover effect exists to add a channel description / header (when not already present) (#8186)

* test

* test

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Update e2e/cypress/integration/channel_settings/channel_header_spec.js

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* rev

* rev3

Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Migrate 'components/profile_popover' module and associated tests to T… (#8216)

* Migrate 'components/profile_popover' module and associated tests to TypeScript

* spanshot test added

* fix linting error in utils.jsx

* update test snapshot

* fix wrong types and type casting

* change overwriteName type to React.ReactNode from string and minor refactoring related to that

* change type of OverwriteIcon to string and openDirectChannelToUserId return promise type to object

* hide unread indicator when not following thread (#8221)

* Fixes tests in thread viewer (#8247)

* MM-35837 Improve batching of channel-related actions on post receipt (#8222)

* MM-35837 Improve batching of channel-related actions on post receipt

* Remove unused imports

* Remove accidental artificial delay

* Update tests to expect new batching

* MM-35346, MM-35394: Fix unread selectors/indicators (#8159)

* fix: keep badge on hover

* remove unneeded importants

* CRT unread channel filter

* other LHS selectors

* fix selector

* add test

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixes: crash at global threads on root post delete (#8231)

If a root post is deleted and the user is at global threads view,
the app crashes.

This commit fixes that by removing the thread from the threads reducer.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-34578 - update permission name to see button in main menu (#8229)

* MM-34578 - update permission name to see button in main menu

* add tests for when there is no valid permissions

* fix linter

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* MM-35538 - display purchase modal when coming from email (#8234)

* MM-35538 - display purchase modal when coming from email

* use better name for query param

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Cypress/E2E: Update Zephyr Scale API URL (#8252)

* MM-35919: CRT makes threads nav menu sticky (#8239)

Threads nav menu, both in legacy and regular sidebar, is moved outside
of the scrollable area, so it always 'sticky' at the same position.

* ref: migrate call_button to ts (#8183)

* Downgrading Polish, Italian and German to beta (#8254)

* Downgrading Polish, Italian and German to beta

* Update latex_block.test.tsx.snap

* Update snapshot latex_block.test.tsx.snap

Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>

* [MM-36294] Update marketplace install command (#8244)

* Translations update from Weblate (#8265)

* Translated using Weblate (German)

Currently translated at 83.5% (3976 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Hungarian)

Currently translated at 99.2% (4726 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4760 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (French)

Currently translated at 90.7% (4318 of 4760 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Zsolt Godó <zsolttokio@gmail.com>
Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr>

* Set build image version as variable (#8261)

* Handle is_following not being set for edited posts (#8262)

* MM-36389 Prevent unnecessary Post children components re-rendering due to comment count propagation (#8259)

* Remove unnecessary comment count propagation needed for delete modal

* Remove unnecessary reply count propagation through post components

* Remove unnecessary reply count propagation through PostInfo component

* Fix style

* Update snapshots

* Hide comment count on root posts for CRT

* Use reply count from post if thread not tracked in postsInThread reducer (#8271)

* [MM-36704] Add selector specifically for search channel name to handle its cases (#8237)

* [MM-36704] Add selector specifically for search channel name to handle its cases

* Update packages/mattermost-redux/src/selectors/entities/channels.ts

Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com>

* Refactor based on Harrison's comments

* Other PR feedback

* Use completeDirectGroupInfo to get GM user names with a little modification

Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com>

* [34475] Emoji 13.0 with new library (#8220)

* generated files

* emoji-data install

* first pass at generating intermediate files

* aliases to short_names

* categories and translations

* move emoji_data.go to server if defined

* improve messages, comment on usage

* add library and notices

* change makefile

* use new library

* remove unused categories

* remove commented code

* typo

* fix package-lock

* fix formatting test

* fix emoji_utils tests

* fix emoticon provider tests

* fix emoji actions test

* fix categories for emoji-picker

* temporarily undo makefile changes so mattermod doesn't complain

* fix recent categories being empty

* fix testt

* fix using sprites, fix custom emojis section

* fix search with custom emojis

* make linter happy

* fix tests

* MM-34188 Add basic framework and example for tracking memoization effectiveness (#8189)

* Add basic framework and example for tracking memoization effectiveness

* Updates per feedback

* Create custom reselect package and update all usages of createSelector to pass in names

* Re-add selector tracking

* Add second test for typing

* Fix storybook reselect resolution

* ref: migrate request_button to ts (#8120)

* ref: migrate request_button to ts

* test: update request button snapshot

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* increased opacity on muted channels for bot-icons and avatars (with and without status) (#8270)

* MM-35840: fixes up arrow edit in CRT (#8238)

* MM-35840: fixes up arrow edit in CRT

We used to get post ids from the channel to find current user's last
post. This worked in threads when CRT off, but if you turn CRT on
replies are not added in the channel thus not being able to find the
user's last post correctly.

This commit fixes that by getting post ids from the thread*
(postsInThread) and not the channel, this way both CRT on/off are
working as expected.

*renamed the selector from makeGetCurrentUsersLatestPost to
makeGetCurrentUsersLatestReply.

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Fixes selector's name for tracking (#8275)

* MM-35917: closes RHS upon navigating to threads (#8257)

* MM-35917: closes RHS upon navigating to threads

Clicking on global threads link closes the RHS.
This is done to reduce the amount of panels in
the global threads view upon arriving

* Saves and restores RHS state

Saves RHS state when navigating to global threads,
and restores the state upon leaving global threads.
This is done so we open the RHS, if needed, upon leaving global threads.

* Changes stash/restore logic to just a boolean

Rename rhs_stash to rhs_suppressed which only holds a boolean on whether
to suppress rhs (close) or not.

Suppressing functions as stashing did before.
Upon visiting global threads page it suppresses the RHS and upon exiting
it re-instates RHS to its previous state.

* Fixes weird search menu focus on RHS suppress

Fixes a bug when suppressing the RHS by going to the global threads,
and then using search and going to a channel and back to the global
threads it would show the search menu.

* Renames reducer to a more appropriate name

* Shrinks RHS upon suppressing

Suppressing RHS shrinks the sidebar.
Similarly switching from global threads to a channel also shrinks
the sidebar.

* MM-35806: shows participants when toggling CRT (#8255)

Toggling CRT 'on' wouldn't show participants at all for unfollowed
posts.
We short-circuit receiving posts in the reducers based on old/new
post's `update_at` property. Posts have some extra properties though
which didn't got updated in redux when toggling CRT on.

This commit refactors the short-circuit into a `shouldUpdatePost` utility function,
taking into account not only the `update_at` but the CRT posts' extra
properties.

* MM-36218,MM-36219: CRT thread read flashes (#8272)

New messages that arrive while the thread is open are marked as read and
the indicators don't flash anymore.

Furthermore if a thread is manually marked as unread it should stay
unread even if new messages arrive while it's open.

* MM-35769: CRT, shows unread indicator (#8267)

* MM-35769: CRT: shows unread indicator

Shows unread indicator when on global threads page as well.

* Removes unnecessary lines

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-35720,MM-36293: land at new messages line (#8226)

* MM-35720: land at new messages line

When opening a followed thread with unreads, land at/scroll to New
Messages line

* Fixes scrolling to bottom on thread viewer on open

We used to call `scrollToBottom` on mount, but when the thread was empty
it had no effect.
This commit fixes it so that scrolling is called after getting the
thread/posts.

* Fixes typing issue

* Fixes marking as read

The last thread opened in the global threads kept getting marked as
read even when user had navigated to a channel.
This commit fixes that by clearing the selected thread id in the reducer
upon leaving global threads page.

* Fixes tests

* Removes unwanted guard

* Fixes landing on new messages line

Scroll to bottom should be blocked when highlighting a post,
or when we are yet to scroll on new messages line.

* Adds loading screen to thread viewer

Shows a loading screen when when not all messages are loaded.

* Fixes tests

* Shows new messages line on new threads

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-34437 Preventing infinite trial requests (#7944)

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* WIP

* #MM-34437 Displayed purchase ans contact sales link when not elligible for starting a new trial

* #MM-34437 cleanup and adding comments

* #MM-34437 Fixed lint errors

* #MM-34437 added missing function params

* #MM-34437 fixed existing tests

* #MM-34437 added new tests

* #MM-34437 restored package lock

* #MM-34437 lint fixes

* #MM-34437 Added contact sales button in feature discovery component

* #MM-34437 reverted package lock changes commited accidently

* #MM-34437 made ContactUp compoonent easier to use anss other improvements and fixes

* #MM-34437 Refactored ContactUs component to avoid issues with mmjstools

* #MM-34437 used t to avoid messy ContactUs component

* #MM-34437 fixed global state type

* #MM-34437 renamed contact sales to contact us in remianing places

* #MM-34437 updated snaps

* #MM-34437 added sales contact link in upload trial error message

* #MM-34437 make contact sales component accept text component

* #MM-34437 addech trial check via flag

* #MM-34437 removed unnecessary async

* MM-34437 shortcircuit if trial flag is set

* Fixed paid license renbew button styling

* #MM-34437 Adjusted trial time for sacntioned

* Fixed missed brace

* Fix several autocomplete problems (#8197)

* [MM-24335] Show recently viewed channels when channel switcher opens (#8215)

* Show recently viewed channels when channel switcher opens

* update snapshot cause change in quick switch component ui

* add public channel fetch method if user isn't part of more than one channel and minor refactoring

* minor code clean up

* code refactoring and changes last viewed at logic due to some weird behaviour of last_viewed_at

* minor refactoring unified variable names

* fix missing params issue with getTimestampFromPrefs

* use getChannelsInCurrentTeam method for getting data from store instead of getAllRecentChannels

* fix Dms/Gms not showing up in list even if they have recent activity

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Emoji makefile (#8276)

* make golang linter happy

* makefile and license for go files

* MM-36561: fixes loader shown on socket reconnect (#8281)

* Cypress/E2E: Promote category sorting (#8285)

* Show thread as followed immediately on webapp when marking posts unread from the thread (#8283)

* Translations update from Weblate (#8288)

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Translated using Weblate (English (Australia))

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (Swedish)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 99.9% (4760 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (Dutch)

Currently translated at 99.8% (4756 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Hungarian)

Currently translated at 99.8% (4754 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 99.6% (4744 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 93.6% (4459 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4761 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Japanese)

Currently translated at 99.8% (4754 of 4761 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu>
Co-authored-by: aeomin <lin@aeomin.net>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>

* MM-30446: Fix toast dismiss hover console error (#8284)

* fix: use intl-compat OverlayTrigger

* hoist OverlayTrigger

* update snapshots

* Implement FileDropdown Actions Plugin Method  (#8139)

* Add file drpdown action plugins framework

* Fix search-item-snippet CSS

* Show post menu when file dropdown is open

* Code refactoring

* Fix lint

* Update tests props

* make handleFileDropdownOpened prop optional

* Update handleFileDropdownOpened implementation

* Fix lint

* Update CSS styles

* Use memoization for plugin file dropdown items

* Fix lint

* Fixed type check errors

* update snapshots

* Update snapshots

* use createSelector for files dropdown plugin selector

* Update components/file_attachment/file_attachment.tsx

Co-authored-by: Daniel Espino García <larkox@gmail.com>

Co-authored-by: Manoj <manoj@brightscout.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>

* MM-36590 Re-add old emoji aliases (#8287)

* Re-add old emoji aliases

* Update unit tests

* Custom status expiry (#8059)

* Made the UI for expiry
Made expiry menu component with all the expiry items
Made the dateTimeInput component with the react-day-picker along with customized navbar
Removed the memoization from the getCustomStatus selector
Solved the propType issue in the menuItemToggleModalRedux

* Review fixes and added timepicker menu
Changed the custom status selector to a simple function and changed its use everywhere
Made constants for the expiry menu items and used them
Changed the expiry menu items to use localized text
Removed the daypicker.scss file and did the changes in _daypicker.scss file
Added all the localization ids in en.json

* Completed the timepicker menu
Made a util for getting current date and time for timezone
Made the function to round current time to nearest 30 min time
Made the function to fill the menu with 30 minute intervals
Unified the separate state variables for day and time to only time
Made the dateTimeInput component to be controlled by the custom status modal
Fixed the styles for the timepicker and daypicker
Fixed lint errors and type check errors

* Fixed some issues in daypicker
Fixed the styling in daypicker
Added logic for disabled days in daypicker
Fixed the issue of prevMonth button not working in daypicker

* Complete expiry support in custom status modal
Changed the custom status type to include duration and expires_at and made enum duration
Removed the duration constants from constants file and used enum type everywhere
Added localization in the expiry menu values
Modified custom status modal to send expiry with the custom status
Modified custom status modal to handle initial custom expiry time
Modified the disable set status variable to handle the confirm button disability
Modified the custom status selector to return custom status only when it's not expired

* Review fixes
Code refactoring in custom status modal and dateTime input and expiry menu

* Changed name of enum Duration to CustomStatusDuration

* MI-1235

* Added expiry support in custom status suggestions
Made durationValues constant to store all duration values with localization ids and default messages
Modified expiry_menu to use durationValues constant
Modified custom status suggestion component to handle duration of status
Added duration in default custom status suggestions
Fixed the calculateExpiryTime function to take right currentTime
Modified handle and clear suggestion functions to include expiry

* Display expiry time in custom status emoji tooltip
Made relative range for tomorrow
Fixed styling for the expiry in suggestions
Added the logic for showing expiry time in custom status emoji component

* Completed showing expiry time in several places
Made custom status util for displaying expiry time
Made getCurrentUserTimezone memoized selector
Refactored custom status emoji and modal to use getCurrentUserTimezone selector
Fixed the custom status modal UI accordingg to the comments on community
Added expiry time in status dropdown and profile popover

* Review fixes
Memoized displayExpiryTime in custom status emoji component

* Added memoization in expiry time in some places
Added memoization in status dropdown and profile popover
Added logic to show tooltip in custom status emoji in channel header
Refactored some code in custom status emoji and custom status selector
Added timezone dependent current time in custom status selector

* Added unit tests and several fixes
Sorted the order of imports in several files
Made unit tests for date_time_input and expiry_menu components
Updated some snapshots

* Fixed custom status emoji unit tests

* Fix types

* Refactored some code
Converted displayExpiryTime util to a separate functional component
Replaced use of util with component everywhere
Fixed styling of date time input
Refactored disabling set status button in custom status modal

* Fixed styles in status dropdown menu

* Fixed types and added some unit tests
Fixed type in custom status emoji tests
Added unit tests in status dropdown and profile popover
Updated snapshots

* Code refactoring and localization ids change
Added localization in Until and changed ids of all expiry dropdown options
Modified ExpiryTime component to accept classname and wihinBrackets prop
Fixed disableSetStatus bug in custom status modal
Fixed styling of expiry time everywhere
Modified status dropdown, profile_popover and custom status emoji according to new ExpiryTime component

* Updated snapshots

* Changed default custom status duration to Today

* Fixed i18n-check failing test

* Fixed failing unit and e2e tests
Refactoed getCustomStatus selector

* Added functionality to handle suggestions without duration

* Review UI fixes
Added font-weight and opacity in expiry value in clear after dropdown
Fixed the styling for clear button in the custom status input
Fixed the padding for the custom status modal and adjusted all components inside it
Changed the opacity for duration in the suggestions
Changed the styling for date and time input titles
Changed the size of the daypicker
Changed the date and time icons from font-awesome to compass icons

* Trigger server creation

* Fixed the timezone issue in date time input

* WIP: Fixing timezone issues for custom status expiry

* Fixed the timezone issue in the custom status modal and date/time input
Made util for getCurrentMomentForTimezone
Changed type for customExpiryTime from Date to Moment
Fixed getRoundedTime and getTimeInIntervals functions and date/time inputs

* Changed value of DONT_CLEAR key of CustomStatusDuration enum

* Changed behavior of Clear after component and showing date/time component and review fixes (#57)

* WIP : Fixing the flow for the custom date time if status already set

* Changed display value of Clear after value and review fixes
Added prop showPrefix in expiry_time component
Changed the behaviour of timestamp in the expiry_time
Moved custom status constants from constants.jsx to custom_status_modal and date_time_input
Changed the display value in Clear after component if custom status set with custom date/time by adding additional value in CustomStatusDuration enum
Changed the logic of disabling Set Status button and showing/hiding suggestions
Fixed the failing unit tests of expiry_menu and date_time_input
Added localization in date_time_input using useIntl instead of localizeMessage
Added showing expiryTime feature in expiry menu component

* Review fixes with some optimization
Memoized the getCustomStatus selector and made a new selector isCustomStatusExpired for the expiry
Changed the use of getCustomStatus selector in all places
Added the use of isCustomStatusExpired selector in custom_status_emoji, custom_status_modal, status_dropdown, profile_popover, channel_header components
Memoized the time options in the date/time input container by memoizing the handleTimeChange function
Memoized the menu items in expiry menu by keeping them in state and only modifying in componentDidMount
Changed the type of timestampProps and added logic for showing time for tomorrow in expiry_time component
Fixed the memoization in the getCurrentUserTimezone selector by creating getTimezoneForUserProfile function

* Added/Updated unit tests and fixed type check errors
Changed the format of expiry time for periods longer than 6 days
Fixed the styling of custom status in status dropdown and daypicker in custom status modal

* Complete e2e tests (#58)

* Merge branch 'master' of github.com:mattermost/mattermost-webapp into custom-status-expiry
Resolved conflicts, updated snapshots and fixed type check errors

* WIP : MM-T4063 e2e test for the custom status expiry

* Complete e2e tests for expiry
Modified and completed MM-T4063 test
Completed MM-T4064, MM-T4065, MM-T4066 e2e tests

* Updated snapshot

* Updated custom_status_emoji to pass the tests

* Fixed suggestion without duration bug in the custom status modal

* Code refactoring and some bug fixes

* Updated snapshots

* UI review fixes (#61)

Changed the text for Date and time to Custom Date and Time
Removed duration from the suggestions if duration is Don't clear
Changed the width of the suggestions dynamically based on the presence of duration
Added a unit test for the suggestion and updated the existing snapshot

* Resolved conflicts and updated snapshots

* Apply suggestions from code review

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Added feature to show year in expiry time if expiry time is after the current year

* Review fixes (#62)

* Review fixes
Fixed the memoization issue for multiple instances of class components by converting mapStateToProps to makeMapStateToProps
Memoized the handleTimeChange function in the menu items of time picker by binding the function

* Fixed memoization of makeGetCustomStatus in functional components
Fixed memoization in custom_status_emoji, modal and post_header_custom_status components

* Refactored some code

* Fixed type check errors

Co-authored-by: Chetanya Kandhari <chetanya.kandhari@brightscout.com>
Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* fix reselect signature (#8296)

* fix import errors (#8298)

* [MM-25435] Emoji picker + skin tones (#8282)

* generated files

* emoji-data install

* first pass at generating intermediate files

* aliases to short_names

* categories and translations

* move emoji_data.go to server if defined

* improve messages, comment on usage

* add library and notices

* change makefile

* use new library

* remove unused categories

* remove commented code

* wip

* typo

* fix package-lock

* fix formatting test

* fix emoji_utils tests

* fix emoticon provider tests

* fix emoji actions test

* fix categories for emoji-picker

* wip

* temporarily undo makefile changes so mattermod doesn't complain

* fix recent categories being empty

* fix testt

* emoji gen with skin switching

* add skin categories, place skin selector

* initial version

* css fixes

* fix height

* fix tests

* fix position

* address some review comments

* more review fixes

* more css fixes

* more fix css

* remove async from action dispatch

* check emoji creation permissions to enable button

* more CR fixes

* css fixes

* fix jumping magnifier

* fix skin tone selector position

* set label as default always

* make skin picker behave better

* fix reducer

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* Add app icon to Marketplace (#8187)

* MM-36341 - order plan lists (#8253)

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* [MM-18496] Private channels should appear in channel link autocomplete (#8286)

* MM-36542: getOpenThreadId should consider suppressed RHS (#8279)

* MM-36542: getOpenThreadId should consider suppressed RHS

Fixes a bug when suppressing RHS via going to global threads,
and then receiving new replies to the thread open in the suppressed RHS,
kept marking them as read.

This commit changes `getOpenThreadId` to consider if RHS is open or not.
Also mounting and unmounting components in the RHS with account to RHS
hidden/visible,
this last change was made because we are able to suppress the
RHS and suppressing does not clear rhsState nor selectedPostId etc..

* Fixes: more than one threads can be open

isThreadOpen didn't took into account that more than one threads can be
open at the same time.
This commit changes that.

* [MM-36626] fix emoji picker colors (#8303)

* [MM-36626] fix emoji picker colors

* review changes

* fix review changes, make tabs more consistent

* handle hover as a whole

* remove opacity

* MM-35191 - show banner in user timezone (#8243)

* MM-35191 - show banner in user timezone

* fix en locale

* add the user timezone to the date format

* add the trial ends value

* fix the duplicated title

* Change the string date format

* remove the user timezone from the date portion of the string

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* MM-36654 Re-add Mattermost emoji (#8309)

* MM-36654 Re-add Mattermost emoji

* Move custom emoji preview to match system emojis

* Remove extra entry from _emojisprint.scss

* MM-36593 RHS performance improvements (#8292)

* Use createIdsSelector for makeGetPostsForThread

* Fix re-rendering caused by SearchResults's mapStateToProps

* Fix unit test for makeGetPostsForThread

* Translations update from Weblate (#8314)

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4777 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4763 of 4763 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

Translated using Weblate (Spanish)

Currently translated at 97.9% (4677 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

Translated using Weblate (Spanish)

Currently translated at 96.9% (4630 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 99.7% (4763 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Translated using Weblate (English (Australia))

Currently translated at 100.0% (4777 of 4777 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (French)

Currently translated at 90.1% (4313 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (German)

Currently translated at 86.1% (4121 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 94.3% (4514 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/

Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu>
Co-authored-by: Elias  Nahum <elias@mattermost.com>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr>
Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com>
Co-authored-by: Markus Hermann <markus.hermann@uni-marburg.de>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: aeomin <lin@aeomin.net>

* [MM-8497] Ability to set Do Not Disturb for a specified period of time  (#8160)

* Revert "Revert "[MM-8497] Ability to set Do Not Disturb for a specified period of time  (#7037)" (#8136)"

This reverts commit 406f787f0baaaeb4da8b7aef62b8a4faf9fc3f91.

* fix tomorrow's date

* remove Today option from e2e test

* add feature flag for dnd timed status

* update snapshots

* add type for dndEndTime fn arg

* fix e2e test

* remove unused file

* no need to pass userId in props

* update snapshots

* use timezone only if defined

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* MM-36655,MM-36656,MM-36657: CRT beta texts and modal (#8315)

* MM-36655,MM-36656,MM-36657: CRT beta texts and modal

Shows an early beta warning modal when users enable CRT in account
settings, the modal is shown upon closing the user settings modal.

Changes account settings CRT related texts.

Removes default_off option for CRT in system console.

* Fixes types

* Add style linter (#8273)

* Add style linter

* Add order and scss specific plugin

* Add recommended config

* Fix lint

* Fix border and system console tables

* MM-35897 - make sure to show max 14 days in the UI of remaining trial (#8308)

* MM-35897 - make sure to show max 14 days in the UI of remaining trial

* Add constants to handle the days numbers

* fix linter issue

* fix linter issues

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* [MM-36481] Fix thumbsup emoji parsing to support skin tones (#8318)

* fix thumbsup emoji parsing

* fix tests

* fix help text

* MM-36730: permalinks to replies sometimes throw (#8323)

It seemed that componentDidUpdate didn't have the postRef setted yet,
thus producing an error on scrolling to highlighted reply id.
This commit fixes it by:
  1. Changing the isInViewport function signature to
     always expect the element to exist.
  2. Ensure postRef exists before scrolling into view.

* MM-36592 Fix memoization of getDirectTeammate (#8291)

* Fix memoization of getDirectTeammate

* Remove leftover debug code

* MM-36595 Reduced re-rendering of Reaction components (#8293)

* Reduced re-rendering of Reaction components

* Fix unit tests and revert aria-label in read-only channels

* MM-36612: opening channel switcher while in threads throws (#8324)

Current channel doesn't exist when in global threads, so channel
switcher throws error.
This commit fixes that error.

* [MM-36618] Save skin tone to preferences (#8322)

* switch to preferences, rename functions

* adress review comments

* [MM-36714] - Renew Now button in announcement bar lost its styling (#8321)

* MM-36683 - align announcement bar close button to the right (#8312)

* MM-36683 - align announcement bar close button to the right

* remove duplicated properties

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* Prevent trackedSelectors from holding a reference to old selectors (#8336)

* MM-36391: navigates to threads on shortcut ALT+ARROW (#8278)

* MM-36391: navigates to threads on shortcut ALT+ARROW

ALT+UP/DOWN switches channels in the left sidebar,
but it won't switch to global threads when CRT is on.

This commit enables switching to global threads as well.

* Suppress RHS on navigating to threads via shortcut

* Suppresses RHS on mount

We should only have to suppressRHS on global_threads mount and
unsuppressRHS on unmount.

* Fixes lint issues

* Supports selecting non-channel items in LHS

Adds:
  - a reducer for selected LHS items, these items can be either channel
    ids or constants defined in NonChannelLHSItem enum. Channels are set
    as selected items the same way as before (via selectChannel).
  - a selector for getting the currently selected LHS item.
  - an action for setting non channel pages as selected in the LHS.

Changes:
  - sidebar_channel_list now supports currentItem and not
    currentChannelId, so we can use non channel pages as well.

* Fixes tests

* Revert "Supports selecting non-channel items in LHS"

This reverts commit 87ab1996547435aec03350726f8fb92e4ba4d760.

* [MM-36613] Adapt to mobile view (#8334)

* adapt to mobile view

* make css linter happy

* Add Markdown fields to app forms (#8171)

* Add Markdown fields to app forms

* Handle better readonly and default values on commands

* MM-35439: CRT, clicking x unread threads (#8333)

* MM-35439: CRT, clicking x unread threads

Clicking x unread threads in global threads was a no-op.

This commit changes that so the first unread thread is selected and the
Unreads tab is selected.

* Update components/threading/global_threads/global_threads.tsx

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* promote e2e to prod (#8326)

* fix failed Cypress tests (#8325)

* MM-36609 Reduce recomputations of haveIChannelPermission and getMyChannelPermissions selectors during typing and other state changes (#8302)

* Add channel roles reducer to frontload role computation

* Update channel and team permission selectors to reduce recomputation

* Fix tests

* Fix more tests

* Translations update from Weblate (#8346)

* Translated using Weblate (German)

Currently translated at 86.7% (4157 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

Translated using Weblate (German)

Currently translated at 86.1% (4121 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

Translated using Weblate (German)

Currently translated at 86.1% (4121 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Translated using Weblate (Swedish)

Currently translated at 99.9% (4790 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

Translated using Weblate (Swedish)

Currently translated at 100.0% (4786 of 4786 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (Dutch)

Currently translated at 99.7% (4782 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 99.9% (4792 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Translated using Weblate (English (Australia))

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 99.7% (4782 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 94.2% (4517 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/

* Translated using Weblate (Japanese)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/

Co-authored-by: jprusch <rs@schaeferbarthold.de>
Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se>
Co-authored-by: Tom De Moor <tom@controlaltdieliet.be>
Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <csaba.toth@online-erp.hu>
Co-authored-by: Matthew Williams <Matthew.Williams@outlook.com.au>
Co-authored-by: Kaya Zeren <kayazeren@gmail.com>
Co-authored-by: aeomin <lin@aeomin.net>
Co-authored-by: kaakaa <stooner.hoe@gmail.com>
Co-authored-by: Elias  Nahum <elias@mattermost.com>

* Add ellipsis to channel suggestions and channel selector in forms and interactive dialogs (#8274)

* Add ellipsis to channel suggestions and channel selector in forms and interactive dialogs

* Refactor suggestions

* Fix unit tests

* Fix e2e and remove team switcher

* Fix lint

* fix lint and i18n

* Fix test

* Fix Command parser (#8348)

* Add markdown to apps field descriptions in forms and commands (#8219)

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>

* [MM-36128] Enable 'Set Status' button if the custom status hasn't changed from currently set status (#8307)

* don't disable set status button if status is not changed

* change color of disabled button and do nothing on hover when disabled

* fix propertis order

* Update NOTICE.txt (#8357)

* [MM-34330] Migrate 'components/at_mention' and associated tests to TypeScript  (#8236)

* ref: migrate at_mention to typescript

* update tests

* [MM-35249] Ensure window size is at least 0 before checking for mobile (#8356)

* Fixed: overflowing text now truncates (#8319)

* Allow uploading .jpeg files on Linux (#8360)

Automatic Merge

* suggest only skintones along user skin tone selection (#8339)

* [MM-36734] - Include Support Email step to Cloud Admin Onboarding (#8337)

* [MM-36734] - Include Support Email step to Cloud Admin Onboarding

* validate email

* feedback impl-1

* add test

* fix

* lint

* fix test

* feddback impl maria

* feedback impl pablo

* last feedback

* MM-36692: tracks CRT display setting on/off (#8335)

* Cypress/e2e/Fixed emoji test case (#8372)

* fixed custom emoji test case

* fixed lint

* MM-36740 - fix close button styling (#8366)

* fixed mis-styled close button by wrapping class definition in `.app__body` class to increase specificity

* make linter happy :D

* fix linting errors

* reverting package-lock.json

* fix linting errors again

* MM-36731 - ux changes to cloud starter flat fee (#8341)

* MM-36731 - ux changes to cloud starter flat fee

* add ux pr suggested changes

* prevent purchase modal to fail on first render

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* [MM-36313] - Fix hardcoded value for about modal border (#8349)

* [MM-36313] - Fix hardcoded value for about modal border

* Switch to rgb

Co-authored-by: Nevyana <nevyana@Nevyanas-MacBook-Pro-2.local>

* Add .stylelintignore (#8364)

* fixed post menu test case (#8377)

* Handle user and channels on the command provider (#8148)

* Handle user and channels on the command provider

* Address feedback and handle mentions inside text values and for non app commands.

* Address feedback

* Separate apps parser from command parser

* Address feedback

* Fix lint

* (chore) Cypress/E2E: fix e2e scripts instruction (#8379)

* fix e2e instruction

* fix lint error

* fix timeout error when running cypress against recently_used_emoji_spec (#8378)

* upgrade cypress to 7.7.0 and other dependecies (#8380)

* MM36936 - fix cloud subscribe api URI path (#8381)

Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com>

* fixed markdown text and basic options test cases (#8383)

* Translations update from Weblate (#8384)

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/

* Translated using Weblate (German)

Currently translated at 88.0% (4228 of 4802 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

Translated using Weblate (German)

Currently translated at 86.7% (4159 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/

* Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4802 of 4802 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (4802 of 4802 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4795 of 4795 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4795 of 4795 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 99.9% (4793 of 4795 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

Translated using Weblate (Hungarian)

Currently translated at 100.0% (4794 of 4794 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/hu/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (4802 of 4802 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

Translated using Weblate (Dutch)

Currently translated at 100.0% (4795 of 4795 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/

* Translated using Weblate (Turkish)

Currently translated at 100.0% (4802 of 4802 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (4795 of 4795 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/

* Translated using Weblate (English (Australia))

Currently translated at 100.0% (4802 of 4802 strings)

Translation: mattermost-languages-shipped/mattermost-webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/

Translated using Weblate (English (Austr…
@ceesvanegmond
Copy link

ceesvanegmond commented Aug 26, 2021

@jgilliam17 So updated to this version of MM, but the ordering is maybe weird? Previously DMs were higher in the list. Now they are not anymore so you cannot switch easily to the DM. I feel this great feature is los now becauste the ordering is different. I would suggest ordering DMS (eg unreads) first, and then the ordering how it is right now.
Schermafbeelding_2021-08-26_om_09_16_18

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
4: Reviews Complete All reviewers have approved the pull request Changelog/Done Required changelog entry has been written Docs/Done Required documentation has been written release-note
Projects
None yet
8 participants