diff --git a/src-www/pages/Browse.tsx b/src-www/pages/Browse.tsx index 9489113..6c22121 100644 --- a/src-www/pages/Browse.tsx +++ b/src-www/pages/Browse.tsx @@ -1,6 +1,7 @@ import { useEffect, useState } from "react"; import { Extension } from "../types/extension.ts"; +import { getIconUrl } from "../services/extensions.service.ts"; import { getExtensions } from "../tauri.ts"; export default function Browse() { @@ -16,13 +17,16 @@ export default function Browse() { key={extension.id} style={{ display: "flex", alignItems: "center", gap: 12 }} > - +
- {extension.name} + {extension.source.name}
- {extension.language} + {extension.source.language}
{ + return await invoke("get_manga_list", { + extensionId: extensionId, + filters: filters, + page: page, + }); +} + +export async function getMangaDetails( + extensionId: string, + mangaId: string, +): Promise { + return await invoke("get_manga_details", { + extensionId: extensionId, + mangaId: mangaId, + }); +} + +export async function getChapterList( + extensionId: string, + mangaId: string, +): Promise { + return await invoke("get_chapter_list", { + extensionId: extensionId, + mangaId: mangaId, + }); +} + +export async function getPageList( + extensionId: string, + mangaId: string, + chapterId: string, +): Promise { + return await invoke("get_page_list", { + extensionId: extensionId, + mangaId: mangaId, + chapterId: chapterId, + }); +} diff --git a/src-www/tauri.ts b/src-www/tauri.ts index d4d1ebb..f07bb67 100644 --- a/src-www/tauri.ts +++ b/src-www/tauri.ts @@ -5,7 +5,13 @@ import { Manifest } from "./types/manifest.ts"; export async function getExtensions(): Promise { return (await invoke<[string, Source, string][]>("get_extensions")) - .map(([id, source, iconPath]) => new Extension(id, source, iconPath)); + .map(([id, source, iconPath]) => + { + id: id, + source: source, + iconPath: iconPath, + } + ); } export async function getRepositoryExtensions( diff --git a/src-www/types/extension.ts b/src-www/types/extension.ts index 71d41c7..3927ebe 100644 --- a/src-www/types/extension.ts +++ b/src-www/types/extension.ts @@ -1,10 +1,3 @@ -import { convertFileSrc, invoke } from "@tauri-apps/api/core"; - -import { Chapter } from "./chapter.ts"; -import { Filter } from "./filter.ts"; -import { Manga } from "./manga.ts"; -import { Page } from "./page.ts"; - export interface Source { name: string; language: string; @@ -13,57 +6,8 @@ export interface Source { nsfw: boolean; } -export class Extension { - public name: string; - public language: string; - public version: string; - public url: string; - public nsfw: boolean; - public iconUrl: string; - - constructor( - public id: string, - source: Source, - iconPath: string, - ) { - this.name = source.name; - this.language = source.language; - this.version = source.version; - this.url = source.url; - this.nsfw = source.nsfw; - this.iconUrl = convertFileSrc(iconPath); - } - - async getMangaList( - filters: Array, - page: number, - ): Promise<[Array, boolean]> { - return await invoke("get_manga_list", { - extensionId: this.id, - filters: filters, - page: page, - }); - } - - async getMangaDetails(mangaId: string): Promise { - return await invoke("get_manga_details", { - extensionId: this.id, - mangaId: mangaId, - }); - } - - async getChapterList(mangaId: string): Promise> { - return await invoke("get_chapter_list", { - extensionId: this.id, - mangaId: mangaId, - }); - } - - async getPageList(mangaId: string, chapterId: string): Promise> { - return await invoke("get_page_list", { - extensionId: this.id, - mangaId: mangaId, - chapterId: chapterId, - }); - } +export interface Extension { + id: string; + iconPath: string; + source: Source; } diff --git a/src-www/types/manga.ts b/src-www/types/manga.ts index 9448098..deeede4 100644 --- a/src-www/types/manga.ts +++ b/src-www/types/manga.ts @@ -27,8 +27,12 @@ export interface Manga { coverUrl: string; authorName: string; artistName: string; - categories: Array; + categories: string[]; status: Status; contentRating: ContentRating; readingMode: ReadingMode; } + +export interface MangaList { + data: [Manga[], boolean]; +}