mirror of
https://github.com/lifegpc/eh-downloader.git
synced 2026-06-20 10:54:14 +08:00
Fix task status changed cause filter not works well
This commit is contained in:
@@ -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, string> = {
|
||||
[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<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
@@ -44,6 +54,9 @@ export default class Task extends Component<Props, State> {
|
||||
}
|
||||
render() {
|
||||
const task = this.props.task;
|
||||
if (!(this.props.flags & map_taskstatus(task.status))) {
|
||||
return <div data-id={task.base.id}></div>;
|
||||
}
|
||||
console.log(task);
|
||||
let error_div = null;
|
||||
if (task.status === TaskStatus.Failed) {
|
||||
|
||||
@@ -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<number, TaskDetail>());
|
||||
const task_list = signal(new Array<number>());
|
||||
export const task_ws = signal<WebSocket | undefined>(undefined);
|
||||
@@ -208,10 +200,7 @@ export default class TaskManager extends Component<TaskManagerProps> {
|
||||
{task_list.value.map((k) => {
|
||||
const t = tasks.value.get(k);
|
||||
if (t) {
|
||||
if (!(flags & map_taskstatus(t.status))) {
|
||||
return <div data-id={k}></div>;
|
||||
}
|
||||
return <Task task={t} />;
|
||||
return <Task task={t} flags={flags} />;
|
||||
} else {
|
||||
return <div data-id={k}></div>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user