mirror of
https://github.com/moku-project/Moku.git
synced 2026-06-14 09:49:58 -05:00
Implement series route
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageLoad } from './$types'
|
||||
import { getAdapter } from '$lib/request-manager'
|
||||
import { seriesState } from '$lib/state/series.svelte'
|
||||
import { readerState } from '$lib/state/reader.svelte'
|
||||
|
||||
export const load: PageLoad = async ({ params }) => {
|
||||
const mangaId = params.mangaId
|
||||
|
||||
if (!mangaId) {
|
||||
throw error(400, 'Missing manga id')
|
||||
}
|
||||
|
||||
try {
|
||||
seriesState.loading = true
|
||||
seriesState.error = null
|
||||
seriesState.chaptersLoading = true
|
||||
seriesState.chaptersError = null
|
||||
|
||||
const adapter = getAdapter()
|
||||
const [manga, chapters] = await Promise.all([
|
||||
adapter.getManga(mangaId),
|
||||
adapter.getChapters(mangaId),
|
||||
])
|
||||
|
||||
seriesState.current = manga
|
||||
seriesState.chapters = chapters
|
||||
|
||||
readerState.manga = manga
|
||||
readerState.chapters = chapters
|
||||
|
||||
return {
|
||||
manga,
|
||||
chapters,
|
||||
mangaId,
|
||||
}
|
||||
} catch (err) {
|
||||
const message = err instanceof Error ? err.message : String(err)
|
||||
|
||||
seriesState.error = message
|
||||
seriesState.chaptersError = message
|
||||
|
||||
throw error(500, message)
|
||||
} finally {
|
||||
seriesState.loading = false
|
||||
seriesState.chaptersLoading = false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user