diff --git a/packages/learn/src/redux/store.js b/packages/learn/src/redux/store.js index 2575a1ffa1..5ffa2aeb54 100644 --- a/packages/learn/src/redux/store.js +++ b/packages/learn/src/redux/store.js @@ -8,12 +8,11 @@ import { } from 'redux'; import { combineEpics, createEpicMiddleware } from 'redux-observable'; -import { reducer as formReducer } from 'redux-form'; - import { reducer as app, epics as appEpics } from './app'; import { reducer as challenge, - epics as challengeEpics + epics as challengeEpics, + formReducer } from '../templates/Challenges/redux'; import { reducer as map } from '../components/Map/redux'; import servicesCreator from './createServices'; diff --git a/packages/learn/src/templates/Challenges/redux/completion-epic.js b/packages/learn/src/templates/Challenges/redux/completion-epic.js index c038b4e178..c8ae195d92 100644 --- a/packages/learn/src/templates/Challenges/redux/completion-epic.js +++ b/packages/learn/src/templates/Challenges/redux/completion-epic.js @@ -22,7 +22,8 @@ import { challengeMetaSelector, challengeTestsSelector, closeModal, - challengeFilesSelector + challengeFilesSelector, + updateProjectFormValues } from './'; import { userSelector, @@ -95,6 +96,8 @@ function submitProject(type, state) { username, csrfToken, challengeInfo + ).pipe( + concat(of(updateProjectFormValues({}))) ); } diff --git a/packages/learn/src/templates/Challenges/redux/index.js b/packages/learn/src/templates/Challenges/redux/index.js index bd4d9780c5..1e9c3b7eb0 100644 --- a/packages/learn/src/templates/Challenges/redux/index.js +++ b/packages/learn/src/templates/Challenges/redux/index.js @@ -1,5 +1,7 @@ import { createAction, handleActions } from 'redux-actions'; +import { reducer as reduxFormReducer } from 'redux-form'; + import { createTypes } from '../../../../utils/stateManagment'; import { createPoly } from '../utils/polyvinyl'; import challengeModalEpic from './challenge-modal-epic'; @@ -268,3 +270,23 @@ export const reducer = handleActions( }, initialState ); + +const resetProjectFormValues = handleActions({ + [types.updateProjectFormValues]: (state, { payload: { solution } }) => { + if (!solution) { + return { + ...state, + solution: {}, + githubLink: {} + }; + } + return state; + } + }, + {} +); + +export const formReducer = reduxFormReducer.plugin({ + 'frond-end-form': resetProjectFormValues, + 'back-end-form': resetProjectFormValues +});