diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2016-11-18 23:21:32 +0100 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2016-11-18 17:21:32 -0500 |
commit | 34c3e9e50df3dc0bc3a8d890c7fb9f999f5694ae (patch) | |
tree | d1583faaa2763bfd2a6c413c80a8ae625aec6918 | |
parent | 7d68434e8c4c881b900fd473a8d86647a722b133 (diff) | |
download | chat-34c3e9e50df3dc0bc3a8d890c7fb9f999f5694ae.tar.gz chat-34c3e9e50df3dc0bc3a8d890c7fb9f999f5694ae.tar.bz2 chat-34c3e9e50df3dc0bc3a8d890c7fb9f999f5694ae.zip |
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
-rw-r--r-- | webapp/actions/team_actions.jsx | 18 | ||||
-rw-r--r-- | webapp/components/team_general_tab.jsx | 21 | ||||
-rw-r--r-- | webapp/stores/team_store.jsx | 4 | ||||
-rw-r--r-- | 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, |