Files
nademitex_user/dist/assets/ProfileEditView-BGyMAAIR.js
T

1 line
5.8 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 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 h,t as g}from"./BasicIcon-Bzeb0Iwd.js";import{c as _,n as v,r as y}from"./index-3Kv0ngks.js";import{t as b}from"./FormErrorBanner-Ud1D04xf.js";import{n as x,r as S,t as C}from"./formErrors-DglFjYkZ.js";import{t as w}from"./BaseInput-CpE3bVJZ.js";import{t as T}from"./ProfileSubpageLayout-CgqJi1zW.js";var E=512,D=.82;async function O(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return A(await k(e))}function k(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function A(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,E/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`,D))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var j={class:`profile-edit`},M={class:`avatar-editor`},N={class:`avatar-editor__actions`},P={class:`avatar-editor__btns`},F=[`disabled`],I=[`disabled`],L={class:`profile-edit__intro`},R={class:`profile-edit__intro-icon`,"aria-hidden":`true`},z={class:`profile-edit__grid`},B={key:0,class:`form-group profile-edit__full`},V={key:0,class:`input-error-text`},H={class:`profile-edit__actions`},U={key:0,class:`profile-edit__saved`},W=d(m({__name:`ProfileEditView`,setup(d){let m=_(),E=u(m.user?.firstName??``),D=u(m.user?.lastName??``),k=u(m.user?.nationalId??``),A=u(m.user?.address??``),W=u(m.user?.avatarUrl??null),G=u(null),K=u({}),q=u(``),J=u(!1),Y=u(!1),X=a(()=>`${E.value.trim().charAt(0)}${D.value.trim().charAt(0)}`||`؟`);function Z(e){K.value=x(K.value,e),S(K.value)||(q.value=``)}function Q(){G.value?.click()}async function $(e){Y.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{Y.value=!1}}async function ee(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){Y.value=!0,q.value=``;try{let e=await O(n);W.value=e,await $(e)}catch(e){q.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`,Y.value=!1}}}async function te(){W.value=null,await $(null)}async function ne(){K.value={},q.value=``,J.value=!1;let e={};if(E.value.trim()||(e.firstName=`نام الزامی است.`),D.value.trim()||(e.lastName=`نام خانوادگی الزامی است.`),k.value&&k.value.length!==10&&(e.nationalId=`کد ملی باید ۱۰ رقم باشد.`),S(e)){K.value=e,q.value=C;return}let t={firstName:E.value.trim(),lastName:D.value.trim(),nationalId:k.value||void 0,avatarUrl:W.value??``};if(m.isAgent&&(t.address=A.value.trim()),!await m.updateProfile(t)){q.value=`ذخیره پروفایل ناموفق بود.`;return}J.value=!0,setTimeout(()=>{J.value=!1},2e3)}return(a,u)=>(n(),f(T,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:e(()=>[i(b,{message:q.value},null,8,[`message`]),l(`div`,j,[l(`div`,M,[i(y,{src:W.value,initials:X.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),l(`div`,N,[u[8]||=l(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),u[9]||=l(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایش‌داده‌شده در پروفایل`,-1),l(`div`,P,[l(`button`,{type:`button`,class:`avatar-btn`,disabled:Y.value,onClick:Q},r(W.value?`تغییر تصویر`:`افزودن تصویر`),9,F),W.value?(n(),s(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:Y.value,onClick:te},` حذف تصویر `,8,I)):o(``,!0)])]),l(`input`,{ref_key:`fileInput`,ref:G,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:ee},null,544)]),l(`div`,L,[l(`span`,R,[i(g,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),u[10]||=l(`div`,{class:`profile-edit__intro-text`},[l(`strong`,null,`مشخصات فردی`),l(`p`,null,`این اطلاعات روی سفارش‌ها و چک‌های ثبت‌شده نمایش داده می‌شود.`)],-1)]),l(`div`,z,[i(w,{modelValue:E.value,"onUpdate:modelValue":[u[0]||=e=>E.value=e,u[1]||=e=>Z(`firstName`)],label:`نام`,error:K.value.firstName},null,8,[`modelValue`,`error`]),i(w,{modelValue:D.value,"onUpdate:modelValue":[u[2]||=e=>D.value=e,u[3]||=e=>Z(`lastName`)],label:`نام خانوادگی`,error:K.value.lastName},null,8,[`modelValue`,`error`]),i(w,{modelValue:k.value,"onUpdate:modelValue":[u[4]||=e=>k.value=e,u[5]||=e=>Z(`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`,B,[u[11]||=l(`label`,{class:`form-label`,for:`profile-address`},`آدرس`,-1),t(l(`textarea`,{id:`profile-address`,"onUpdate:modelValue":u[6]||=e=>A.value=e,class:`profile-edit__textarea`,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`,onInput:u[7]||=e=>Z(`address`)},null,544),[[h,A.value]]),K.value.address?(n(),s(`p`,V,r(K.value.address),1)):o(``,!0)])):o(``,!0)]),l(`div`,H,[i(v,{class:`profile-edit__save`,onClick:ne},{default:e(()=>[...u[12]||=[c(`ذخیره تغییرات`,-1)]]),_:1}),J.value?(n(),s(`p`,U,`ذخیره شد ✓`)):o(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-f92697c9`]]);export{W as default};