UNPKG

medusa-variant-images-updated

Version:
47 lines (46 loc) 1.53 kB
import { fetchBackend } from "./util.js"; const splitImages = (images) => { const uploadImages = []; const existingImages = []; images.forEach((image) => { if (image.nativeFile && !image.uploadedUrl) { uploadImages.push(image); } else { existingImages.push(image); } }); return { uploadImages, existingImages }; }; const uploadSingleImage = async (image) => { const form = new FormData(); form.append("files", image.nativeFile, image.name); const res = await fetchBackend("/admin/uploads", { body: form, method: "POST", files: true }); if (res && res.files && res.files[0]) { return { ...image, url: res.files[0].url, uploadedUrl: res.files[0].url, uploading: false, nativeFile: void 0 }; } throw new Error("Upload failed"); }; const prepareImages = async (images) => { const { uploadImages, existingImages } = splitImages(images); let uploadedImgs = []; if (uploadImages.length > 0) { const form = new FormData(); uploadImages.forEach((img) => { form.append("files", img.nativeFile, img.name); }); const res = await fetchBackend("/admin/uploads", { body: form, method: "POST", files: true }).catch((err) => console.log(err)); if (res && res.files) { uploadedImgs = res.files.map((file, idx) => ({ ...uploadImages[idx], url: file.url, nativeFile: void 0 // Remove nativeFile after upload })); } } return [...existingImages, ...uploadedImgs]; }; export { prepareImages, uploadSingleImage };