visuddhinanda před 1 rokem
rodič
revize
4f8ce1f031

+ 7 - 9
dashboard-v4/dashboard/src/components/article/TypeTask.tsx

@@ -1,14 +1,7 @@
-import { useState } from "react";
-import { Modal } from "antd";
-import { ExclamationCircleOutlined } from "@ant-design/icons";
-import { IArticleDataResponse } from "../api/Article";
 import { ArticleMode, ArticleType } from "./Article";
-import TypeArticleReader from "./TypeArticleReader";
-import ArticleEdit from "./ArticleEdit";
-import TaskEdit from "../task/TaskEdit";
 import { ITaskData } from "../api/task";
-import TaskReader from "../task/TaskReader";
 import Task from "../task/Task";
+import { openDiscussion } from "../discussion/DiscussionButton";
 
 interface IWidget {
   type?: ArticleType;
@@ -30,7 +23,12 @@ const TypeTask = ({
 }: IWidget) => {
   return (
     <div>
-      <Task taskId={articleId} />
+      <Task
+        taskId={articleId}
+        onDiscussion={() => {
+          articleId && openDiscussion(articleId, "task", false);
+        }}
+      />
     </div>
   );
 };

+ 15 - 3
dashboard-v4/dashboard/src/components/task/Description.tsx

@@ -7,20 +7,28 @@ import MdView from "../template/MdView";
 import MDEditor from "@uiw/react-md-editor";
 import "../article/article.css";
 import { patch } from "../../request";
-import { openDiscussion } from "../discussion/DiscussionButton";
+import DiscussionDrawer from "../discussion/DiscussionDrawer";
 
 interface IWidget {
   task?: ITaskData;
   onChange?: (data: ITaskData[]) => void;
+  onDiscussion?: () => void;
 }
-const Description = ({ task, onChange }: IWidget) => {
+const Description = ({ task, onChange, onDiscussion }: IWidget) => {
   const [mode, setMode] = useState<"read" | "edit">("read");
   const [content, setContent] = useState(task?.description);
   const [loading, setLoading] = useState(false);
+  const [open, setOpen] = useState(false);
 
   useEffect(() => setContent(task?.description), [task]);
   return (
     <div>
+      <DiscussionDrawer
+        open={open}
+        onClose={() => setOpen(false)}
+        resId={task?.id}
+        resType="task"
+      />
       <div
         style={{
           display: "flex",
@@ -35,7 +43,11 @@ const Description = ({ task, onChange }: IWidget) => {
               <Button
                 key={1}
                 onClick={() => {
-                  task && openDiscussion(task?.id, "task", false);
+                  if (typeof onDiscussion === "undefined") {
+                    setOpen(true);
+                  } else {
+                    onDiscussion();
+                  }
                 }}
               >
                 讨论

+ 3 - 1
dashboard-v4/dashboard/src/components/task/Task.tsx

@@ -5,8 +5,9 @@ interface IWidget {
   taskId?: string;
   onLoad?: (task: ITaskData) => void;
   onChange?: (task: ITaskData[]) => void;
+  onDiscussion?: () => void;
 }
-const Task = ({ taskId, onLoad, onChange }: IWidget) => {
+const Task = ({ taskId, onLoad, onChange, onDiscussion }: IWidget) => {
   return (
     <div>
       <TaskReader
@@ -14,6 +15,7 @@ const Task = ({ taskId, onLoad, onChange }: IWidget) => {
         onChange={(data: ITaskData[]) => {
           onChange && onChange(data);
         }}
+        onDiscussion={onDiscussion}
       />
     </div>
   );

+ 3 - 1
dashboard-v4/dashboard/src/components/task/TaskReader.tsx

@@ -33,8 +33,9 @@ export const Milestone = ({ task }: { task?: ITaskData }) => {
 interface IWidget {
   taskId?: string;
   onChange?: (data: ITaskData[]) => void;
+  onDiscussion?: () => void;
 }
-const TaskReader = ({ taskId, onChange }: IWidget) => {
+const TaskReader = ({ taskId, onChange, onDiscussion }: IWidget) => {
   const [openPreTask, setOpenPreTask] = useState(false);
   const [openNextTask, setOpenNextTask] = useState(false);
   const [task, setTask] = useState<ITaskData>();
@@ -206,6 +207,7 @@ const TaskReader = ({ taskId, onChange }: IWidget) => {
           setTask(data[0]);
           onChange && onChange(data);
         }}
+        onDiscussion={onDiscussion}
       />
     </div>
   );