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