Skip to content
This repository was archived by the owner on May 30, 2023. It is now read-only.

Commit 8ecfa5e

Browse files
authored
Merge pull request #302 from daita-technologies/update/not-reset-form-when-create-project-fails
Update: will not reset form when create project fails
2 parents e1914a7 + 7114eb6 commit 8ecfa5e

4 files changed

Lines changed: 21 additions & 3 deletions

File tree

src/components/CreateProjectModal/index.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { projectApi } from "services";
4242

4343
import { CreateProjectDatasetValueType } from "constants/type";
4444

45+
import { selectorIsCreateProjectFailed } from "reduxes/project/selector";
4546
import {
4647
CreateProjectFields,
4748
CreateProjectModalProps,
@@ -253,6 +254,14 @@ const CreateProjectModal = function (props: CreateProjectModalProps) {
253254
setNumberOfDatasetImages(1);
254255
};
255256

257+
const isCreateProjectFailed = useSelector(selectorIsCreateProjectFailed);
258+
259+
useEffect(() => {
260+
if (isCreateProjectFailed === false) {
261+
resetFormData();
262+
}
263+
}, [isCreateProjectFailed]);
264+
256265
const onSubmitCreateProject = (fields: CreateProjectFields) => {
257266
if (
258267
datasetProjectType === EXISTING_DATASET_CREATE_PROJECT_DATASET_TYPE_VALUE
@@ -269,7 +278,6 @@ const CreateProjectModal = function (props: CreateProjectModalProps) {
269278
}
270279

271280
dispatch({ type: CREATE_PROJECT.REQUESTED, payload: fields });
272-
resetFormData();
273281
};
274282

275283
const onCloseModal = () => {

src/reduxes/project/reducer.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ const inititalState: ProjectReducerState = {
4848
isCreatingSampleProject: false,
4949
isOpenCreateProjectModal: false,
5050
isCreatingProject: false,
51+
isCreateProjectFailed: null,
5152
isFetchingProjects: null,
5253
isFetchingProjectTaskList: null,
5354
listProjects: [],
@@ -76,18 +77,23 @@ const projectReducer = (
7677
case SET_IS_OPEN_CREATE_PROJECT_MODAL:
7778
return { ...state, isOpenCreateProjectModal: payload.isOpen };
7879
case CREATE_PROJECT.REQUESTED:
79-
return { ...state, isCreatingProject: true };
80+
return { ...state, isCreatingProject: true, isCreateProjectFailed: null };
8081
case CREATE_PROJECT.SUCCEEDED: {
8182
const newListProject: Array<any> = [...state.listProjects];
8283
newListProject.unshift(payload.createdProject);
8384
return {
8485
...state,
8586
isCreatingProject: false,
87+
isCreateProjectFailed: false,
8688
listProjects: newListProject,
8789
};
8890
}
8991
case CREATE_PROJECT.FAILED:
90-
return { ...state, isCreatingProject: false };
92+
return {
93+
...state,
94+
isCreatingProject: false,
95+
isCreateProjectFailed: true,
96+
};
9197
case FETCH_LIST_PROJECTS.REQUESTED: {
9298
const { notShowLoading } = payload;
9399
return { ...state, isFetchingProjects: !notShowLoading };

src/reduxes/project/selector.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,9 @@ export const selectorCurrentTaskListInfo = (state: RootState) =>
196196
export const selectorIsCreatingSampleProject = (state: RootState) =>
197197
state.projectReducer.isCreatingSampleProject;
198198

199+
export const selectorIsCreateProjectFailed = (state: RootState) =>
200+
state.projectReducer.isCreateProjectFailed;
201+
199202
export const selectorDeleteConfirmDialogInfo = (state: RootState) =>
200203
state.projectReducer.deleteConfirmDialogInfo;
201204

src/reduxes/project/type.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ export interface ProjectReducerState {
192192
isCreatingSampleProject: boolean;
193193
isOpenCreateProjectModal: boolean;
194194
isCreatingProject: boolean;
195+
isCreateProjectFailed: boolean | null;
195196
isFetchingProjects: boolean | null;
196197
isFetchingDetailProject: boolean | null;
197198
isFetchingProjectTaskList: boolean | null;

0 commit comments

Comments
 (0)