Handle double page covers

This commit is contained in:
ZXY101
2023-09-22 12:17:30 +02:00
parent 846ddd868c
commit 76974fa7e5

View File

@@ -6,14 +6,17 @@
import { Input, Popover, Range } from 'flowbite-svelte'; import { Input, Popover, Range } from 'flowbite-svelte';
import MangaPage from './MangaPage.svelte'; import MangaPage from './MangaPage.svelte';
import { ChervonDoubleLeftSolid, ChervonDoubleRightSolid } from 'flowbite-svelte-icons'; import { ChervonDoubleLeftSolid, ChervonDoubleRightSolid } from 'flowbite-svelte-icons';
import { onMount } from 'svelte'; import { afterUpdate } from 'svelte';
const volume = $currentVolume; const volume = $currentVolume;
const pages = volume?.mokuroData.pages; const pages = volume?.mokuroData.pages;
$: page = $progress?.[volume?.mokuroData.volume_uuid || 0] || 1; $: page = $progress?.[volume?.mokuroData.volume_uuid || 0] || 1;
$: index = page - 1; $: index = page - 1;
$: navAmount = $settings.singlePageView ? 1 : 2; $: navAmount =
$settings.singlePageView || ($settings.hasCover && !$settings.singlePageView && index === 0)
? 1
: 2;
let start: Date; let start: Date;
@@ -41,9 +44,36 @@
} }
} }
$: showSecondPage = () => {
if (!pages) {
return false;
}
if ($settings.singlePageView || index + 1 >= pages.length) {
return false;
}
if (index === 0 && $settings.hasCover) {
return false;
}
return true;
};
$: manualPage = page; $: manualPage = page;
$: pageDisplay = `${page}/${pages?.length}`; $: pageDisplay = `${page}/${pages?.length}`;
let hasCoverSetting = $settings.hasCover;
$: {
if ($settings.hasCover !== hasCoverSetting) {
hasCoverSetting = $settings.hasCover;
if (index > 0) {
index--;
}
}
}
function onInputClick(this: any) { function onInputClick(this: any) {
this.select(); this.select();
} }
@@ -52,7 +82,7 @@
changePage(manualPage, true); changePage(manualPage, true);
} }
onMount(() => { afterUpdate(() => {
zoomDefault(); zoomDefault();
}); });
</script> </script>
@@ -101,8 +131,8 @@
on:mousedown={mouseDown} on:mousedown={mouseDown}
on:mouseup={right} on:mouseup={right}
/> />
<div class="flex flex-row"> <div class="flex flex-row" class:flex-row-reverse={!$settings.rightToLeft}>
{#if !$settings.singlePageView && index + 1 < pages.length} {#if showSecondPage()}
<MangaPage page={pages[index + 1]} src={Object.values(volume?.files)[index + 1]} /> <MangaPage page={pages[index + 1]} src={Object.values(volume?.files)[index + 1]} />
{/if} {/if}
<MangaPage page={pages[index]} src={Object.values(volume?.files)[index]} /> <MangaPage page={pages[index]} src={Object.values(volume?.files)[index]} />