Files
tehran_taj/apps/user-app-v2/dist/assets/SingleImageUploader-BL-oXSNP.js
T

2 lines
2.3 KiB
JavaScript

import{d as B,b as o,c as r,f as I,e as d,p as f,I as g,t as m,g as y,h as u,v as P,aZ as T,_ as w}from"./index-D8rImuYS.js";const z=["disabled"],S=["src"],U={key:1,class:"siu__icon"},D={class:"siu__text"},N={key:2,class:"siu__badge"},j={key:0,class:"siu__error"},V=8*1024*1024,A=B({__name:"SingleImageUploader",props:{uploadText:{},purpose:{}},emits:["done"],setup(_,{emit:b}){const h=_,k=b,v=u(null),t=u(!1),a=u(null),n=u(null),c=u(null),x=/^(image\/(jpeg|png|webp)|application\/pdf)$/;function C(e){return e instanceof T?"برای بارگذاری، دوباره وارد حساب شوید":e instanceof TypeError?"اتصال به سرور برقرار نشد؛ اینترنت را بررسی کنید":e instanceof Error&&e.message?e.message:"بارگذاری فایل انجام نشد؛ دوباره تلاش کنید"}async function E(e){var i;const l=e.target,s=(i=l.files)==null?void 0:i[0];if(l.value="",!!s){if(a.value=null,!x.test(s.type)){a.value="این نوع فایل پشتیبانی نمی‌شود؛ فقط تصویر JPG، PNG، WebP یا PDF";return}if(s.size>V){a.value="حجم فایل بیشتر از ۸ مگابایت است؛ فایل کوچک‌تری انتخاب کنید";return}t.value=!0;try{const p=await P.uploadDocument(s,h.purpose);n.value=p.id,c.value=s.type.startsWith("image/")?URL.createObjectURL(s):null,k("done",p.id)}catch(p){a.value=C(p),n.value=null,c.value=null}finally{t.value=!1}}}return(e,l)=>(o(),r("div",{class:I(["siu",{"is-done":!!n.value,"is-error":!!a.value}])},[d("input",{ref_key:"input",ref:v,type:"file",accept:"image/jpeg,image/png,image/webp,application/pdf",class:"siu__input",onChange:E},null,544),d("button",{type:"button",class:"siu__box",disabled:t.value,onClick:l[0]||(l[0]=s=>{var i;return(i=v.value)==null?void 0:i.click()})},[c.value?(o(),r("img",{key:0,src:c.value,class:"siu__preview",alt:""},null,8,S)):(o(),r("span",U,[f(g,{icon:t.value?"vuesax-linear:refresh":"vuesax-linear:gallery-add",size:"26"},null,8,["icon"])])),d("span",D,m(t.value?"در حال بارگذاری…":n.value?"تغییر تصویر":_.uploadText),1),n.value&&!t.value?(o(),r("span",N,[f(g,{icon:"vuesax-linear:tick-circle",size:"16"})])):y("",!0)],8,z),a.value?(o(),r("p",j,m(a.value),1)):y("",!0)],2))}}),L=w(A,[["__scopeId","data-v-68ee8e67"]]);export{L as S};