visuddhinanda 1 год назад
Родитель
Сommit
fd69bbc55a
1 измененных файлов с 26 добавлено и 11 удалено
  1. 26 11
      dashboard/src/components/article/TocTree.tsx

+ 26 - 11
dashboard/src/components/article/TocTree.tsx

@@ -20,6 +20,7 @@ export interface TreeNodeData {
   isLeaf?: boolean;
   children?: TreeNodeData[];
   level: number;
+  status?: number;
   deletedAt?: string | null;
 }
 
@@ -50,6 +51,7 @@ function tocGetTreeData(
       isLeaf: element.children === 0,
       title: element.title,
       level: element.level,
+      status: element.status,
       deletedAt: element.deletedAt,
     };
     idMap.push({
@@ -109,21 +111,20 @@ const updateTreeData = (
   key: React.Key,
   children: TreeNodeData[]
 ): TreeNodeData[] => {
-  console.log("key", key);
   return list.map((node) => {
     if (node.key === key) {
-      console.log("found", node);
+      console.debug("updateTreeData found", key, node);
       node.children = children;
       return node;
     }
-    /*
+
     if (node.children) {
       return {
         ...node,
         children: updateTreeData(node.children, key, children),
       };
     }
-    */
+
     return node;
   });
 };
@@ -134,6 +135,7 @@ interface IWidgetTocTree {
   selectedKeys?: Key[];
   onSelect?: Function;
   onClick?: Function;
+  onLoad?: (key: string) => string;
 }
 
 const TocTreeWidget = ({
@@ -142,6 +144,7 @@ const TocTreeWidget = ({
   selectedKeys,
   onSelect,
   onClick,
+  onLoad,
 }: IWidgetTocTree) => {
   const [tree, setTree] = useState<TreeNodeData[]>();
   const [expanded, setExpanded] = useState<Key[]>();
@@ -197,13 +200,18 @@ const TocTreeWidget = ({
         resolve();
         return;
       }
+      if (typeof onLoad === "undefined") {
+        resolve();
+        return;
+      }
+      const url = onLoad(key);
 
       setTimeout(() => {
         setTree((origin) => {
           if (!origin) {
             return origin;
           }
-          updateTreeData(origin, key, [
+          return updateTreeData(origin, key, [
             {
               title: "Child Node",
               key: randomString(),
@@ -229,6 +237,7 @@ const TocTreeWidget = ({
       selectedKeys={selected}
       expandedKeys={expanded}
       autoExpandParent
+      loadData={onLoadData}
       onExpand={(expandedKeys: Key[]) => {
         setExpanded(expandedKeys);
       }}
@@ -261,17 +270,23 @@ const TocTreeWidget = ({
             node.title === "" ? (
               "[unnamed]"
             ) : (
-              <PaliText text={node.title} />
+              <PaliText
+                textType={node.status === 10 ? "secondary" : undefined}
+                text={node.title}
+              />
             )
           ) : (
-            <>{node.title}</>
+            node.title
           );
-        return node.deletedAt ? (
-          <Text delete disabled>
+
+        return (
+          <Text
+            delete={node.deletedAt ? true : false}
+            disabled={node.deletedAt ? true : false}
+            type={node.status === 10 ? "secondary" : undefined}
+          >
             {currNode}
           </Text>
-        ) : (
-          <>{currNode}</>
         );
       }}
     />