From f72ae13a3e9f55f16226b95b9e120d4095d8ebe6 Mon Sep 17 00:00:00 2001 From: gsovereignty Date: Sat, 17 Aug 2024 22:29:24 +0800 Subject: [PATCH] problem: incorrect metrics on products --- src/components/ProductCard.svelte | 47 ++++++++++++++++--------- src/components/ProductCardFromID.svelte | 7 +++- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/components/ProductCard.svelte b/src/components/ProductCard.svelte index 326e6c8..ecfa1bc 100644 --- a/src/components/ProductCard.svelte +++ b/src/components/ProductCard.svelte @@ -14,30 +14,28 @@ export let product: ProductEvent; export let rocket: Rocket; + export let productFromRocket: RocketProduct | undefined; export let unratifiedZaps: Map | undefined = undefined; - let productFromRocket = rocket.Products().get(product.ID()); + //$:productFromRocket = rocket.Products().get(product.ID())// RocketProduct | undefined = undefined; onMount(() => { if (!product.Validate()) { throw new Error('this should not happen'); } + //productFromRocket = rocket.Products().get(product.ID()); }); - function remainingProducts(product: RocketProduct, zaps?: Map): number { - let numberOfPurchases = 0; - if (zaps) { - for (let [_, zap] of zaps) { + function zapsForThisProduct(product: RocketProduct): Map { + let m = new Map(); + if (unratifiedZaps) { + for (let [_, zap] of unratifiedZaps) { if (zap.ProductID == product.ID()) { - numberOfPurchases++; + m.set(zap.ZapReceipt.id, zap); } } } - let remaining = product.MaxPurchases() - numberOfPurchases; - if (remaining < 0) { - remaining = 0; - } - return remaining; + return m; } @@ -75,19 +73,19 @@
SOLD:
-
{unratifiedZaps.size}
{zapsForThisProduct(productFromRocket).size}
AVAILABLE:
- {remainingProducts(productFromRocket, unratifiedZaps)} + {productFromRocket.MaxPurchases() - zapsForThisProduct(productFromRocket).size}
{/if} 0 && - remainingProducts(productFromRocket, unratifiedZaps) == 0} + productFromRocket.MaxPurchases() - zapsForThisProduct(productFromRocket).size == 0} {product} rocketProduct={rocket.Products().get(product.ID())} {rocket} @@ -98,8 +96,25 @@ href="#" on:click={() => { console.log(product); - }}>print to console{/if} + if (productFromRocket) { + console.log(productFromRocket); + console.log( + 'max purchases', + productFromRocket.MaxPurchases(), + 'price', + productFromRocket.Price() + ); + } + }}>print product + + { + console.log(unratifiedZaps); + }}>print unratified zaps + {/if} {/if} diff --git a/src/components/ProductCardFromID.svelte b/src/components/ProductCardFromID.svelte index 1eb9bac..3a0561a 100644 --- a/src/components/ProductCardFromID.svelte +++ b/src/components/ProductCardFromID.svelte @@ -17,7 +17,12 @@ {#if product} - + {/if}