From 77be343e040e912216e20b559f0c2aee856052d4 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Tue, 21 Jun 2016 09:49:06 -0700 Subject: [PATCH] Fix(challenges): reset project form on submit --- .../challenges/components/project/Forms.jsx | 27 +++++++++++++++---- .../challenges/components/project/Project.jsx | 1 - .../challenges/redux/completion-saga.js | 3 --- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/common/app/routes/challenges/components/project/Forms.jsx b/common/app/routes/challenges/components/project/Forms.jsx index 13b59c3a2a..de56b08923 100644 --- a/common/app/routes/challenges/components/project/Forms.jsx +++ b/common/app/routes/challenges/components/project/Forms.jsx @@ -1,5 +1,5 @@ import React, { PropTypes } from 'react'; -import { reduxForm } from 'redux-form'; +import { resetForm, reduxForm } from 'redux-form'; import { Button, FormGroup, @@ -20,10 +20,15 @@ const propTypes = { showProjectSubmit: PropTypes.func, fields: PropTypes.object, handleSubmit: PropTypes.func, - submitChallenge: PropTypes.func + submitChallenge: PropTypes.func, + resetForm: PropTypes.func }; -const bindableActions = { submitChallenge, showProjectSubmit }; +const bindableActions = { + resetForm, + submitChallenge, + showProjectSubmit +}; const frontEndFields = [ 'solution' ]; const backEndFields = [ 'solution', @@ -64,6 +69,7 @@ export function _FrontEndForm({ fields, handleSubmit, submitChallenge, + resetForm, isSubmitting, showProjectSubmit }) { @@ -73,7 +79,12 @@ export function _FrontEndForm({ return (
( + submitChallenge(value), + resetForm('NewFrontEndProject')) + ) + } > { isSubmitting ? @@ -112,6 +123,7 @@ export function _BackEndForm({ fields: { solution, githubLink }, handleSubmit, submitChallenge, + resetForm, isSubmitting, showProjectSubmit }) { @@ -121,7 +133,12 @@ export function _BackEndForm({ return ( ( + submitChallenge(values), + resetForm('NewBackEndProject') + )) + } > { isSubmitting ? diff --git a/common/app/routes/challenges/components/project/Project.jsx b/common/app/routes/challenges/components/project/Project.jsx index deae5424cb..7e79b83505 100644 --- a/common/app/routes/challenges/components/project/Project.jsx +++ b/common/app/routes/challenges/components/project/Project.jsx @@ -39,7 +39,6 @@ export class Project extends PureComponent { isCompleted: PropTypes.bool }; - render() { const { id, diff --git a/common/app/routes/challenges/redux/completion-saga.js b/common/app/routes/challenges/redux/completion-saga.js index aab5bf0fa2..f347d0ea1a 100644 --- a/common/app/routes/challenges/redux/completion-saga.js +++ b/common/app/routes/challenges/redux/completion-saga.js @@ -12,9 +12,6 @@ import { backEndProject } from '../../../utils/challengeTypes'; import { randomCompliment } from '../../../utils/get-words'; import { postJSON$ } from '../../../../utils/ajax-stream'; -// NOTE(@BerkeleyTrue): this file could benefit from some refactoring. -// lots of repeat code - function postChallenge(url, body, username) { const saveChallenge$ = postJSON$(url, body) .retry(3)