[ui] also handle (file) pastes

feat/vaults
Tomáš Mládek 2022-01-23 11:38:07 +01:00
parent 956fe9344d
commit dec2e4daf1
No known key found for this signature in database
GPG Key ID: ED21612889E75EC5
2 changed files with 10 additions and 4 deletions

View File

@ -6,7 +6,7 @@
import Home from "./views/Home.svelte"; import Home from "./views/Home.svelte";
import Browse from "./views/Browse.svelte"; import Browse from "./views/Browse.svelte";
import Search from "./views/Search.svelte"; import Search from "./views/Search.svelte";
import DropAdd from "./components/DropAdd.svelte"; import DropPasteHandler from "./components/DropPasteHandler.svelte";
import AddModal from "./components/AddModal.svelte"; import AddModal from "./components/AddModal.svelte";
const history = createHistory(createHashSource()); const history = createHistory(createHashSource());
@ -37,7 +37,7 @@
<AddModal /> <AddModal />
</Router> </Router>
<DropAdd /> <DropPasteHandler />
<style global lang="scss"> <style global lang="scss">
@use "normalize.css/normalize.css"; @use "normalize.css/normalize.css";

View File

@ -5,7 +5,6 @@
let dragging = false; let dragging = false;
function onDrop(ev: DragEvent) { function onDrop(ev: DragEvent) {
console.debug(ev.dataTransfer);
if (ev.dataTransfer.files.length > 0) { if (ev.dataTransfer.files.length > 0) {
addEmitter.emit("files", Array.from(ev.dataTransfer.files)); addEmitter.emit("files", Array.from(ev.dataTransfer.files));
} // TODO: else check for URLs } // TODO: else check for URLs
@ -21,13 +20,20 @@
function onDragLeave(ev: DragEvent) { function onDragLeave(ev: DragEvent) {
dragging = false; dragging = false;
} }
function onPaste(ev: ClipboardEvent) {
if (ev.clipboardData.files.length > 0) {
addEmitter.emit("files", Array.from(ev.clipboardData.files));
} // TODO: else check for URLs
}
</script> </script>
<svelte:body <svelte:body
on:dragenter|preventDefault={onDragEnter} on:dragenter|preventDefault={onDragEnter}
on:dragover|preventDefault={onDragOver} on:dragover|preventDefault={onDragOver}
on:dragleave|preventDefault={onDragLeave} on:dragleave|preventDefault={onDragLeave}
on:drop|preventDefault={onDrop} /> on:drop|preventDefault={onDrop}
on:paste={onPaste} />
<div class="dropindicator" class:dragging> <div class="dropindicator" class:dragging>
<div class="content"> <div class="content">