import React, {ReactElement, ReactEventHandler, useEffect, useState} from "react"; import Manga from "../api/Manga"; import Chapter from "../api/Chapter"; import IChapter from "../types/IChapter"; import IManga from "../types/IManga"; export default 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(() => { Chapter.GetChapterFromId(apiUri, chapterId).then(setChapter); }, []); useEffect(() => { if(chapter === null) manga = null; else Manga.GetMangaById(apiUri, chapter.parentMangaId).then(setManga); }, [chapter]); useEffect(() => { if(chapter != null && mangaCoverHtmlImageItem != null) setMangaCoverUrl(Manga.GetMangaCoverImageUrl(apiUri, chapter.parentMangaId, mangaCoverHtmlImageItem)); }, [chapter, mangaCoverHtmlImageItem]); let [clicked, setClicked] = useState(false); return (
setClicked(!clicked)}> Manga Cover

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

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

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

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

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

Link
) }