Files
hedena_gold/apps/user-app/dist/assets/HomeView-pIXsluWm.js
T
mahmoodandClaude Sonnet 5.5 0b973f9e46 fix(app): re-check the sales-expert flag on every dashboard visit
The "سفارش مشتریان" / "مشتریان من" entries are shown from session.isSalesExpert,
which was fetched from /expert/whoami only once, at sign-in. A slow or failed
request (silently swallowed) left the flag false until the next login, so an
expert saw a customer-only menu. The dashboard now asks again on mount and on
every re-activation, and keeps the current value when the request fails.

Rebuilds user-app and user-app-v2 dist.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 10:23:08 +03:30

2 lines
9.3 KiB
JavaScript

import{d as j,u as ne,o as se,a as W,b as e,c as a,e as s,n as x,F as V,r as O,f as D,g as y,h as I,i as z,_ as G,t as B,j as ie,k as re,l as ce,w as ue,m as t,p as de,q as m,I as A,s as _e,v as Y,x as ae,y as le,z as ve,A as me,K as Q,B as he,C as N,D as pe,E as Z,G as ge,H as U,J as fe}from"./index-CW3p0GOu.js";import{A as ye}from"./AppPullRefresh-B5nVhmJH.js";import{R as be}from"./RateStrip-DCfqGfDp.js";import{S as ee}from"./SectionHead-BqQT521D.js";import{u as ke}from"./filtersStore-B8wztovK.js";import{u as we}from"./useReveal-BfPEFd25.js";import{u as $e}from"./catalogStore-D-IZxGT6.js";import"./filters-Bbf6IXBq.js";const Se={key:0,class:"showcase"},Ce=["src"],Pe={key:0,class:"showcase__dots"},xe=["aria-label","onClick"],te=.18,Ie=6,Re=j({__name:"ShowcaseSlider",props:{slides:{}},setup(n){const r=n,l=I(0);let b;const P=ne();function d(o){l.value=o,c()}function c(){b&&clearInterval(b),r.slides.length>1&&!P.isReducedMotion&&(b=setInterval(()=>{l.value=(l.value+1)%r.slides.length},6e3))}se(c),W(()=>{b&&clearInterval(b)});const k=I(null),g=I(!1),h=I(0);let _=null,w=0,C=0,p=0,$=!1;function X(o){var f;if(r.slides.length<2||_!==null)return;const i=k.value;i&&(_=o.pointerId,w=o.clientX,C=o.clientY,p=i.getBoundingClientRect().width||1,h.value=0,g.value=!0,$=!1,(f=i.setPointerCapture)==null||f.call(i,o.pointerId))}function E(o){if(!g.value||o.pointerId!==_)return;const i=o.clientX-w,f=o.clientY-C;!$&&Math.abs(i)>Math.abs(f)&&Math.abs(i)>Ie&&($=!0),$&&(h.value=i)}function L(){if(!g.value)return;const i=h.value/p;g.value=!1,_=null,h.value=0,i<=-te&&l.value<r.slides.length-1?l.value++:i>=te&&l.value>0&&l.value--,$&&c(),$=!1}function q(o){o.pointerId===_&&L()}function M(o){o.pointerId===_&&(g.value=!1,_=null,h.value=0,$=!1)}const T=z(()=>{const o=-l.value*100,i=p?h.value/p*100:0;return{transform:`translate3d(${o+i}%, 0, 0)`,transition:g.value?"none":void 0}});return W(()=>{if(_!==null&&k.value)try{k.value.releasePointerCapture(_)}catch{}}),(o,i)=>n.slides.length?(e(),a("section",Se,[s("div",{ref_key:"root",ref:k,class:D(["showcase__frame",{"is-dragging":g.value}]),onPointerdown:X,onPointermove:E,onPointerup:q,onPointercancel:M},[s("div",{class:"showcase__track",style:x(T.value)},[(e(!0),a(V,null,O(n.slides,(f,R)=>(e(),a("article",{key:f.key,class:D(["showcase__slide",{"is-active":R===l.value}])},[f.image?(e(),a("img",{key:0,src:f.image,alt:"",class:"showcase__art",draggable:"false"},null,8,Ce)):y("",!0)],2))),128))],4)],34),n.slides.length>1?(e(),a("div",Pe,[(e(!0),a(V,null,O(n.slides,(f,R)=>(e(),a("button",{key:f.key,type:"button",class:D(["showcase__dot",{"is-active":R===l.value}]),"aria-label":`اسلاید ${R+1}`,onClick:K=>d(R)},null,10,xe))),128))])):y("",!0)])):y("",!0)}}),Ae=G(Re,[["__scopeId","data-v-cfb03dfd"]]),ze={class:"rail no-scrollbar"},De=["onClick"],Be={class:"rail__mark","aria-hidden":"true"},Me=["src"],Fe={class:"rail__title"},Ve=j({__name:"CategoryRail",props:{categories:{},activeId:{}},emits:["select"],setup(n,{emit:r}){const l=r;return(b,P)=>(e(),a("div",ze,[(e(!0),a(V,null,O(n.categories,d=>{var c;return e(),a("button",{key:d.id,type:"button",class:D(["rail__chip",{"is-active":d.id===n.activeId}]),onClick:k=>l("select",d)},[s("span",Be,[(c=d.icon)!=null&&c.image?(e(),a("img",{key:0,src:d.icon.image,alt:""},null,8,Me)):y("",!0)]),s("span",Fe,B(d.title),1)],10,De)}),128))]))}}),Oe=G(Ve,[["__scopeId","data-v-b38bbeb0"]]),Xe={class:"card__art"},Ee=["alt"],Le={key:0,class:"card__badge"},qe={class:"card__body"},He={class:"card__title"},Ne={class:"card__meta"},Ue={class:"card__weight"},Ye={key:0,class:"card__wage"},je=j({__name:"ShowcaseCard",props:{value:{},wide:{type:Boolean},badge:{}},emits:["open"],setup(n,{emit:r}){const l=n,b=r,P=ie(),{image:d,id:c,title:k,min_gram:g,wage:h}=re(l.value),_=z(()=>{const w=h.value;return w==null?"":w%1===0?String(w):w.toFixed(2)});return(w,C)=>{const p=ce("lazy");return e(),a("article",{class:D(["card",{"card--wide":n.wide}]),"data-product-origin":"",onClick:C[1]||(C[1]=$=>b("open",n.value))},[s("div",Xe,[ue(s("img",{alt:t(k)},null,8,Ee),[[p,t(d)]]),s("button",{type:"button",class:D(["card__fav",{"is-on":t(P).isFavorite(t(c))}]),onClick:C[0]||(C[0]=de($=>t(P).toggle(t(c)),["stop"]))},[m(A,{icon:t(P).isFavorite(t(c))?"vuesax-linear:heart-fill":"vuesax-linear:heart",size:"17"},null,8,["icon"])],2),n.badge?(e(),a("span",Le,B(n.badge),1)):y("",!0)]),s("div",qe,[s("h3",He,B(t(k)),1),s("div",Ne,[s("span",Ue,B(t(g))+" گرم",1),t(h)!=null?(e(),a("span",Ye,"اجرت "+B(_.value)+"٪",1)):y("",!0)])])],2)}}}),J=G(je,[["__scopeId","data-v-bd6d18a4"]]),Ge="/assets/shipping-and-delivery-CyUGL93q.png",Te="/assets/sports-and-competition-ao926_SX.png",Ke=[{type:"popup",src:Ge,text:"ارسال سریع و مطمئن سفارش‌های شما به سراسر کشور.",link:void 0},{type:"popup",src:Te,text:`جدیدترین محصولات ${Y.name} را در بخش محصولات جدید ببینید.`,link:void 0},{type:"popup",src:ae,text:`${Y.name}، همراه شما در خرید و فروش طلا.`,link:void 0}],Je=_e("config",{state:()=>({config:{main_slider:Ke},cats:[],loaded:!1}),actions:{setCats(n){this.cats=n},async init(n=!1){try{const{categories:r}=await le.getCatalogFacets();this.cats=r.map(l=>({...l,icon:{image:ae}})),this.loaded=!0}catch(r){console.log(r)}}}}),We={class:"home"},Qe={class:"home__bar"},Ze={class:"home__barInner"},et={key:0,class:"home__badge"},tt=["alt"],st={key:0,class:"home__grid"},at={class:"home__reel no-scrollbar"},lt={class:"home__trustItem"},ot={class:"home__trustItem"},nt={class:"home__trustItem"},it=j({__name:"HomeView",setup(n){const r=ge(),l=Je(),b=ve(),P=ke(),d=$e(),c=me(),k=I(!d.loaded),g=I(!1),h=z(()=>d.products),_=I(c.peek(Q.goldPrice)??null),w=I(c.peek(Q.homeSlider)??null),{revealed:C,revealDelay:p,reveal:$}=we("home"),X=z(()=>h.value[0]??null),E=z(()=>h.value.slice(1,5)),L=z(()=>h.value.slice(5,13)),q=z(()=>(w.value??[]).filter(u=>u.image).map((u,v)=>({key:`${v}-${u.image}`,image:u.image})));function M(u){fe(u)}function T(u){P.query.cats=[u.id],r.push({name:"search"})}function o(){r.push({name:"search"})}function i(){r.push({name:"newestProduct"})}async function f(u=!1){const[v,F,H,S]=await Promise.allSettled([(async()=>{u&&d.invalidate();const oe=await le.listProductsPaged({page:1,limit:13,sort:"newest"});d.replace(oe.rows)})(),l.init(u),c.goldPrice({force:u}),c.homeSlider({force:u})]);v.status==="rejected"&&console.log(v.reason),F.status==="rejected"&&console.log(F.reason),_.value=H.status==="fulfilled"?H.value:null,w.value=S.status==="fulfilled"?S.value:null}async function R(){try{await f(!0)}finally{g.value=!1}}se(async()=>{await f(),k.value=!1,$()});let K=!1;return he(async()=>{if(!K){K=!0;return}try{_.value=await c.goldPrice({force:!0})}catch(u){console.log(u)}}),(u,v)=>{const F=Z("router-link"),H=Z("container");return e(),a("div",We,[s("header",Qe,[s("div",Ze,[m(F,{to:{name:"cart"},class:"home__iconBtn","aria-label":"سبد خرید"},{default:N(()=>[m(A,{icon:"vuesax-linear:bag-2",size:"21"}),t(b).items.length?(e(),a("span",et,B(t(b).items.length),1)):y("",!0)]),_:1}),s("img",{src:pe,alt:t(Y).name,class:"home__logo"},null,8,tt),m(F,{to:{name:"search"},class:"home__iconBtn","aria-label":"جستجو"},{default:N(()=>[m(A,{icon:"vuesax-linear:search-normal-1",size:"21"})]),_:1})])]),m(ye,{modelValue:g.value,"onUpdate:modelValue":v[0]||(v[0]=S=>g.value=S),onRefresh:R},{default:N(()=>[m(H,{class:D(["home__body",{"is-revealed":t(C)}])},{default:N(()=>[m(be,{quote:_.value,class:"home__rate reveal",style:x(t(p)(0))},null,8,["quote","style"]),q.value.length?(e(),U(Ae,{key:0,slides:q.value,class:"home__hero reveal",style:x(t(p)(1))},null,8,["slides","style"])):y("",!0),t(l).cats.length?(e(),U(Oe,{key:1,categories:t(l).cats,"active-id":null,class:"home__rail reveal",style:x(t(p)(2)),onSelect:T},null,8,["categories","style"])):y("",!0),X.value?(e(),a("section",{key:2,class:"home__section reveal",style:x(t(p)(3))},[m(ee,{title:`برگزیده ${t(Y).name}`,subtitle:"انتخاب‌شده از میان مجموعه‌های موجود","action-label":"همه محصولات",onAction:o},null,8,["title"]),m(J,{value:X.value,wide:"",badge:"برگزیده",onOpen:M},null,8,["value"]),E.value.length?(e(),a("div",st,[(e(!0),a(V,null,O(E.value,S=>(e(),U(J,{key:S.id,value:S,onOpen:M},null,8,["value"]))),128))])):y("",!0)],4)):y("",!0),L.value.length?(e(),a("section",{key:3,class:"home__section reveal",style:x(t(p)(4))},[m(ee,{title:"تازه‌ها",subtitle:"آخرین افزوده‌های مجموعه","action-label":"مشاهده همه",onAction:i}),s("div",at,[(e(!0),a(V,null,O(L.value,S=>(e(),U(J,{key:S.id,value:S,class:"home__reelItem",onOpen:M},null,8,["value"]))),128))])],4)):y("",!0),!k.value&&!h.value.length?(e(),a("section",{key:4,class:"home__empty reveal",style:x(t(p)(3))},[m(A,{icon:"vuesax-linear:box",size:"26"}),v[1]||(v[1]=s("p",null,"هنوز محصولی در مجموعه ثبت نشده است.",-1))],4)):y("",!0),s("div",{class:"home__trust reveal",style:x(t(p)(5))},[s("div",lt,[m(A,{icon:"vuesax-linear:shield-tick",size:"18"}),v[2]||(v[2]=s("span",null,"خرید امن",-1))]),s("div",ot,[m(A,{icon:"vuesax-linear:verify",size:"18"}),v[3]||(v[3]=s("span",null,"اصالت کالا",-1))]),s("div",nt,[m(A,{icon:"vuesax-linear:box-tick",size:"18"}),v[4]||(v[4]=s("span",null,"ارسال بیمه‌شده",-1))])],4)]),_:1},8,["class"])]),_:1},8,["modelValue"])])}}}),pt=G(it,[["__scopeId","data-v-915b0b5c"]]);export{pt as default};