diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 7d7117e..97c5d8c 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -27,16 +27,14 @@ import { onMount } from "svelte"; import { quintOut } from "svelte/easing"; import "../app.scss"; - import { writable } from "svelte/store"; import { DISCORD_URL, GITHUB_URL_VERT } from "$lib/consts"; import { type Toast as ToastType, toasts } from "$lib/store/ToastProvider"; import Toast from "$lib/components/visual/Toast.svelte"; import { Settings } from "$lib/sections/settings/index.svelte"; let { children } = $props(); - let shouldGoBack = writable(false); - let navbar = $state(); - let hover = $state(false); + let dropping = $state(false); + let goingLeft = $state(false); let toastList = $state([]); toasts.subscribe((value) => { @@ -79,25 +77,20 @@ }, ]); - const maybeNavToHome = (e: DragEvent) => { - if (e.dataTransfer?.types.includes("Files")) { - e.preventDefault(); - goto("/"); - } + const dropFiles = (e: DragEvent) => { + e.preventDefault(); + dropping = false; + const oldLength = files.files.length; + files.add(e.dataTransfer?.files); + if (oldLength !== files.files.length) goto("/convert"); + }; + + const handleDrag = (e: DragEvent, drag: boolean) => { + e.preventDefault(); + dropping = drag; }; onMount(() => { - const mouseEnter = () => { - hover = true; - }; - - const mouseLeave = () => { - hover = false; - }; - - navbar?.addEventListener("mouseenter", mouseEnter); - navbar?.addEventListener("mouseleave", mouseLeave); - isMobile.set(window.innerWidth <= 768); window.addEventListener("resize", () => { isMobile.set(window.innerWidth <= 768); @@ -107,9 +100,9 @@ theme.set( (localStorage.getItem("theme") as "light" | "dark") || "light", ); - }); - let goingLeft = $state(false); + Settings.instance.load(); + }); beforeNavigate((e) => { const oldIndex = items.findIndex((i) => @@ -124,10 +117,6 @@ goingLeft = false; } }); - - onMount(() => { - Settings.instance.load(); - }); @@ -169,10 +158,22 @@ -
- +
handleDrag(e, true)} + ondragover={(e) => handleDrag(e, true)} + ondragleave={(e) => handleDrag(e, false)} + role="region" +> + {#if dropping} +
+ {/if} -
+ +