/* eslint-disable qwik/jsx-a */ import { $, component$, useSignal } from "@builder.io/qwik"; import { useNanostore$ } from "~/hooks/nanostores"; import { api } from "~/lib/api"; import { isSettingsOpen, loadedFiles } from "~/lib/stores"; import { StereoFile } from "~/lib/types"; import { SolarLibraryLinear, SolarQuestionCircleLinear, SolarRoundedMagniferLinear, SolarSettingsLinear, SolarUploadMinimalisticLinear, StereoCircularProgress, StereoLogoLinear } from "../misc/Icons"; export default component$(() => { const used = 3.8; const total = 15; const settingsOpen = useNanostore$(isSettingsOpen); const fileInputRef = useSignal(); const files = useNanostore$(loadedFiles, []); const handleFileChange = $(async (event: Event) => { const input = event.target as HTMLInputElement; if (input.files && input.files.length > 0) { const fi: File[] = Array.from(input.files); const metas: StereoFile[] = await Promise.all( fi.map(async (file) => { try { const id = (await (await api.upload(file)).json()).id; return await api.meta(id); } catch (error) { console.error("actionbar: file upload failed:", error); throw new Error("File upload failed"); } }) ); input.value = ""; files.value = [...files.value, ...metas].sort((a, b) => new Date(b.CreatedAt).getTime() - new Date(a.CreatedAt).getTime()); } }); return ( ) })