From 6a674f0ab98972524e7968ea4ef869d16e2ef391 Mon Sep 17 00:00:00 2001 From: Philipp Czora Date: Tue, 6 Nov 2018 11:24:01 +0100 Subject: [PATCH 1/2] Reset modify state when mounting the respective component Repo, Group, User --- scm-ui/src/groups/containers/EditGroup.js | 26 ++++++++++++++++------- scm-ui/src/groups/modules/groups.js | 8 +++++++ scm-ui/src/repos/containers/Edit.js | 11 +++++++++- scm-ui/src/repos/modules/repos.js | 9 ++++++++ scm-ui/src/users/containers/EditUser.js | 11 +++++++++- scm-ui/src/users/modules/users.js | 8 +++++++ 6 files changed, 63 insertions(+), 10 deletions(-) diff --git a/scm-ui/src/groups/containers/EditGroup.js b/scm-ui/src/groups/containers/EditGroup.js index e21731a323..f08f0c2c7a 100644 --- a/scm-ui/src/groups/containers/EditGroup.js +++ b/scm-ui/src/groups/containers/EditGroup.js @@ -2,16 +2,22 @@ import React from "react"; import { connect } from "react-redux"; import GroupForm from "../components/GroupForm"; -import { modifyGroup, fetchGroup } from "../modules/groups"; +import { + modifyGroup, + modifyGroupReset, + fetchGroup, + isModifyGroupPending, + getModifyGroupFailure +} from "../modules/groups"; import type { History } from "history"; import { withRouter } from "react-router-dom"; import type { Group } from "@scm-manager/ui-types"; -import { isModifyGroupPending, getModifyGroupFailure } from "../modules/groups"; import { ErrorNotification } from "@scm-manager/ui-components"; type Props = { group: Group, modifyGroup: (group: Group, callback?: () => void) => void, + modifyGroupReset: Group => void, fetchGroup: (name: string) => void, history: History, loading?: boolean, @@ -19,13 +25,17 @@ type Props = { }; class EditGroup extends React.Component { - groupModified = (group: Group) => () => { - this.props.fetchGroup(group.name); - this.props.history.push(`/group/${group.name}`); + componentDidMount() { + const { group, modifyGroupReset } = this.props; + modifyGroupReset(group); + } + groupModified = () => () => { + const { group, history } = this.props; + history.push(`/group/${group.name}`); }; modifyGroup = (group: Group) => { - this.props.modifyGroup(group, this.groupModified(group)); + this.props.modifyGroup(group, this.groupModified()); }; render() { @@ -59,8 +69,8 @@ const mapDispatchToProps = dispatch => { modifyGroup: (group: Group, callback?: () => void) => { dispatch(modifyGroup(group, callback)); }, - fetchGroup: (name: string) => { - dispatch(fetchGroup(name)); + modifyGroupReset: (group: Group) => { + dispatch(modifyGroupReset(group)); } }; }; diff --git a/scm-ui/src/groups/modules/groups.js b/scm-ui/src/groups/modules/groups.js index 74e7214052..87e3ef51d5 100644 --- a/scm-ui/src/groups/modules/groups.js +++ b/scm-ui/src/groups/modules/groups.js @@ -26,6 +26,7 @@ export const MODIFY_GROUP = "scm/groups/MODIFY_GROUP"; export const MODIFY_GROUP_PENDING = `${MODIFY_GROUP}_${types.PENDING_SUFFIX}`; export const MODIFY_GROUP_SUCCESS = `${MODIFY_GROUP}_${types.SUCCESS_SUFFIX}`; export const MODIFY_GROUP_FAILURE = `${MODIFY_GROUP}_${types.FAILURE_SUFFIX}`; +export const MODIFY_GROUP_RESET = `${MODIFY_GROUP}_${types.RESET_SUFFIX}`; export const DELETE_GROUP = "scm/groups/DELETE"; export const DELETE_GROUP_PENDING = `${DELETE_GROUP}_${types.PENDING_SUFFIX}`; @@ -227,6 +228,13 @@ export function modifyGroupFailure(group: Group, error: Error): Action { }; } +export function modifyGroupReset(group: Group): Action { + return { + type: MODIFY_GROUP_RESET, + itemId: group.name + }; +} + //delete group export function deleteGroup(group: Group, callback?: () => void) { diff --git a/scm-ui/src/repos/containers/Edit.js b/scm-ui/src/repos/containers/Edit.js index 1edd9bb150..816dae8de9 100644 --- a/scm-ui/src/repos/containers/Edit.js +++ b/scm-ui/src/repos/containers/Edit.js @@ -7,7 +7,8 @@ import type { Repository } from "@scm-manager/ui-types"; import { modifyRepo, isModifyRepoPending, - getModifyRepoFailure + getModifyRepoFailure, + modifyRepoReset } from "../modules/repos"; import { withRouter } from "react-router-dom"; import type { History } from "history"; @@ -16,6 +17,7 @@ import { ErrorNotification } from "@scm-manager/ui-components"; type Props = { repository: Repository, modifyRepo: (Repository, () => void) => void, + modifyRepoReset: Repository => void, loading: boolean, error: Error, @@ -25,6 +27,10 @@ type Props = { }; class Edit extends React.Component { + componentDidMount() { + const { modifyRepoReset, repository } = this.props; + modifyRepoReset(repository); + } repoModified = () => { const { history, repository } = this.props; history.push(`/repo/${repository.namespace}/${repository.name}`); @@ -61,6 +67,9 @@ const mapDispatchToProps = dispatch => { return { modifyRepo: (repo: Repository, callback: () => void) => { dispatch(modifyRepo(repo, callback)); + }, + modifyRepoReset: (repo: Repository) => { + dispatch(modifyRepoReset(repo)); } }; }; diff --git a/scm-ui/src/repos/modules/repos.js b/scm-ui/src/repos/modules/repos.js index b5016bbb43..9c7f60ce48 100644 --- a/scm-ui/src/repos/modules/repos.js +++ b/scm-ui/src/repos/modules/repos.js @@ -29,6 +29,7 @@ export const MODIFY_REPO = "scm/repos/MODIFY_REPO"; export const MODIFY_REPO_PENDING = `${MODIFY_REPO}_${types.PENDING_SUFFIX}`; export const MODIFY_REPO_SUCCESS = `${MODIFY_REPO}_${types.SUCCESS_SUFFIX}`; export const MODIFY_REPO_FAILURE = `${MODIFY_REPO}_${types.FAILURE_SUFFIX}`; +export const MODIFY_REPO_RESET = `${MODIFY_REPO}_${types.RESET_SUFFIX}`; export const DELETE_REPO = "scm/repos/DELETE_REPO"; export const DELETE_REPO_PENDING = `${DELETE_REPO}_${types.PENDING_SUFFIX}`; @@ -247,6 +248,14 @@ export function modifyRepoFailure( }; } +export function modifyRepoReset(repository: Repository): Action { + return { + type: MODIFY_REPO_RESET, + payload: { repository }, + itemId: createIdentifier(repository) + }; +} + // delete export function deleteRepo(repository: Repository, callback?: () => void) { diff --git a/scm-ui/src/users/containers/EditUser.js b/scm-ui/src/users/containers/EditUser.js index b99601f3ca..55062ecb5b 100644 --- a/scm-ui/src/users/containers/EditUser.js +++ b/scm-ui/src/users/containers/EditUser.js @@ -7,7 +7,8 @@ import type { User } from "@scm-manager/ui-types"; import { modifyUser, isModifyUserPending, - getModifyUserFailure + getModifyUserFailure, + modifyUserReset } from "../modules/users"; import type { History } from "history"; import { ErrorNotification } from "@scm-manager/ui-components"; @@ -18,6 +19,7 @@ type Props = { // dispatch functions modifyUser: (user: User, callback?: () => void) => void, + modifyUserReset: User => void, // context objects user: User, @@ -25,6 +27,10 @@ type Props = { }; class EditUser extends React.Component { + componentDidMount() { + const { modifyUserReset, user } = this.props; + modifyUserReset(user); + } userModified = (user: User) => () => { this.props.history.push(`/user/${user.name}`); }; @@ -52,6 +58,9 @@ const mapDispatchToProps = dispatch => { return { modifyUser: (user: User, callback?: () => void) => { dispatch(modifyUser(user, callback)); + }, + modifyUserReset: (user: User) => { + dispatch(modifyUserReset(user)); } }; }; diff --git a/scm-ui/src/users/modules/users.js b/scm-ui/src/users/modules/users.js index 80d8107b3e..ae8c846fe4 100644 --- a/scm-ui/src/users/modules/users.js +++ b/scm-ui/src/users/modules/users.js @@ -26,6 +26,7 @@ export const MODIFY_USER = "scm/users/MODIFY_USER"; export const MODIFY_USER_PENDING = `${MODIFY_USER}_${types.PENDING_SUFFIX}`; export const MODIFY_USER_SUCCESS = `${MODIFY_USER}_${types.SUCCESS_SUFFIX}`; export const MODIFY_USER_FAILURE = `${MODIFY_USER}_${types.FAILURE_SUFFIX}`; +export const MODIFY_USER_RESET = `${MODIFY_USER}_${types.RESET_SUFFIX}`; export const DELETE_USER = "scm/users/DELETE"; export const DELETE_USER_PENDING = `${DELETE_USER}_${types.PENDING_SUFFIX}`; @@ -228,6 +229,13 @@ export function modifyUserFailure(user: User, error: Error): Action { }; } +export function modifyUserReset(user: User): Action { + return { + type: MODIFY_USER_RESET, + itemId: user.name + }; +} + //delete user export function deleteUser(user: User, callback?: () => void) { From 9ec09c10d58f3521a912dfe413fb0dba2f9e16eb Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 7 Nov 2018 13:47:24 +0000 Subject: [PATCH 2/2] Close branch feature/fix_error_display_for_repo_edit