@@ -8,6 +8,7 @@ import {connect} from 'react-redux';
88import withErrorHandler from '../../../Hoc/WithErrorHandler/WithErrorHandler' ;
99import axios from '../../../axios-orders' ;
1010import * as actions from '../../../store/actions/index' ;
11+ import { updateObject , checkValidity } from '../../../shared/utility' ;
1112
1213class ContactData extends Component {
1314 state = {
@@ -105,46 +106,32 @@ class ContactData extends Component {
105106 ingredients : this . props . ings ,
106107 price : this . props . price ,
107108 customer : customer ,
109+ userId : this . props . userId
108110 } ;
109111 this . props . onOrderBurger ( order , this . props . token ) ;
110112 } ;
111113 inputChangedHandler = ( event , inputIdentifier ) => {
112- const updatedOrderForm = { ...this . state . orderForm } ;
113- const updatedFormElement = { ...updatedOrderForm [ inputIdentifier ] } ;
114- updatedFormElement . value = event . target . value ;
115- updatedFormElement . valid = this . checkValidity (
116- updatedFormElement . value ,
117- updatedFormElement . validation
118- ) ;
119- updatedFormElement . touched = true ;
120- updatedOrderForm [ inputIdentifier ] = updatedFormElement ;
114+
115+ const updatedFormElement = updateObject ( this . state . orderForm [ inputIdentifier ] , {
116+ value : event . target . value ,
117+ valid : checkValidity (
118+ event . target . value ,
119+ this . state . orderForm [ inputIdentifier ] . validation ) ,
120+ touched : true
121+ }
122+ )
123+
124+ const updatedOrderForm = updateObject ( this . state . orderForm , {
125+ [ inputIdentifier ] : updatedFormElement
126+ } )
127+
121128 let isFormValid = true ;
122129 for ( let orderFormElement in updatedOrderForm ) {
123130 isFormValid = updatedOrderForm [ orderFormElement ] . valid && isFormValid
124131 }
125- console . log ( 'form is valid' , isFormValid ) ;
126132 this . setState ( { orderForm : updatedOrderForm , isFormValid : isFormValid } ) ;
127133 } ;
128134
129- checkValidity ( value , rules ) {
130- let isValid = true ;
131-
132- if ( rules . required ) {
133- isValid = value !== "" && isValid ;
134- }
135- if ( rules . minLength ) {
136- isValid = value . length >= rules . minLength && isValid ;
137- }
138- if ( rules . maxLength ) {
139- isValid = value . length <= rules . maxLength && isValid ;
140- }
141- if ( rules . isEmail ) {
142- const pattern = / [ a - z A - Z 0 - 9 . ! # $ % & ' * + / = ? ^ _ ` { | } ~ - ] + @ [ a - z A - Z 0 - 9 - ] + (?: \. [ a - z A - Z 0 - 9 - ] + ) * $ / ;
143- isValid = pattern . test ( value ) && isValid ;
144- }
145- return isValid ;
146- }
147-
148135 render ( ) {
149136 const formElementsArray = [ ] ;
150137 for ( let key in this . state . orderForm ) {
@@ -189,7 +176,8 @@ return{
189176 ings : state . burgerBuilder . ingredients ,
190177 price : state . burgerBuilder . price ,
191178 loading : state . order . loading ,
192- token : state . auth . token
179+ token : state . auth . token ,
180+ userId : state . auth . userId
193181 }
194182}
195183
0 commit comments