Files
nademitex_user/dist/assets/ProfileEditView-DKPvUiwL.js
T
mohmdsdgandCopilot adb6ca47cd fix(auth): secure sessions and app routing
Validate sessions against the API, honor configurable base paths, and route unknown pages to 404. Keep development ports stable so user and admin apps cannot be confused.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-24 20:14:11 +03:30

1 line
5.8 KiB
JavaScript

import{D as e,E as t,Et as n,J as r,M as i,N as a,O as o,P as s,T as c,Xt as l,ct as u,st as d,t as f,vt as p,w as m}from"./_plugin-vue_export-helper-Bo3WtfwJ.js";import{s as h,t as g}from"./BasicIcon-BXxbbWA_.js";import{c as _,n as v,r as y}from"./index-BAQfYU-Q.js";import{t as b}from"./FormErrorBanner-DI5hhxpk.js";import{n as x,r as S,t as C}from"./formErrors-DglFjYkZ.js";import{t as w}from"./BaseInput-CVNdy37R.js";import{t as T}from"./ProfileSubpageLayout-C-s-O95S.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=f(s({__name:`ProfileEditView`,setup(s){let f=_(),E=p(f.user?.firstName??``),D=p(f.user?.lastName??``),k=p(f.user?.nationalId??``),A=p(f.user?.address??``),W=p(f.user?.avatarUrl??null),G=p(null),K=p({}),q=p(``),J=p(!1),Y=p(!1),X=m(()=>`${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 f.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(f.isAgent&&(t.address=A.value.trim()),!await f.updateProfile(t)){q.value=`ذخیره پروفایل ناموفق بود.`;return}J.value=!0,setTimeout(()=>{J.value=!1},2e3)}return(s,p)=>(r(),t(T,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:d(()=>[a(b,{message:q.value},null,8,[`message`]),c(`div`,j,[c(`div`,M,[a(y,{src:W.value,initials:X.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),c(`div`,N,[p[8]||=c(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),p[9]||=c(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایش‌داده‌شده در پروفایل`,-1),c(`div`,P,[c(`button`,{type:`button`,class:`avatar-btn`,disabled:Y.value,onClick:Q},l(W.value?`تغییر تصویر`:`افزودن تصویر`),9,F),W.value?(r(),o(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:Y.value,onClick:te},` حذف تصویر `,8,I)):e(``,!0)])]),c(`input`,{ref_key:`fileInput`,ref:G,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:ee},null,544)]),c(`div`,L,[c(`span`,R,[a(g,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),p[10]||=c(`div`,{class:`profile-edit__intro-text`},[c(`strong`,null,`مشخصات فردی`),c(`p`,null,`این اطلاعات روی سفارش‌ها و چک‌های ثبت‌شده نمایش داده می‌شود.`)],-1)]),c(`div`,z,[a(w,{modelValue:E.value,"onUpdate:modelValue":[p[0]||=e=>E.value=e,p[1]||=e=>Z(`firstName`)],label:`نام`,error:K.value.firstName},null,8,[`modelValue`,`error`]),a(w,{modelValue:D.value,"onUpdate:modelValue":[p[2]||=e=>D.value=e,p[3]||=e=>Z(`lastName`)],label:`نام خانوادگی`,error:K.value.lastName},null,8,[`modelValue`,`error`]),a(w,{modelValue:k.value,"onUpdate:modelValue":[p[4]||=e=>k.value=e,p[5]||=e=>Z(`nationalId`)],class:`profile-edit__full`,label:`کد ملی`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,hint:`برای ثبت چک الزامی است`,error:K.value.nationalId},null,8,[`modelValue`,`error`]),n(f).isAgent?(r(),o(`div`,B,[p[11]||=c(`label`,{class:`form-label`,for:`profile-address`},`آدرس`,-1),u(c(`textarea`,{id:`profile-address`,"onUpdate:modelValue":p[6]||=e=>A.value=e,class:`profile-edit__textarea`,rows:`3`,maxlength:`500`,placeholder:`آدرس کامل محل فعالیت`,onInput:p[7]||=e=>Z(`address`)},null,544),[[h,A.value]]),K.value.address?(r(),o(`p`,V,l(K.value.address),1)):e(``,!0)])):e(``,!0)]),c(`div`,H,[a(v,{class:`profile-edit__save`,onClick:ne},{default:d(()=>[...p[12]||=[i(`ذخیره تغییرات`,-1)]]),_:1}),J.value?(r(),o(`p`,U,`ذخیره شد ✓`)):e(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-f92697c9`]]);export{W as default};