import { useState } from "react"; import { Checkbox, Input, TextArea, Row, Col, Dropdown, Button, Popover, Tag, List, RadioGroup, Radio, } from "@douyinfe/semi-ui"; import { IconPlus, IconMore, IconDeleteStroked, IconCaretdown, } from "@douyinfe/semi-icons"; import { State } from "../../../data/constants"; import { useTasks, useSaveState } from "../../../hooks"; import { useTranslation } from "react-i18next"; const Priority = { NONE: 0, LOW: 1, MEDIUM: 2, HIGH: 3, }; const SortOrder = { ORIGINAL: "my_order", PRIORITY: "priority", COMPLETED: "completed", ALPHABETICALLY: "alphabetically", }; export default function Todo() { const [activeTask, setActiveTask] = useState(-1); const [, setSortOrder] = useState(SortOrder.ORIGINAL); const { tasks, setTasks, updateTask } = useTasks(); const { setSaveState } = useSaveState(); const { t } = useTranslation(); const priorityLabel = (p) => { switch (p) { case Priority.NONE: return t("none"); case Priority.LOW: return t("low"); case Priority.MEDIUM: return t("medium"); case Priority.HIGH: return t("high"); default: return ""; } }; const priorityColor = (p) => { switch (p) { case Priority.NONE: return "blue"; case Priority.LOW: return "green"; case Priority.MEDIUM: return "yellow"; case Priority.HIGH: return "red"; default: return ""; } }; const sort = (s) => { setActiveTask(-1); switch (s) { case SortOrder.ORIGINAL: setTasks((prev) => prev.sort((a, b) => a.order - b.order)); return; case SortOrder.PRIORITY: setTasks((prev) => prev.sort((a, b) => b.priority - a.priority)); return; case SortOrder.COMPLETED: setTasks((prev) => prev.sort((a, b) => { if (a.complete && !b.complete) { return 1; } else if (!a.complete && b.complete) { return -1; } else { return 0; } }), ); break; case SortOrder.ALPHABETICALLY: setTasks((prev) => prev.sort((a, b) => a.title.localeCompare(b.title))); break; default: break; } }; return ( <>