Skip to content

Instantly share code, notes, and snippets.

@garethpbk
Last active November 20, 2018 17:40
Show Gist options
  • Save garethpbk/f890515713ce6b685467ec501fd75d96 to your computer and use it in GitHub Desktop.
Save garethpbk/f890515713ce6b685467ec501fd75d96 to your computer and use it in GitHub Desktop.
apollo-link-rest CreateUser component
import React from 'react';
const CreateUser = ({ createUser, createNewUser, state, handleChange }) => {
const {
name,
username,
email,
address: {
street,
suite,
city,
zipcode,
geo: { lat, lng },
},
phone,
website,
company,
company: { catchPhrase, bs },
} = state;
return (
<form onSubmit={e => createNewUser(e, createUser)}>
<h3>User Info</h3>
<input type="text" name="name" placeholder="Name" value={name} required onChange={e => handleChange(e)} />
<input
type="text"
name="username"
placeholder="Username"
value={username}
required
onChange={e => handleChange(e)}
/>
<input type="email" name="email" placeholder="Email" value={email} required onChange={e => handleChange(e)} />
<input type="tel" name="phone" placeholder="Phone" value={phone} required onChange={e => handleChange(e)} />
<input
type="text"
name="website"
placeholder="Website"
value={website}
required
onChange={e => handleChange(e)}
/>
<h3>User Address</h3>
<input
type="text"
name="street"
placeholder="Street"
value={street}
required
onChange={e => handleChange(e, 'address')}
/>
<input
type="text"
name="suite"
placeholder="Suite"
value={suite}
required
onChange={e => handleChange(e, 'address')}
/>
<input
type="text"
name="city"
placeholder="City"
value={city}
required
onChange={e => handleChange(e, 'address')}
/>
<input
type="text"
name="zipcode"
placeholder="Zip Code"
value={zipcode}
required
onChange={e => handleChange(e, 'address')}
/>
<input
type="text"
name="lat"
placeholder="Latitude"
value={lat}
required
onChange={e => handleChange(e, 'address', 'geo')}
/>
<input
type="text"
name="lng"
placeholder="Longitude"
value={lng}
required
onChange={e => handleChange(e, 'address', 'geo')}
/>
<h3>User Company</h3>
<input
type="text"
name="name"
placeholder="Company Name"
value={company.name}
required
onChange={e => handleChange(e, 'company')}
/>
<input
type="text"
name="catchPhrase"
placeholder="Company Catch Phrase"
value={catchPhrase}
required
onChange={e => handleChange(e, 'company')}
/>
<input
type="text"
name="bs"
placeholder="Company BS"
value={bs}
required
onChange={e => handleChange(e, 'company')}
/>
<button type="submit">Create New User (GraphQL)</button>
</form>
);
}
export default CreateUser;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment