From 119a5fc20a550dca617d2bdb83c059a9acc389e8 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 16 Nov 2020 18:53:23 +0100 Subject: subscription actions --- .../app/views/viewer/forms/subscription.form.js | 30 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'animism-align/frontend/app/views/viewer/forms/subscription.form.js') diff --git a/animism-align/frontend/app/views/viewer/forms/subscription.form.js b/animism-align/frontend/app/views/viewer/forms/subscription.form.js index fcd9a38..9c84614 100644 --- a/animism-align/frontend/app/views/viewer/forms/subscription.form.js +++ b/animism-align/frontend/app/views/viewer/forms/subscription.form.js @@ -1,11 +1,18 @@ import React, { Component } from 'react' +import { connect } from 'react-redux' +import { bindActionCreators } from 'redux' import { Arrow } from '../nav/viewer.icons' +import { Loader } from 'app/common/loader.component' +import { ENV_PRODUCTION } from 'app/constants' + +import * as subscriptionActions from './subscription.actions' const initialState = { email: "", agreed: false, subscribed: false, + loading: false, } export default class SubscriptionForm extends Component { @@ -34,18 +41,32 @@ export default class SubscriptionForm extends Component { } handleSubmit(e) { e.preventDefault() - if (!this.state.agreed) { + if (!this.state.agreed || this.state.loading) { return } - this.setState({ subscribed: true }) + if (ENV_PRODUCTION) { + this.setState({ loading: true }) + subscriptionActions.subscribe(this.state.email) + .then(() => { + this.setState({ loading: false, subscribed: true }) + }) + } else { + this.setState({ loading: true }) + setTimeout(() => { + this.setState({ loading: false, subscribed: true }) + }, 1000) + } } handleReset(e) { this.setState({ ...initialState }) } render() { + let className = "subscription-form" + if (this.state.subscribed) className += " subscribed" + if (this.state.loading) className += " loading" return (
@@ -82,6 +103,9 @@ export default class SubscriptionForm extends Component { privacy policy. +
+ +
Thanks! You will receive an email soon confirming your subscription.
-- cgit v1.2.3-70-g09d2