From 34c3e9e50df3dc0bc3a8d890c7fb9f999f5694ae Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Fri, 18 Nov 2016 23:21:32 +0100 Subject: Move instances of Client.updateTeam() in components to an action (#4574) * Move instances of Client.updateTeam() in components to an action * remove client from missing ones * update code per review * update per code review --- webapp/actions/team_actions.jsx | 18 ++++++++++++++++++ webapp/components/team_general_tab.jsx | 21 +++++++-------------- webapp/stores/team_store.jsx | 4 ++++ webapp/utils/constants.jsx | 1 + 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/webapp/actions/team_actions.jsx b/webapp/actions/team_actions.jsx index e0403529e..6a5cccb81 100644 --- a/webapp/actions/team_actions.jsx +++ b/webapp/actions/team_actions.jsx @@ -36,6 +36,24 @@ export function createTeam(team, onSuccess, onError) { ); } +export function updateTeam(team, onSuccess, onError) { + Client.updateTeam(team, + (rteam) => { + AppDispatcher.handleServerAction({ + type: ActionTypes.UPDATE_TEAM, + team: rteam + }); + + browserHistory.push('/' + rteam.name + '/channels/town-square'); + + if (onSuccess) { + onSuccess(rteam); + } + }, + onError + ); +} + export function removeUserFromTeam(teamId, userId, success, error) { Client.removeUserFromTeam( teamId, diff --git a/webapp/components/team_general_tab.jsx b/webapp/components/team_general_tab.jsx index 1d749f480..a5281d238 100644 --- a/webapp/components/team_general_tab.jsx +++ b/webapp/components/team_general_tab.jsx @@ -5,12 +5,11 @@ import $ from 'jquery'; import SettingItemMin from './setting_item_min.jsx'; import SettingItemMax from './setting_item_max.jsx'; -import Client from 'client/web_client.jsx'; import * as Utils from 'utils/utils.jsx'; -import TeamStore from 'stores/team_store.jsx'; import Constants from 'utils/constants.jsx'; import {intlShape, injectIntl, defineMessages, FormattedMessage, FormattedHTMLMessage} from 'react-intl'; +import {updateTeam} from 'actions/team_actions.jsx'; const holders = defineMessages({ dirDisabled: { @@ -131,10 +130,8 @@ class GeneralTab extends React.Component { var data = this.props.team; data.allow_open_invite = this.state.allow_open_invite; - Client.updateTeam(data, - (team) => { - TeamStore.saveTeam(team); - TeamStore.emitChange(); + updateTeam(data, + () => { this.updateSection(''); }, (err) => { @@ -170,10 +167,8 @@ class GeneralTab extends React.Component { var data = this.props.team; data.display_name = this.state.name; - Client.updateTeam(data, - (team) => { - TeamStore.saveTeam(team); - TeamStore.emitChange(); + updateTeam(data, + () => { this.updateSection(''); }, (err) => { @@ -205,10 +200,8 @@ class GeneralTab extends React.Component { var data = this.props.team; data.invite_id = this.state.invite_id; - Client.updateTeam(data, - (team) => { - TeamStore.saveTeam(team); - TeamStore.emitChange(); + updateTeam(data, + () => { this.updateSection(''); }, (err) => { diff --git a/webapp/stores/team_store.jsx b/webapp/stores/team_store.jsx index 858e2688e..7775a4a3a 100644 --- a/webapp/stores/team_store.jsx +++ b/webapp/stores/team_store.jsx @@ -265,6 +265,10 @@ TeamStore.dispatchToken = AppDispatcher.register((payload) => { TeamStore.appendMyTeamMember(action.member); TeamStore.emitChange(); break; + case ActionTypes.UPDATE_TEAM: + TeamStore.saveTeam(action.team); + TeamStore.emitChange(); + break; case ActionTypes.RECEIVED_ALL_TEAMS: TeamStore.saveTeams(action.teams); TeamStore.emitChange(); diff --git a/webapp/utils/constants.jsx b/webapp/utils/constants.jsx index a90c4c502..4fbf807f9 100644 --- a/webapp/utils/constants.jsx +++ b/webapp/utils/constants.jsx @@ -126,6 +126,7 @@ export const ActionTypes = keyMirror({ RECEIVED_MY_TEAM: null, CREATED_TEAM: null, + UPDATE_TEAM: null, RECEIVED_CONFIG: null, RECEIVED_LOGS: null, -- cgit v1.2.3-1-g7c22