Skip to content

Commit

Permalink
some minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Robonau committed Jul 19, 2023
1 parent 324e74b commit a50bc35
Show file tree
Hide file tree
Showing 4 changed files with 142 additions and 60 deletions.
7 changes: 4 additions & 3 deletions src/gql/Mutations.gql
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,14 @@ mutation fetchMangaChapters($id: Int!) {
realUrl
status
title
source {
displayName
}
thumbnailUrl
meta {
value
key
}
source {
displayName
}
}
}
fetchChapters(input: { mangaId: $id }) {
Expand Down
9 changes: 5 additions & 4 deletions src/lib/generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1582,7 +1582,7 @@ export type FetchMangaChaptersMutationVariables = Exact<{
}>;


export type FetchMangaChaptersMutation = { __typename?: 'Mutation', fetchManga: { __typename?: 'FetchMangaPayload', manga: { __typename?: 'MangaType', artist?: string | null, author?: string | null, description?: string | null, genre: Array<string>, id: number, inLibrary: boolean, lastFetchedAt?: any | null, realUrl?: string | null, status: MangaStatus, title: string, source?: { __typename?: 'SourceType', displayName: string } | null, meta: Array<{ __typename?: 'MangaMetaType', value: string, key: string }> } }, fetchChapters: { __typename?: 'FetchChaptersPayload', chapters: Array<{ __typename?: 'ChapterType', isBookmarked: boolean, isDownloaded: boolean, isRead: boolean, id: number, chapterNumber: number, fetchedAt: any, lastPageRead: number, name: string, sourceOrder: number, uploadDate: any, pageCount: number }> } };
export type FetchMangaChaptersMutation = { __typename?: 'Mutation', fetchManga: { __typename?: 'FetchMangaPayload', manga: { __typename?: 'MangaType', artist?: string | null, author?: string | null, description?: string | null, genre: Array<string>, id: number, inLibrary: boolean, lastFetchedAt?: any | null, realUrl?: string | null, status: MangaStatus, title: string, thumbnailUrl?: string | null, meta: Array<{ __typename?: 'MangaMetaType', value: string, key: string }>, source?: { __typename?: 'SourceType', displayName: string } | null } }, fetchChapters: { __typename?: 'FetchChaptersPayload', chapters: Array<{ __typename?: 'ChapterType', isBookmarked: boolean, isDownloaded: boolean, isRead: boolean, id: number, chapterNumber: number, fetchedAt: any, lastPageRead: number, name: string, sourceOrder: number, uploadDate: any, pageCount: number }> } };

export type UpdateExtensionMutationVariables = Exact<{
pkgName: Scalars['String']['input'];
Expand Down Expand Up @@ -1883,13 +1883,14 @@ export const FetchMangaChaptersDoc = gql`
realUrl
status
title
source {
displayName
}
thumbnailUrl
meta {
value
key
}
source {
displayName
}
}
}
fetchChapters(input: {mangaId: $id}) {
Expand Down
174 changes: 123 additions & 51 deletions src/routes/(app)/manga/[MangaID]/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
type UpdateChaptersMutationVariables,
Asyncmanga,
type MangaQuery,
fetchMangaChapters
fetchMangaChapters,
updateMangasCategories
} from '$lib/generated';
import Icon from '@iconify/svelte';
import { press } from 'svelte-gestures';
Expand All @@ -33,10 +34,10 @@
if (Number(data.manga.lastFetchedAt) * 1000 < Date.now() - 604800000) {
// 604800000 = week
updateManga();
} else {
manga = structuredClone(data.manga);
title.set(data.manga.title);
}
manga = structuredClone(data.manga);
title.set(data.manga.title);
source = strInitMeta(data.manga.meta, 'sort', 'source');
AscDesc = boolInitMeta(data.manga.meta, 'Asc', false);
Bookmarked = intInitMeta(data.manga.meta, 'BM', 0) as TriState;
Expand Down Expand Up @@ -71,6 +72,10 @@
let Unread = 0 as TriState;
let init = true;
let CatChangeloading = false;
const cats = data.cats;
let selectedcats = [] as number[];
$: upt('sort', source, 'source', parseInt(data.MangaID));
$: upt('Asc', AscDesc.toString(), 'false', parseInt(data.MangaID));
$: upt('BM', Bookmarked.toString(), '0', parseInt(data.MangaID));
Expand Down Expand Up @@ -161,62 +166,129 @@
(document.activeElement as HTMLButtonElement).blur();
}
async function EditCats() {
const idds = parseInt(data.MangaID);
await updateMangasCategories({
variables: {
id: idds,
addTo: selectedcats,
clear: true
}
});
selectedcats = [];
}
$: resume = sortedChapters?.filter((ele) => !ele.isRead).at(-1);
</script>

<div class="overflow-y-auto h-full relative snap-y sm:snap-none">
{#if manga}
<div class="w-full flex flex-col sm:flex-row absolute top-0 bottom-0" transition:fade|global>
<div class="sm:w-1/2 sm:h-screen sm:overflow-y-auto p-4" style="height:inherit">
<div class="flex w-full flex-col sm:flex-row">
<img
class="overflow-hidden object-contain rounded-xl max-w-full sm:max-w-1/3 shrink-0"
src={manga.thumbnailUrl ?? ''}
alt="cover"
/>
<div class="p-4">
{#if manga?.title}
<div class="text-5xl line-clamp-2 mb-4" title={manga.title}>{manga.title}</div>
{/if}
{#if manga?.author}
<div><span class="text-2xl">author:</span> {manga.author}</div>
{/if}
{#if manga?.artist}
<div><span class="text-2xl">artist:</span> {manga.artist}</div>
{/if}
{#if manga?.status}
<div><span class="text-2xl">status:</span> {manga.status}</div>
{/if}
{#if manga?.source?.displayName}
<div><span class="text-2xl">source:</span> {manga.source?.displayName}</div>
{/if}
<div class="sm:w-1/2 sm:h-screen sm:overflow-y-auto" style="height:inherit">
<div class="sticky top-0 w-full flex flex-wrap h-auto z-40 mb-1 pr-1">
<div class="bg-base-200 rounded-b-xl px-4 w-full">
<div class="flex items-center justify-between w-full">
{#if manga?.title}
<div class="text-5xl line-clamp-1" title={manga.title}>{manga.title}</div>
{/if}
<butto
class="icon-btn tooltip-bottom-align-right"
onclick="Cat_modal.showModal()"
data-tip="Change Categories"
>
{#if CatChangeloading}
<span class="loading loading-infinity w-12 text-5xl" />
{:else}
<Icon class="text-5xl" icon="mdi:shape" />
{/if}
</butto>
<dialog id="Cat_modal" class="modal">
<form method="dialog" class="modal-box">
<p class="py-4">You are about to change the category of this manga!</p>
<label class="label" for="selectcats">
<span class="label-text">Change Manga Categories</span>
</label>
<select
id="selectcats"
class="select select-bordered w-full"
style="height:{cats.nodes.length < 10 ? cats.nodes.length : 10}rem"
multiple
bind:value={selectedcats}
>
{#each cats.nodes as cat}
{#if cat.id !== 0}
<option value={cat.id}>{cat.name}</option>
{/if}
{/each}
</select>
<label class="label" for="selectcats"
><span class="label-text-alt"
>Pick multiple, or none to set Default Category</span
>
</label>
<p class="text-info">
You may need to refresh before you see the manga in other tabs
</p>
<div class="modal-action flex justify-between">
<button class="btn">Cancel</button>
<button class="btn" on:click={EditCats}>Submit</button>
</div>
</form>
<form method="dialog" class="modal-backdrop">
<button>close</button>
</form>
</dialog>
</div>
</div>
</div>
<div class="w-full my-4 flex">
<div class="w-1/2 inline-flex justify-center">
<button on:click={libtoggle} class="btn flex items-center">
<Icon
class="{manga?.inLibrary ? 'text-error' : 'text-neutral'} inline text-3xl"
icon="mdi-heart"
/>
<span class="ml-2">{manga?.inLibrary ? 'In Library' : 'Add to Library'}</span>
</button>
<div class="px-4">
<div class="flex w-full flex-col sm:flex-row">
<img
class="overflow-hidden object-contain rounded-xl max-w-full sm:max-w-1/3 shrink-0"
src={manga.thumbnailUrl ?? ''}
alt="cover"
/>
<div class="p-4">
{#if manga?.author}
<div><span class="text-2xl">author:</span> {manga.author}</div>
{/if}
{#if manga?.artist}
<div><span class="text-2xl">artist:</span> {manga.artist}</div>
{/if}
{#if manga?.status}
<div><span class="text-2xl">status:</span> {manga.status}</div>
{/if}
{#if manga?.source?.displayName}
<div><span class="text-2xl">source:</span> {manga.source?.displayName}</div>
{/if}
</div>
</div>
<div class="w-full my-4 flex">
<div class="w-1/2 inline-flex justify-center">
<button on:click={libtoggle} class="btn flex items-center">
<Icon
class="{manga?.inLibrary ? 'text-error' : 'text-neutral'} inline text-3xl"
icon="mdi-heart"
/>
<span class="ml-2">{manga?.inLibrary ? 'In Library' : 'Add to Library'}</span>
</button>
</div>
<div class="w-1/2 inline-flex justify-center">
<a href={manga.realUrl} target="_blank" class="btn flex items-center">
<Icon class="inline text-3xl" icon="mdi-globe" />
<span class="ml-2">Open Site</span>
</a>
</div>
</div>
<div class="w-1/2 inline-flex justify-center">
<a href={manga.realUrl} target="_blank" class="btn flex items-center">
<Icon class="inline text-3xl" icon="mdi-globe" />
<span class="ml-2">Open Site</span>
</a>
<div class="my-4">
<div class="text-2xl font-medium">About:</div>
<div>{manga?.description}</div>
</div>
<div class="flex flex-wrap">
{#each manga.genre as genre}
<div class="badge badge-primary mr-2 mb-2">{genre}</div>
{/each}
</div>
</div>
<div class="my-4">
<div class="text-2xl font-medium">About:</div>
<div>{manga?.description}</div>
</div>
<div class="flex flex-wrap">
{#each manga.genre as genre}
<div class="badge badge-primary mr-2 mb-2">{genre}</div>
{/each}
</div>
</div>
<div class="sm:w-1/2 sm:overflow-y-auto sm:snap-y" bind:this={scrollroot}>
Expand Down Expand Up @@ -418,7 +490,7 @@
{#if manga.source}
{chapter.scanlator || manga.source?.displayName}{''}
{/if}
{new Date(Number(chapter.fetchedAt) * 1000).toLocaleDateString()}
{new Date(Number(chapter.uploadDate) * 1000).toLocaleDateString()}
{#if chapter.isDownloaded}
{''}downloaded
{/if}
Expand Down
12 changes: 10 additions & 2 deletions src/routes/(app)/manga/[MangaID]/+page.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
import { error } from '@sveltejs/kit';
import type { PageLoad } from './$types';
export const load = (({ params }) => {
import { Asynccategories } from "$lib/generated"

export const load = (async ({ params }) => {
if (params.MangaID) {
const cats = await Asynccategories({ variables: {} })
if (cats.error) {
throw error(404, cats.error.message);
}
if (cats.data.categories === null || cats.data.categories === undefined) { throw error(404, 'categories null or undefined'); }
return {
cats: cats.data.categories,
MangaID: params.MangaID,
};
}
}

throw error(404, 'Not found');
Expand Down

0 comments on commit a50bc35

Please sign in to comment.