Reset modify state when mounting the respective component

Repo, Group, User
This commit is contained in:
Philipp Czora
2018-11-06 11:24:01 +01:00
parent ef23178fad
commit 6a674f0ab9
6 changed files with 63 additions and 10 deletions

View File

@@ -2,16 +2,22 @@
import React from "react"; import React from "react";
import { connect } from "react-redux"; import { connect } from "react-redux";
import GroupForm from "../components/GroupForm"; 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 type { History } from "history";
import { withRouter } from "react-router-dom"; import { withRouter } from "react-router-dom";
import type { Group } from "@scm-manager/ui-types"; import type { Group } from "@scm-manager/ui-types";
import { isModifyGroupPending, getModifyGroupFailure } from "../modules/groups";
import { ErrorNotification } from "@scm-manager/ui-components"; import { ErrorNotification } from "@scm-manager/ui-components";
type Props = { type Props = {
group: Group, group: Group,
modifyGroup: (group: Group, callback?: () => void) => void, modifyGroup: (group: Group, callback?: () => void) => void,
modifyGroupReset: Group => void,
fetchGroup: (name: string) => void, fetchGroup: (name: string) => void,
history: History, history: History,
loading?: boolean, loading?: boolean,
@@ -19,13 +25,17 @@ type Props = {
}; };
class EditGroup extends React.Component<Props> { class EditGroup extends React.Component<Props> {
groupModified = (group: Group) => () => { componentDidMount() {
this.props.fetchGroup(group.name); const { group, modifyGroupReset } = this.props;
this.props.history.push(`/group/${group.name}`); modifyGroupReset(group);
}
groupModified = () => () => {
const { group, history } = this.props;
history.push(`/group/${group.name}`);
}; };
modifyGroup = (group: Group) => { modifyGroup = (group: Group) => {
this.props.modifyGroup(group, this.groupModified(group)); this.props.modifyGroup(group, this.groupModified());
}; };
render() { render() {
@@ -59,8 +69,8 @@ const mapDispatchToProps = dispatch => {
modifyGroup: (group: Group, callback?: () => void) => { modifyGroup: (group: Group, callback?: () => void) => {
dispatch(modifyGroup(group, callback)); dispatch(modifyGroup(group, callback));
}, },
fetchGroup: (name: string) => { modifyGroupReset: (group: Group) => {
dispatch(fetchGroup(name)); dispatch(modifyGroupReset(group));
} }
}; };
}; };

View File

@@ -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_PENDING = `${MODIFY_GROUP}_${types.PENDING_SUFFIX}`;
export const MODIFY_GROUP_SUCCESS = `${MODIFY_GROUP}_${types.SUCCESS_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_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 = "scm/groups/DELETE";
export const DELETE_GROUP_PENDING = `${DELETE_GROUP}_${types.PENDING_SUFFIX}`; 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 //delete group
export function deleteGroup(group: Group, callback?: () => void) { export function deleteGroup(group: Group, callback?: () => void) {

View File

@@ -7,7 +7,8 @@ import type { Repository } from "@scm-manager/ui-types";
import { import {
modifyRepo, modifyRepo,
isModifyRepoPending, isModifyRepoPending,
getModifyRepoFailure getModifyRepoFailure,
modifyRepoReset
} from "../modules/repos"; } from "../modules/repos";
import { withRouter } from "react-router-dom"; import { withRouter } from "react-router-dom";
import type { History } from "history"; import type { History } from "history";
@@ -16,6 +17,7 @@ import { ErrorNotification } from "@scm-manager/ui-components";
type Props = { type Props = {
repository: Repository, repository: Repository,
modifyRepo: (Repository, () => void) => void, modifyRepo: (Repository, () => void) => void,
modifyRepoReset: Repository => void,
loading: boolean, loading: boolean,
error: Error, error: Error,
@@ -25,6 +27,10 @@ type Props = {
}; };
class Edit extends React.Component<Props> { class Edit extends React.Component<Props> {
componentDidMount() {
const { modifyRepoReset, repository } = this.props;
modifyRepoReset(repository);
}
repoModified = () => { repoModified = () => {
const { history, repository } = this.props; const { history, repository } = this.props;
history.push(`/repo/${repository.namespace}/${repository.name}`); history.push(`/repo/${repository.namespace}/${repository.name}`);
@@ -61,6 +67,9 @@ const mapDispatchToProps = dispatch => {
return { return {
modifyRepo: (repo: Repository, callback: () => void) => { modifyRepo: (repo: Repository, callback: () => void) => {
dispatch(modifyRepo(repo, callback)); dispatch(modifyRepo(repo, callback));
},
modifyRepoReset: (repo: Repository) => {
dispatch(modifyRepoReset(repo));
} }
}; };
}; };

View File

@@ -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_PENDING = `${MODIFY_REPO}_${types.PENDING_SUFFIX}`;
export const MODIFY_REPO_SUCCESS = `${MODIFY_REPO}_${types.SUCCESS_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_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 = "scm/repos/DELETE_REPO";
export const DELETE_REPO_PENDING = `${DELETE_REPO}_${types.PENDING_SUFFIX}`; 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 // delete
export function deleteRepo(repository: Repository, callback?: () => void) { export function deleteRepo(repository: Repository, callback?: () => void) {

View File

@@ -7,7 +7,8 @@ import type { User } from "@scm-manager/ui-types";
import { import {
modifyUser, modifyUser,
isModifyUserPending, isModifyUserPending,
getModifyUserFailure getModifyUserFailure,
modifyUserReset
} from "../modules/users"; } from "../modules/users";
import type { History } from "history"; import type { History } from "history";
import { ErrorNotification } from "@scm-manager/ui-components"; import { ErrorNotification } from "@scm-manager/ui-components";
@@ -18,6 +19,7 @@ type Props = {
// dispatch functions // dispatch functions
modifyUser: (user: User, callback?: () => void) => void, modifyUser: (user: User, callback?: () => void) => void,
modifyUserReset: User => void,
// context objects // context objects
user: User, user: User,
@@ -25,6 +27,10 @@ type Props = {
}; };
class EditUser extends React.Component<Props> { class EditUser extends React.Component<Props> {
componentDidMount() {
const { modifyUserReset, user } = this.props;
modifyUserReset(user);
}
userModified = (user: User) => () => { userModified = (user: User) => () => {
this.props.history.push(`/user/${user.name}`); this.props.history.push(`/user/${user.name}`);
}; };
@@ -52,6 +58,9 @@ const mapDispatchToProps = dispatch => {
return { return {
modifyUser: (user: User, callback?: () => void) => { modifyUser: (user: User, callback?: () => void) => {
dispatch(modifyUser(user, callback)); dispatch(modifyUser(user, callback));
},
modifyUserReset: (user: User) => {
dispatch(modifyUserReset(user));
} }
}; };
}; };

View File

@@ -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_PENDING = `${MODIFY_USER}_${types.PENDING_SUFFIX}`;
export const MODIFY_USER_SUCCESS = `${MODIFY_USER}_${types.SUCCESS_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_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 = "scm/users/DELETE";
export const DELETE_USER_PENDING = `${DELETE_USER}_${types.PENDING_SUFFIX}`; 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 //delete user
export function deleteUser(user: User, callback?: () => void) { export function deleteUser(user: User, callback?: () => void) {