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/)
1 line
854 B
JavaScript
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};
|