From 967c7837fb39bcccf4eadfff15decbfe8ee48f1f Mon Sep 17 00:00:00 2001 From: Fornax Date: Mon, 13 Dec 2021 16:33:23 +0100 Subject: [PATCH] Update files with exported function instead of a reactive function --- svelte/src/file_viewer/FilePreview.svelte | 78 ------------------- svelte/src/file_viewer/FileStats.svelte | 2 +- svelte/src/file_viewer/FileViewer.svelte | 9 ++- svelte/src/file_viewer/ListNavigator.svelte | 19 +++-- svelte/src/file_viewer/viewers/Abuse.svelte | 3 +- svelte/src/file_viewer/viewers/Audio.svelte | 46 +++++------ svelte/src/file_viewer/viewers/File.svelte | 22 ++---- .../file_viewer/viewers/FilePreview.svelte | 77 ++++++++++++++++++ svelte/src/file_viewer/viewers/Image.svelte | 5 +- .../viewers/LargeFileMessage.svelte | 35 +++++++++ svelte/src/file_viewer/viewers/PDF.svelte | 3 +- svelte/src/file_viewer/viewers/Text.svelte | 28 +++---- svelte/src/file_viewer/viewers/Video.svelte | 50 +++++------- 13 files changed, 192 insertions(+), 185 deletions(-) delete mode 100644 svelte/src/file_viewer/FilePreview.svelte create mode 100644 svelte/src/file_viewer/viewers/FilePreview.svelte create mode 100644 svelte/src/file_viewer/viewers/LargeFileMessage.svelte diff --git a/svelte/src/file_viewer/FilePreview.svelte b/svelte/src/file_viewer/FilePreview.svelte deleted file mode 100644 index dc95a72..0000000 --- a/svelte/src/file_viewer/FilePreview.svelte +++ /dev/null @@ -1,78 +0,0 @@ - - -
- {#if viewer_type === "loading"} -
- -
- {:else if viewer_type === "abuse"} - - {:else if viewer_type === "image"} - - {:else if viewer_type === "video"} - - {:else if viewer_type === "audio"} - - {:else if viewer_type === "pdf"} - - {:else if viewer_type === "text"} - - {:else if viewer_type === "file"} - - {/if} -
- - diff --git a/svelte/src/file_viewer/FileStats.svelte b/svelte/src/file_viewer/FileStats.svelte index ca38b24..130e16b 100644 --- a/svelte/src/file_viewer/FileStats.svelte +++ b/svelte/src/file_viewer/FileStats.svelte @@ -16,7 +16,7 @@ let socket = null let error_msg = "" $: update_stats(file.id) -let update_stats = (id) => { +let update_stats = async id => { if (id === "" || id == "demo") { return } diff --git a/svelte/src/file_viewer/FileViewer.svelte b/svelte/src/file_viewer/FileViewer.svelte index 3f69363..0e9c23a 100644 --- a/svelte/src/file_viewer/FileViewer.svelte +++ b/svelte/src/file_viewer/FileViewer.svelte @@ -5,7 +5,7 @@ import { file_struct, list_struct, file_set_href } from "./FileUtilities.svelte" import Modal from "../util/Modal.svelte"; import PixeldrainLogo from "../util/PixeldrainLogo.svelte"; import DetailsWindow from "./DetailsWindow.svelte"; -import FilePreview from "./FilePreview.svelte"; +import FilePreview from "./viewers/FilePreview.svelte"; import ListNavigator from "./ListNavigator.svelte"; import FileStats from "./FileStats.svelte"; import EditWindow from "./EditWindow.svelte"; @@ -29,6 +29,7 @@ let view = "" // file or gallery let file = file_struct let list = list_struct let is_list = false +let file_preview let button_home let list_navigator @@ -167,9 +168,11 @@ const open_file_index = async index => { if (view !== "file") { view = "file" - await tick() // Wait for the ListNavigator to render + await tick() // Wait for the file_preview and list_navigator to render } + file_preview.set_file(file) + if (is_list) { // Update the URL location.replace("#item=" + index) @@ -449,7 +452,7 @@ const keyboard_event = evt => {
{#if view === "file"} { if (list_navigator) { list_navigator.prev() }}} on:next={() => { if (list_navigator) { list_navigator.next() }}}> diff --git a/svelte/src/file_viewer/ListNavigator.svelte b/svelte/src/file_viewer/ListNavigator.svelte index 2ebb3b6..b9c1871 100644 --- a/svelte/src/file_viewer/ListNavigator.svelte +++ b/svelte/src/file_viewer/ListNavigator.svelte @@ -4,6 +4,7 @@ import { createEventDispatcher } from "svelte"; let dispatch = createEventDispatcher() export let files = [] +export let shuffle = false let file_list_div let selected_file_index = 0 @@ -24,14 +25,19 @@ export const rand_item = () => { // Avoid viewing the same file multiple times let rand do { - rand = Math.round(Math.random() * files.length) + rand = Math.floor(Math.random() * files.length) console.log("rand is " + rand) } while(history.indexOf(rand) > -1) - set_item(rand) + select_item_event(rand) } -export let shuffle = false +// select_item_event signals to the FileViewer that the file needs to be +// changed. The FileViewer then calls set_item if the change has been approved. +// ListNavigator cannot call set_item itself because it will cause a loop. +const select_item_event = idx => { + dispatch("set_file", idx) +} export const set_item = idx => { // Remove the class from the previous selected file @@ -68,13 +74,6 @@ export const set_item = idx => { } animateScroll(start, 0) } - -// select_item signals to the FileViewer that the file needs to be changed. The -// FileViewer then calls set_item if the change has been approved. ListNavigator -// cannot call set_item itself because it will cause a loop. -const select_item_event = idx => { - dispatch("set_file", idx) -}