| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { useState, useEffect } from "react";
- import PaliChapterChannelList from "./PaliChapterChannelList";
- import PaliChapterListByPara from "./PaliChapterListByPara";
- import PaliChapterHead from "./PaliChapterHead";
- import type { IChapterClickEvent } from "./PaliChapterList"
- import { Tabs } from "antd";
- export interface IChapter {
- book: number;
- para: number;
- level?: number;
- }
- interface IWidget {
- chapter: IChapter;
- onChange?: Function;
- }
- const BookViewerWidget = ({ chapter, onChange }: IWidget) => {
- const [currChapter, setCurrChapter] = useState(chapter);
- useEffect(() => {
- if (typeof onChange !== "undefined") {
- onChange(currChapter);
- }
- }, [currChapter, onChange]);
- useEffect(() => {
- setCurrChapter(chapter);
- }, [chapter]);
- return (
- <>
- <PaliChapterHead
- onChange={(e: IChapter) => {
- setCurrChapter(e);
- }}
- para={currChapter}
- />
- <Tabs
- size="small"
- items={[
- {
- label: `目录`,
- key: "toc",
- children: (
- <PaliChapterListByPara
- chapter={currChapter}
- onChapterClick={(e: IChapterClickEvent) => {
- setCurrChapter({ book: e.para.Book, para: e.para.Paragraph });
- console.log("PaliChapterListByPara", "onchange", e);
- }}
- />
- ),
- },
- {
- label: `资源`,
- key: "res",
- children: <PaliChapterChannelList para={currChapter} />,
- },
- ]}
- />
- </>
- );
- };
- export default BookViewerWidget;
|