Skip to content

Commit

Permalink
Add user search
Browse files Browse the repository at this point in the history
  • Loading branch information
richardhuaaa committed Jul 26, 2024
1 parent c5e2ce8 commit 48cf515
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 10 deletions.
23 changes: 17 additions & 6 deletions graphite-demo/frontend.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import React, { useEffect, useState } from 'react';

const TaskSearch = () => {
const TaskAndUserSearch = () => {
const [tasks, setTasks] = useState([]);
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
const [searchQuery, setSearchQuery] = useState('');
Expand All @@ -16,14 +17,15 @@ const TaskSearch = () => {
return response.json();
})
.then(data => {
setTasks(data);
setTasks(data.tasks);
setUsers(data.users);
setLoading(false);
})
.catch(error => {
setError(error.message);
setLoading(false);
});
}, [searchQuery]); // Depend on searchQuery
}, [searchQuery]);

if (loading) {
return <div>Loading...</div>;
Expand All @@ -35,22 +37,31 @@ const TaskSearch = () => {

return (
<div>
<h2>Task Search</h2>
<h2>Search Tasks and Users</h2>
<input
type="text"
placeholder="Search tasks..."
placeholder="Search tasks and users..."
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)}
/>
<h3>Tasks</h3>
<ul>
{tasks.map(task => (
<li key={task.id}>
<p>{task.description}</p>
</li>
))}
</ul>
<h3>Users</h3>
<ul>
{users.map(user => (
<li key={user.id}>
<p>{user.name}</p>
</li>
))}
</ul>
</div>
);
};

export default TaskSearch;
export default TaskAndUserSearch;
29 changes: 25 additions & 4 deletions graphite-demo/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,38 @@ const tasks = [
}
];

// Fake data for users
const users = [
{
id: 101,
name: 'Alice Smith'
},
{
id: 102,
name: 'Bob Johnson'
},
{
id: 103,
name: 'Charlie Brown'
}
];

app.get('/search', (req, res) => {
// Retrieve the query parameter
const query = req.query.query?.toLowerCase() || '';

// Filter tasks based on the query
const filteredTasks = tasks.filter(task => task.description.toLowerCase().includes(query));
const filteredTasks = tasks.filter(task =>
task.description.toLowerCase().includes(query)
).sort((a, b) => a.description.localeCompare(b.description));

// Sort the filtered tasks alphabetically by description
const sortedTasks = filteredTasks.sort((a, b) => a.description.localeCompare(b.description));
// Filter users based on the query
const filteredUsers = users.filter(user =>
user.name.toLowerCase().includes(query)
).sort((a, b) => a.name.localeCompare(b.name));

res.json(sortedTasks);
// Return both sets of results
res.json({ tasks: filteredTasks, users: filteredUsers });
});

app.listen(port, () => {
Expand Down

0 comments on commit 48cf515

Please sign in to comment.