Files
nademitex_user/dist/assets/HomeView-Bqa7R1Mj.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
10 KiB
JavaScript

import{D as e,E as t,Et as n,G as r,J as i,K as a,Kt as o,M as s,N as c,O as l,P as ee,T as u,Xt as d,Yt as f,Z as p,b as m,et as te,g as ne,st as re,t as h,vt as g,w as _}from"./_plugin-vue_export-helper-Bo3WtfwJ.js";import{r as ie,u as ae}from"./BasicIcon-BXxbbWA_.js";import{n as v}from"./http-CeONvUNq.js";import{o as oe}from"./format-C72AoJ2H.js";import{c as se,i as ce,l as le,o as ue,r as de,s as fe}from"./index-BAQfYU-Q.js";import{t as pe}from"./IconChevronBack-DfGoZJJk.js";import{t as me}from"./PageSkeleton-DHtB6RUa.js";import{n as he,r as ge,t as _e}from"./crm-CooNUbmr.js";import{t as ve}from"./useGoBack-TJZZv7or.js";import{t as y}from"./quick-catalog-request-Di7-t6Ua.js";import{t as ye}from"./IconHeart-Be5RRWq4.js";async function be(){return v(`/suggestions/me`)}var xe=`/assets/level-medal-Avpe4Lqa.webp`,b=`/assets/quick-categories-grid-BcZY1Wu0.webp`,x=`/assets/latest-order-status-D65E3uoz.webp`,S=`/assets/quick-new-products-DBGxsuVa.webp`,Se={class:`page home-page`},C={class:`home-header mobile-only`},w={class:`home-header__user`},T={class:`home-header__hello`},E={class:`home-header__actions`},D={class:`home-desk-head desktop-only`},O={class:`home-desk-head__sub`},k={class:`page__scroll page__scroll--with-nav home-scroll`},A={key:0,class:`home-error`},j=[`aria-label`],Ce={class:`hero-banner__content`},we={key:0,class:`hero-banner__title`},Te={key:0},Ee={key:1,class:`hero-banner__title`},De={key:0,class:`hero-banner__dots`,role:`tablist`,"aria-label":`بنرها`},Oe=[`aria-label`,`aria-selected`,`onClick`],ke={class:`quick-grid`,"aria-label":`دسترسی سریع`},Ae=[`onClick`],je={class:`quick-card__icon`,"aria-hidden":`true`},Me=[`src`],Ne={class:`quick-card__label`},Pe={key:0,class:`level-card`,"aria-label":`سطح عضویت`},Fe={class:`level-card__top`},Ie={class:`level-card__identity`},Le=[`src`],M={class:`level-card__text`},Re={class:`level-card__name`},ze={class:`level-card__next`},Be={class:`level-card__progress`},Ve=[`aria-valuenow`],He={class:`level-card__points`},Ue={key:1,class:`suggest-card`,"aria-label":`پیشنهاد اختصاصی`},We={class:`suggest-card__head`},Ge={key:0,class:`suggest-card__empty`},Ke={key:0,class:`suggest-card__row scroll-x`},qe=[`onClick`],Je={key:0,class:`suggest-card__badge`},Ye={class:`suggest-card__body`},Xe={class:`suggest-card__name`},Ze={class:`suggest-card__sub`},Qe={key:0,class:`suggest-card__note`},$e={class:`section`},et={class:`section__head`},tt={class:`product-row scroll-x`},nt=[`onClick`],rt={key:0,class:`product-card__badge`},it={class:`product-card__body`},at={class:`product-card__name`},ot={class:`product-card__sub`},st=[`aria-label`,`aria-pressed`,`onClick`],N=h(ee({__name:`HomeView`,setup(ee){let h=ne(),{goBack:v}=ve(`/`),N=se(),ct=_e(),P=le(),F=g(!0),I=g(null),L=g([]),R=g([]),z=g(null),B=g(null),lt=[{id:`qa-new`,label:`محصولات جدید`,to:`/products`,image:S},{id:`qa-cat`,label:`دسته بندی`,to:`/categories`,image:b},{id:`qa-club`,label:`آخرین وضعیت سفارش`,to:`/orders/latest-status`,image:x},{id:`qa-swatch`,label:`آخرین درخواست کالیته`,to:`/catalog-requests/latest-status`,image:y}],ut=[{id:`qa-new`,label:`محصولات جدید`,to:`/products`,image:S},{id:`qa-cat`,label:`دسته بندی`,to:`/categories`,image:b},{id:`qa-customers`,label:`آخرین وضعیت سفارش`,to:`/orders/latest-status`,image:x},{id:`qa-swatch`,label:`آخرین درخواست کالیته`,to:`/catalog-requests/latest-status`,image:y}],dt=_(()=>N.isAgent?ut:lt),V={id:`fallback`,slot:`home_hero`,title:`کالکشن پاییز و زمستان`,subtitle:`جدیدترین پارچه‌ها`,ctaLabel:`مشاهده کالکشن`,ctaLink:`/categories`,imageUrl:``,showTitle:!0,showSubtitle:!0,showCta:!0},H=g([V]),U=g(0),W=g(`hero-next`),G,K=_(()=>H.value[U.value]??V),ft=_(()=>{let e=K.value;return e.showTitle!==!1&&e.title||e.showSubtitle!==!1&&e.subtitle||e.showCta!==!1&&e.ctaLabel});function pt(e){if(e.imageUrl)return{"--hero-image":`url("${e.imageUrl}")`}}function q(e,t){let n=H.value.length;if(!n)return;let r=(e%n+n)%n;r!==U.value&&(t===1?W.value=`hero-next`:t===-1?W.value=`hero-prev`:U.value===n-1&&r===0?W.value=`hero-next`:U.value===0&&r===n-1?W.value=`hero-prev`:W.value=r>U.value?`hero-next`:`hero-prev`,U.value=r)}function J(){Y(),!(H.value.length<2)&&(G=window.setInterval(()=>{q(U.value+1,1)},5500))}function Y(){G&&window.clearInterval(G),G=void 0}function mt(e){q(e),J()}let X=_(()=>N.user?.firstName||`کاربر`),Z=_(()=>N.user?.lastName||``),Q=_(()=>{if(B.value)return B.value;let e=N.user;return{label:e?.levelLabel||`برنزی`,nextLabel:e?.nextLevelLabel||`نقره‌ای`,pointsRemaining:e?.pointsToNext??0,progressPercent:e?.levelProgress??0}});a(Y),r(async()=>{F.value=!0,I.value=null;try{let[e,t]=await Promise.all([ct.loadBrowseProducts(),ge(`home_hero`).catch(()=>[]),P.hydrate()]);if(t.length&&(H.value=t),J(),L.value=e.filter(e=>e.isNew).slice(0,6),L.value.length||(L.value=e.slice(0,6)),N.isAgent)try{let e=await he();B.value={label:e.levelLabel,nextLabel:e.nextLevelLabel,pointsRemaining:e.pointsToNext,progressPercent:e.levelProgress}}catch{}else try{R.value=await be()}catch{R.value=[]}}catch(e){I.value=e instanceof Error?e.message:`بارگذاری خانه ناموفق بود.`}finally{F.value=!1}});function $(e){if(/^https?:\/\//i.test(e)){window.location.assign(e);return}h.push(e)}function ht(){$(K.value.ctaLink.trim()||`/categories`)}async function gt(e){z.value=null;try{await P.toggle(e)}catch(e){z.value=e instanceof Error?e.message:`ذخیره علاقه‌مندی ناموفق بود.`}}return(r,a)=>(i(),l(`div`,Se,[u(`header`,C,[u(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:a[0]||=(...e)=>n(v)&&n(v)(...e)},[c(pe,{size:20})]),u(`div`,w,[c(de,{class:`home-header__avatar`,src:n(N).user?.avatarUrl,initials:X.value.charAt(0),size:44},null,8,[`src`,`initials`]),u(`div`,null,[u(`p`,T,` سلام، `+d(X.value)+` `+d(Z.value),1),a[4]||=u(`p`,{class:`home-header__welcome`},`خوش آمدید`,-1)])]),u(`div`,E,[c(ce,{variant:`inline`}),u(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلان‌ها`,onClick:a[1]||=e=>$(`/profile/notifications`)},[c(fe,{size:20})])])]),u(`header`,D,[u(`div`,null,[a[5]||=u(`h1`,{class:`home-desk-head__title`},`خانه`,-1),u(`p`,O,` سلام `+d(X.value)+` `+d(Z.value)+` — خوش آمدید `,1)])]),u(`div`,k,[I.value?(i(),l(`p`,A,d(I.value),1)):F.value?(i(),t(me,{key:1,variant:`home`})):(i(),l(m,{key:2},[u(`section`,{class:`hero-banner`,"aria-label":K.value.title},[c(ie,{name:W.value,tag:`div`,class:`hero-banner__stage`},{default:re(()=>[(i(),l(`article`,{key:K.value.id,class:o([`hero-slide`,{"hero-slide--copy":ft.value}]),style:f(pt(K.value))},[a[6]||=u(`div`,{class:`hero-slide__media`,"aria-hidden":`true`},null,-1),u(`div`,Ce,[K.value.showTitle===!1?K.value.showSubtitle!==!1&&K.value.subtitle?(i(),l(`p`,Ee,[u(`span`,null,d(K.value.subtitle),1)])):e(``,!0):(i(),l(`h2`,we,[s(d(K.value.title)+` `,1),K.value.showSubtitle!==!1&&K.value.subtitle?(i(),l(`span`,Te,d(K.value.subtitle),1)):e(``,!0)])),K.value.showCta!==!1&&K.value.ctaLabel?(i(),l(`button`,{key:2,type:`button`,class:`hero-banner__cta`,onClick:ht},d(K.value.ctaLabel),1)):e(``,!0)])],6))]),_:1},8,[`name`]),H.value.length>1?(i(),l(`div`,De,[(i(!0),l(m,null,p(H.value,(e,t)=>(i(),l(`button`,{key:e.id,type:`button`,class:o([`dot`,{"dot--active":t===U.value}]),"aria-label":e.title,"aria-selected":t===U.value,onClick:e=>mt(t)},null,10,Oe))),128))])):e(``,!0)],8,j),u(`section`,ke,[(i(!0),l(m,null,p(dt.value,e=>(i(),l(`button`,{key:e.id,type:`button`,class:`quick-card`,onClick:t=>$(e.to)},[u(`span`,je,[e.image?(i(),l(`img`,{key:0,class:`quick-card__image`,src:e.image,alt:``},null,8,Me)):(i(),t(te(e.icon),{key:1,size:20}))]),u(`span`,Ne,d(e.label),1)],8,Ae))),128))]),n(N).isAgent?(i(),l(`section`,Pe,[u(`div`,Fe,[u(`div`,Ie,[u(`img`,{class:`level-card__medal`,src:n(xe),alt:``,width:`48`,height:`48`,"aria-hidden":`true`},null,8,Le),u(`div`,M,[a[7]||=u(`span`,{class:`level-card__eyebrow`},`سطح شما`,-1),u(`strong`,Re,d(Q.value.label),1),u(`span`,ze,`تا سطح `+d(Q.value.nextLabel),1)])]),u(`button`,{type:`button`,class:`level-card__details`,onClick:a[2]||=e=>$(`/profile`)},` جزئیات سطح `)]),u(`div`,Be,[u(`div`,{class:`level-card__bar`,role:`progressbar`,"aria-valuenow":Q.value.progressPercent,"aria-valuemin":`0`,"aria-valuemax":`100`},[u(`span`,{class:`level-card__bar-fill`,style:f({width:`${Q.value.progressPercent}%`})},null,4)],8,Ve),u(`span`,He,d(n(oe)(Q.value.pointsRemaining))+` امتیاز دیگر `,1)])])):(i(),l(`section`,Ue,[u(`div`,We,[a[8]||=u(`h3`,{class:`suggest-card__title`},`پیشنهاد اختصاصی ما برای شما`,-1),R.value.length?e(``,!0):(i(),l(`p`,Ge,` هنوز پیشنهاد اختصاصی برای شما ثبت نشده است. `))]),R.value.length?(i(),l(`div`,Ke,[(i(!0),l(m,null,p(R.value,(t,n)=>(i(),l(`article`,{key:t.id,class:`suggest-card__item`,onClick:e=>$(`/product?id=${t.productId}`)},[u(`div`,{class:o([`suggest-card__image`,`suggest-card__image--${n%3}`]),style:f(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},[t.isNew?(i(),l(`span`,Je,`جدید`)):e(``,!0)],6),u(`div`,Ye,[u(`strong`,Xe,d(t.productName),1),u(`span`,Ze,d(t.subtitle||t.catalogName||t.productCode),1),t.note?(i(),l(`p`,Qe,d(t.note),1)):e(``,!0)])],8,qe))),128))])):e(``,!0)])),u(`section`,$e,[u(`div`,et,[a[10]||=u(`h3`,{class:`section__title`},`جدیدترین محصولات`,-1),u(`button`,{type:`button`,class:`section__link`,onClick:a[3]||=e=>$(`/products`)},[a[9]||=s(` مشاهده همه `,-1),c(ue,{size:14})])]),u(`div`,tt,[(i(!0),l(m,null,p(L.value,(t,r)=>(i(),l(`article`,{key:t.id,class:`product-card`,onClick:e=>$(`/product?id=${t.id}`)},[u(`div`,{class:o([`product-card__image`,`product-card__image--${r%3}`]),style:f(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},[t.isNew?(i(),l(`span`,rt,`جدید`)):e(``,!0)],6),u(`div`,it,[u(`strong`,at,d(t.name),1),u(`span`,ot,d(t.subtitle),1),u(`button`,{type:`button`,class:o([`product-card__fav`,{"product-card__fav--on":n(P).isFavorite(t.id)}]),"aria-label":n(P).isFavorite(t.id)?`حذف از علاقه‌مندی‌ها`:`افزودن به علاقه‌مندی‌ها`,"aria-pressed":n(P).isFavorite(t.id),onClick:ae(e=>gt(t.id),[`stop`])},[c(ye,{size:16,filled:n(P).isFavorite(t.id),color:n(P).isFavorite(t.id)?`#0a353c`:`#b0b7c0`},null,8,[`filled`,`color`])],10,st)])],8,nt))),128))])])],64))])]))}}),[[`__scopeId`,`data-v-653b1e57`]]);export{N as default};