import{d as m,aZ as S,s as p,K as C}from"../index.Crez7j-Y.bundle.js";const A=["xbm","tif","pjp","png","svgz","jpg","jpeg","ico","tiff","gif","svg","jfif","webp","png","bmp","pjpeg","avif"],I="5 * 1024 * 1024",y=5,L=()=>{const[r,l]=m.useState([]),{uploadTempFilesAPI:f,uploadTempImagesAPI:g}=M(),c=e=>{var o;const t=(o=e.split(".").pop())==null?void 0:o.toLowerCase();return t?A.includes(t):!1},n=e=>e.size>I,i=()=>Math.round(I/(1024*1024)),w=async(e,t)=>{try{const d=await(await fetch(e)).blob(),u=URL.createObjectURL(d),s=document.createElement("a");s.href=u,s.download=t,document.body.appendChild(s),s.click(),document.body.removeChild(s)}catch(o){S("파일 다운로드에 실패했습니다.","error")}},F=async e=>{if(n(e)){const o=i();p("error","파일 크기는 ".concat(o,"MB를 초과할 수 없습니다."));return}if(!c(e.name)){p("error","이미지만 업로드 할 수 있습니다.");return}return await g(e)},P=async e=>{if(n(e)){const o=i();p("error","파일 크기는 ".concat(o,"MB를 초과할 수 없습니다."));return}return await f(e)},T=m.useMemo(()=>A.map(e=>".".concat(e)).join(", "),[]),U=async e=>{const t=e.target.files;if(!t)return;if(t.length+r.length>y){p("error","최대 ".concat(y,"까지만 업로드 가능합니다."));return}const d=Array.from(t),u=r.map(a=>a.originalFileName),s=d.filter(a=>!u.includes(a.name));if(s.length!==t.length&&p("error","이미 업로드된 이미지 입니다."),s.length===0)return;const E=(await Promise.all(s.map(a=>F(a)))).filter(Boolean);l(a=>[...a,...E])},b=m.useCallback(e=>{l(t=>t.filter(o=>o.imageUrl!==e))},[]);return{downloadFileAsync:w,uploadImageFileAsync:F,uploadFileAsync:P,IMAGE_ACCEPTS:T,imageFilesUploadAsync:U,uploadedFiles:r,setUploadedFiles:l,deleteUploadFile:b}},h={"Content-Type":"multipart/form-data",Accept:"*/*"};function M(){const r=C("shopByAPI"),l="storage";return{uploadTempImagesAPI:c=>{const n=new FormData;return n.append("file",c),r.post("".concat(l,"/temporary-images"),n,{headers:h}).then(i=>i.data)},uploadTempFilesAPI:c=>{const n=new FormData;return n.append("file",c),r.post("".concat(l,"/temporary-files"),n,{headers:h}).then(i=>i.data)}}}export{L as u};