File tree Expand file tree Collapse file tree 3 files changed +53
-4
lines changed
Expand file tree Collapse file tree 3 files changed +53
-4
lines changed Original file line number Diff line number Diff line change 1+ <script setup lang="ts">
2+
3+ import {Toaster } from " ~/components/ui/toast" ;
4+ </script >
5+
6+ <template >
7+ <div >
8+ <Toaster />
9+ <div class =" flex flex-col min-h-dvh min-w-vw max-h-dvh max-w-vw" >
10+ <TopMenu class =" w-full bg-background z-10" />
11+ <slot />
12+ </div >
13+ </div >
14+ </template >
15+
16+ <style scoped>
17+
18+ </style >
Original file line number Diff line number Diff line change 11<script setup lang="ts">
22import * as apiurlMiddleware from " ~/middleware/apiurl.middleware" ;
3+ import {getEpisodeImages } from " ~/utils/api" ;
4+ import VisibilityObserver from " ~/components/utils/VisibilityObserver.vue" ;
35
46definePageMeta ({
57 middleware: [
68 apiurlMiddleware .default
79 ],
8- layout: " nav-layout"
10+ layout: " free-nav-layout"
11+ });
12+
13+ const id = useRoute ().params .id as any as number ;
14+
15+ const episodeImages = ref <string []>([]);
16+ const maxIndex = ref <number >(10 );
17+
18+ function increaseMaxIndex(){
19+ maxIndex .value += 10 ;
20+ }
21+
22+ onMounted (async () => {
23+ const episodeState: any = useState (` episode-${id } ` );
24+ if (episodeState .value && episodeState .value .length ){
25+ episodeImages .value = episodeState .value ;
26+ return ;
27+ }
28+ const response = await getEpisodeImages (id );
29+ episodeImages .value = response .data ;
30+ episodeState .value = episodeImages .value ;
931});
1032 </script >
1133
1234<template >
13- <div class =" flex justify-center h-[calc(theme(height.dvh)-70px)]" >
14- <h1 >Work in progress</h1 >
35+ <div class =" flex flex-col" >
36+ <div v-for =" image of episodeImages.slice(0, maxIndex)" :key =" episodeImages.indexOf(image)" class =" flex justify-center" >
37+ <NuxtImg v-if =" episodeImages.indexOf(image) < maxIndex - 1" :src =" sumToImageUrl(image)" alt =" Episode Image" class =" w-full md:w-2/3 lg:w-1/2 xl:w-1/3" />
38+ <VisibilityObserver v-else @on-display =" increaseMaxIndex" >
39+ <NuxtImg :src =" sumToImageUrl(image)" alt =" Episode Image" class =" w-full md:w-2/3 lg:w-1/2 xl:w-1/3" />
40+ </VisibilityObserver >
41+ </div >
1542 </div >
1643</template >
1744
Original file line number Diff line number Diff line change @@ -31,5 +31,9 @@ export function getRandomThumbnail(): Promise<any>{
3131}
3232
3333export function getWebtoon ( webtoonId : number ) : Promise < any > {
34- return axios . get ( `/webtoons/${ webtoonId } ` ) ;
34+ return axios . get ( `/webtoons/${ webtoonId } /raw` ) ;
35+ }
36+
37+ export function getEpisodeImages ( episodeId : number ) : Promise < any > {
38+ return axios . get ( `/webtoons/episodes/${ episodeId } /images/raw` ) ;
3539}
You can’t perform that action at this time.
0 commit comments