import { $, component$, noSerialize, NoSerialize, useSignal, useVisibleTask$ } from "@builder.io/qwik"; import { useNanostore$ } from "~/hooks/nanostores"; import { api } from "~/lib/api"; import { DashboardFiles } from "~/lib/stores"; import { StereoFile } from "~/lib/types"; import { SolarUploadLinear } from "./Icons"; export default component$(() => { const files = useNanostore$(DashboardFiles); const fileInputRef = useSignal(); const uploadingFile = useSignal | undefined>(); const now = useSignal(new Date()); useVisibleTask$(() => { const interval = setInterval(() => { now.value = new Date(); }, 500); return () => clearInterval(interval); }); const uploadFile = $(async () => { if (!uploadingFile.value) { console.error("No file selected for upload."); return; } try { await api.upload(uploadingFile.value as File) files.value = await api.list(); } catch (error) { console.error("Error uploading file:", error); } }) return (
{ uploadingFile.value = noSerialize((e.target as HTMLInputElement).files![0]); await uploadFile(); }} />

{now.value.toLocaleTimeString()}

) })