Search function added

This commit is contained in:
NPS Agent
2026-05-12 10:15:34 +09:30
parent 1edde60317
commit 5968294081
4 changed files with 108 additions and 37 deletions
+36 -20
View File
@@ -59,6 +59,36 @@ function App() {
const { tasks, users: dbUsers, audit, workspace, deletedTasks, loading } = useApiData(authed);
const [tab, setTab] = React.useState('overview');
const [searchQuery, setSearchQuery] = React.useState('');
const [showSearch, setShowSearch] = React.useState(false);
// Map API fields to frontend component expectations
const frontendTasks = React.useMemo(() => tasks.map(t => ({
...t,
assignee: t.assignee_id,
addedBy: t.added_by,
addedAt: t.added_at,
tags: t.tags.map(tagObj => tagObj.tag)
})), [tasks]);
const filteredTasks = React.useMemo(() => {
if (!searchQuery.trim()) return frontendTasks;
const q = searchQuery.toLowerCase();
return frontendTasks.filter(t =>
t.title.toLowerCase().includes(q) ||
(t.description && t.description.toLowerCase().includes(q)) ||
t.tags.some(tag => tag.toLowerCase().includes(q))
);
}, [frontendTasks, searchQuery]);
const frontendAudit = React.useMemo(() => audit.map(a => ({
...a,
actor: a.actor,
action: a.action,
summary: a.summary,
target: a.target,
at: a.at
})), [audit]);
React.useEffect(() => {
window.dbUsers = dbUsers;
@@ -193,24 +223,6 @@ function App() {
const dismissHU = (id) => setHeadsUp(h => h.filter(x => x.id !== id));
const openTaskFromAnywhere = (id) => { setOpenTaskId(id); setShowLogs(false); };
// Map API fields to frontend component expectations
const frontendTasks = tasks.map(t => ({
...t,
assignee: t.assignee_id,
addedBy: t.added_by,
addedAt: t.added_at,
tags: t.tags.map(tagObj => tagObj.tag)
}));
const frontendAudit = audit.map(a => ({
...a,
actor: a.actor,
action: a.action,
summary: a.summary,
target: a.target,
at: a.at
}));
const mappedOpenTask = frontendTasks.find(x => x.id === openTaskId);
return (
@@ -225,6 +237,10 @@ function App() {
onLogs={() => setShowLogs(true)}
onProfile={() => setShowSettings(true)}
workspace={workspace}
searchQuery={searchQuery}
setSearchQuery={setSearchQuery}
showSearch={showSearch}
onToggleSearch={() => { setShowSearch(!showSearch); if (showSearch) setSearchQuery(''); }}
/>
<HeadsUp items={headsUp} onDismiss={dismissHU} onOpenTask={openTaskFromAnywhere} />
@@ -232,7 +248,7 @@ function App() {
<main className="main">
{tab === 'overview' && (
<OverviewScreen
tasks={frontendTasks} density={t.density}
tasks={filteredTasks} density={t.density}
dbUsers={dbUsers}
onOpen={(task) => setOpenTaskId(task.id)}
onAddFor={(uid) => setAdding(uid)}
@@ -253,7 +269,7 @@ function App() {
)}
{tab !== 'overview' && tab !== 'deleted' && (
<UserScreen
user={merge(tab)} tasks={frontendTasks} density={t.density}
user={merge(tab)} tasks={filteredTasks} density={t.density}
onOpen={(task) => setOpenTaskId(task.id)}
onAddFor={(uid) => setAdding(uid)}
/>