Просмотр исходного кода

组件参数使用分立写法

visuddhinanda 3 лет назад
Родитель
Сommit
24ac943ef4
1 измененных файлов с 33 добавлено и 22 удалено
  1. 33 22
      dashboard/src/components/corpus/PaliChapterList.tsx

+ 33 - 22
dashboard/src/components/corpus/PaliChapterList.tsx

@@ -2,36 +2,47 @@ import { List } from "antd";
 
 
 import PaliChapterCard, { IPaliChapterData } from "./PaliChapterCard";
 import PaliChapterCard, { IPaliChapterData } from "./PaliChapterCard";
 
 
-interface IWidgetPaliChapterList {
-  data: IPaliChapterData[];
-  onChapterClick?: Function;
-}
-
 export interface IChapterClickEvent {
 export interface IChapterClickEvent {
   para: IPaliChapterData;
   para: IPaliChapterData;
   event: React.MouseEvent<HTMLDivElement, MouseEvent>;
   event: React.MouseEvent<HTMLDivElement, MouseEvent>;
 }
 }
-const Widget = (prop: IWidgetPaliChapterList) => {
+
+interface IWidgetPaliChapterList {
+  data: IPaliChapterData[];
+  maxLevel?: number;
+  onChapterClick?: Function;
+}
+const Widget = ({
+  data,
+  maxLevel = 8,
+  onChapterClick,
+}: IWidgetPaliChapterList) => {
   return (
   return (
     <List
     <List
       itemLayout="vertical"
       itemLayout="vertical"
       size="large"
       size="large"
-      dataSource={prop.data}
-      renderItem={(item) => (
-        <List.Item>
-          <PaliChapterCard
-            onTitleClick={(e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
-              if (typeof prop.onChapterClick !== "undefined") {
-                prop.onChapterClick({
-                  para: item,
-                  event: e,
-                });
-              }
-            }}
-            data={item}
-          />
-        </List.Item>
-      )}
+      dataSource={data}
+      renderItem={(item) =>
+        item.level <= maxLevel ? (
+          <List.Item>
+            <PaliChapterCard
+              onTitleClick={(
+                e: React.MouseEvent<HTMLDivElement, MouseEvent>
+              ) => {
+                if (typeof onChapterClick !== "undefined") {
+                  onChapterClick({
+                    para: item,
+                    event: e,
+                  });
+                }
+              }}
+              data={item}
+            />
+          </List.Item>
+        ) : (
+          <></>
+        )
+      }
     />
     />
   );
   );
 };
 };