visuddhinanda 2 anos atrás
pai
commit
f4a0d4a83b
1 arquivos alterados com 101 adições e 0 exclusões
  1. 101 0
      dashboard/src/components/corpus/CommunityChapter.tsx

+ 101 - 0
dashboard/src/components/corpus/CommunityChapter.tsx

@@ -0,0 +1,101 @@
+import { useEffect, useState } from "react";
+import { Divider, Space } from "antd";
+import { Typography } from "antd";
+import { TagOutlined } from "@ant-design/icons";
+
+import ChapterFilter from "../../components/corpus/ChapterFilter";
+import ChapterList from "../../components/corpus/ChapterList";
+import ChapterTag from "../../components/corpus/ChapterTag";
+import ChapterAppendTag from "../../components/corpus/ChapterAppendTag";
+
+const { Title } = Typography;
+
+interface IWidget {
+  studioName?: string;
+  channelId?: string;
+  tag?: string[];
+}
+
+const CommunityChapterWidget = ({
+  studioName,
+  channelId,
+  tag = [],
+}: IWidget) => {
+  const [tags, setTags] = useState<string[]>(tag);
+  const [searchKey, setSearchKey] = useState<string>();
+  const [progress, setProgress] = useState(0.9);
+  const [lang, setLang] = useState("zh");
+  const [type, setType] = useState("translation");
+
+  useEffect(() => setTags(tag), [tag]);
+  return (
+    <>
+      <ChapterFilter
+        onSearch={(value: string) => {
+          console.log("search change", value);
+          setSearchKey(value);
+        }}
+        onProgressChange={(value: string) => {
+          console.log("progress change", value);
+          setProgress(parseFloat(value));
+        }}
+        onLangChange={(value: string) => {
+          console.log("lang change", value);
+          setLang(value);
+        }}
+        onTypeChange={(value: string) => {
+          console.log("type change", value);
+          setType(value);
+        }}
+      />
+      <Divider />
+
+      <Title level={3}>
+        <Space>
+          <TagOutlined />
+          {tags.map((item, id) => {
+            return (
+              <ChapterTag
+                data={{
+                  key: item,
+                  title: item,
+                }}
+                key={id}
+                closable={true}
+                onTagClose={() => {
+                  console.log("tag change");
+                  setTags(tags.filter((x) => x !== item));
+                }}
+              />
+            );
+          })}
+          <ChapterAppendTag
+            tags={tags}
+            progress={progress}
+            lang={lang}
+            type={type}
+            onTagClick={(tag: string) => {
+              console.log("tag change");
+              setTags([...tags, tag]);
+            }}
+          />
+        </Space>
+      </Title>
+
+      <ChapterList
+        studioName={studioName}
+        searchKey={searchKey}
+        tags={tags}
+        progress={progress}
+        lang={lang}
+        type={type}
+        onTagClick={(tag: string) => {
+          console.log("tag change");
+          setTags([tag]);
+        }}
+      />
+    </>
+  );
+};
+
+export default CommunityChapterWidget;