Loading indicator on edit operations
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import { fs_delete_all, fs_rename, fs_update } from "./FilesystemAPI";
|
import { fs_delete_all, fs_rename, fs_update } from "./FilesystemAPI";
|
||||||
import Modal from "../util/Modal.svelte";
|
import Modal from "../util/Modal.svelte";
|
||||||
|
import { createEventDispatcher } from "svelte";
|
||||||
|
|
||||||
|
let dispatch = createEventDispatcher()
|
||||||
|
|
||||||
export let bucket = ""
|
export let bucket = ""
|
||||||
export let fs_navigator
|
export let fs_navigator
|
||||||
@@ -37,6 +40,7 @@ let write_password = ""
|
|||||||
const save = async () => {
|
const save = async () => {
|
||||||
console.debug("Saving file", file.path)
|
console.debug("Saving file", file.path)
|
||||||
try {
|
try {
|
||||||
|
dispatch("loading", true)
|
||||||
await fs_update(
|
await fs_update(
|
||||||
bucket,
|
bucket,
|
||||||
file.path,
|
file.path,
|
||||||
@@ -58,6 +62,8 @@ const save = async () => {
|
|||||||
console.error(err)
|
console.error(err)
|
||||||
alert(err)
|
alert(err)
|
||||||
return
|
return
|
||||||
|
} finally {
|
||||||
|
dispatch("loading", false)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (open_after_edit) {
|
if (open_after_edit) {
|
||||||
@@ -68,11 +74,14 @@ const save = async () => {
|
|||||||
}
|
}
|
||||||
const delete_file = async () => {
|
const delete_file = async () => {
|
||||||
try {
|
try {
|
||||||
|
dispatch("loading", true)
|
||||||
await fs_delete_all(bucket, file.path)
|
await fs_delete_all(bucket, file.path)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
alert(err)
|
alert(err)
|
||||||
return
|
return
|
||||||
|
} finally {
|
||||||
|
dispatch("loading", false)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (open_after_edit) {
|
if (open_after_edit) {
|
||||||
|
@@ -102,6 +102,10 @@ const search = async () => {
|
|||||||
|
|
||||||
view = "search"
|
view = "search"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const loading_evt = e => {
|
||||||
|
loading = e.detail
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:window on:keydown={keydown} />
|
<svelte:window on:keydown={keydown} />
|
||||||
@@ -111,7 +115,7 @@ const search = async () => {
|
|||||||
<Navigator
|
<Navigator
|
||||||
bind:this={fs_navigator}
|
bind:this={fs_navigator}
|
||||||
bind:state
|
bind:state
|
||||||
on:loading={e => loading = e.detail}
|
on:loading={loading_evt}
|
||||||
on:navigation_complete={() => {
|
on:navigation_complete={() => {
|
||||||
// Reset the view to the file view if we were in search view
|
// Reset the view to the file view if we were in search view
|
||||||
view = "file"
|
view = "file"
|
||||||
@@ -155,7 +159,7 @@ const search = async () => {
|
|||||||
fs_navigator={fs_navigator}
|
fs_navigator={fs_navigator}
|
||||||
state={state}
|
state={state}
|
||||||
edit_window={edit_window}
|
edit_window={edit_window}
|
||||||
on:loading={e => {loading = e.detail}}
|
on:loading={loading_evt}
|
||||||
on:open_sibling={e => fs_navigator.open_sibling(e.detail)}
|
on:open_sibling={e => fs_navigator.open_sibling(e.detail)}
|
||||||
on:download={download}
|
on:download={download}
|
||||||
/>
|
/>
|
||||||
@@ -163,7 +167,7 @@ const search = async () => {
|
|||||||
<SearchView
|
<SearchView
|
||||||
state={state}
|
state={state}
|
||||||
fs_navigator={fs_navigator}
|
fs_navigator={fs_navigator}
|
||||||
on:loading={e => {loading = e.detail}}
|
on:loading={loading_evt}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
@@ -186,6 +190,7 @@ const search = async () => {
|
|||||||
bind:visible={edit_visible}
|
bind:visible={edit_visible}
|
||||||
bucket={state.root.id}
|
bucket={state.root.id}
|
||||||
fs_navigator={fs_navigator}
|
fs_navigator={fs_navigator}
|
||||||
|
on:loading={loading_evt}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user