{"componentChunkName":"component---src-templates-post-js","path":"/create-booking-forms-part-two","result":{"data":{"markdownRemark":{"html":"<p>Here we will make two components: One to get the details of the customer and another to get all the customers travelling together.</p>\n<p>In the <code class=\"language-text\">booking</code> directory create a file called <code class=\"language-text\">CustomerDetails.js</code> and add the following:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> React <span class=\"token keyword\">from</span> <span class=\"token string\">\"react\"</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> useMutation <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"@apollo/react-hooks\"</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> <span class=\"token constant\">UPDATE_FORM_DATA</span> <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../graphql/Mutations\"</span>\n<span class=\"token keyword\">import</span> HeadingOne <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/typography/HeadingOne\"</span>\n<span class=\"token keyword\">import</span> BodyOne <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/typography/BodyOne\"</span>\n<span class=\"token keyword\">import</span> RedBlockButton <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/buttons/RedBlockButton\"</span>\n<span class=\"token keyword\">import</span> RedOutlineButton <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/buttons/RedOutlineButton\"</span>\n<span class=\"token keyword\">import</span> Input <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/inputs/Input\"</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> Form <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"antd\"</span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">CustomerDetails</span> <span class=\"token operator\">=</span> <span class=\"token parameter\">props</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>props<span class=\"token punctuation\">)</span>\n\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>mutate<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useMutation</span><span class=\"token punctuation\">(</span><span class=\"token constant\">UPDATE_FORM_DATA</span><span class=\"token punctuation\">)</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span>Form\n        onValuesChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">changedValues<span class=\"token punctuation\">,</span> allValues</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n          <span class=\"token function\">mutate</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n            variables<span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n              email<span class=\"token operator\">:</span> allValues<span class=\"token punctuation\">.</span>email<span class=\"token punctuation\">,</span>\n              date<span class=\"token operator\">:</span> allValues<span class=\"token punctuation\">.</span>date<span class=\"token punctuation\">,</span>\n            <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n          <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span>\n      <span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex flex-col p-20 \"</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>HeadingOne<span class=\"token operator\">></span>Booking <span class=\"token keyword\">for</span> Listing Name<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>HeadingOne<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"mt-5\"</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>BodyOne<span class=\"token operator\">></span>Booking date<span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BodyOne<span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>Form<span class=\"token punctuation\">.</span>Item name<span class=\"token operator\">=</span><span class=\"token string\">\"date\"</span><span class=\"token operator\">></span>\n              <span class=\"token operator\">&lt;</span>Input placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"date\"</span> type<span class=\"token operator\">=</span><span class=\"token string\">\"date\"</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Form<span class=\"token punctuation\">.</span>Item<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n\n          <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"mt-5\"</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>BodyOne<span class=\"token operator\">></span> Email address <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BodyOne<span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>Form<span class=\"token punctuation\">.</span>Item name<span class=\"token operator\">=</span><span class=\"token string\">\"email\"</span><span class=\"token operator\">></span>\n              <span class=\"token operator\">&lt;</span>Input placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"doku@corrisant.io\"</span> type<span class=\"token operator\">=</span><span class=\"token string\">\"email\"</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Form<span class=\"token punctuation\">.</span>Item<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex lg:flex-row mt-5 s:flex-col\"</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>RedBlockButton\n              text<span class=\"token operator\">=</span><span class=\"token string\">\"Proceed\"</span>\n              className<span class=\"token operator\">=</span><span class=\"token string\">\"mr-5 s:mb-5 lg:mb-0\"</span>\n              onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> props<span class=\"token punctuation\">.</span><span class=\"token function\">setActiveTab</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"2\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n            <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>RedOutlineButton text<span class=\"token operator\">=</span><span class=\"token string\">\"Cancel\"</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>Form<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span><span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> CustomerDetails</code></pre></div>\n<p>🌈 Here we have a Form from Ant Design that has a <code class=\"language-text\">onValuesChange</code> event that will get all the values of the form and send it to our local resolvers for updating the cache.</p>\n<p>🌈 We then have a button that will allow the user to go to the next tab with the <code class=\"language-text\">setActiveTab</code> function we've sent down via props</p>\n<p>In the same directory create a file called <code class=\"language-text\">Customers.js</code> and add the following:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> React<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> useState <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"react\"</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> <span class=\"token constant\">UPDATE_FORM_DATA</span> <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../graphql/Mutations\"</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> <span class=\"token constant\">GET_FORM_DATA</span> <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../graphql/Queries\"</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> useMutation<span class=\"token punctuation\">,</span> useQuery <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"@apollo/react-hooks\"</span>\n<span class=\"token keyword\">import</span> BodyOne <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/typography/BodyOne\"</span>\n<span class=\"token keyword\">import</span> Input <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/inputs/Input\"</span>\n<span class=\"token keyword\">import</span> RedBlockButton <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/buttons/RedBlockButton\"</span>\n<span class=\"token keyword\">import</span> RedOutlineButton <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/buttons/RedOutlineButton\"</span>\n<span class=\"token keyword\">import</span> RemoveButton <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/buttons/RemoveButton\"</span>\n<span class=\"token keyword\">import</span> BlueBlockButton <span class=\"token keyword\">from</span> <span class=\"token string\">\"../../components/buttons/BlueBlockButton\"</span>\n\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">Customers</span> <span class=\"token operator\">=</span> <span class=\"token parameter\">props</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>customers<span class=\"token punctuation\">,</span> setCustomers<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useState</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> data <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token function\">useQuery</span><span class=\"token punctuation\">(</span><span class=\"token constant\">GET_FORM_DATA</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">const</span> <span class=\"token punctuation\">[</span>mutate<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token function\">useMutation</span><span class=\"token punctuation\">(</span><span class=\"token constant\">UPDATE_FORM_DATA</span><span class=\"token punctuation\">)</span>\n\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">addCustomer</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">const</span> o <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">...</span>customers<span class=\"token punctuation\">]</span>\n    o<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n      name<span class=\"token operator\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n      physioScore<span class=\"token operator\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n      surname<span class=\"token operator\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n      passportNumber<span class=\"token operator\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n      country<span class=\"token operator\">:</span> <span class=\"token keyword\">null</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token function\">setCustomers</span><span class=\"token punctuation\">(</span>o<span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">updateCustomer</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\"><span class=\"token punctuation\">{</span> index<span class=\"token punctuation\">,</span> field<span class=\"token punctuation\">,</span> value <span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">const</span> o <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">...</span>customers<span class=\"token punctuation\">]</span>\n    o<span class=\"token punctuation\">[</span>index<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>field<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> value\n    <span class=\"token function\">mutate</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n      variables<span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n        email<span class=\"token operator\">:</span> data<span class=\"token punctuation\">.</span>formData<span class=\"token punctuation\">.</span>email<span class=\"token punctuation\">,</span>\n        date<span class=\"token operator\">:</span> data<span class=\"token punctuation\">.</span>formData<span class=\"token punctuation\">.</span>date<span class=\"token punctuation\">,</span>\n        customer<span class=\"token operator\">:</span> o<span class=\"token punctuation\">,</span>\n      <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token function\">setCustomers</span><span class=\"token punctuation\">(</span>o<span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">removeCustomer</span> <span class=\"token operator\">=</span> <span class=\"token parameter\">index</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">const</span> o <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">...</span>customers<span class=\"token punctuation\">]</span>\n    o<span class=\"token punctuation\">.</span><span class=\"token function\">splice</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n    <span class=\"token function\">setCustomers</span><span class=\"token punctuation\">(</span>o<span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">const</span> inputs <span class=\"token operator\">=</span> customers<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">c<span class=\"token punctuation\">,</span> index</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex lg:flex-row s:flex-col mt-10\"</span> key<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span>index<span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>hr <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex flex-col mr-5\"</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>BodyOne<span class=\"token operator\">></span>Customer name <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BodyOne<span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>Input\n              placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"Bob\"</span>\n              type<span class=\"token operator\">=</span><span class=\"token string\">\"name\"</span>\n              onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token parameter\">e</span> <span class=\"token operator\">=></span>\n                <span class=\"token function\">updateCustomer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n                  index<span class=\"token punctuation\">,</span>\n                  field<span class=\"token operator\">:</span> <span class=\"token string\">\"name\"</span><span class=\"token punctuation\">,</span>\n                  value<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>currentTarget<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">,</span>\n                <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>BodyOne<span class=\"token operator\">></span> Customer country <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BodyOne<span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>Input\n              placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"Iran\"</span>\n              type<span class=\"token operator\">=</span><span class=\"token string\">\"text\"</span>\n              onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token parameter\">e</span> <span class=\"token operator\">=></span>\n                <span class=\"token function\">updateCustomer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n                  index<span class=\"token punctuation\">,</span>\n                  field<span class=\"token operator\">:</span> <span class=\"token string\">\"country\"</span><span class=\"token punctuation\">,</span>\n                  value<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>currentTarget<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">,</span>\n                <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>BodyOne<span class=\"token operator\">></span> Physio score <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BodyOne<span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>Input\n              placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"4\"</span>\n              type<span class=\"token operator\">=</span><span class=\"token string\">\"text\"</span>\n              onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token parameter\">e</span> <span class=\"token operator\">=></span>\n                <span class=\"token function\">updateCustomer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n                  index<span class=\"token punctuation\">,</span>\n                  field<span class=\"token operator\">:</span> <span class=\"token string\">\"physioScore\"</span><span class=\"token punctuation\">,</span>\n                  value<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>currentTarget<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">,</span>\n                <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex flex-col\"</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>BodyOne<span class=\"token operator\">></span> Customer surname <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BodyOne<span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>Input\n              placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"Iger\"</span>\n              type<span class=\"token operator\">=</span><span class=\"token string\">\"text\"</span>\n              onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token parameter\">e</span> <span class=\"token operator\">=></span>\n                <span class=\"token function\">updateCustomer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n                  index<span class=\"token punctuation\">,</span>\n                  field<span class=\"token operator\">:</span> <span class=\"token string\">\"surname\"</span><span class=\"token punctuation\">,</span>\n                  value<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>currentTarget<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">,</span>\n                <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>label<span class=\"token operator\">></span> <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>label<span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>input <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n            <span class=\"token operator\">&lt;</span>BodyOne<span class=\"token operator\">></span> Passport number <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BodyOne<span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>Input\n              placeholder<span class=\"token operator\">=</span><span class=\"token string\">\"GFC3453453\"</span>\n              type<span class=\"token operator\">=</span><span class=\"token string\">\"text\"</span>\n              onChange<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token parameter\">e</span> <span class=\"token operator\">=></span>\n                <span class=\"token function\">updateCustomer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n                  index<span class=\"token punctuation\">,</span>\n                  field<span class=\"token operator\">:</span> <span class=\"token string\">\"passportNumber\"</span><span class=\"token punctuation\">,</span>\n                  value<span class=\"token operator\">:</span> e<span class=\"token punctuation\">.</span>currentTarget<span class=\"token punctuation\">.</span>value<span class=\"token punctuation\">,</span>\n                <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n              <span class=\"token punctuation\">}</span>\n            <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n\n            <span class=\"token operator\">&lt;</span>RemoveButton onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">removeCustomer</span><span class=\"token punctuation\">(</span>index<span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span> <span class=\"token operator\">/</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span><span class=\"token operator\">></span>\n    <span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n    <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex flex-col\"</span><span class=\"token operator\">></span>\n      <span class=\"token punctuation\">{</span>inputs<span class=\"token punctuation\">}</span>\n      <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex flex-col\"</span><span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"mt-5 \"</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>BlueBlockButton onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token function\">addCustomer</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n            Add a customer\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>BlueBlockButton<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span>div className<span class=\"token operator\">=</span><span class=\"token string\">\"flex lg:flex-row mt-5 s:flex-col\"</span><span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>RedBlockButton\n            className<span class=\"token operator\">=</span><span class=\"token string\">\"mr-5 s:mb-5  lg:mb-0\"</span>\n            onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> props<span class=\"token punctuation\">.</span><span class=\"token function\">setActiveTab</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"3\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n          <span class=\"token operator\">></span>\n            Proceed\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>RedBlockButton<span class=\"token operator\">></span>\n          <span class=\"token operator\">&lt;</span>RedOutlineButton onClick<span class=\"token operator\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> props<span class=\"token punctuation\">.</span><span class=\"token function\">setActiveTab</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"1\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span><span class=\"token operator\">></span>\n            Back\n          <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>RedOutlineButton<span class=\"token operator\">></span>\n        <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n      <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n    <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> Customers</code></pre></div>\n<p>🌈 Basically we have a component that will create an array of customers for us to add to the state.</p>\n<p>🌈 first off we declare customers via a hook, we have a query to get data from the cache and have the mutation to update the cache data.</p>\n<p>🌈 Our <code class=\"language-text\">addCustomer</code> function will allow us to make a deep clone of the <code class=\"language-text\">customers</code> currently in the state, then push a new <code class=\"language-text\">customer</code> to the array and update the state.</p>\n<p>🌈 Our <code class=\"language-text\">updateCustomer</code> function will allow us to add the <code class=\"language-text\">customer</code> to the state of the cache.</p>\n<p>🌈 <code class=\"language-text\">removeCustomer</code> will allow us to remove the customer from the state.</p>\n<p>🌈 The inputs function renders customers over some <code class=\"language-text\">JSX</code> to produce a form that will allow the user to add data. There are <code class=\"language-text\">onChange</code> events that will allow the <code class=\"language-text\">customer</code> object to get updated.</p>\n<p>🌈 The remove button removes the selected <code class=\"language-text\">customer</code> form the Array.</p>\n<p>🌈 Our final return block displays the inputs function and renders buttons that allow the user to move between forms.</p>","frontmatter":{"date":"July 29, 2020","path":"/create-booking-forms-part-two","title":"Create Booking Forms Pt.2","postnumber":48}}},"pageContext":{"previous":{"node":{"frontmatter":{"path":"/create-booking-forms-part-three","postnumber":49}}},"next":{"node":{"frontmatter":{"path":"/create-booking-forms-part-one","postnumber":47}}}}},"staticQueryHashes":["3207677222","3649515864","63159454"]}