dropAction

Create a zone where files can be dropped.

Demo

DropZone

Usage

<script>
import { dropAction } from "svelte-legos";;

let filesData = [];

function onDrop(files: File[] | null) {
	filesData = files;
}

function onEnter(files: File[] | null) {
	// handle dragenter
}

function onOver(files: File[] | null) {
	// handle dragover
}

function onLeave(files: File[] | null) {
	// handle dragleave
}

let isOverDropZone = false;
</script>

<div
  use:dropAction={{ onDrop, onEnter, onOver, onLeave }}
  on:over-drop-zone={() => (isOverDropZone = true)}
  on:leave-drop-zone={() => (isOverDropZone = false)}
>
  <div>DropZone</div>
  <div>
    {#each filesData as file}
      <div>
        <p>Name: {file.name}</p>
        <p>Size: {file.size}</p>
        <p>Type: {file.type}</p>
        <p>Last modified: {file.lastModified}</p>
      </div>
    {/each}
  </div>
</div>