UNPKG

@solid-primitives/upload

Version:
30 lines (29 loc) 1.01 kB
import { onCleanup, onMount } from "solid-js"; import { isServer } from "solid-js/web"; import { transformFiles } from "./helpers.js"; import {} from "./types.js"; export const fileUploader = (element, options) => { if (isServer) { return; } const { userCallback, setFiles } = options(); onMount(() => { const onChange = async (event) => { const parsedFiles = transformFiles(event.currentTarget.files); setFiles(parsedFiles); try { await userCallback(parsedFiles); } catch (error) { // eslint-disable-next-line no-console console.error(error); } return; }; onCleanup(() => element.removeEventListener("change", onChange)); element.addEventListener("change", onChange); }); }; export { createFileUploader } from "./createFileUploader.js"; export { createDropzone } from "./createDropzone.js"; export * from "./types.js";