diff options
author | Ivan Kosarev <ivan.kosarev@amd.com> | 2025-09-23 15:25:22 +0100 |
---|---|---|
committer | Ivan Kosarev <ivan.kosarev@amd.com> | 2025-09-23 15:25:22 +0100 |
commit | ad4cbee77f456eaa2f66458d93c395b71fd10a69 (patch) | |
tree | ae82cccef44ba6a27a231f7d35a5546d92d2cf44 | |
parent | 0f530793bdc1c6f364cc1b9238790c21262e6c97 (diff) | |
download | llvm-users/kosarev/09-23-demo_840dc25f_add_user_search.zip llvm-users/kosarev/09-23-demo_840dc25f_add_user_search.tar.gz llvm-users/kosarev/09-23-demo_840dc25f_add_user_search.tar.bz2 |
Add user searchusers/kosarev/09-23-demo_840dc25f_add_user_search
-rw-r--r-- | llvm/lib/Target/AMDGPU/graphite-demo/frontend.jsx | 23 | ||||
-rw-r--r-- | llvm/lib/Target/AMDGPU/graphite-demo/server.js | 29 |
2 files changed, 42 insertions, 10 deletions
diff --git a/llvm/lib/Target/AMDGPU/graphite-demo/frontend.jsx b/llvm/lib/Target/AMDGPU/graphite-demo/frontend.jsx index dd6a2a3..10512ee 100644 --- a/llvm/lib/Target/AMDGPU/graphite-demo/frontend.jsx +++ b/llvm/lib/Target/AMDGPU/graphite-demo/frontend.jsx @@ -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(''); @@ -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>; @@ -35,13 +37,14 @@ 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}> @@ -49,8 +52,16 @@ const TaskSearch = () => { </li> ))} </ul> + <h3>Users</h3> + <ul> + {users.map(user => ( + <li key={user.id}> + <p>{user.name}</p> + </li> + ))} + </ul> </div> ); }; -export default TaskSearch;
\ No newline at end of file +export default TaskAndUserSearch;
\ No newline at end of file diff --git a/llvm/lib/Target/AMDGPU/graphite-demo/server.js b/llvm/lib/Target/AMDGPU/graphite-demo/server.js index cf7ec65..ff79b7d 100644 --- a/llvm/lib/Target/AMDGPU/graphite-demo/server.js +++ b/llvm/lib/Target/AMDGPU/graphite-demo/server.js @@ -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, () => { |