@solid-primitives/upload
Version:
Primitives for uploading files.
30 lines (29 loc) • 1.01 kB
JavaScript
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";