<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MeiSaM Valizadeh</title>
    <description>The latest articles on DEV Community by MeiSaM Valizadeh (@meisam25970).</description>
    <link>https://dev.to/meisam25970</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F418378%2F7247019b-e5a2-404d-917a-32b182113fc5.jpg</url>
      <title>DEV Community: MeiSaM Valizadeh</title>
      <link>https://dev.to/meisam25970</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/meisam25970"/>
    <language>en</language>
    <item>
      <title>please help me to fix this error</title>
      <dc:creator>MeiSaM Valizadeh</dc:creator>
      <pubDate>Sat, 27 Jun 2020 20:21:05 +0000</pubDate>
      <link>https://dev.to/meisam25970/please-help-me-to-fix-this-error-413c</link>
      <guid>https://dev.to/meisam25970/please-help-me-to-fix-this-error-413c</guid>
      <description>&lt;p&gt;import React, { useState } from "react";&lt;/p&gt;

&lt;p&gt;import "./AddUser.css";&lt;br&gt;
import {&lt;br&gt;
  validate,&lt;br&gt;
  validatorRequire,&lt;br&gt;
  validatorNumber,&lt;br&gt;
} from "../../shared/util/validator";&lt;br&gt;
import { Link } from "react-router-dom";&lt;br&gt;
import * as userService from "./service";&lt;/p&gt;

&lt;p&gt;const AddUser = () =&amp;gt; {&lt;br&gt;
  const [formState, setFormaState] = useState({&lt;br&gt;
    errors: [],&lt;br&gt;
    users: [],&lt;br&gt;
  });&lt;br&gt;
  // class addUser extends Component {&lt;br&gt;
  //   componentDidMount() {&lt;br&gt;
  //     userService&lt;br&gt;
  //       .getUsers()&lt;br&gt;
  //       .then((response) =&amp;gt; this.setFormaState({ users: response.data }));&lt;br&gt;
  //   }&lt;br&gt;
  // }&lt;br&gt;
  //   componentDidMount() {&lt;/p&gt;

&lt;p&gt;// }&lt;br&gt;
  const addUserSubmitHandler = (event) =&amp;gt; {&lt;br&gt;
    event.preventDefault();&lt;br&gt;
    const errors = validateForm();&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (errors.length) {
  alert("gikhare sag");
  setFormaState({ ...formState, errors });
  return;
}
userService.addUser(formState.user);
setFormaState({ errors: [], users: userService.getUsers() });
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;const validators = {&lt;br&gt;
    code: [validatorRequire(), validatorNumber()],&lt;br&gt;
    fname: [validatorRequire()],&lt;br&gt;
    lname: [validatorRequire()],&lt;br&gt;
    phone: [validatorRequire(), validatorNumber()],&lt;br&gt;
    fee: [validatorRequire(), validatorNumber()],&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;const farsiNames = {&lt;br&gt;
    code: "کد",&lt;br&gt;
    fname: "نام",&lt;br&gt;
    lname: "نام خانوادگی",&lt;br&gt;
    phone: "شماره تماس",&lt;br&gt;
    fee: "دستمزد",&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;const changeHandler = (e) =&amp;gt; {&lt;br&gt;
    const user = {};&lt;br&gt;
    const name = e.target.name;&lt;br&gt;
    const value = e.target.value;&lt;br&gt;
    user[name] = value;&lt;br&gt;
    const errors = validate(value, validators[name], farsiNames[name]);&lt;br&gt;
    setFormaState({&lt;br&gt;
      ...formState,&lt;br&gt;
      user: { ...formState.user, ...user },&lt;br&gt;
      errors,&lt;br&gt;
    });&lt;br&gt;
  };&lt;br&gt;
  const validateForm = () =&amp;gt; {&lt;br&gt;
    let errors = [];&lt;br&gt;
    const fields = Object.keys(farsiNames);&lt;br&gt;
    for (let field of fields) {&lt;br&gt;
      const fieldErrors = validate(&lt;br&gt;
        formState.user ? formState.user[field] : undefined,&lt;br&gt;
        validators[field],&lt;br&gt;
        farsiNames[field]&lt;br&gt;
      );&lt;br&gt;
      errors = errors.concat(fieldErrors);&lt;br&gt;
    }&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return errors;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      {formState.errors.map((error, index) =&amp;gt; (&lt;br&gt;
        &lt;br&gt;
          {error}&lt;br&gt;
        &lt;br&gt;
      ))}&lt;br&gt;
      &lt;br&gt;
        
          element="input"&lt;br&gt;
          type="text"&lt;br&gt;
          id="code"&lt;br&gt;
          name="code"&lt;br&gt;
          className="code form-control m-2 col-md-1 d-block"&lt;br&gt;
          placeholder="کد"&lt;br&gt;
          onChange={changeHandler}&lt;br&gt;
        /&amp;gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    &amp;lt;input
      element="input"
      type="text"
      id="fname"
      name="fname"
      className="fname form-control m-2 col-md-2 d-block"
      placeholder="نام"
      onChange={changeHandler}
    /&amp;gt;
    &amp;lt;input
      element="input"
      type="text"
      id="lname"
      name="lname"
      className="lname form-control m-2 col-md-2 "
      placeholder="نام خانوادگی"
      onChange={changeHandler}
    /&amp;gt;
    &amp;lt;input
      element="input"
      type="text"
      id="phone"
      name="phone"
      className="phone form-control m-2 col-md-3"
      placeholder="شماره تماس"
      onChange={changeHandler}
    /&amp;gt;
    &amp;lt;input
      element="input"
      type="text"
      id="fee"
      name="fee"
      className="fee form-control col-md-3 m-2 p-3"
      placeholder="دستمزد"
      validators={[validatorRequire]}
      onChange={changeHandler}
    /&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;button className="btn btn-success mx-auto d-block mt-5"&amp;gt;
    اضافه کردن
  &amp;lt;/button&amp;gt;

  &amp;lt;div className="container mt-5"&amp;gt;
    &amp;lt;table className="table table-striped"&amp;gt;
      &amp;lt;thead&amp;gt;
        &amp;lt;tr&amp;gt;
          &amp;lt;th scope="col"&amp;gt;ردیف&amp;lt;/th&amp;gt;
          &amp;lt;th scope="col"&amp;gt;{farsiNames.code}&amp;lt;/th&amp;gt;
          &amp;lt;th scope="col"&amp;gt;{farsiNames.fname}&amp;lt;/th&amp;gt;
          &amp;lt;th scope="col"&amp;gt;{farsiNames.lname}&amp;lt;/th&amp;gt;
          &amp;lt;th scope="col"&amp;gt;{farsiNames.phone}&amp;lt;/th&amp;gt;
          &amp;lt;th scope="col"&amp;gt;{farsiNames.fee}&amp;lt;/th&amp;gt;
        &amp;lt;/tr&amp;gt;
      &amp;lt;/thead&amp;gt;

      &amp;lt;tbody&amp;gt;
        {formState.users.map((user, index) =&amp;gt; {
          return (
            &amp;lt;tr key={index}&amp;gt;
              &amp;lt;th scope="row"&amp;gt;{index + 1}&amp;lt;/th&amp;gt;
              &amp;lt;td&amp;gt;{user.code}&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;{user.fname}&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;{user.lname}&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;{user.phone}&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;{user.fee}&amp;lt;/td&amp;gt;
              &amp;lt;td&amp;gt;
                &amp;lt;Link to={"/userfee/" + user.code}&amp;gt;
                  &amp;lt;span role="button" className="btn btn-primary btn-sm"&amp;gt;
                    Edit
                  &amp;lt;/span&amp;gt;
                &amp;lt;/Link&amp;gt;
              &amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
          );
        })}
      &amp;lt;/tbody&amp;gt;
    &amp;lt;/table&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;);&lt;br&gt;
};&lt;br&gt;
export default AddUser;&lt;/p&gt;

</description>
      <category>errors</category>
    </item>
  </channel>
</rss>
