[MM-25794] Ensure state teams and members are up-to-date (#4454)

* Ensure state teams and members are up-to-date

* Remove trailing spaces
This commit is contained in:
Miguel Alatzar 2020-06-25 20:55:44 -07:00 committed by GitHub
parent 4dff2cc80c
commit 12c29c0673
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,10 @@ import React, {PureComponent} from 'react';
import {Provider} from 'react-redux';
import {IntlProvider} from 'react-intl';
import {getMyTeams, getMyTeamMembers, selectTeam} from '@mm-redux/actions/teams';
import {selectDefaultTeam} from '@actions/views/select_team';
import {selectDefaultChannel, loadChannelsForTeam} from '@actions/views/channel';
import {getTranslations} from '@i18n';
import {getCurrentLocale} from '@selectors/i18n';
import configureStore from '@store';
@ -44,14 +48,30 @@ export default class ShareApp extends PureComponent {
if (MMKVStorage) {
configureStore(MMKVStorage);
}
waitForHydration(Store.redux, () => {
const {dispatch, getState} = Store.redux;
const {currentTeamId} = getState().entities.teams;
dispatch(extensionSelectTeamId(currentTeamId));
waitForHydration(Store.redux, async () => {
await this.initTeamAndChannel(Store.redux);
this.setState({init: true});
});
}
initTeamAndChannel = async ({dispatch, getState}) => {
await dispatch(getMyTeams());
await dispatch(getMyTeamMembers());
const {myMembers} = getState().entities.teams;
if (Object.keys(myMembers).length === 0) {
dispatch(selectTeam(''));
dispatch(extensionSelectTeamId(''));
} else {
await dispatch(selectDefaultTeam());
const {currentTeamId} = getState().entities.teams;
await dispatch(loadChannelsForTeam(currentTeamId));
await dispatch(selectDefaultChannel(currentTeamId));
dispatch(extensionSelectTeamId(currentTeamId));
}
}
render() {
if (!this.state.init) {
return null;