Skip to content

Instantly share code, notes, and snippets.

@jsmanifest
Created June 23, 2019 22:28
Show Gist options
  • Save jsmanifest/b4eedc5596972caa5f50882a8aacc321 to your computer and use it in GitHub Desktop.
Save jsmanifest/b4eedc5596972caa5f50882a8aacc321 to your computer and use it in GitHub Desktop.
const App = () => {
const { onSubmit, friends } = useApp()
const [name, setName] = useState('')
const [gender, setGender] = useState('Male')
const onNameChange = (e) => setName(e.target.value)
const onGenderChange = (e) => setGender(e.target.value)
return (
<div>
<form className="form" onSubmit={onSubmit({ name, gender })}>
<div>
<input
onChange={onNameChange}
value={name}
type="text"
name="name"
placeholder="Friend's Name"
/>
</div>
<div>
<select onChange={onGenderChange} name="gender" value={gender}>
<option value="Male">Male</option>
<option value="Female">Female</option>
<option value="Other">Other</option>
</select>
</div>
<div>
<button type="submit">Add</button>
</div>
</form>
<div className="boxes">
{friends.map(({ name, gender }, index) => (
<FriendBox key={`friend_${index}`} gender={gender}>
<div className="box-name">Name: {name}</div>
<div className="gender-container">
<img src={gender === 'Female' ? female : male} alt="" />
</div>
</FriendBox>
))}
</div>
</div>
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment