Handle double page covers
This commit is contained in:
@@ -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]} />
|
||||||
|
|||||||
Reference in New Issue
Block a user