<?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: Nitesh Shukla</title>
    <description>The latest articles on DEV Community by Nitesh Shukla (@nitesh_shukla).</description>
    <link>https://dev.to/nitesh_shukla</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%2F722656%2Fc53ab14c-db78-4252-bfa3-1d2adc3ce79b.jpeg</url>
      <title>DEV Community: Nitesh Shukla</title>
      <link>https://dev.to/nitesh_shukla</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nitesh_shukla"/>
    <language>en</language>
    <item>
      <title>React MultiStep Form</title>
      <dc:creator>Nitesh Shukla</dc:creator>
      <pubDate>Sat, 03 Sep 2022 14:26:17 +0000</pubDate>
      <link>https://dev.to/nitesh_shukla/react-multistep-form-4m93</link>
      <guid>https://dev.to/nitesh_shukla/react-multistep-form-4m93</guid>
      <description>&lt;p&gt;View on CodeSandbox-&lt;br&gt;
&lt;a href="https://codesandbox.io/s/loving-pasteur-9sbip3"&gt;https://codesandbox.io/s/loving-pasteur-9sbip3&lt;/a&gt;&lt;br&gt;
&lt;a href="https://codesandbox.io/s/loving-pasteur-9sbip3"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
**1. App.js-

`import { useState } from "react";
import StepOne from "./multistepform/step1";
import StepTwo from "./multistepform/step2";
import Summary from "./multistepform/summary";
export default function App() {
  const [step, setStep] = useState(1);
  const [userdata, setUserData] = useState({
    name: "",
    email: "",
    number: "",
    description: "",
    plan: ""
  });
  const nextStep = () =&amp;gt; {
    setStep(step + 1);
  };
  const handleForm = (e) =&amp;gt; {
    let { name, value } = e.target;
    setUserData({ ...userdata, [name]: value });
  };
  switch (step) {
    case 1:
      return (
        &amp;lt;StepOne next={nextStep} formdata={handleForm} userdata={userdata} /&amp;gt;
      );
    case 2:
      return &amp;lt;StepTwo next={nextStep} userdata={userdata} /&amp;gt;;
    case 3:
      return &amp;lt;Summary userdata={userdata} /&amp;gt;;
    default:
      return (
        &amp;lt;div&amp;gt;
          &amp;lt;h1 className="text-center mb-5 "&amp;gt;Hello User&amp;lt;/h1&amp;gt;
        &amp;lt;/div&amp;gt;
      );
  }
}
`
Step2-

`function StepOne({ next, formdata, userdata }) {
  const handleChange = (e) =&amp;gt; {
    formdata(e);
  };
  const handleSubmit = (e) =&amp;gt; {
    e.preventDefault();

    if (
      userdata?.name !== "" &amp;amp;&amp;amp;
      userdata?.email !== "" &amp;amp;&amp;amp;
      userdata?.number !== "" &amp;amp;&amp;amp;
      userdata?.description !== ""
    ) {
      next();
    } else {
      alert("All Fields Are required");
    }
  };
  return (
    &amp;lt;div className="container "&amp;gt;
      &amp;lt;h1 className="text-center mb-5 "&amp;gt;From&amp;lt;/h1&amp;gt;
      &amp;lt;form
        className="w-75 block mx-auto my-5"
        onSubmit={(e) =&amp;gt; {
          handleSubmit(e);
        }}
      &amp;gt;
        &amp;lt;div className="mb-3"&amp;gt;
          &amp;lt;div className="form-label"&amp;gt;Name&amp;lt;/div&amp;gt;
          &amp;lt;input
            className="form-control"
            type="text"
            placeholder="Enter Name"
            name="name"
            value={userdata.name}
            onChange={(e) =&amp;gt; {
              handleChange(e);
            }}
          /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="mb-3"&amp;gt;
          &amp;lt;div className="form-label"&amp;gt;Email address&amp;lt;/div&amp;gt;
          &amp;lt;input
            className="form-control"
            type="email"
            placeholder="Enter email"
            name="email"
            value={userdata.email}
            onChange={(e) =&amp;gt; {
              handleChange(e);
            }}
          /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="mb-3"&amp;gt;
          &amp;lt;div className="form-label"&amp;gt;Number&amp;lt;/div&amp;gt;
          &amp;lt;input
            className="form-control"
            type="number"
            placeholder="Enter number"
            name="number"
            value={userdata.number}
            onChange={(e) =&amp;gt; {
              handleChange(e);
            }}
          /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="mb-3"&amp;gt;
          &amp;lt;div className="form-label"&amp;gt;Description&amp;lt;/div&amp;gt;
          &amp;lt;textarea
            className="form-control"
            as="textarea"
            rows={5}
            name="description"
            value={userdata.description}
            onChange={(e) =&amp;gt; {
              handleChange(e);
            }}
          /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;button className="btn btn-primary" type="submit"&amp;gt;
          Next
        &amp;lt;/button&amp;gt;
      &amp;lt;/form&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default StepOne;
`
`const data = [
  {
    id: "1",
    Price: "$5",
    Type: "Basic"
  },
  {
    id: "2",
    Price: "$20",
    Type: "Standerd"
  },
  {
    id: "3",
    Price: "$50",
    Type: "Premium"
  }
];
function StepTwo({ next, userdata }) {
  const selectSubscription = (value) =&amp;gt; {
    userdata.plan = value;
    next();
  };
  return (
    &amp;lt;div className="container mt-5"&amp;gt;
      &amp;lt;h1 className="text-center mb-5 "&amp;gt;Choose your plan&amp;lt;/h1&amp;gt;

      &amp;lt;div className="row row-cols-1 row-cols-md-3 g-4"&amp;gt;
        {data.map((item, idx) =&amp;gt; (
          &amp;lt;div
            className="col"
            key={idx}
            onClick={() =&amp;gt; {
              selectSubscription(item.Type);
            }}
          &amp;gt;
            &amp;lt;div className="card"&amp;gt;
              &amp;lt;div className="card-body"&amp;gt;
                &amp;lt;h5 className="card-title"&amp;gt;{item.Price}&amp;lt;/h5&amp;gt;
                &amp;lt;h4&amp;gt;{item.Type}&amp;lt;/h4&amp;gt;
              &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
          &amp;lt;/div&amp;gt;
        ))}
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default StepTwo;
`
Details--

`import React from "react";

const Summary = ({ userdata }) =&amp;gt; {
  return (
    &amp;lt;div className="container mt-5"&amp;gt;
      &amp;lt;div className=" block mx-auto w-xl-50 w-lg-50 w-md-50"&amp;gt;
        &amp;lt;h1 className="text-center mb-5 "&amp;gt;Details&amp;lt;/h1&amp;gt;
        &amp;lt;div className="pb-2 mb-4 text-dark border-bottom border-secondary d-flex align-items-center justify-content-between"&amp;gt;
          &amp;lt;h3&amp;gt;Name&amp;lt;/h3&amp;gt;
          &amp;lt;h4&amp;gt;{userdata.name}&amp;lt;/h4&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="pb-2 mb-4 text-dark border-bottom border-secondary d-flex align-items-center justify-content-between"&amp;gt;
          &amp;lt;h3&amp;gt;Email&amp;lt;/h3&amp;gt;
          &amp;lt;h4&amp;gt;{userdata.email}&amp;lt;/h4&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="pb-2 mb-4 text-dark border-bottom border-secondary d-flex align-items-center justify-content-between"&amp;gt;
          &amp;lt;h3&amp;gt;Number&amp;lt;/h3&amp;gt;
          &amp;lt;h4&amp;gt;{userdata.number}&amp;lt;/h4&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="pb-2 mb-4 text-dark border-bottom border-secondary d-flex align-items-center justify-content-between"&amp;gt;
          &amp;lt;h3&amp;gt;Description&amp;lt;/h3&amp;gt;
          &amp;lt;h4&amp;gt;{userdata.description}&amp;lt;/h4&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div className="pb-2 mb-4 text-dark border-bottom border-secondary d-flex align-items-center justify-content-between"&amp;gt;
          &amp;lt;h3&amp;gt;Plan&amp;lt;/h3&amp;gt;
          &amp;lt;h4&amp;gt;{userdata.plan}&amp;lt;/h4&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};
export default Summary;
`

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a Modal Component with React</title>
      <dc:creator>Nitesh Shukla</dc:creator>
      <pubDate>Wed, 13 Oct 2021 05:38:42 +0000</pubDate>
      <link>https://dev.to/nitesh_shukla/build-a-simple-modal-component-with-react-11hh</link>
      <guid>https://dev.to/nitesh_shukla/build-a-simple-modal-component-with-react-11hh</guid>
      <description>&lt;p&gt;"&lt;a href="https://codesandbox.io/s/obixu?file=/src/styles.css"&gt;https://codesandbox.io/s/obixu?file=/src/styles.css&lt;/a&gt;"&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Simple Responsive Contact Form</title>
      <dc:creator>Nitesh Shukla</dc:creator>
      <pubDate>Sun, 10 Oct 2021 02:40:57 +0000</pubDate>
      <link>https://dev.to/nitesh_shukla/simple-responsive-contact-form-m10</link>
      <guid>https://dev.to/nitesh_shukla/simple-responsive-contact-form-m10</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/Shuklajii/embed/oNeNYym?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>css</category>
      <category>html</category>
    </item>
  </channel>
</rss>
