Skip to content

Commit 0174b8d

Browse files
author
NicholasKyleHoffman
committed
updated file names, finished functionality for update
1 parent 76221e6 commit 0174b8d

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

src/App.js

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import React, { useState } from 'react';
1+
import React, { useState, Fragment } from 'react';
22
import UserTable from './tables/UserTable';
33
import AddUserForm from './forms/AddUserForm';
4-
import EditUserForm from './forms/EditUserForm'
4+
import EditUserForm from './forms/EditUsersForm';
55

66
const App = () => {
77
const usersData = [
@@ -11,11 +11,15 @@ const App = () => {
1111
{ id:4, name:'Sheena, W.P.', username:'sheenaWp312' }
1212
]
1313

14-
// Hooks syntax - you define the two params in [x, y].
14+
15+
const initialFormState = {id:null, name:'', username:'' }
16+
17+
// set state Hooks syntax - you define the two params in [x, y].
1518
// useState comes from React import for handling state
1619

1720
const [users, setUsers] = useState(usersData)
18-
21+
const [editing, setEditing] = useState(false)
22+
const [ currentUser, setCurrentUser ] = useState(initialFormState)
1923

2024
// increment the ID of the new user manually - function will
2125
// take a user object as a parameter, add them to the users array of objects
@@ -29,12 +33,10 @@ const App = () => {
2933
// pass deleteUser through props to UserTable
3034
// use setter to take ID of user & filter them out of the users array
3135
const deleteUser = (id) => {
36+
setEditing(false)
37+
3238
setUsers(users.filter(user => user.id !== id))
3339
}
34-
35-
const [editing, setEditing] = useState(false)
36-
const initialFormState = {id:null, name:'', username:'' }
37-
const [ currentUser, setCurrentUser ] = useState(initialFormState)
3840

3941
const editRow = (user) => {
4042
setEditing(true)
@@ -47,17 +49,30 @@ const App = () => {
4749
setUsers(users.map(user=> (user.id === id ? updatedUser : user)))
4850
}
4951

50-
5152
return (
5253
<div className="container">
53-
<h1>CRUD React App with Hooks Instead of Classes</h1>
54+
<h1>CRUD React App with Hooks - No Classes</h1>
5455
<div className="flex-row">
5556
<div className="flex-large">
56-
<h2>Add User</h2>
57-
<AddUserForm addUser={addUser} />
57+
{editing ? (
58+
<Fragment>
59+
<h2>Edit user</h2>
60+
<EditUserForm
61+
editing={editing}
62+
setEditing={setEditing}
63+
currentUser={currentUser}
64+
updateUser={updateUser}
65+
/>
66+
</Fragment>
67+
) : (
68+
<Fragment>
69+
<h2>Add user</h2>
70+
<AddUserForm addUser={addUser} />
71+
</Fragment>
72+
)}
5873
</div>
5974
<div className="flex-large">
60-
<h2>View Users</h2>
75+
<h2>View users</h2>
6176
<UserTable users={users} editRow={editRow} deleteUser={deleteUser} />
6277
</div>
6378
</div>

src/forms/EditUserForm renamed to src/forms/EditUsersForm.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import React, { useState, useEffect } from 'react'
2+
13
const EditUserForm = props => {
24
const [ user, setUser ] = useState(props.currentUser)
35

@@ -7,6 +9,13 @@ const EditUserForm = props => {
79
setUser({ ...user, [name]: value })
810
}
911

12+
useEffect(
13+
() => {
14+
setUser(props.currentUser)
15+
},
16+
[props]
17+
)
18+
1019
return (
1120
<form
1221
onSubmit={event => {

0 commit comments

Comments
 (0)