SaveModal.js 6.07 KB
import React, { Component } from 'react'
import ReactModal from 'react-modal';

import greenCheck from '../../img/outlineGreenCheck.svg'
import alertError from '../../img/alert_error.svg'

import { FormWithConstraints, FieldFeedback } from 'react-form-with-constraints';
import { FieldFeedbacks, FormGroup, FormControlInput } from 'react-form-with-constraints/lib/Bootstrap4';

import ModalValidatingInput from './ModalValidatingInput'

import * as SelectActionCreators from '../actions/profilationSelect'
import { connect } from 'react-redux';

/*
<div className="Modal Modal-mask modal_repower Modal--save isOpen">
      <div className="Modal-wrapper">
      <div className="Modal-container" >
*/
class SaveModal extends Component {
  
  constructor(props) {
    super(props);

    this.state = {
      email:'',
      buttonDisabled: true
    };
    
    this.handleCheckbox = this.handleCheckbox.bind(this);
  }

   handleCheckbox(e){
    


    this.props.updateModalValues('activationSaveModal','privacy',{
      value:!this.props.modalContacts.activationSaveModal.privacy.value,
      valid:!this.props.modalContacts.activationSaveModal.privacy.valid,
      required:true
    })

    
  }

  

  render(){
    
     const modal='activationSaveModal'
   var complete=true;
    
    for (var property in this.props.modalContacts[modal]) {
            if ( this.props.modalContacts[modal].hasOwnProperty(property)) {

             
              //console.log('check this modal',this.props.modalContacts[modal][property])
                complete=complete&&( this.props.modalContacts[modal][property].valid|| !this.props.modalContacts[modal][property].required)
              
         }

    }
    console.log('save modal props',this.props)
    return(
      <ReactModal
          isOpen={true}
          onRequestClose={() => this.props.hideModal()}
          portalClassName='modal modal-mask modal_repower modal--save isOpen'
          overlayClassName='modal-wrapper'
          className='modal-container'
        >

          
        
          <div className="close_modal" onClick={() => this.props.hideModal()}><img src="https://d33wubrfki0l68.cloudfront.net/c0553300c767c895ee4900759828af6476c3e9e9/55953/img/closed_modal.svg" alt="" /></div>


          <div className="modal-header">
            <img src="https://d33wubrfki0l68.cloudfront.net/a6e0b3c4556ce07e9ed9c732fed7b8a4c981880b/eef1a/img/save.svg" alt="" />
            {this.props.history.location.pathname==='/activation-steps' && <h3> Salva e riprendi dopo</h3>}
            {this.props.history.location.pathname==='/solution' && <h3> Salva e attiva dopo</h3>}
          </div>

          <div className="modal-body">
            <div className="modal-body-flex">
              <div className="modal-body-left">
                <p>Grazie al codice Repower puoi recuperare la configurazione e proseguire in un secondo momento con l'attivazione dell'offerta.</p>
                <div className="wrapper_input wrapper_input--repowerCode">
                  <div className="label">codice repower</div>
                  <div className="code">AZ123XX1</div>
                </div>
                <div className="wrapper-link">
                  <p className="lighter">link diretto:</p>
                  <a href="#" className="permalink">http://energiaflat.repower.com/<span>AZ123XX1</span></a>
                </div>
              </div>

              <div className="modal-body-right">
                <div>
                  <p>Scansiona il QR code con il tuo smartphone e salva la configurazione. </p>
                </div>
                <div className="wrapper-qrQode">
                  <img src="https://d33wubrfki0l68.cloudfront.net/79edbf6591a1c8d6b6289d32eab7cf5ccafc5ade/ab691/img/qrcode.png" alt="" />
                </div>
              </div>
            </div>
            <div className="modal-footer">

           
              <h3>Preferisci ricevere il link via email?</h3>
              <div className='modal-flex-wrapper'>
              <ModalValidatingInput
                allowNonValidInput={false}
                  label={'EMAIL'}
                  pattern={"^[A-Za-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$"}
                  name={'mail'}
                  placeholder={'Email '}
                  modal={'activationSaveModal'}
              />
              <button className={!complete? "btn btn__gray no-events":"btn btn__red"}>Invia</button>
              </div>
              <div className="wrapper-checkbox">

                <input class="privacy" name="privacy" id="privacy" type="checkbox" onChange={this.handleCheckbox} value={this.props.modalContacts.activationSaveModal.privacy.value} checked={!!this.props.modalContacts.activationSaveModal.privacy.value}/>

                <label htmlFor="privacy"><span className="isCheckbox"></span>   Confermo di aver preso visione <span className=" triggher_modal privacy-modal-link" onClick={() => this.props.showModal('PRIVACY_MODAL')}>dell’informativa sulla privacy</span></label>

              </div>

              
            </div>
          </div>
        
      
        </ReactModal>
      )
  }
}

const mapStateToProps = state => {
  return {
    modalContacts: state.ProfilationSelectReducer.modalContacts,
  steps:state.ProfilationSelectReducer.steps,
  solutions:state.ProfilationSelectReducer.solutions,
  modalOpen:state.ProfilationSelectReducer.modalOpen
}};

const mapDispatchToProps = dispatch => ({
  updatePropValue: (prop,value,index,complete) => 
    dispatch(SelectActionCreators.changeValue(prop,value,index,complete)),
  updateStoreValue: (prop,value) => 
    dispatch(SelectActionCreators.changeProp(prop,value)),
    hideModal: () => 
    dispatch(SelectActionCreators.hideModal()),
    showModal: (modalName) => 
    dispatch(SelectActionCreators.showModal(modalName)),
    updateModalValues: (modal,field,value) => dispatch(SelectActionCreators.updateModalValues(modal,field,value)),
});

export default connect(mapStateToProps, mapDispatchToProps)(SaveModal);