Files
tehran_taj/apps/user-app/dist/assets/cartStore-blSKCzji.js
T
2026-09-10 12:17:47 +03:30

2 lines
1.8 KiB
JavaScript

import{j as c,u as _,k as n,x as y}from"./index-ZjGZzoKB.js";import{a as F}from"./client-WIBW0tF5.js";function S(t){return!t||t.length===0?null:t.reduce((e,s)=>parseFloat(s.defaultWagePercent)<parseFloat(e.defaultWagePercent)?s:e)}function w(t,e){const s=c(t),i=n(()=>{var l,h;return(h=(l=s.value.images)==null?void 0:l[0])==null?void 0:h.url}),r=n(()=>s.value.id),a=n(()=>s.value.title),d=n(()=>s.value.variants),o=c(e??S(_(d))),m=n(()=>o.value?parseFloat(o.value.rashWeightGrams):0),p=n(()=>o.value?parseFloat(o.value.defaultWagePercent):null),g=c(null),v=c(!0),x=c(!1);return{product:s,image:i,id:r,title:a,variants:d,selectedVariant:o,min_gram:m,wage:p,hasDiscountWage:g,is_exist:v,has_warranty:x}}const f="appCart";function C(){try{const t=localStorage.getItem(f);return t?JSON.parse(t):[]}catch{return[]}}function u(t){localStorage.setItem(f,JSON.stringify(t))}const I=y("cart",{state:()=>({items:C()}),actions:{async init(){try{const t=await F.listProducts(),e=[];for(const s of this.items){const i=t.find(a=>a.id===s.pid),r=i==null?void 0:i.variants.find(a=>a.id===s.vid);i&&r&&e.push({...s,product:i})}this.items=e,u(this.items)}catch(t){console.log(t)}},addToCart(t){const e=this.find_index(t);e===-1?this.items.push(t):(this.items[e].product=t.product,this.items[e].qty=t.qty),u(this.items)},remove(t){const e=this.find_index(t);e>-1&&this.items.splice(e,1),u(this.items)},updateFeild(t,e,s,i){if(!this.isInCart(s))return!1;const r=e??this.find_index(s);return this.items[r][i]=t,u(this.items),!0},find_index(t){return this.items.findIndex(e=>e.pid===t.pid&&e.vid===t.vid)},isInCart(t){return this.find_index(t)>-1},variant(t){return t.product.variants.find(e=>e.id===t.vid)},total(){return this.items.reduce((t,e)=>{const s=this.variant(e);return t+(s?parseFloat(s.rashWeightGrams)*e.qty:0)},0).toFixed(2)},clear(){this.items=[],u(this.items)}}});export{I as a,w as u};