import { Button, Skeleton, Timeline } from "antd"; import _React, { useEffect, useState } from "react"; import { get } from "../../request"; import type { ICommentApiData, ICommentListResponse } from "../../api/Comment"; import TimeShow from "../general/TimeShow"; import { StatusButtons, type TTaskStatus } from "../../api/task"; import { TaskStatusColor } from "./TaskStatus"; import User from "../auth/User"; interface IWidget { taskId?: string; onMore?: () => void; } const TaskLog = ({ taskId, onMore }: IWidget) => { const [data, setData] = useState(); const [total, setTotal] = useState(0); const [loading, setLoading] = useState(false); useEffect(() => { const url: string = `/v2/discussion?type=discussion&res_type=task&view=question&id=${taskId}&limit=5&offset=0&status=active`; console.info("api request", url); setLoading(true); get(url) .then((json) => { if (json.ok) { console.debug("discussion api response", json); setData(json.data.rows); setTotal(json.data.count); } }) .finally(() => setLoading(false)); }, [taskId]); function findKeywordInTitle(title?: string): string | undefined { if (!title) { return undefined; } const keywords = StatusButtons; for (const keyword of keywords) { if (title.includes(keyword)) { return keyword; } } return undefined; } return ( <> {loading && } {data?.map((item, id) => { const status = findKeywordInTitle(item.title); return ( } >
{item.title}
); })} {total > 5 && ( )}
); }; export default TaskLog;