Store products in a basket, display list of products in basket

This commit is contained in:
2024-09-09 14:33:29 +02:00
parent 2d0dc274bf
commit 6ff577ece1
10 changed files with 161 additions and 45 deletions

View File

@@ -0,0 +1,30 @@
import { defineStore } from "pinia";
import { useLocalStorage } from "@vueuse/core";
import { ProductModel } from "../models/productModel";
import { calcProductPrice } from "@/scripts/productScripts";
export const useBasketStore = defineStore('basket', {
state: () => ({
productsInBasket: useLocalStorage<Array<ProductModel>>("hackmycart/basketStore/productsInBasket", [])
}),
getters: {
getTotalPrice() {
let result = 0
for (let product of this.productsInBasket) {
result += calcProductPrice(product)
}
return result
}
},
actions: {
removeProductFromBasket(product: ProductModel) {
this.productsInBasket = this.productsInBasket.filter((p: ProductModel) =>
p.id != product.id
)
}
}
})