Add default fullscreen setting

This commit is contained in:
ZXY101
2024-05-25 22:30:16 +02:00
parent ec632b534b
commit 109241e584
4 changed files with 46 additions and 28 deletions

60
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "z-reader", "name": "z-reader",
"version": "1.0.0", "version": "0.9.1",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "z-reader", "name": "z-reader",
"version": "0.9.0", "version": "0.9.1",
"dependencies": { "dependencies": {
"@types/gapi": "^0.0.47", "@types/gapi": "^0.0.47",
"@types/google.accounts": "^0.0.14", "@types/google.accounts": "^0.0.14",
@@ -485,10 +485,11 @@
} }
}, },
"node_modules/@fastify/busboy": { "node_modules/@fastify/busboy": {
"version": "2.1.0", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
"integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=14" "node": ">=14"
} }
@@ -689,11 +690,12 @@
} }
}, },
"node_modules/@sveltejs/kit": { "node_modules/@sveltejs/kit": {
"version": "1.30.3", "version": "1.30.4",
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.30.3.tgz", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.30.4.tgz",
"integrity": "sha512-0DzVXfU4h+tChFvoc8C61IqErCyskD4ydSIDjpKS2lYlEzIYrtYrY7juSqACFxqcvZAnOEXvSY+zZ8br0+ZMMg==", "integrity": "sha512-JSQIQT6XvdchCRQEm7BABxPC56WP5RYVONAi+09S8tmzeP43fBsRlr95bFmsTQM2RHBldfgQk+jgdnsKI75daA==",
"dev": true, "dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@sveltejs/vite-plugin-svelte": "^2.5.0", "@sveltejs/vite-plugin-svelte": "^2.5.0",
"@types/cookie": "^0.5.1", "@types/cookie": "^0.5.1",
@@ -707,7 +709,7 @@
"set-cookie-parser": "^2.6.0", "set-cookie-parser": "^2.6.0",
"sirv": "^2.0.2", "sirv": "^2.0.2",
"tiny-glob": "^0.2.9", "tiny-glob": "^0.2.9",
"undici": "~5.26.2" "undici": "^5.28.3"
}, },
"bin": { "bin": {
"svelte-kit": "svelte-kit.js" "svelte-kit": "svelte-kit.js"
@@ -3917,10 +3919,11 @@
} }
}, },
"node_modules/undici": { "node_modules/undici": {
"version": "5.26.5", "version": "5.28.4",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
"integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@fastify/busboy": "^2.0.0" "@fastify/busboy": "^2.0.0"
}, },
@@ -3974,10 +3977,11 @@
"dev": true "dev": true
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "4.5.1", "version": "4.5.3",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
"integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"esbuild": "^0.18.10", "esbuild": "^0.18.10",
"postcss": "^8.4.27", "postcss": "^8.4.27",
@@ -4312,9 +4316,9 @@
"dev": true "dev": true
}, },
"@fastify/busboy": { "@fastify/busboy": {
"version": "2.1.0", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
"integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
"dev": true "dev": true
}, },
"@floating-ui/core": { "@floating-ui/core": {
@@ -4480,9 +4484,9 @@
} }
}, },
"@sveltejs/kit": { "@sveltejs/kit": {
"version": "1.30.3", "version": "1.30.4",
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.30.3.tgz", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.30.4.tgz",
"integrity": "sha512-0DzVXfU4h+tChFvoc8C61IqErCyskD4ydSIDjpKS2lYlEzIYrtYrY7juSqACFxqcvZAnOEXvSY+zZ8br0+ZMMg==", "integrity": "sha512-JSQIQT6XvdchCRQEm7BABxPC56WP5RYVONAi+09S8tmzeP43fBsRlr95bFmsTQM2RHBldfgQk+jgdnsKI75daA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@sveltejs/vite-plugin-svelte": "^2.5.0", "@sveltejs/vite-plugin-svelte": "^2.5.0",
@@ -4497,7 +4501,7 @@
"set-cookie-parser": "^2.6.0", "set-cookie-parser": "^2.6.0",
"sirv": "^2.0.2", "sirv": "^2.0.2",
"tiny-glob": "^0.2.9", "tiny-glob": "^0.2.9",
"undici": "~5.26.2" "undici": "^5.28.3"
} }
}, },
"@sveltejs/vite-plugin-svelte": { "@sveltejs/vite-plugin-svelte": {
@@ -6728,9 +6732,9 @@
"dev": true "dev": true
}, },
"undici": { "undici": {
"version": "5.26.5", "version": "5.28.4",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
"integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
"dev": true, "dev": true,
"requires": { "requires": {
"@fastify/busboy": "^2.0.0" "@fastify/busboy": "^2.0.0"
@@ -6762,9 +6766,9 @@
"dev": true "dev": true
}, },
"vite": { "vite": {
"version": "4.5.1", "version": "4.5.3",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
"integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
"dev": true, "dev": true,
"requires": { "requires": {
"esbuild": "^0.18.10", "esbuild": "^0.18.10",

View File

@@ -23,6 +23,7 @@
import { getCharCount } from '$lib/util/count-chars'; import { getCharCount } from '$lib/util/count-chars';
import QuickActions from './QuickActions.svelte'; import QuickActions from './QuickActions.svelte';
import { beforeNavigate } from '$app/navigation'; import { beforeNavigate } from '$app/navigation';
import { onMount } from 'svelte';
// TODO: Refactor this whole mess // TODO: Refactor this whole mess
export let volumeSettings: VolumeSettings; export let volumeSettings: VolumeSettings;
@@ -220,7 +221,17 @@
} }
} }
onMount(() => {
if ($settings.defaultFullscreen) {
document.documentElement.requestFullscreen();
}
});
beforeNavigate(() => { beforeNavigate(() => {
if (document.exitFullscreen) {
document.exitFullscreen();
}
if (volume) { if (volume) {
const { charCount, lineCount } = getCharCount(pages, page); const { charCount, lineCount } = getCharCount(pages, page);

View File

@@ -3,6 +3,7 @@
import { Toggle } from 'flowbite-svelte'; import { Toggle } from 'flowbite-svelte';
$: toggles = [ $: toggles = [
{ key: 'defaultFullscreen', text: 'Open reader in fullscreen', value: $settings.defaultFullscreen },
{ key: 'textEditable', text: 'Editable text', value: $settings.textEditable }, { key: 'textEditable', text: 'Editable text', value: $settings.textEditable },
{ key: 'textBoxBorders', text: 'Text box borders', value: $settings.textBoxBorders }, { key: 'textBoxBorders', text: 'Text box borders', value: $settings.textBoxBorders },
{ key: 'displayOCR', text: 'OCR enabled', value: $settings.displayOCR }, { key: 'displayOCR', text: 'OCR enabled', value: $settings.displayOCR },

View File

@@ -41,6 +41,7 @@ export type VolumeDefaults = {
} }
export type Settings = { export type Settings = {
defaultFullscreen: boolean;
textEditable: boolean; textEditable: boolean;
textBoxBorders: boolean; textBoxBorders: boolean;
displayOCR: boolean; displayOCR: boolean;
@@ -67,6 +68,7 @@ export type AnkiSettingsKey = keyof AnkiConnectSettings;
export type VolumeDefaultsKey = keyof VolumeDefaults; export type VolumeDefaultsKey = keyof VolumeDefaults;
const defaultSettings: Settings = { const defaultSettings: Settings = {
defaultFullscreen: false,
displayOCR: true, displayOCR: true,
textEditable: false, textEditable: false,
textBoxBorders: false, textBoxBorders: false,