From 482892ffc13822a1837458ae193fa927b9331eba Mon Sep 17 00:00:00 2001 From: monoid Date: Fri, 15 Aug 2025 22:01:04 +0900 Subject: [PATCH] feat: add loading spinner to ComicPage component --- packages/client/src/page/reader/comicPage.tsx | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/packages/client/src/page/reader/comicPage.tsx b/packages/client/src/page/reader/comicPage.tsx index dadc670..1257788 100644 --- a/packages/client/src/page/reader/comicPage.tsx +++ b/packages/client/src/page/reader/comicPage.tsx @@ -8,6 +8,7 @@ import { EnterFullScreenIcon, ExitFullScreenIcon, ExitIcon } from "@radix-ui/rea import { useEventListener } from "usehooks-ts"; import type { Document } from "dbtype"; import { useCallback, useEffect, useRef, useState } from "react"; +import { Loader2 } from "lucide-react"; interface ComicPageProps { params: { @@ -47,7 +48,7 @@ function ComicViewer({ }, [pageDown, pageUp]); useEffect(() => { - if(currentImageRef.current){ + if (currentImageRef.current) { if (curPage < 0 || curPage >= totalPage) { return; } @@ -83,7 +84,7 @@ function ComicViewer({ className={cn("max-w-full max-h-full top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 absolute", fade ? "opacity-70 transition-opacity duration-300 ease-in-out" : "opacity-100" )} - alt="main content"/> + alt="main content" />
pageUp(1)} /> {curPage + 1 < totalPage && ( next page @@ -121,9 +122,11 @@ export default function ComicPage({ const [curPage, setCurPage] = useState(0); const { isFullScreen, toggleFullScreen } = useFullScreen(); if (isLoading) { - // TODO: Add a loading spinner - return
- Loading... + return
+ + 로딩 중...
} if (error) { @@ -143,27 +146,27 @@ export default function ComicPage({ return ( - }/> - : } onClick={()=>{ + } /> + : } onClick={() => { toggleFullScreen(); - }} /> + }} /> {curPage + 1}/{data.additional.page as number} - - setCurPage(clip(Number.parseInt(e.target.value) - 1, - 0, + + setCurPage(clip(Number.parseInt(e.target.value) - 1, + 0, (data.additional.page as number) - 1))} /> }> + curPage={curPage} + onChangePage={setCurPage} + doc={data} + totalPage={data.additional.page as number} /> ) } \ No newline at end of file