Add selectDefaultTeam (#1613)
This commit is contained in:
parent
aebe22f58d
commit
ad21a8cfb2
3 changed files with 24 additions and 16 deletions
|
|
@ -20,10 +20,7 @@ export function handleTeamChange(teamId, selectChannel = true) {
|
|||
return;
|
||||
}
|
||||
|
||||
const actions = [
|
||||
setChannelDisplayName(''),
|
||||
{type: TeamTypes.SELECT_TEAM, data: teamId},
|
||||
];
|
||||
const actions = [setChannelDisplayName(''), {type: TeamTypes.SELECT_TEAM, data: teamId}];
|
||||
|
||||
if (selectChannel) {
|
||||
actions.push({type: ChannelTypes.SELECT_CHANNEL, data: ''});
|
||||
|
|
@ -39,14 +36,25 @@ export function handleTeamChange(teamId, selectChannel = true) {
|
|||
};
|
||||
}
|
||||
|
||||
export function selectFirstAvailableTeam() {
|
||||
export function selectDefaultTeam() {
|
||||
return async (dispatch, getState) => {
|
||||
const {teams: allTeams, myMembers} = getState().entities.teams;
|
||||
const teams = Object.keys(myMembers).map((key) => allTeams[key]);
|
||||
const firstTeam = Object.values(teams).sort((a, b) => a.display_name.localeCompare(b.display_name))[0];
|
||||
const state = getState();
|
||||
|
||||
if (firstTeam) {
|
||||
handleTeamChange(firstTeam.id)(dispatch, getState);
|
||||
const {ExperimentalPrimaryTeam} = state.entities.general.config;
|
||||
const {teams: allTeams, myMembers} = state.entities.teams;
|
||||
const teams = Object.keys(myMembers).map((key) => allTeams[key]);
|
||||
|
||||
let defaultTeam;
|
||||
if (ExperimentalPrimaryTeam) {
|
||||
defaultTeam = teams.find((t) => t.name === ExperimentalPrimaryTeam.toLowerCase());
|
||||
}
|
||||
|
||||
if (!defaultTeam) {
|
||||
defaultTeam = Object.values(teams).sort((a, b) => a.display_name.localeCompare(b.display_name))[0];
|
||||
}
|
||||
|
||||
if (defaultTeam) {
|
||||
handleTeamChange(defaultTeam.id)(dispatch, getState);
|
||||
} else {
|
||||
EventEmitter.emit(NavigationTypes.NAVIGATION_NO_TEAMS);
|
||||
}
|
||||
|
|
@ -55,5 +63,5 @@ export function selectFirstAvailableTeam() {
|
|||
|
||||
export default {
|
||||
handleTeamChange,
|
||||
selectFirstAvailableTeam,
|
||||
selectDefaultTeam,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class Channel extends PureComponent {
|
|||
connection: PropTypes.func.isRequired,
|
||||
loadChannelsIfNecessary: PropTypes.func.isRequired,
|
||||
loadProfilesAndTeamMembersForDMSidebar: PropTypes.func.isRequired,
|
||||
selectFirstAvailableTeam: PropTypes.func.isRequired,
|
||||
selectDefaultTeam: PropTypes.func.isRequired,
|
||||
selectInitialChannel: PropTypes.func.isRequired,
|
||||
initWebSocket: PropTypes.func.isRequired,
|
||||
closeWebSocket: PropTypes.func.isRequired,
|
||||
|
|
@ -62,7 +62,7 @@ class Channel extends PureComponent {
|
|||
if (this.props.currentTeamId) {
|
||||
this.loadChannels(this.props.currentTeamId);
|
||||
} else {
|
||||
this.props.actions.selectFirstAvailableTeam();
|
||||
this.props.actions.selectDefaultTeam();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -190,7 +190,7 @@ class Channel extends PureComponent {
|
|||
};
|
||||
|
||||
handleLeaveTeam = () => {
|
||||
this.props.actions.selectFirstAvailableTeam();
|
||||
this.props.actions.selectDefaultTeam();
|
||||
};
|
||||
|
||||
loadChannels = (teamId) => {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import {
|
|||
} from 'app/actions/views/channel';
|
||||
import {connection} from 'app/actions/device';
|
||||
import {recordLoadTime} from 'app/actions/views/root';
|
||||
import {selectFirstAvailableTeam} from 'app/actions/views/select_team';
|
||||
import {selectDefaultTeam} from 'app/actions/views/select_team';
|
||||
import {getTheme} from 'mattermost-redux/selectors/entities/preferences';
|
||||
|
||||
import Channel from './channel';
|
||||
|
|
@ -39,7 +39,7 @@ function mapDispatchToProps(dispatch) {
|
|||
connection,
|
||||
loadChannelsIfNecessary,
|
||||
loadProfilesAndTeamMembersForDMSidebar,
|
||||
selectFirstAvailableTeam,
|
||||
selectDefaultTeam,
|
||||
selectInitialChannel,
|
||||
initWebSocket,
|
||||
closeWebSocket,
|
||||
|
|
|
|||
Loading…
Reference in a new issue