diff --git a/components/Task.tsx b/components/Task.tsx index ee199e9..2bceaf2 100644 --- a/components/Task.tsx +++ b/components/Task.tsx @@ -5,9 +5,11 @@ import { TaskStatus, TaskType } from "../task.ts"; import t from "../server/i18n.ts"; import { tw } from "twind"; import Progress from "./Progress.tsx"; +import { TaskStatusFlag } from "./TaskFilterBar.tsx"; type Props = { task: TaskDetail; + flags: TaskStatusFlag; }; type State = { @@ -28,6 +30,14 @@ const Status: Record = { [TaskStatus.Failed]: "failed", }; +function map_taskstatus(s: TaskStatus) { + if (s === TaskStatus.Wait) return TaskStatusFlag.Waiting; + else if (s === TaskStatus.Running) return TaskStatusFlag.Running; + else if (s === TaskStatus.Finished) return TaskStatusFlag.Finished; + else if (s === TaskStatus.Failed) return TaskStatusFlag.Failed; + return TaskStatusFlag.None; +} + export default class Task extends Component { constructor(props: Props) { super(props); @@ -44,6 +54,9 @@ export default class Task extends Component { } render() { const task = this.props.task; + if (!(this.props.flags & map_taskstatus(task.status))) { + return
; + } console.log(task); let error_div = null; if (task.status === TaskStatus.Failed) { diff --git a/islands/TaskManager.tsx b/islands/TaskManager.tsx index c2e4fba..dad357f 100644 --- a/islands/TaskManager.tsx +++ b/islands/TaskManager.tsx @@ -22,14 +22,6 @@ export type TaskManagerProps = { show: boolean; }; -function map_taskstatus(s: TaskStatus) { - if (s === TaskStatus.Wait) return TaskStatusFlag.Waiting; - else if (s === TaskStatus.Running) return TaskStatusFlag.Running; - else if (s === TaskStatus.Finished) return TaskStatusFlag.Finished; - else if (s === TaskStatus.Failed) return TaskStatusFlag.Failed; - return TaskStatusFlag.None; -} - const tasks = signal(new Map()); const task_list = signal(new Array()); export const task_ws = signal(undefined); @@ -208,10 +200,7 @@ export default class TaskManager extends Component { {task_list.value.map((k) => { const t = tasks.value.get(k); if (t) { - if (!(flags & map_taskstatus(t.status))) { - return
; - } - return ; + return ; } else { return
; }