From edc52a2caac0f9739d277af09ac33a306cc42979 Mon Sep 17 00:00:00 2001 From: Dennis Heinrich Date: Sun, 6 Apr 2025 21:43:24 +0200 Subject: [PATCH] =?UTF-8?q?Tab-States=20zur=C3=BCcksetzen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/script/calculator.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/assets/script/calculator.js b/assets/script/calculator.js index 644459c..2552650 100644 --- a/assets/script/calculator.js +++ b/assets/script/calculator.js @@ -399,6 +399,9 @@ class CartManager { */ registerCartResetEvent() { Element.getCartButton().addEventListener('click', () => { + CartHistoryManager.addToTotal(this.cartLines.reduce((acc, cartLine) => { + return acc + (cartLine.product.price * cartLine.quantity); + }, 0)); this.cartLines = []; this.renderCart(); }); @@ -518,11 +521,12 @@ class TabManager { */ static toggleTab() { if(!TabManager.isSettingsTabActive) { + TabManager.isSettingsTabActive = true; this.switchTab('settings'); } else { this.switchTab('products'); + TabManager.isSettingsTabActive = false; } - TabManager.isSettingsTabActive = !TabManager.isSettingsTabActive; } /** @@ -573,10 +577,29 @@ class ThemeManager { } } +/** + * Define the CartHistoryManager class to manage the cart history. + */ +class CartHistoryManager { + static getTotal() { + return localStorage.getItem('cart-total-value') || 0; + } + + static setTotal(value) { + localStorage.setItem('cart-total-value', value); + } + + static addToTotal(value) { + const total = parseFloat(CartHistoryManager.getTotal()) + value; + CartHistoryManager.setTotal(total); + } +} + /** * Main function to initialize the application. */ const cartManager = new CartManager(); const productManager = new ProductManager(); const tabManager = new TabManager(); -const themeManager = new ThemeManager(); \ No newline at end of file +const themeManager = new ThemeManager(); +const cartHistoryManager = new CartHistoryManager(); \ No newline at end of file