From d5b08dd32cad5bfa6ba6b50e42c151c4a022d395 Mon Sep 17 00:00:00 2001 From: Oopscurity Date: Thu, 16 Jun 2016 23:19:43 +0300 Subject: [PATCH] Fixed an opportunity to publish duplicate posts submitting the CreatePost form many times --- src/components/create-post.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/create-post.js b/src/components/create-post.js index 73fd385d..69e57318 100644 --- a/src/components/create-post.js +++ b/src/components/create-post.js @@ -18,6 +18,7 @@ import React, { PropTypes } from 'react'; import ga from 'react-google-analytics'; +import Button from './button'; import TagIcon from './tag-icon'; import MoreButton from './more-button'; import { TAG_HASHTAG, TAG_LOCATION, TAG_SCHOOL } from '../consts/tags'; @@ -64,6 +65,7 @@ export default class CreatePost extends React.Component { super(props); this.state = { + isSubmitting: false, expanded: false, addTagModalType: null }; @@ -88,6 +90,9 @@ export default class CreatePost extends React.Component { _handleSubmit = async (event) => { event.preventDefault(); + if (this.state.isSubmitting) { + return; + } const form = this.form; @@ -95,6 +100,7 @@ export default class CreatePost extends React.Component { return; } + this.setState({ isSubmitting: true }); const data = { text: form.text.value, hashtags: this.props.hashtags.map(hashtag => hashtag.name), @@ -111,6 +117,7 @@ export default class CreatePost extends React.Component { form.text.value = ''; this._addTagModal.reset(); + this.setState({ isSubmitting: false }); }; _handleFocus = () => { @@ -225,7 +232,12 @@ export default class CreatePost extends React.Component { {expanded &&
- +
{/**/}