Skip to content

Commit 30a2123

Browse files
committed
Add logic for searching by first_name and last_name
1 parent 4e83279 commit 30a2123

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

src/containers/UsersList.js

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,16 @@ export class UsersList extends Component {
6868
})
6969
};
7070

71+
handleSearchInput = e => {
72+
const users = this.props.users.filter(user => {
73+
const name = `${user.first_name} ${user.last_name}`
74+
75+
return name.includes(e.target.value)
76+
})
77+
78+
this.normalizeUsers(users)
79+
};
80+
7181
render () {
7282
let {
7383
firstPage,
@@ -83,13 +93,23 @@ export class UsersList extends Component {
8393
<Grid.Row>
8494
<Grid.Column width={12}>
8595
<Header as='h1'>Volunteers Directory</Header>
86-
<Input className='users-list-search-input' fluid icon='search' placeholder='Search...' />
96+
<Input
97+
onChange={this.handleSearchInput}
98+
className='users-list-search-input'
99+
fluid
100+
icon='search'
101+
placeholder='Search...'
102+
/>
87103
<Card.Group centered itemsPerRow={3}>
88-
<Paginate
89-
items={usersList}
90-
Component={User}
91-
pageCount={pageCount}
92-
/>
104+
{usersList ? (
105+
<Paginate
106+
items={usersList}
107+
Component={User}
108+
pageCount={pageCount}
109+
/>
110+
) : (
111+
'No users found.'
112+
)}
93113
</Card.Group>
94114
<PaginationLinks
95115
handlePageSelect={this.handlePageSelect}

0 commit comments

Comments
 (0)