Fix team switch (#4851)
* Fix team switch * Fix channel switching by using BrowserStore * Fixes plt-5076 and plt-5068 * Updating styles for Teams sidebar (#4875)
Этот коммит содержится в:
@@ -53,6 +53,8 @@ export function emitChannelClickEvent(channel) {
|
||||
trackPage();
|
||||
});
|
||||
|
||||
BrowserStore.setGlobalItem(chan.team_id, chan.id);
|
||||
|
||||
AppDispatcher.handleViewAction({
|
||||
type: ActionTypes.CLICK_CHANNEL,
|
||||
name: chan.name,
|
||||
@@ -542,7 +544,11 @@ export function emitBrowserFocus(focus) {
|
||||
export function redirectUserToDefaultTeam() {
|
||||
const teams = TeamStore.getAll();
|
||||
const teamMembers = TeamStore.getMyTeamMembers();
|
||||
let teamId = PreferenceStore.get('last', 'team');
|
||||
let teamId = BrowserStore.getGlobalItem('team');
|
||||
|
||||
function redirect(teamName, channelName) {
|
||||
browserHistory.push(`/${teamName}/channels/${channelName}`);
|
||||
}
|
||||
|
||||
if (!teams[teamId] && teamMembers.length > 0) {
|
||||
let myTeams = [];
|
||||
@@ -560,12 +566,24 @@ export function redirectUserToDefaultTeam() {
|
||||
}
|
||||
|
||||
if (teams[teamId]) {
|
||||
const channelId = PreferenceStore.get(teamId, 'channel');
|
||||
let channel = ChannelStore.getChannelById(channelId);
|
||||
if (!channel) {
|
||||
channel = 'town-square';
|
||||
const channelId = BrowserStore.getGlobalItem(teamId);
|
||||
const channel = ChannelStore.getChannelById(channelId);
|
||||
if (channel) {
|
||||
redirect(teams[teamId].name, channel);
|
||||
} else if (channelId) {
|
||||
Client.setTeamId(teamId);
|
||||
Client.getChannel(
|
||||
channelId,
|
||||
(data) => {
|
||||
redirect(teams[teamId].name, data.channel.name);
|
||||
},
|
||||
() => {
|
||||
redirect(teams[teamId].name, 'town-square');
|
||||
}
|
||||
);
|
||||
} else {
|
||||
redirect(teams[teamId].name, 'town-square');
|
||||
}
|
||||
browserHistory.push(`/${teams[teamId].name}/channels/${channel}`);
|
||||
} else {
|
||||
browserHistory.push('/select_team');
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import $ from 'jquery';
|
||||
import UserStore from 'stores/user_store.jsx';
|
||||
import TeamStore from 'stores/team_store.jsx';
|
||||
import PostStore from 'stores/post_store.jsx';
|
||||
import PreferenceStore from 'stores/preference_store.jsx';
|
||||
import ChannelStore from 'stores/channel_store.jsx';
|
||||
import BrowserStore from 'stores/browser_store.jsx';
|
||||
import ErrorStore from 'stores/error_store.jsx';
|
||||
@@ -224,11 +223,7 @@ function handleLeaveTeamEvent(msg) {
|
||||
if (TeamStore.getCurrentId() === msg.data.team_id) {
|
||||
TeamStore.setCurrentId('');
|
||||
Client.setTeamId('');
|
||||
PreferenceStore.deletePreference({
|
||||
category: 'last',
|
||||
name: 'team',
|
||||
value: msg.data.team_id
|
||||
});
|
||||
BrowserStore.removeGlobalItem(msg.data.team_id);
|
||||
GlobalActions.redirectUserToDefaultTeam();
|
||||
}
|
||||
} else {
|
||||
|
||||
Ссылка в новой задаче
Block a user