From 5a8b2469f2a2b3f7ac90d294a1079608505e491f Mon Sep 17 00:00:00 2001 From: Fornax Date: Tue, 28 Dec 2021 17:04:00 +0100 Subject: [PATCH] Update title when switching files in an album --- svelte/src/file_viewer/FileViewer.svelte | 41 +++++++++++---------- svelte/src/file_viewer/ListNavigator.svelte | 5 ++- svelte/src/file_viewer/viewers/Audio.svelte | 2 - svelte/src/file_viewer/viewers/Image.svelte | 1 + svelte/src/file_viewer/viewers/Video.svelte | 2 - 5 files changed, 26 insertions(+), 25 deletions(-) diff --git a/svelte/src/file_viewer/FileViewer.svelte b/svelte/src/file_viewer/FileViewer.svelte index a8e63d4..ee6e869 100644 --- a/svelte/src/file_viewer/FileViewer.svelte +++ b/svelte/src/file_viewer/FileViewer.svelte @@ -20,15 +20,7 @@ import GalleryView from "./GalleryView.svelte"; import Spinner from "../util/Spinner.svelte"; import Downloader from "./Downloader.svelte"; -let loading = 0 -const on_loading = e => { - if (e.detail) { - loading++ - } else { - loading-- - } -} - +let loading = true let embedded = false let view_token = "" let ads_enabled = false @@ -92,7 +84,6 @@ let embed_visible = false let skyscraper_visible = false onMount(() => { - loading++ let viewer_data = window.viewer_data embedded = viewer_data.embedded @@ -110,10 +101,10 @@ onMount(() => { } ads_enabled = list.files[0].show_ads - loading-- + loading = false }) const reload = async () => { - loading++ + loading = true if (is_list) { try { const resp = await fetch(list.info_href); @@ -138,7 +129,7 @@ const reload = async () => { alert(err) } } - loading-- + loading = false } const open_list = l => { @@ -163,9 +154,14 @@ const hash_change = () => { if (Number.isInteger(index)) { // The URL contains an item number. Navigate to that item open_file_index(index) - } else if (view !== "gallery") { + return + } + + // If the hash does not contain a file ID we open the gallery + if (view !== "gallery") { view = "gallery" file = file_struct // Empty the file struct + document.title = list.title+" ~ pixeldrain" } } const open_file_index = async index => { @@ -184,17 +180,24 @@ const open_file_index = async index => { file_set_href(list.files[index]) file = list.files[index] + // Switch from gallery view to file view if it's not already so if (view !== "file") { view = "file" await tick() // Wait for the file_preview and list_navigator to render } + // Tell the preview window to start rendering the file file_preview.set_file(file) + // Tell the list_navigator to highlight the loaded file if (is_list) { - // Update the URL without pushing a new history entry - window.location.replace("#item=" + index) + // Update the URL. This triggers the hash_change again, but it gets + // ignored because the file is already loaded + window.location.hash = "#item=" + index + document.title = file.name+" ~ "+list.title+" ~ pixeldrain" list_navigator.set_item(index) + } else { + document.title = file.name+" ~ pixeldrain" } // Register a file view @@ -327,7 +330,7 @@ const keyboard_event = evt => { - {#if loading !== 0} + {#if loading}
@@ -526,13 +529,13 @@ const keyboard_event = evt => { on:download={downloader.download_file} on:prev={() => { if (list_navigator) { list_navigator.prev() }}} on:next={() => { if (list_navigator) { list_navigator.next() }}} - on:loading={on_loading}> + on:loading={e => {loading = e.detail}}> {:else if view === "gallery"} + on:loading={e => {loading = e.detail}}> {/if} diff --git a/svelte/src/file_viewer/ListNavigator.svelte b/svelte/src/file_viewer/ListNavigator.svelte index 5d71b05..48dd5b1 100644 --- a/svelte/src/file_viewer/ListNavigator.svelte +++ b/svelte/src/file_viewer/ListNavigator.svelte @@ -69,13 +69,14 @@ export const set_item = idx => { diff --git a/svelte/src/file_viewer/viewers/Audio.svelte b/svelte/src/file_viewer/viewers/Audio.svelte index f632d05..c948d2d 100644 --- a/svelte/src/file_viewer/viewers/Audio.svelte +++ b/svelte/src/file_viewer/viewers/Audio.svelte @@ -73,8 +73,6 @@ const toggle_play = () => playing ? player.pause() : player.play() {#if file.id && !audio_reload}