diff --git a/scm-ui/src/users/containers/EditUser.js b/scm-ui/src/users/containers/EditUser.js index bb07424b14..3a9c4b0103 100644 --- a/scm-ui/src/users/containers/EditUser.js +++ b/scm-ui/src/users/containers/EditUser.js @@ -1,27 +1,38 @@ //@flow import React from "react"; import { connect } from "react-redux"; +import { withRouter } from "react-router-dom"; import UserForm from "./../components/UserForm"; import type { User } from "../types/User"; import { modifyUser } from "../modules/users"; +import type { History } from "history"; type Props = { user: User, - updateUser: User => void, - loading: boolean + modifyUser: (user: User, callback?: () => void) => void, + loading: boolean, + history: History }; class EditUser extends React.Component { + userModified = (user: User) => () => { + this.props.history.push(`/user/${user.name}`); + }; + + modifyUser = (user: User) => { + this.props.modifyUser(user, this.userModified(user)); + }; + render() { - const { user, updateUser } = this.props; - return updateUser(user)} user={user} />; + const { user } = this.props; + return this.modifyUser(user)} user={user} />; } } const mapDispatchToProps = dispatch => { return { - updateUser: (user: User) => { - dispatch(modifyUser(user)); + modifyUser: (user: User, callback?: () => void) => { + dispatch(modifyUser(user, callback)); } }; }; @@ -33,4 +44,4 @@ const mapStateToProps = (state, ownProps) => { export default connect( mapStateToProps, mapDispatchToProps -)(EditUser); +)(withRouter(EditUser));