veza/apps/web/dist_verification/assets/cartStore-D5whk71m.js
senke 04c25aa24f Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy
Bloc A - Code mort:
- Suppression Studio (components, views, features)
- Suppression gamification + services mock (projectService, storageService, gamificationService)
- Mise à jour Sidebar, Navbar, locales

Bloc B - Frontend:
- Suppression modal.tsx deprecated, Modal.stories (doublon Dialog)
- Feature flags: PLAYLIST_SEARCH, PLAYLIST_RECOMMENDATIONS, ROLE_MANAGEMENT = true
- Suppression 19 tests orphelins, retrait exclusions vitest.config

Bloc C - Backend:
- Extraction routes_auth.go depuis router.go

Bloc D - Rust:
- Suppression security_legacy.rs (code mort, patterns déjà dans security/)
2026-02-14 17:23:32 +01:00

1 line
854 B
JavaScript

import{ab as m,ac as u}from"./vendor-CveO81sn.js";const I=m()(u((s,n)=>({items:[],addItem:(t,e)=>{s(r=>{const i=e?e.id:"standard",c=r.items.find(a=>a.product.id===t.id&&a.selectedLicense?.id===e?.id);if(c)return{items:r.items.map(a=>a.cartId===c.cartId?{...a,quantity:a.quantity+1}:a)};const d={cartId:`${t.id}-${i}-${Date.now()}`,product:t,quantity:1,selectedLicense:e};return{items:[...r.items,d]}})},removeItem:t=>{s(e=>({items:e.items.filter(r=>r.cartId!==t)}))},updateQuantity:(t,e)=>{if(e<=0){n().removeItem(t);return}s(r=>({items:r.items.map(i=>i.cartId===t?{...i,quantity:e}:i)}))},clearCart:()=>{s({items:[]})},getTotal:()=>n().items.reduce((t,e)=>{const r=e.selectedLicense?e.selectedLicense.price:e.product.price;return t+r*e.quantity},0),getItemCount:()=>n().items.reduce((t,e)=>t+e.quantity,0)}),{name:"veza-cart-storage"}));export{I as u};