-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Move mattermost-redux into mattermost-webapp #7723
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here are the important changes done in the webapp code. 99% of them are just rearranging imports now that mattermost-redux is considered as internal code.
@@ -3,6 +3,7 @@ | |||
|
|||
import {batchActions} from 'redux-batched-actions'; | |||
import request from 'superagent'; | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since mattermost-redux is now considered internal, the ESLint plugin for imports decided it wants changes.
import {Client4} from 'mattermost-redux/client'; | ||
import {UserProfile} from 'mattermost-redux/src/types/users'; | ||
import {UserProfile} from 'mattermost-redux/types/users'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few of these files incorrectly imported things from mattermost-redux's src directory since importing from mattermost-redux
takes it from packages/mattermost-redux/src
directly now, that needs to be changed to prevent it from trying to look at src/src
@@ -27,6 +27,8 @@ | |||
"flexsearch": "0.6.32", | |||
"flux": "4.0.1", | |||
"font-awesome": "4.7.0", | |||
"form-data": "3.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are all dependencies of mattermost-redux that we need to include ourselves now. Once we get the actual monorepo infrastructure sorted out, these will move back into the subpackages.
@@ -198,6 +207,8 @@ | |||
"text-summary" | |||
], | |||
"moduleNameMapper": { | |||
"^mattermost-redux/test/(.*)$": "<rootDir>/packages/mattermost-redux/test/$1", | |||
"^mattermost-redux/(.*)$": "<rootDir>/packages/mattermost-redux/src/$1", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is used to rewrite import statements when running in Jest. The test files need their own alias since they don't live in the src folder.
@@ -9,7 +9,7 @@ import '@testing-library/jest-dom'; | |||
global.$ = $; | |||
global.jQuery = $; | |||
global.performance = {}; | |||
global.fetch = jest.fn().mockResolvedValue({status: 200}); | |||
require('isomorphic-fetch'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously, we couldn't use fetch in webapp tests. Now we can!
Also, it might make sense to swap this for node-fetch
in the future since that's what isomorphic-fetch
uses under the hood for non-browser environments.
warns = []; | ||
errors = []; | ||
}); | ||
|
||
afterEach(() => { | ||
if (logs.length > 0 || warns.length > 0 || errors.length > 0) { | ||
const message = 'Unexpected console logs' + logs + warns + errors; | ||
if (warns.length > 0 || errors.length > 0) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor change to match how redux handled log statements in its tests. I personally think this is nicer since I tend to use console.log
while debugging tests.
@@ -20,6 +20,9 @@ | |||
"experimentalDecorators": true, | |||
"jsx": "react", | |||
"baseUrl": ".", | |||
"paths": { | |||
"mattermost-redux/*": ["packages/mattermost-redux/src/*"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This rewrites the import paths for the type checker and for VS Code's TS plugin.
@@ -245,6 +245,8 @@ var config = { | |||
path.resolve(__dirname), | |||
], | |||
alias: { | |||
'mattermost-redux/test': 'packages/mattermost-redux/test', | |||
'mattermost-redux': 'packages/mattermost-redux/src', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finally, this rewrites the import paths for Webpack, Babel, and ESLint.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And here is anything even vaguely noteworthy in the redux changes. I skipped over a few that were even less consequential, but most of this is pretty much just squashing minor type issues and such.
@@ -0,0 +1,210 @@ | |||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. | |||
// See LICENSE.txt for license information. | |||
import keyMirror from 'mattermost-redux/utils/key_mirror'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that the import paths within mattermost-redux all had to be rewritten to start with the package name. The alias let us avoid that with all the webapp code, but it's needed in here. This can hopefully be reverted once the monorepo is properly set up, but it's necessary for now.
const runLater = () => { | ||
timeout = null; | ||
if (!immediate) { | ||
Reflect.apply(func, null, args); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor change which shows up in a few places. We used to pass this
instead of null
when binding. For some reason, TypeScript complains now while TTypeScript that used to be used does not.
}); | ||
|
||
it('overwritePlugin', async () => { | ||
const data1 = fs.createReadStream('tests/setup.js'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another small change. These tests used to upload a copy of mattermost-redux's test/setup.js
for this test, but that was removed since it now uses the webapp's setup script. I don't think it's necessary to upload something other than just a string, but in case it is, I just pointed it at the webapp's setup script instead.
}); | ||
|
||
it('uploadPlugin', async () => { | ||
const testFileData = fs.createReadStream('packages/mattermost-redux/test/assets/images/test.png'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another path that needed to change since Node doesn't look at any of the import aliasing that's now set up.
import {Post} from 'mattermost-redux/types/posts'; | ||
import {IDMappedObjects} from 'mattermost-redux/types/utilities'; | ||
|
||
export function customEmoji(state: IDMappedObjects<CustomEmoji> = {}, action: GenericAction): IDMappedObjects<CustomEmoji> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There were some weird typings here before. Most of these were imported as import * as types from 'types'
which meant all of them were referred to as things like types.entities.CustomEmoji
. It wasn't strictly necessary to fix if I updated the import path, but I couldn't help myself.
return nextState; | ||
} | ||
case EmojiTypes.RECEIVED_CUSTOM_EMOJIS: { | ||
const nextState = {...state}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bunch of files wrote this sort of thing as const nextState: any = {...state};
for some reason. TypeScript didn't like that, so I removed the unnecessary type change everywhere.
const nextSet = new Set(state[channelId]); | ||
|
||
users.forEach((u: UserProfile) => nextSet.add(u.id)); | ||
nextState[channelId] = nextSet as any; // TODO the type of state should Record<string, Set<string>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one was a weird one. The type of nextSet
seems to be incorrect since everywhere else expects each entry in state
to be an array instead of a Set. Assuming the above comment isn't lying, this was only used by the mobile app, so I didn't bother fixing it now.
|
||
import {isMinimumServerVersion} from 'mattermost-redux/utils/helpers'; | ||
|
||
export function getConfig(state: GlobalState): Partial<ClientConfig> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There seems to be some argument around types for state.entities.general.config
and getConfig
since this function previously was defined as returning a full ClientConfig
but the redux state held a partial one. The partial seems correct because the client config might not be loaded or might be missing fields when not logged in, but I wasn't entirely sure about that.
It might be something to consider changing in the future when we properly type the values coming from the server instead of just sending down a load of strings.
}, | ||
); | ||
|
||
export const getTeammateNameDisplaySetting: (state: GlobalState) => string = createSelector( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The return value of this used to be nullable which the web app used to be fine with before. Now that we've merged the repos, it started complaining about type issues, so I made it not nullable and added a default value below.
const baseState = Object.assign({}, initialState, preloadedState); | ||
|
||
const store = createStore( | ||
createDevReducer(baseState, serviceReducer, appReducer) as any, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to change these invocations of createDevReducer
to return any
as well. There's definitely a better fix for this, but something is really messed up already with all these any
s thrown around in this file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good work!
I checked it it builds locally for me. All my editor stuff like jump to definition works. Seems painless.
Unfortunate that we couldn't preserve the history. I guess we will just have to blame you for everything 🙃
@hmhealey You've probably considered it already but just like to mention here. We're importing mattermost-redux in Cypress, primarily for |
@saturninoabril How often do you need to update that for new changes in mattermost-redux? Since we can't easily update the npm package until we get the monorepo fully up and running, I can look at having it bypass npm for it for the time being if that's necessary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looked through the changes and they all made sense.
Thank you and everyone who worked on this for the hard work!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Built and poked around the webapp, didn't see any obvious issues. My mac really chugged in loading the diff but what I could see looked fine! Awesome work!
Honestly, it's not often and in most cases, it can wait for the published version. However, it would be good as well to bypass the npm so that any local dev change in |
@hmhealey Here are the Cypress test results and master prod results for comparison. Failures and skipped tests are known issues. |
Sounds like the E2E tests will fit perfectly in a monorepo environment :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks excellent, @hmhealey! Looking forward to breaking this up slowly in the future :)
@@ -3914,6 +3914,7 @@ | |||
"signup.office365": "Office 365", | |||
"signup.saml.icon": "SAML Icon", | |||
"signup.title": "Create an account with:", | |||
"someting.string": "defaultString", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like a historical typo? "something"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, it's a historical typo. This string is actually just in a mattermost-redux unit test, not in the actual code, so I'm not too concerned about fixing it right now. We should probably update i18n-extract
at some point to not look at test files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is going to improve so many workflows! Thanks for all your (and others') work on this. 🔥
🎉 🎉 🎉 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Giving a 👍 to the general approach. I haven't even attempted a line-by-line review of the diff.
Yeah, I wasn't expecting anyone to review it in depth. Even reviewing the notes I took above was probably unnecessary. |
Test server destroyed |
1 similar comment
Test server destroyed |
* Translations update from Weblate (#7701) * Translated using Weblate (Dutch) Currently translated at 100.0% (4483 of 4483 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Romanian) Currently translated at 100.0% (4483 of 4483 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ro/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 98.2% (4405 of 4483 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/ * Translated using Weblate (Korean) Currently translated at 79.3% (3559 of 4483 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ko/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4483 of 4483 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (4484 of 4484 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Viorel-Cosmin Miron <cosmin@uhlhost.net> Co-authored-by: aeomin <lin@aeomin.net> Co-authored-by: Ji-Hyeon Gim <potatogim@potatogim.net> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> * [MM-20373/GH-16733] - Migrate 'components/should_verify_email' module and associated tests to TypeScript (#7433) * Migrate components/should_verify_email module and associated test file to TypeScript * Rename components/should_verify_email test snapshot file to tsx * Move type declaration of title to follow func param in components/should_verify_email Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-19925-remove role from user card (#7520) * remove role from user card * Update system_user_detail.tsx Remove commented out code. * remove unused variable Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM32642 - increase invite others visibility (#7645) * MM-32642 - increase invite others visibility * make changes based on PR comments * Modify the svg to use the theme vars * use the right variable names * change icons and use theme variables in svg * fix linter issues * fix the mm-redux hash commit * fix linter issues * fix ts weird problems * add PR comments ux suggestions * fix button styles * revert my fix for delete-channel Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * fixed background-color on hover to use theme color correctly (#7680) * Promoting regularly passing tests from 03/08 to 03/15 (#7709) * Clarify that System & Team admins can delete posts (#7544) * [MM-32429] Content Cards (#7469) * adding new card component Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * [MM-33796][MM-33780] Updating channel switcher css system console (#7696) Automatic Merge * MM32771 - improve tips and next steps cards (#7686) * MM32771 - improve tips and next steps cards * apply changes based on PR comments * fix i18n file * fix the hover state for the system console back button Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * Only use fake timers for tests that need them (#7714) * fix E2E for cloud (#7710) * MM-33907 - fix admin console heigh and show save buttons (#7715) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * [MM-32831] Change show-more background to be highlighted on permanlink views (#7636) * change show-more background to be highlighted on permanlink views * remove changeCSS usage as per review recommendation * address CR comments * fix animation timer, fix pinned post colors * changing alpha to work correctly Co-authored-by: = <=> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * remove legacy open-sans fonts, upgrade to v18 (#7661) * remove legacy open-sans fonts, upgrade to v18 Adopt the "Practical Level of Browser Support" for our Open Sans font, as outlined on https://css-tricks.com/snippets/css/using-font-face/, and effected via the [google-webfonts-helper](https://google-webfonts-helper.herokuapp.com/fonts/open-sans?subsets=cyrillic,cyrillic-ext,greek,greek-ext,latin,latin-ext,vietnamese), along with documentation on how to do this in the future. As part of this, upgrade open sans from `v13` to `v18` (not the embedded version number, but the one reported by google-webfonts-helper), and eliminating an issue with the kerning table that generated errors on Firefox. Fixes: https://mattermost.atlassian.net/browse/MM-33632 * remove unneeded zip file * MM-24009: remove redux-offline (#7648) * remove remote-redux-devtools * remove network detection * actually enable frozen stores in development * npm install --save github:mattermost/mattermost-redux#d54b2f6dbe57376ad1efe25bfabb84c1a5b6bbf6 * npm install --save github:mattermost/mattermost-redux#10a53b09bbba6b7708e97ada073b6d3be727d405 * remove redux-offline references in tests * npm install --save github:mattermost/mattermost-redux#0eb28bd2c6796bed843f829125fb18b941b8e43d * fix completely unrelated delete channel modal * npm install --save github:mattermost/mattermost-redux#a9a44d557582a5b048c72d4eb2600d7d9032b3fd Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * Fixing site_statistics_spec (#7716) * Fixing site_statistics_spec * lint fix * Cleaning up the fixed file * [MM-33648] - Remove possible confusion point after a member notifies the admin about inviting more users the "Not right now" button remains (#7711) * [MM-33648] - Possible confusion point: After a member notifies the admin about inviting more users the 'Not right now' button remains * Change svg * Update snap * Feedback impl * Fix lint rule collisions Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-29726 Allow disabling link previews from certain domains (#7479) * Add a field for restricted link preview * Add english localization for preview restriction * Add disable condition to link preview field * Change example domains text Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com> * Scrolling the logout button into view so that it is visible (#7719) * [MM-20603] Migrate components/team_settings to TypeScript (#7653) * Migrated index.js --> index.ts * Migrated team_settings.jsx --> team_settings.tsx * Removed undefined from component return type * Removed isRequired for a few props in team_general_tab.jsx * Changed updateSection function signature Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-30407: improve slow typing (#7685) * Add channel_icon for email notification redesign. (#7707) * Fix status dropdown (#7725) * Fixing status dropdown test for custom status * Forcing click to avoid unexpected failure while saving * Demoting consistently failing tests from prod to unstable (#7728) * Translations update from Weblate (#7732) * Translated using Weblate (German) Currently translated at 88.2% (3955 of 4484 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4484 of 4484 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ 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 (Polish) Currently translated at 82.4% (3699 of 4485 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/pl/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4490 of 4490 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% (4484 of 4484 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% (4488 of 4488 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% (4485 of 4485 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% (4490 of 4490 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.8% (4480 of 4485 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% (4485 of 4485 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/bg/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4490 of 4490 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 100.0% (4484 of 4484 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ Translated using Weblate (Dutch) Currently translated at 100.0% (4488 of 4488 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Japanese) Currently translated at 99.5% (4462 of 4484 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (French) Currently translated at 90.3% (4057 of 4490 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Translated using Weblate (French) Currently translated at 90.4% (4060 of 4490 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Translated using Weblate (German) Currently translated at 87.9% (3947 of 4490 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/de/ * Translated using Weblate (Spanish) Currently translated at 97.3% (4371 of 4490 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ * Translated using Weblate (French) Currently translated at 90.4% (4060 of 4490 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Michał Sobkiewicz <perceptron8@gmail.com> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> Co-authored-by: Cyril LD <c.laguilhon.debat@petitclou.de> Co-authored-by: Markus Marcinek <markus.marcinek@outlook.de> Co-authored-by: jesus.espino <jesus@mattermost.com> Co-authored-by: Nathanaël <contact@nathanaelhoun.fr> * [MM-31411][MM-32164] - Add profile picture to Direct Channels link (#7516) * [MM-31411] - Add profile picture to Direct Channels link * Resolve PR comments * Update according to new design * adjust paddings * Fix padding * Update mobile view * remove padding for webview * remove mobile check in component * Fix group icon padding * Adjust padding Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro-2.local> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> * Move mattermost-redux into mattermost-webapp (#7723) * Add changes to existing files from migration script * Add mattermost-redux files * Update CI scripts * Of course i18n-extract picked up something in the mattermost-redux tests :p * Update build Docker image to Node 14 (#7742) * [MM-33609] - Fix team icon coverage on firefox (#7734) Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> * Updating status_dropdown_spec with missing test cases (#7727) * Updating status_dropdown_spec with missing test cases * Enabling custom status by default and cleaning up the spec file * Admin guide link should be different for cloud or on-premise instances (#7752) Signed-off-by: Mario de Frutos <mario@defrutos.org> * [MM-22840/GH-14198] DMs (More dialog): show recent 20 with relative timestamp (#6913) * [MM-34183] - Getting Started Step 3 (Invite members to team) for new users on paid Workspace above 10 users are unable to invite members via email (#7745) * [MM-34183] - Getting Started Step 3 (Invite members to team) for new users on paid Workspace above 10 users are unable to invite members via email * Add some tests * Feedback impl-1 * [MM-29959] restrict 'Manage Roles' button to system admins (#7695) Automatic Merge * Remove Custom statuses feature flag (#7641) Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * fix E2E for file previews (#7754) * upgrade Cypress to v6.8.0 (#7761) * MM-34235 - remove trailing slash causing nav bar to hide (#7760) Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> * [GH-15906][MM-22844] Change channel_icon for email notification redesign. (#7762) * Change channel_icon * Rename channel_icon * [MM-33102] Don't show warning and Fix support Link on Cloud (#7756) * Dont show banner and fix link * fix extra name * fix linting * fix test * change type * update snapshot * update snapshot * MM-25140 Fix unit tests which are broken on Node 14 (#7741) * Fix async handleSubmit methods returning early * Mock PQueue in DataPrefetch tests * MM-34114 - grab users stats on demand to fix invite buttons logic (#7766) * MM-34114 - grab users stats on demand to fix invite buttons logic * Add MR suggestions changes * improve JS validation Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com> Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com> * MM-18107: Precursory refactoring and supporting code (#7744) * support fallback loading content * refactor: no results indicator * refactor: explicit channel id * refactor: rhs_search_nav * remove old no_results_indicator css * fix icon color * refactor: profile_popover action * comment line * use readily accessible channel id * dedupe * support explicit channelId in more places * update snapshots * graceful channel-less profile popover * Translations update from Weblate (#7776) * Translated using Weblate (Spanish) Currently translated at 98.7% (4436 of 4491 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 98.0% (4404 of 4490 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 98.7% (4436 of 4491 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 98.0% (4404 of 4490 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/es/ * Translated using Weblate (French) Currently translated at 90.8% (4080 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ Translated using Weblate (French) Currently translated at 90.5% (4066 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Translated using Weblate (Dutch) Currently translated at 100.0% (4491 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/nl/ * Translated using Weblate (Turkish) Currently translated at 100.0% (4491 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/tr/ * Translated using Weblate (Russian) Currently translated at 91.9% (4129 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ru/ Translated using Weblate (Russian) Currently translated at 90.9% (4084 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ru/ * Added translation using Weblate (English (Australia)) * Translated using Weblate (English (Australia)) Currently translated at 100.0% (4491 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/en_AU/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 97.7% (4389 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hans/ * Translated using Weblate (Chinese (Traditional)) Currently translated at 90.5% (4066 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/zh_Hant/ * Translated using Weblate (Korean) Currently translated at 79.2% (3560 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ko/ * Deleted translation using Weblate (English (Australia)) * Translated using Weblate (French) Currently translated at 90.7% (4077 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/fr/ * Translated using Weblate (Japanese) Currently translated at 99.5% (4472 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/ja/ * Translated using Weblate (Swedish) Currently translated at 100.0% (4491 of 4491 strings) Translation: mattermost-languages-shipped/mattermost-webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-webapp_master/sv/ Co-authored-by: jesus.espino <jesus@mattermost.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> Co-authored-by: Nathanaël <contact@nathanaelhoun.fr> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: Edward Smirnov <ed@microolap.com> Co-authored-by: Matthew Williams <en_AU@controlaltdieliet.be> Co-authored-by: aeomin <lin@aeomin.net> Co-authored-by: Yao Xie <zukerherr@gmail.com> Co-authored-by: teamzamong <heekang@korea.ac.kr> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> Co-authored-by: YorimiMochida <yuuman002@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> * Make webapp build faster. (#7779) * Removing Beta from sv and bg (#7764) * Removing Beta from sv and bg * Updated the snapshots Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> * MM-34055 Re-add border to Markdown preview (#7747) * MM-32882: Add an unread badge/marker to the Main Menu icon and the ‘Plugin Marketplace’ Menu Item (#7563) * [MM-34163][MM-34165] - UI fixes to direct channel profile pics (#7777) * [MM-34163] - UI fixes to direct channel profile pics * Update snapshot * increase status icon bg by 1px Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> Co-authored-by: Weblate (bot) <hosted@weblate.org> Co-authored-by: Tom De Moor <tom@controlaltdieliet.be> Co-authored-by: Viorel-Cosmin Miron <cosmin@uhlhost.net> Co-authored-by: aeomin <lin@aeomin.net> Co-authored-by: Ji-Hyeon Gim <potatogim@potatogim.net> Co-authored-by: Kaya Zeren <kayazeren@gmail.com> Co-authored-by: Nikolai Zahariev <nikolaiz@yahoo.com> Co-authored-by: Lucie Vrsovska <46979603+lucievr@users.noreply.github.com> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Scott Bishel <scott.bishel@mattermost.com> Co-authored-by: Pablo Andrés Vélez Vidal <pablovv2012@gmail.com> Co-authored-by: Pablo Velez Vidal <pablo.velez@mattermost.com> Co-authored-by: Michel Engelen <32863416+michelengelen@users.noreply.github.com> Co-authored-by: Prapti <praptishrestha@gmail.com> Co-authored-by: Ben Bodenmiller <bbodenmiller@gmail.com> Co-authored-by: Ben Cooke <benkcooke@gmail.com> Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> Co-authored-by: Asaad Mahmood <asaadmahmood@users.noreply.github.com> Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com> Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com> Co-authored-by: Guillermo Vayá <guillermo.vaya@mattermost.com> Co-authored-by: Jesse Hallam <jesse.hallam@gmail.com> Co-authored-by: Allan Guwatudde <guwats10@gmail.com> Co-authored-by: Berke Kalkan <42390512+berkeka@users.noreply.github.com> Co-authored-by: David Janda <djanda97@gmail.com> Co-authored-by: Jyoti Patel <36148363+jp0707@users.noreply.github.com> Co-authored-by: Elisabeth Kulzer <elisabeth.kulzer@mattermost.com> Co-authored-by: Michał Sobkiewicz <perceptron8@gmail.com> Co-authored-by: MArtin Johnson <martinjohnson@bahnhof.se> Co-authored-by: kaakaa <stooner.hoe@gmail.com> Co-authored-by: Pierre JENICOT <pierre.jenicot@ac-lille.fr> Co-authored-by: Cyril LD <c.laguilhon.debat@petitclou.de> Co-authored-by: Markus Marcinek <markus.marcinek@outlook.de> Co-authored-by: jesus.espino <jesus@mattermost.com> Co-authored-by: Nathanaël <contact@nathanaelhoun.fr> Co-authored-by: Nev Angelova <nevy.angelova@gmail.com> Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro-2.local> Co-authored-by: Nevyana Angelova <nevyangelova@Nevyanas-MacBook-Pro.local> Co-authored-by: Mario de Frutos Dieguez <mario@defrutos.org> Co-authored-by: Caleb Roseland <caleb.roseland@mattermost.com> Co-authored-by: Max Erenberg <max.erenberg@mattermost.com> Co-authored-by: Jesús Espino <jespinog@gmail.com> Co-authored-by: Hossein <hahmadia@users.noreply.github.com> Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com> Co-authored-by: Guillermo Vayá <guivaya@gmail.com> Co-authored-by: Edward Smirnov <ed@microolap.com> Co-authored-by: Matthew Williams <en_AU@controlaltdieliet.be> Co-authored-by: Yao Xie <zukerherr@gmail.com> Co-authored-by: teamzamong <heekang@korea.ac.kr> Co-authored-by: YorimiMochida <yuuman002@gmail.com> Co-authored-by: Elisabeth Kulzer <elikul@elikul.de> Co-authored-by: ctlaltdieliet <github3@controlaltdieliet.be> Co-authored-by: catalintomai <56169943+catalintomai@users.noreply.github.com>
I don't know what exactly can be done to review this as a dev, so feel free to look at the migration scripts and browse the git branch to make sure everything seems to be in the right place. I put the changes to existing web app files in their own commit in case you wanted to view those separately.
I've also assigned more reviewers than necessary just so that everyone's aware of what's changing and in case anyone's curious how it might affect them. Ideally, little of this should affect anyone negatively minus having to hop between repos when browsing history.
Also, I know this'll inflate my lines added count, but I had to do something to catch up to Saturn and Christopher 🙃.