1 line
7.3 KiB
JavaScript
1 line
7.3 KiB
JavaScript
import{G as e,K as t,M as n,Pt as r,_ as i,c as a,d as o,f as s,g as ee,k as c,l,nt as u,t as d,u as f,ut as p,v as m}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{s as te,t as ne}from"./BasicIcon-ba1FsUKx.js";import{t as re}from"./http-CU_N-R2R.js";import{A as ie,i as h,l as g,r as _,t as ae}from"./index-CpQ4kL4n.js";import{t as oe}from"./FormErrorBanner-Ud1D04xf.js";import{n as se,r as v,t as y}from"./formErrors-DglFjYkZ.js";import{t as ce}from"./addresses-tV-zgZYG.js";import{t as b}from"./BaseInput-CpE3bVJZ.js";import{t as le}from"./ProfileSubpageLayout-CKyfOxv2.js";var x=512,S=.82;async function ue(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return w(await C(e))}function C(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function w(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,x/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,S))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var T={class:`profile-edit`},E={class:`avatar-editor`},D={class:`avatar-editor__actions`},O={class:`avatar-editor__btns`},k=[`disabled`],A=[`disabled`],j={class:`profile-edit__intro`},M={class:`profile-edit__intro-icon`,"aria-hidden":`true`},N={class:`profile-edit__grid`},P={key:0,class:`form-group profile-edit__full`},F={key:0,class:`input-error-text`},I={key:1,class:`form-group profile-edit__full profile-edit__saved-address`},L={key:0,class:`profile-edit__address-hint`},de={key:1,class:`profile-edit__address-text`},R={key:2,class:`profile-edit__address-hint`},z={class:`profile-edit__actions`},B={key:0,class:`profile-edit__saved`},V=d(m({__name:`ProfileEditView`,setup(d){let m=g(),x=ie(),S=u(null),C=u(!0),w=u(m.user?.firstName??``),V=u(m.user?.lastName??``),H=u(m.user?.nationalId??``),U=u(m.user?.address??``),W=u(m.user?.avatarUrl??null),G=u(null),K=u({}),q=u(``),J=u(!1),Y=u(!1),X=u(!1),Z=ae(),fe=a(()=>`${w.value.trim().charAt(0)}${V.value.trim().charAt(0)}`||`؟`);function Q(e){K.value=se(K.value,e),v(K.value)||(q.value=``)}function pe(){G.value?.click()}async function $(e){X.value=!0,q.value=``;try{let t=await m.updateProfile({avatarUrl:e??``});t?W.value=t.avatarUrl??null:W.value=e}catch(e){q.value=e instanceof Error?e.message:`ذخیره تصویر ناموفق بود.`}finally{X.value=!1}}async function me(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){X.value=!0,q.value=``;try{let e=await ue(n);W.value=e,await $(e)}catch(e){q.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`,X.value=!1}}}async function he(){W.value=null,await $(null)}c(async()=>{C.value=!0;try{let e=await ce.list(),t=e.find(e=>e.isDefault)??e[0];S.value=t?.text??null}catch{S.value=null}finally{C.value=!1}});async function ge(){K.value={},q.value=``,J.value=!1;let e={};if(w.value.trim()||(e.firstName=`نام الزامی است.`),V.value.trim()||(e.lastName=`نام خانوادگی الزامی است.`),H.value&&H.value.length!==10&&(e.nationalId=`کد ملی باید ۱۰ رقم باشد.`),v(e)){K.value=e,q.value=y,Z.show(`لطفاً فیلدهای مشخصشده را اصلاح کنید.`,{tone:`error`});return}let t={firstName:w.value.trim(),lastName:V.value.trim(),nationalId:H.value||void 0,avatarUrl:W.value??``};m.isAgent&&(t.address=U.value.trim()),Y.value=!0;try{if(!await m.updateProfile(t)){q.value=`ذخیره پروفایل ناموفق بود.`,Z.show(`ذخیره اطلاعات انجام نشد. دوباره تلاش کنید.`,{tone:`error`});return}J.value=!0,Z.show(`اطلاعات کاربری با موفقیت ذخیره شد.`),setTimeout(()=>{J.value=!1},2e3)}catch(e){let t=e instanceof re||e instanceof Error?e.message:`ذخیره پروفایل ناموفق بود.`;q.value=t,Z.show(t,{tone:`error`})}finally{Y.value=!1}}return(a,c)=>(n(),f(le,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:e(()=>[i(oe,{message:q.value},null,8,[`message`]),l(`div`,T,[l(`div`,E,[i(h,{src:W.value,initials:fe.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),l(`div`,D,[c[9]||=l(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),c[10]||=l(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایشدادهشده در پروفایل`,-1),l(`div`,O,[l(`button`,{type:`button`,class:`avatar-btn`,disabled:X.value,onClick:pe},r(W.value?`تغییر تصویر`:`افزودن تصویر`),9,k),W.value?(n(),s(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:X.value,onClick:he},` حذف تصویر `,8,A)):o(``,!0)])]),l(`input`,{ref_key:`fileInput`,ref:G,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:me},null,544)]),l(`div`,j,[l(`span`,M,[i(ne,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),c[11]||=l(`div`,{class:`profile-edit__intro-text`},[l(`strong`,null,`مشخصات فردی`),l(`p`,null,`این اطلاعات روی سفارشها و چکهای ثبتشده نمایش داده میشود.`)],-1)]),l(`div`,N,[i(b,{modelValue:w.value,"onUpdate:modelValue":[c[0]||=e=>w.value=e,c[1]||=e=>Q(`firstName`)],label:`نام`,error:K.value.firstName},null,8,[`modelValue`,`error`]),i(b,{modelValue:V.value,"onUpdate:modelValue":[c[2]||=e=>V.value=e,c[3]||=e=>Q(`lastName`)],label:`نام خانوادگی`,error:K.value.lastName},null,8,[`modelValue`,`error`]),i(b,{modelValue:H.value,"onUpdate:modelValue":[c[4]||=e=>H.value=e,c[5]||=e=>Q(`nationalId`)],class:`profile-edit__full`,label:`کد ملی`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,hint:`برای ثبت چک الزامی است`,error:K.value.nationalId},null,8,[`modelValue`,`error`]),p(m).isAgent?(n(),s(`div`,P,[c[12]||=l(`label`,{class:`form-label`,for:`profile-address`},`آدرس (واسطه)`,-1),t(l(`textarea`,{id:`profile-address`,"onUpdate:modelValue":c[6]||=e=>U.value=e,class:`profile-edit__textarea`,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`,onInput:c[7]||=e=>Q(`address`)},null,544),[[te,U.value]]),K.value.address?(n(),s(`p`,F,r(K.value.address),1)):o(``,!0)])):(n(),s(`div`,I,[c[13]||=l(`label`,{class:`form-label`},`آدرس ثبتشده`,-1),C.value?(n(),s(`p`,L,`در حال بارگذاری…`)):S.value?(n(),s(`p`,de,r(S.value),1)):(n(),s(`p`,R,` هنوز آدرسی ثبت نشده. هنگام درخواست کالیته یا از بخش «آدرسها» میتوانید آدرس اضافه کنید. `)),l(`button`,{type:`button`,class:`profile-edit__address-link`,onClick:c[8]||=e=>p(x).push(`/profile/addresses`)},` مدیریت آدرسها `)]))]),l(`div`,z,[i(_,{class:`profile-edit__save`,loading:Y.value,onClick:ge},{default:e(()=>[...c[14]||=[ee(` ذخیره تغییرات `,-1)]]),_:1},8,[`loading`]),J.value?(n(),s(`p`,B,`ذخیره شد ✓`)):o(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-e3e913ee`]]);export{V as default}; |