diff --git a/scm-ui/src/permissions/containers/Permissions.js b/scm-ui/src/permissions/containers/Permissions.js index a6b034e52a..03d34414eb 100644 --- a/scm-ui/src/permissions/containers/Permissions.js +++ b/scm-ui/src/permissions/containers/Permissions.js @@ -1,6 +1,7 @@ //@flow import React from "react"; import connect from "react-redux/es/connect/connect"; +import { withRouter } from "react-router-dom"; import { translate } from "react-i18next"; import { fetchPermissions, @@ -13,9 +14,14 @@ import { } from "../modules/permissions"; import Loading from "../../components/Loading"; import ErrorPage from "../../components/ErrorPage"; -import type {Permission, PermissionCollection, PermissionEntry} from "../types/Permissions"; +import type { + Permission, + PermissionCollection, + PermissionEntry +} from "../types/Permissions"; import SinglePermission from "./SinglePermission"; import CreatePermissionForm from "../components/CreatePermissionForm"; +import type { History } from "history"; type Props = { namespace: string, @@ -31,12 +37,14 @@ type Props = { createPermission: ( permission: PermissionEntry, namespace: string, - repoName: string + repoName: string, + callback?: () => void ) => void, // context props t: string => string, - match: any + match: any, + history: History }; class Permissions extends React.Component { @@ -46,6 +54,11 @@ class Permissions extends React.Component { fetchPermissions(namespace, repoName); } + permissionCreated = () => { + const { history, namespace, repoName } = this.props; + history.push(`/repo/${namespace}/${repoName}/permissions`); + }; + render() { const { loading, @@ -75,7 +88,12 @@ class Permissions extends React.Component { const createPermissionForm = hasPermissionToCreate ? ( - this.props.createPermission(permission, namespace, repoName) + this.props.createPermission( + permission, + namespace, + repoName, + this.permissionCreated() + ) } loading={loadingCreatePermission} /> @@ -145,9 +163,10 @@ const mapDispatchToProps = dispatch => { createPermission: ( permission: PermissionEntry, namespace: string, - repoName: string + repoName: string, + callback?: () => void ) => { - dispatch(createPermission(permission, namespace, repoName)); + dispatch(createPermission(permission, namespace, repoName, callback)); } }; }; @@ -155,4 +174,4 @@ const mapDispatchToProps = dispatch => { export default connect( mapStateToProps, mapDispatchToProps -)(translate("permissions")(Permissions)); +)(translate("permissions")(withRouter(Permissions)));