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

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

Merged
merged 20 commits into from
May 26, 2021

Conversation

pvev
Copy link
Contributor

@pvev pvev commented May 17, 2021

Summary

This PR adds the multiple sku options support to the purchase modal page. Now customers will be able to subscribe to a different cloud tier directly from the webapp.

Ticket Link

Screenshots

Captura de pantalla 2021-05-14 a las 19 09 52

Release Note

NONE

@pvev pvev changed the title Mm 35435 add multiple SKU options to purchase modal MM-35435 - add multiple SKU options to purchase modal May 17, 2021
@marianunez marianunez added 1: UX Review Requires review by a UX Designer 2: Dev Review Requires review by a core commiter 3: QA Review Requires review by a QA tester labels May 17, 2021
Copy link
Member

@marianunez marianunez left a comment

Choose a reason for hiding this comment

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

Looking great @pablovelezvidal!

actions/cloud.tsx Outdated Show resolved Hide resolved
components/common/radio_group.tsx Show resolved Hide resolved
components/purchase_modal/purchase.scss Outdated Show resolved Hide resolved
components/purchase_modal/purchase_modal.tsx Outdated Show resolved Hide resolved
components/purchase_modal/purchase_modal.tsx Outdated Show resolved Hide resolved
components/purchase_modal/purchase_modal.tsx Outdated Show resolved Hide resolved
components/purchase_modal/purchase_modal.tsx Outdated Show resolved Hide resolved
components/purchase_modal/purchase_modal.tsx Outdated Show resolved Hide resolved
components/purchase_modal/purchase_modal.tsx Outdated Show resolved Hide resolved
Comment on lines 76 to 78
} else if (!productId) {
selectedProduct = products[keys[0]];
}
Copy link
Member

Choose a reason for hiding this comment

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

This check if no productId, doesn't seem related to this for each loop, should we check this at the beginning and return early?

components/purchase_modal/purchase_modal.tsx Show resolved Hide resolved
@@ -712,7 +712,7 @@ exports[`components/threading/channel_threads/thread_footer should report total
values={
Object {
"formatted": <Memo(SemanticTime)
aria-label="Tue Sep 29 2020 02:30:15 GMT+0000"
aria-label="Tue Sep 29 2020 04:30:15 GMT+0200"
Copy link
Member

Choose a reason for hiding this comment

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

Are these changes in this thread snap related to this PR?

Comment on lines 73 to 74
isFreeTrial = true;
daysLeftOnTrial = 10;
Copy link
Member

Choose a reason for hiding this comment

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

We may need to remove this dev testing lines

@pvev
Copy link
Contributor Author

pvev commented May 20, 2021

/update-branch

@pvev pvev requested a review from marianunez May 20, 2021 13:52
Copy link
Member

@marianunez marianunez left a comment

Choose a reason for hiding this comment

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

Great work @pablovelezvidal!

Comment on lines 76 to 78
let selectedProduct = null;
if (keys.length > 1) {
// here find the product by the provided id, otherwise return the one with Professional in the name
Copy link
Member

Choose a reason for hiding this comment

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

Given that we already check for key.length above this can probably be removed as well and to simplify even further we can just initialized with the first one and replace in the loop if found.

Suggested change
let selectedProduct = null;
if (keys.length > 1) {
// here find the product by the provided id, otherwise return the one with Professional in the name
let selectedProduct = products[keys[0]];;
if (keys.length > 1) {
// here find the product by the provided id, otherwise return the one with Professional in the name

Comment on lines 85 to 88

if (!selectedProduct) {
selectedProduct = products[keys[0]];
}
Copy link
Member

Choose a reason for hiding this comment

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

We may be able to remove this based on the above comment

@annelieseklein
Copy link

Looks great @pablovelezvidal ! Just a few questions/comments:

  1. What is the size of the plan selector card on the right hand side? In the design I have 270px, but it looks wider here.
  2. The copy below the "Subscribe" button looks a bit darker than what is in the design. I have 72% opacity of the center channel text.
  3. The color of the radio buttons here also looks darker than what I have in the design.
  4. Here it says "Mattermost Cloud Starter....". In the design I have just "Cloud Starter" but I'm not sure if we should already be updating it to just say "Starter" based on the packaging changes coming June 16? @marianunez

@pvev
Copy link
Contributor Author

pvev commented May 24, 2021

Looks great @pablovelezvidal ! Just a few questions/comments:

  1. What is the size of the plan selector card on the right hand side? In the design I have 270px, but it looks wider here.
  2. The copy below the "Subscribe" button looks a bit darker than what is in the design. I have 72% opacity of the center channel text.
  3. The color of the radio buttons here also looks darker than what I have in the design.
  4. Here it says "Mattermost Cloud Starter....". In the design I have just "Cloud Starter" but I'm not sure if we should already be updating it to just say "Starter" based on the packaging changes coming June 16? @marianunez

Thanks for the feedback @annelieseklein, here are my updates:

  1. Changed in the latest commit.
  2. Changed in the latest commit.
  3. Changed in the latest commit. One thing to note, the result is the unique height/width that you can manipulate to a radio button by using CSS. This because radio buttons are native elements and their look and feel is specific to each browser and OS. So, the workaround to get the radio button styled has to stay the same size/height of the original button displayed by the browser. Also, check the attached image on how it will display on Firefox. On this round that is the best we can do to style those radio buttons.
  4. thoughts @marianunez ?

Chrome:

Captura de pantalla 2021-05-24 a las 17 25 33

Safari:
Captura de pantalla 2021-05-24 a las 17 26 24

Firefox:
Captura de pantalla 2021-05-24 a las 17 54 23

@marianunez
Copy link
Member

4. Here it says "Mattermost Cloud Starter....". In the design I have just "Cloud Starter" but I'm not sure if we should already be updating it to just say "Starter" based on the packaging changes coming June 16? @marianunez

Yes, this name is coming from the products we define in Stripe. We will adjust the name to say "Cloud Starter" or "Starter" based on the final decision for this screen. This will be done in the backend and not related to this PR. Just let us know what is the final copy @annelieseklein

@amyblais amyblais removed the 1: UX Review Requires review by a UX Designer label May 25, 2021
@amyblais
Copy link
Member

@nickmisasi Kind reminder for PR review.

@amyblais amyblais removed the 2: Dev Review Requires review by a core commiter label May 26, 2021
@pvev pvev requested a review from stevemudie May 26, 2021 14:01
@stevemudie stevemudie added the Setup Cloud + CWS Test Server Setup a test server linked to the CWS test portal label May 26, 2021
Copy link
Contributor

@stevemudie stevemudie left a comment

Choose a reason for hiding this comment

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

Will test post merge.

@stevemudie stevemudie added QA Deferred Agreement with QA that these changes will be tested post-merge and removed 3: QA Review Requires review by a QA tester Setup Cloud + CWS Test Server Setup a test server linked to the CWS test portal labels May 26, 2021
@mm-cloud-bot
Copy link

Test server destroyed

@pvev pvev merged commit aa8678f into master May 26, 2021
@pvev pvev deleted the MM-35435-add-multiple-sku-options-to-purchase-modal branch May 26, 2021 16:06
@amyblais
Copy link
Member

@pablovelezvidal If this is for the next Cloud release, it will need to be cherry-picked to the cloud branch.

@marianunez
Copy link
Member

@amyblais This would be for Cloud June 16th release so it will probably make it in the next FF

@amyblais amyblais added Changelog/Not Needed Does not require a changelog entry Docs/Not Needed Does not require documentation labels Jun 2, 2021
isacikgoz added a commit that referenced this pull request Jun 7, 2021
…8218)

* [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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

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

* adding cypress tests for data retention

Co-authored-by: Benjamin Cooke <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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#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 f7dbe85.

* improve the findProduct function

* reorganize return value

* style improvements based on UX feedback

Co-authored-by: Pablo Velez Vidal <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Zsolt Godó <[email protected]>
Co-authored-by: Elisabeth Kulzer <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Michał Sobkiewicz <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: Pierre JENICOT <[email protected]>

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

* ref: migrate announcement_bar to ts (#8133)

Co-authored-by: Maria A Nunez <[email protected]>

* 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 f7dbe85.

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

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

Co-authored-by: Pablo Velez Vidal <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: matthew-w <[email protected]>

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

Co-authored-by: Manoj <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Remove extra spaces

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Adding test for MM-T2372 Deleting

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

* resolve conflicts

Co-authored-by: Yulyana <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>

* lint fixup: remove padding blank line from function block

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* rev

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: kaakaa <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>

Co-authored-by: Nev Angelova <[email protected]>
Co-authored-by: Nevyana Angelova <[email protected]>
Co-authored-by: Mattermod <[email protected]>
Co-authored-by: Ben Cooke <[email protected]>
Co-authored-by: Benjamin Cooke <[email protected]>
Co-authored-by: Carlos Tadeu Panato Junior <[email protected]>
Co-authored-by: Harrison Healey <[email protected]>
Co-authored-by: Eli Yukelzon <[email protected]>
Co-authored-by: Pablo Andrés Vélez Vidal <[email protected]>
Co-authored-by: Pablo Velez Vidal <[email protected]>
Co-authored-by: Md_ZubairAhmed <[email protected]>
Co-authored-by: Carrie Warner (Mattermost) <[email protected]>
Co-authored-by: Kyriakos Z <[email protected]>
Co-authored-by: Joseph Baylon <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Weblate (bot) <[email protected]>
Co-authored-by: wget <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Zsolt Godó <[email protected]>
Co-authored-by: Elisabeth Kulzer <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Michał Sobkiewicz <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: Pierre JENICOT <[email protected]>
Co-authored-by: defectivepixel <[email protected]>
Co-authored-by: Maria A Nunez <[email protected]>
Co-authored-by: Chetanya Kandhari <[email protected]>
Co-authored-by: Devin Binnie <[email protected]>
Co-authored-by: Manoj Malik <[email protected]>
Co-authored-by: Weblate (bot) <[email protected]>
Co-authored-by: matthew-w <[email protected]>
Co-authored-by: Manoj <[email protected]>
Co-authored-by: Michel Engelen <[email protected]>
Co-authored-by: Jesse Hallam <[email protected]>
Co-authored-by: Yulyana <[email protected]>
Co-authored-by: Yulyana <[email protected]>
Co-authored-by: Malik <[email protected]>
Co-authored-by: James Addison <[email protected]>
Co-authored-by: Asaad Mahmood <[email protected]>
Co-authored-by: kaakaa <[email protected]>
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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

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

* adding cypress tests for data retention

Co-authored-by: Benjamin Cooke <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Zsolt Godó <[email protected]>
Co-authored-by: Elisabeth Kulzer <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Michał Sobkiewicz <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: Pierre JENICOT <[email protected]>

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

* ref: migrate announcement_bar to ts (#8133)

Co-authored-by: Maria A Nunez <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

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

Co-authored-by: Pablo Velez Vidal <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: matthew-w <[email protected]>

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

Co-authored-by: Manoj <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Remove extra spaces

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Adding test for MM-T2372 Deleting

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

* resolve conflicts

Co-authored-by: Yulyana <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>

* lint fixup: remove padding blank line from function block

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* rev

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: kaakaa <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>

* [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 <[email protected]>
Co-authored-by: Guillermo Vayá <[email protected]>

* [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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>
Co-authored-by: Elisabeth Kulzer <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Remove extra spaces

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Adding test for MM-T2372 Deleting

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Guillermo Vayá <[email protected]>

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

Co-authored-by: Guillermo Vayá <[email protected]>

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

Co-authored-by: Guillermo Vayá <[email protected]>

* rev

* rev3

Co-authored-by: Joseph Baylon <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Guillermo Vayá <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* [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 <[email protected]>
Co-authored-by: kaakaa <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: Zsolt Godó <[email protected]>
Co-authored-by: Matthew Williams <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Pierre JENICOT <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* [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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <[email protected]>
Co-authored-by: aeomin <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: kaakaa <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>

* 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 <[email protected]>

Co-authored-by: Manoj <[email protected]>
Co-authored-by: Daniel Espino García <[email protected]>

* 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á <[email protected]>

* 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 <[email protected]>
Co-authored-by: Guillermo Vayá <[email protected]>

* 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 <[email protected]>

* Add app icon to Marketplace (#8187)

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

Co-authored-by: Pablo Velez Vidal <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* [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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

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

* adding cypress tests for data retention

Co-authored-by: Benjamin Cooke <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Zsolt Godó <[email protected]>
Co-authored-by: Elisabeth Kulzer <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Michał Sobkiewicz <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: Pierre JENICOT <[email protected]>

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

* ref: migrate announcement_bar to ts (#8133)

Co-authored-by: Maria A Nunez <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

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

Co-authored-by: Pablo Velez Vidal <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: matthew-w <[email protected]>

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

Co-authored-by: Manoj <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Remove extra spaces

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Adding test for MM-T2372 Deleting

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

* resolve conflicts

Co-authored-by: Yulyana <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>

* lint fixup: remove padding blank line from function block

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* rev

Co-authored-by: Saturnino Abril <[email protected]>

* 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 <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: kaakaa <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>

* [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 <[email protected]>
Co-authored-by: Guillermo Vayá <[email protected]>

* [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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Mattermod <[email protected]>
Co-authored-by: Elisabeth Kulzer <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Remove extra spaces

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

* Adding test for MM-T2372 Deleting

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Joseph Baylon <[email protected]>

* 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 <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Joseph Baylon <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Saturnino Abril <[email protected]>

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

Co-authored-by: Guillermo Vayá <[email protected]>

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

Co-authored-by: Guillermo Vayá <[email protected]>

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

Co-authored-by: Guillermo Vayá <[email protected]>

* rev

* rev3

Co-authored-by: Joseph Baylon <[email protected]>
Co-authored-by: Saturnino Abril <[email protected]>
Co-authored-by: Guillermo Vayá <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* [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 <[email protected]>
Co-authored-by: kaakaa <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: Zsolt Godó <[email protected]>
Co-authored-by: Matthew Williams <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Pierre JENICOT <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* [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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: MArtin Johnson <[email protected]>
Co-authored-by: Tom De Moor <[email protected]>
Co-authored-by: Tóth Csaba // Online ERP Hungary Kft <[email protected]>
Co-authored-by: aeomin <[email protected]>
Co-authored-by: Nikolai Zahariev <[email protected]>
Co-authored-by: kaakaa <[email protected]>
Co-authored-by: Kaya Zeren <[email protected]>

* 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 <[email protected]>

Co-authored-by: Manoj <[email protected]>
Co-authored-by: Daniel Espino García <[email protected]>

* 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á <[email protected]>

* 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 <[email protected]>
Co-authored-by: Guillermo Vayá <[email protected]>

* 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 <[email protected]>

* Add app icon to Marketplace (#8187)

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

Co-authored-by: Pablo Velez Vidal <[email protected]>
Co-authored-by: Mattermod <[email protected]>

* [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 <[email protected]>

* 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…
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Changelog/Not Needed Does not require a changelog entry Docs/Not Needed Does not require documentation QA Deferred Agreement with QA that these changes will be tested post-merge release-note-none
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants