Files
tehran_tala/apps/user-app-v2/dist/assets/cartStore-CWXC0lNJ.js
T
2026-09-25 19:12:39 +03:30

2 lines
2.7 KiB
JavaScript

import{g as d,u as O,h as a,m as _,p as C}from"./index-DdOAzko0.js";function F(t){return(t.qty??0)>0||!!t.isPreOrder}function S(t){if(!t||t.length===0)return null;const e=t.filter(F);return(e.length?e:t).reduce((i,r)=>parseFloat(r.defaultWagePercent)<parseFloat(i.defaultWagePercent)?r:i)}function w(t,e){const s=d(t),i=a(()=>{var o,m;return(m=(o=s.value.images)==null?void 0:o[0])==null?void 0:m.url}),r=a(()=>s.value.id),n=a(()=>s.value.title),l=a(()=>s.value.variants),c=d(e??S(O(l))),v=a(()=>c.value?parseFloat(c.value.rashWeightGrams):0),y=a(()=>c.value?parseFloat(c.value.defaultWagePercent):null),g=d(null),h=a(()=>{var o;return((o=c.value)==null?void 0:o.qty)??0}),f=a(()=>{var o;return((o=c.value)==null?void 0:o.isPreOrder)??!1}),x=a(()=>h.value>0||f.value),q=a(()=>s.value.productCode??null),P=d(!1);return{product:s,image:i,id:r,title:n,productCode:q,variants:l,selectedVariant:c,min_gram:v,wage:y,hasDiscountWage:g,qty:h,isPreOrder:f,is_exist:x,has_warranty:P}}const p="appCart";function W(){try{const t=localStorage.getItem(p);return t?JSON.parse(t):[]}catch{return[]}}function u(t){localStorage.setItem(p,JSON.stringify(t))}const I=_("cart",{state:()=>({items:W()}),actions:{async init(){try{const t=await C.listProducts(),e=[];for(const s of this.items){const i=t.find(n=>n.id===s.pid),r=i==null?void 0:i.variants.find(n=>n.id===s.vid);i&&r&&e.push({...s,product:i})}this.items=e,u(this.items)}catch(t){console.log(t)}},addToCart(t){var i,r;const e=(r=(i=t.product)==null?void 0:i.variants)==null?void 0:r.find(n=>n.id===t.vid);if(!e||!((e.qty??0)>0||e.isPreOrder))return!1;const s=this.find_index(t);return s===-1?this.items.push({...t,qty:this.capQty(t.qty,e)}):(this.items[s].product=t.product,this.items[s].qty=this.capQty(t.qty,e)),u(this.items),!0},capQty(t,e){const s=Math.max(1,Math.floor(t)||1);if(e.isPreOrder)return s;const i=e.qty??0;return i>0?Math.min(s,i):s},maxQty(t){const e=this.find_index(t);if(e===-1)return null;const s=this.variant(this.items[e]);return!s||s.isPreOrder?null:(s.qty??0)>0?s.qty:null},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);if(i==="qty"){const n=this.variant(this.items[r]);t=n?this.capQty(Number(t),n):Math.max(1,Number(t)||1)}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,F as i,w as u};