import React, {ReactElement, ReactEventHandler, useEffect, useState} from "react"; import MangaFunctions from "../MangaFunctions"; import IManga from "./IManga"; import ChapterFunctions from "../ChapterFunctions"; export default interface IChapter{ chapterId: string; volumeNumber: number; chapterNumber: string; url: string; title: string | undefined; archiveFileName: string; downloaded: boolean; parentMangaId: string; } export function ChapterItem({apiUri, chapterId} : {apiUri: string, chapterId: string}) : ReactElement { const setCoverItem : ReactEventHandler = (e) => { setMangaCoverHtmlImageItem(e.currentTarget); } let [chapter, setChapter] = useState(null); let [manga, setManga] = useState(null); let [mangaCoverUrl, setMangaCoverUrl] = useState("../../media/blahaj.png"); let [mangaCoverHtmlImageItem, setMangaCoverHtmlImageItem] = useState(null); useEffect(() => { ChapterFunctions.GetChapterFromId(apiUri, chapterId).then(setChapter); }, []); useEffect(() => { if(chapter === null) manga = null; else MangaFunctions.GetMangaById(apiUri, chapter.parentMangaId).then(setManga); }, [chapter]); useEffect(() => { if(chapter != null && mangaCoverHtmlImageItem != null) setMangaCoverUrl(MangaFunctions.GetMangaCoverImageUrl(apiUri, chapter.parentMangaId, mangaCoverHtmlImageItem)); }, [chapter, mangaCoverHtmlImageItem]); let [clicked, setClicked] = useState(false); return (
setClicked(!clicked)}> MangaFunctions Cover

{manga ? manga.name : "MangaFunctions-Name"}

{chapter ? chapter.title : "ChapterFunctions-Title"}

Vol.{chapter ? chapter.volumeNumber : "VolNum"}

Ch.{chapter ? chapter.chapterNumber : "ChNum"}

Vol.{chapter ? chapter.volumeNumber : "VolNum"} Ch.{chapter ? chapter.chapterNumber : "ChNum"}

Link
) }