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>
1 line
3.2 KiB
JavaScript
1 line
3.2 KiB
JavaScript
import{D as e,E as t,Et as n,G as r,J as i,M as a,N as o,O as s,P as c,T as l,Xt as u,Yt as d,Z as f,b as p,g as m,t as h,vt as g}from"./_plugin-vue_export-helper-Bo3WtfwJ.js";import{u as _}from"./BasicIcon-BXxbbWA_.js";import{o as v}from"./format-C72AoJ2H.js";import{l as y,o as b}from"./index-BAQfYU-Q.js";import{t as x}from"./PageHeader-DTO8lja2.js";import{t as S}from"./PageSkeleton-DHtB6RUa.js";import{t as C}from"./crm-CooNUbmr.js";import{t as w}from"./IconBookmark-DQEBziz0.js";import{n as T,t as E}from"./colorSwatch-BgOH1LE5.js";var D={class:`page favorites-page`},O={class:`page__scroll page__scroll--with-nav body`},k={key:1},A={key:2,class:`empty`},j=[`onClick`],M={class:`product-item__body`},N={class:`product-item__head`},P={class:`product-item__title`},F={key:0,class:`new-tag`},I=[`onClick`],L={class:`product-item__specs`},R={key:0,class:`swatches`},z=[`onClick`],B=h(c({__name:`FavoritesView`,setup(c){let h={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهارفصل`},B=m(),V=y(),H=C(),U=g([]),W=g(!0),G=g(null);r(async()=>{W.value=!0;try{await V.hydrate();let e=await H.loadBrowseProducts(),t=new Set(V.ids);U.value=e.filter(e=>t.has(e.id))}catch(e){G.value=e instanceof Error?e.message:`بارگذاری علاقهمندیها ناموفق بود.`}finally{W.value=!1}});function K(e){return h[e]??`—`}function q(e){return E(e.colors,e.colorImages,e.imageUrls,0,e.imageUrl)}function J(e){B.push({path:`/product`,query:{id:e}})}async function Y(e){await V.toggle(e),U.value=U.value.filter(t=>t.id!==e)}return(r,c)=>(i(),s(`div`,D,[o(x,{class:`mobile-only`,title:`علاقهمندیها`,"show-back":``,centered:``,onBack:c[0]||=e=>n(B).back()}),c[2]||=l(`header`,{class:`desktop-page__head desktop-only`},[l(`h1`,{class:`desktop-page__title`},`علاقهمندیها`),l(`p`,{class:`desktop-page__subtitle`},`محصولات ذخیرهشده برای دسترسی سریع`)],-1),l(`div`,O,[W.value?(i(),t(S,{key:0,variant:`grid`})):G.value?(i(),s(`p`,k,u(G.value),1)):U.value.length?e(``,!0):(i(),s(`p`,A,`هنوز محصولی ذخیره نکردهاید.`)),(i(!0),s(p,null,f(U.value,t=>(i(),s(`article`,{key:t.id,class:`product-item`,onClick:e=>J(t.id)},[l(`div`,{class:`product-item__image`,style:d(q(t)?{backgroundImage:`url(${q(t)})`}:n(T)(t.colors[0]??``))},null,4),l(`div`,M,[l(`div`,N,[l(`div`,P,[l(`strong`,null,u(t.name),1),t.isNew?(i(),s(`span`,F,`جدید`)):e(``,!0)]),l(`button`,{type:`button`,class:`bookmark`,"aria-label":`حذف از علاقهمندیها`,onClick:_(e=>Y(t.id),[`stop`])},[o(w,{size:18,filled:``,color:`var(--color-primary)`})],8,I)]),l(`ul`,L,[l(`li`,null,`عرض: `+u(n(v)(t.widthCm))+` سانتیمتر`,1),l(`li`,null,`ترکیب: `+u(t.composition||`—`),1),l(`li`,null,`مناسب: `+u(K(t.season)),1)]),t.colors.length?(i(),s(`div`,R,[(i(!0),s(p,null,f(t.colors.slice(0,6),(e,r)=>(i(),s(`span`,{key:r,class:`swatch`,style:d(n(T)(e,t.colorImages?.[r]||t.imageUrls?.[r]))},null,4))),128))])):e(``,!0),l(`button`,{type:`button`,class:`details-link`,onClick:_(e=>J(t.id),[`stop`])},[c[1]||=a(` مشاهده جزئیات `,-1),o(b,{size:14})],8,z)])],8,j))),128))])]))}}),[[`__scopeId`,`data-v-cc481a5f`]]);export{B as default}; |