web: core system for queue & queen bee, move remux to new system

it's 3 am and i think i had a divine intervention
This commit is contained in:
wukko
2025-01-19 02:57:15 +06:00
parent 2273bb388f
commit 2279b5d845
15 changed files with 426 additions and 299 deletions

View File

@ -3,19 +3,20 @@
export let classes = "";
export let draggedOver = false;
export let file: File | undefined;
export let files: FileList | undefined;
const dropHandler = async (ev: DragEvent) => {
draggedOver = false;
ev.preventDefault();
if (ev?.dataTransfer?.files.length === 1) {
file = ev.dataTransfer.files[0];
return file;
if (ev?.dataTransfer?.files && ev?.dataTransfer?.files.length > 0) {
files = ev.dataTransfer.files;
return files;
}
};
const dragOverHandler = (ev: DragEvent) => {
console.log("dragged over omg")
draggedOver = true;
ev.preventDefault();
};
@ -25,6 +26,7 @@
{id}
class={classes}
role="region"
aria-hidden="true"
on:drop={(ev) => dropHandler(ev)}
on:dragover={(ev) => dragOverHandler(ev)}
on:dragend={() => {

View File

@ -5,22 +5,33 @@
import IconFileImport from "@tabler/icons-svelte/IconFileImport.svelte";
import IconUpload from "@tabler/icons-svelte/IconUpload.svelte";
export let file: File | undefined;
export let files: FileList | undefined;
export let draggedOver = false;
export let acceptTypes: string[];
export let acceptExtensions: string[];
export let maxFileNumber: number = 100;
let selectorStringMultiple = maxFileNumber > 1 ? ".multiple" : "";
let fileInput: HTMLInputElement;
const openFile = async () => {
fileInput = document.createElement("input");
fileInput.type = "file";
fileInput.accept = acceptTypes.join(",");
if (maxFileNumber > 1) {
fileInput.multiple = true;
}
fileInput.click();
fileInput.onchange = async () => {
if (fileInput.files?.length === 1) {
file = fileInput.files[0];
return file;
let userFiles = fileInput?.files;
if (userFiles && userFiles.length >= 1) {
if (userFiles.length > maxFileNumber) {
return alert("too many files, limit is " + maxFileNumber);
}
return files = userFiles;
}
};
};
@ -47,9 +58,9 @@
<div class="open-file-text">
<div class="open-title">
{#if draggedOver}
{$t("receiver.title.drop")}
{$t("receiver.title.drop" + selectorStringMultiple)}
{:else}
{$t("receiver.title")}
{$t("receiver.title" + selectorStringMultiple)}
{/if}
</div>
<div class="subtext accept-list">