Add loading store to Navigator to keep track of loading state

This commit is contained in:
2024-08-09 13:47:10 +02:00
parent 69744e41a6
commit 12e23b3872
11 changed files with 51 additions and 86 deletions

View File

@@ -1,8 +1,7 @@
<script>
import { onMount, createEventDispatcher } from "svelte";
import { onMount } from "svelte";
import { fs_mkdir } from "../FilesystemAPI.js";
import Button from "../../layout/Button.svelte";
let dispatch = createEventDispatcher()
export let nav;
@@ -10,16 +9,15 @@ let name_input;
let new_dir_name = ""
let error_msg = ""
let create_dir = async () => {
dispatch("loading", true)
let form = new FormData()
form.append("type", "dir")
try {
nav.set_loading(true)
await fs_mkdir(nav.base.path+"/"+new_dir_name)
new_dir_name = "" // Clear input field
error_msg = "" // Clear error msg
dispatch("done")
nav.reload()
} catch (err) {
if (err.value && err.value === "node_already_exists") {
error_msg = "A directory with this name already exists"
@@ -27,7 +25,7 @@ let create_dir = async () => {
error_msg = "Server returned an error: "+err
}
} finally {
dispatch("loading", false)
nav.set_loading(false)
}
}

View File

@@ -1,21 +1,16 @@
<script>
import { createEventDispatcher } from "svelte";
import FilePicker from "../../file_viewer/FilePicker.svelte";
import { fs_import } from "../FilesystemAPI";
let dispatch = createEventDispatcher()
export let nav
let file_picker
export const open = () => file_picker.open()
const import_files = async files => {
dispatch("loading", true)
console.log(files)
nav.set_loading(true)
let fileids = []
files.forEach(file => {
fileids.push(file.id)
})
@@ -31,10 +26,9 @@ const import_files = async files => {
}
return
} finally {
dispatch("reload")
nav.reload()
}
}
</script>
<FilePicker

View File

@@ -97,7 +97,7 @@ const delete_selected = async () => {
return
}
dispatch("loading", true)
nav.set_loading(true)
try {
// Save all promises with deletion requests in an array
@@ -219,7 +219,7 @@ const move_start = () => {
}
const move_here = async () => {
dispatch("loading", true)
nav.set_loading(true)
let target_dir = nav.base.path + "/"
@@ -338,7 +338,7 @@ onMount(() => {
{/if}
{#if creating_dir}
<CreateDirectory nav={nav} on:done={() => nav.reload()} on:loading />
<CreateDirectory nav={nav} />
{/if}
{#if $nav.base.path === "/me"}
@@ -386,12 +386,7 @@ onMount(() => {
{/if}
</div>
<FileImporter
nav={nav}
bind:this={file_importer}
on:loading
on:reload={() => nav.reload()}
/>
<FileImporter nav={nav} bind:this={file_importer} />
<style>
.container {