Don't use codes as a primary key in counter click

This commit is contained in:
2024-12-20 18:34:27 +01:00
parent 60f18669c8
commit a383f3e717
3 changed files with 17 additions and 26 deletions

View File

@ -11,6 +11,7 @@ interface CounterConfig {
}
interface Product {
id: string;
code: string;
name: string;
price: number;
@ -56,18 +57,11 @@ exportToHtml("loadCounter", (config: CounterConfig) => {
.setAttribute(":value", "getBasketSize()");
},
getItemIdFromCode(code: string): string {
return Object.keys(config.products).find(
(key) => config.products[key].code === code,
);
removeFromBasket(id: string) {
delete this.basket[id];
},
removeFromBasket(code: string) {
delete this.basket[this.getItemIdFromCode(code)];
},
addToBasket(code: string, quantity: number): [boolean, string] {
const id = this.getItemIdFromCode(code);
addToBasket(id: string, quantity: number): [boolean, string] {
const item: BasketItem =
this.basket[id] || new BasketItem(config.products[id], 0);
@ -126,7 +120,7 @@ exportToHtml("loadCounter", (config: CounterConfig) => {
});
},
handleCode(event: SubmitEvent) {
handleCode() {
const [quantity, code] = this.codeField.getSelectedProduct() as [
number,
string,