From 12e23b38729485262efb0ca0799e2694ac5a57ab Mon Sep 17 00:00:00 2001 From: Wim Brand Date: Fri, 9 Aug 2024 13:47:10 +0200 Subject: [PATCH] Add loading store to Navigator to keep track of loading state --- svelte/src/filesystem/Filesystem.svelte | 38 +++++-------------- svelte/src/filesystem/Navigator.js | 26 +++++++------ svelte/src/filesystem/SearchView.svelte | 5 ++- .../filesystem/edit_window/EditWindow.svelte | 8 +--- .../filesystem/edit_window/FileOptions.svelte | 6 +-- .../filemanager/CreateDirectory.svelte | 10 ++--- .../filemanager/FileImporter.svelte | 10 +---- .../filesystem/filemanager/FileManager.svelte | 13 ++----- .../src/filesystem/viewers/FilePreview.svelte | 6 +-- svelte/src/filesystem/viewers/Torrent.svelte | 7 ++-- svelte/src/filesystem/viewers/Zip.svelte | 8 ++-- 11 files changed, 51 insertions(+), 86 deletions(-) diff --git a/svelte/src/filesystem/Filesystem.svelte b/svelte/src/filesystem/Filesystem.svelte index 2aa10b6..2815e84 100644 --- a/svelte/src/filesystem/Filesystem.svelte +++ b/svelte/src/filesystem/Filesystem.svelte @@ -12,8 +12,8 @@ import { fs_path_url } from './FilesystemUtil.js'; import { branding_from_path } from './edit_window/Branding.js' import Menu from './Menu.svelte'; import { Navigator } from "./Navigator.js" +import { writable } from 'svelte/store'; -let loading = true let file_viewer let file_preview let toolbar @@ -24,9 +24,11 @@ let edit_window let edit_visible = false let view = "file" -const nav = new Navigator() +const loading = writable(true) +const nav = new Navigator(true) onMount(() => { + nav.loading = loading nav.open_node(window.initial_node, false) // Subscribe to navigation updates. This function returns a deconstructor @@ -39,8 +41,7 @@ onMount(() => { // Custom CSS rules for the whole viewer document.documentElement.style = branding_from_path(nav.path) - // Turn off loading spinner when the navigator is done - loading = false + loading.set(false) }) }) @@ -120,8 +121,6 @@ const search = async () => { view = "search" } - -const loading_evt = e => loading = e.detail @@ -151,17 +150,12 @@ const loading_evt = e => loading = e.detail bind:this={file_preview} nav={nav} edit_window={edit_window} - on:loading={loading_evt} on:open_sibling={e => nav.open_sibling(e.detail)} on:download={download} on:upload_picker={() => upload_widget.pick_files()} /> {:else if view === "search"} - {view = "file"}} - /> + {view = "file"}} /> {/if} @@ -173,25 +167,13 @@ const loading_evt = e => loading = e.detail style="display: none; width: 1px; height: 1px;"> - + - + - + - +