11import React , { Component } from 'react'
22import posed from 'react-pose' ;
33import UserConsumer from "../context" ;
4-
5- var uniqid = require ( 'uniqid' ) ;
4+ import axios from "axios" ;
65const Animation = posed . div ( {
76 visible : {
87 opacity : 1 ,
@@ -22,25 +21,33 @@ class AddUser extends Component {
2221 visible : true ,
2322 name : "" ,
2423 department :"" ,
25- salary : ""
24+ salary : "" ,
25+ error : false
2626 }
2727 changeVisibility = ( e ) => {
2828 this . setState ( {
2929 visible :! this . state . visible
3030 } )
3131 }
32+ validateForm = ( ) => {
33+ const { name, salary, department} = this . state ;
34+ if ( name === "" || salary === "" || department === "" ) {
35+ return false ;
36+ }
37+ return true ;
38+ }
3239 changeInput = ( e ) => {
3340 this . setState ( {
3441
3542 [ e . target . name ] : e . target . value
3643 } )
3744 }
38- addUser = ( dispatch , e ) => {
45+ addUser = async ( dispatch , e ) => {
3946
4047 e . preventDefault ( ) ;
4148 const { name, department, salary} = this . state ;
4249 const newUser = {
43- id : uniqid ( ) ,
50+
4451 // name : name,
4552 // salary : salary,
4653 // department : department böyle hem anahtar hem değeri aynıysa aşağıdaki gibi yazabiliyoruz
@@ -49,8 +56,21 @@ class AddUser extends Component {
4956 salary
5057
5158 }
52- dispatch ( { type : "ADD_USER" , payload : newUser } ) ;
53- console . log ( newUser ) ;
59+
60+ if ( ! this . validateForm ( ) ) { // eğer validate formdan false değeri dönmüşse
61+ this . setState ( {
62+ error :true
63+ } )
64+ return ;
65+
66+ }
67+
68+ const response = await axios . post ( "http://localhost:3004/users" , newUser ) ;
69+
70+
71+ dispatch ( { type : "ADD_USER" , payload :response . data } ) ;
72+ //redirect tüm işlemlerimiz bittince root a gitmek istediğimizi belirrtiyoruz
73+ this . props . history . push ( "/" ) ;
5474 }
5575 // changeName = (e) => {
5676 // this.setState({
@@ -68,7 +88,7 @@ class AddUser extends Component {
6888 // })
6989 // }
7090 render ( ) {
71- const { visible, name, salary, department} = this . state ;
91+ const { visible, name, salary, department, error } = this . state ;
7292 return < UserConsumer >
7393 {
7494 value => {
@@ -83,7 +103,11 @@ class AddUser extends Component {
83103 < div className = "card-header" >
84104 < h4 > Add User Form</ h4 >
85105 </ div >
106+
86107 < div className = "card-body" >
108+ {
109+ error ? < div className = "alert alert-danger" > Lütfen Bilgilerinizi Kontrol Edin!</ div > : null
110+ }
87111 < form onSubmit = { this . addUser . bind ( this , dispatch ) } >
88112 < div className = "form-group" >
89113 < label htmlFor = "name" > Name</ label >
0 commit comments