Explorar o código

变量名变更 ApiResponse -> Response

visuddhinanda %!s(int64=3) %!d(string=hai) anos
pai
achega
c743017c30

+ 5 - 4
dashboard/src/components/api/Corpus.ts

@@ -22,7 +22,7 @@ export interface IApiPaliChapterList {
   progress_line?: number[];
 }
 
-export interface IApiResponsePaliChapterList {
+export interface IPaliChapterListResponse {
   ok: boolean;
   message: string;
   data: { rows: IApiPaliChapterList[]; count: number };
@@ -53,12 +53,13 @@ export interface IApiResponsePaliPara {
 /**
  * progress?view=chapter_channels&book=98&par=22
  */
-export interface IApiChapterChannels {
+export interface IChapterChannelData {
   book: number;
   para: number;
   uid: string;
   channel_id: string;
   progress: number;
+  progress_line?: number[];
   updated_at: string;
   views: number;
   likes: number[];
@@ -77,10 +78,10 @@ export interface IApiChapterChannels {
   studio: IStudio;
 }
 
-export interface IApiResponseChapterChannelList {
+export interface IChapterChannelListResponse {
   ok: boolean;
   message: string;
-  data: { rows: IApiChapterChannels[]; count: number };
+  data: { rows: IChapterChannelData[]; count: number };
 }
 
 export interface IApiChapterTag {

+ 3 - 2
dashboard/src/components/corpus/PaliChapterChannelList.tsx

@@ -1,7 +1,7 @@
 import { useState, useEffect } from "react";
 
 import { get } from "../../request";
-import { IApiResponseChapterChannelList } from "../api/Corpus";
+import { IChapterChannelListResponse } from "../api/Corpus";
 import { IChapter } from "./BookViewer";
 import ChapterInChannel, { IChapterChannelData } from "./ChapterInChannel";
 
@@ -16,7 +16,7 @@ const Widget = ({ para, channelId, openTarget = "_blank" }: IWidget) => {
 
   useEffect(() => {
     let url = `/v2/progress?view=chapter_channels&book=${para.book}&par=${para.para}`;
-    get<IApiResponseChapterChannelList>(url).then(function (json) {
+    get<IChapterChannelListResponse>(url).then(function (json) {
       const newData: IChapterChannelData[] = json.data.rows.map((item) => {
         return {
           channel: {
@@ -26,6 +26,7 @@ const Widget = ({ para, channelId, openTarget = "_blank" }: IWidget) => {
           },
           studio: item.studio,
           progress: Math.ceil(item.progress * 100),
+          progressLine: item.progress_line,
           hit: item.views,
           like: 0,
           updatedAt: item.updated_at,

+ 2 - 2
dashboard/src/components/corpus/PaliChapterListByPara.tsx

@@ -1,7 +1,7 @@
 import { useState, useEffect } from "react";
 
 import { get } from "../../request";
-import { IApiResponsePaliChapterList } from "../api/Corpus";
+import { IPaliChapterListResponse } from "../api/Corpus";
 import { IChapter } from "./BookViewer";
 import { IPaliChapterData } from "./PaliChapterCard";
 import PaliChapterList, { IChapterClickEvent } from "./PaliChapterList";
@@ -16,7 +16,7 @@ const Widget = ({ chapter, onChapterClick }: IWidget) => {
   useEffect(() => {
     console.log("palichapterlist useEffect");
     let url = `/v2/palitext?view=chapter_children&book=${chapter.book}&para=${chapter.para}`;
-    get<IApiResponsePaliChapterList>(url).then(function (json) {
+    get<IPaliChapterListResponse>(url).then(function (json) {
       console.log("chapter ajex", json);
       const newTree: IPaliChapterData[] = json.data.rows.map((item) => {
         return {

+ 20 - 16
dashboard/src/components/corpus/PaliChapterListByTag.tsx

@@ -1,7 +1,7 @@
 import { useState, useEffect } from "react";
 
 import { get } from "../../request";
-import { IApiResponsePaliChapterList } from "../api/Corpus";
+import { IPaliChapterListResponse } from "../api/Corpus";
 import { IPaliChapterData } from "./PaliChapterCard";
 import PaliChapterList, { IChapterClickEvent } from "./PaliChapterList";
 
@@ -9,27 +9,31 @@ interface IWidgetPaliChapterListByTag {
   tag: string[];
   onChapterClick?: Function;
 }
-const defaultData: IPaliChapterData[] = [];
+
 const Widget = (prop: IWidgetPaliChapterListByTag) => {
-  const [tableData, setTableData] = useState(defaultData);
+  const [tableData, setTableData] = useState<IPaliChapterData[]>([]);
 
   useEffect(() => {
     console.log("palichapterlist useEffect");
     let url = `/v2/palitext?view=chapter&tags=${prop.tag.join()}`;
     console.log("tag url", url);
-    get<IApiResponsePaliChapterList>(url).then((json) => {
-      let newTree: IPaliChapterData[] = json.data.rows.map((item) => {
-        return {
-          Title: item.title,
-          PaliTitle: item.title,
-          level: item.level,
-          Path: item.path,
-          Book: item.book,
-          Paragraph: item.paragraph,
-          progressLine: item.progress_line,
-        };
-      });
-      setTableData(newTree);
+    get<IPaliChapterListResponse>(url).then((json) => {
+      if (json.ok) {
+        let newTree: IPaliChapterData[] = json.data.rows.map((item) => {
+          return {
+            Title: item.title,
+            PaliTitle: item.title,
+            level: item.level,
+            Path: item.path,
+            Book: item.book,
+            Paragraph: item.paragraph,
+            progressLine: item.progress_line,
+          };
+        });
+        setTableData(newTree);
+      } else {
+        console.error(json.message);
+      }
     });
   }, [prop.tag]);