From a02ae03561cda6aa4bf803c5902eda00ccd05ccf Mon Sep 17 00:00:00 2001 From: gsovereignty Date: Wed, 21 Aug 2024 19:14:05 +0300 Subject: [PATCH] problem: can't set product start time --- src/components/AddProductToRocket.svelte | 29 ++++++++++++++++++------ src/components/MeritsAndSatflow.svelte | 1 - src/components/ProductCard.svelte | 28 +++++++++++++++++++---- src/lib/event_helpers/rockets.ts | 16 +++++++++++-- 4 files changed, 60 insertions(+), 14 deletions(-) diff --git a/src/components/AddProductToRocket.svelte b/src/components/AddProductToRocket.svelte index 3ee9a27..663a9c6 100644 --- a/src/components/AddProductToRocket.svelte +++ b/src/components/AddProductToRocket.svelte @@ -16,9 +16,9 @@ export let product: Product; export let rocket: Rocket; - let price: number = 0; let max: number = 0; + let validAfter: number = 0; let o = false; @@ -33,12 +33,18 @@ if (rocket.Event.author.pubkey != author.pubkey) { throw new Error(`${author.pubkey} is not the creator of this rocket`); } - let event = rocket.UpsertProduct(product.ID(), price, max); - event.ndk = $ndk - event.publish().then((x) => { - console.log(x); - o = false - }).catch(()=>{ console.log("failed to publish", event.rawEvent())}); + console.log(37, validAfter); + let event = rocket.UpsertProduct(product.ID(), price, max, validAfter); + event.ndk = $ndk; + event + .publish() + .then((x) => { + console.log(x); + o = false; + }) + .catch(() => { + console.log('failed to publish', event.rawEvent()); + }); } @@ -74,6 +80,15 @@ class="col-span-3" /> +
+ + +
diff --git a/src/components/MeritsAndSatflow.svelte b/src/components/MeritsAndSatflow.svelte index 19b4299..4cb5f05 100644 --- a/src/components/MeritsAndSatflow.svelte +++ b/src/components/MeritsAndSatflow.svelte @@ -39,7 +39,6 @@ } function checkNewZaps() { - console.log(39); const currentTime = Date.now() / 1000; const recentZaps = Array.from(unratifiedZaps.values()).filter( (zap) => diff --git a/src/components/ProductCard.svelte b/src/components/ProductCard.svelte index ecfa1bc..4f10cc0 100644 --- a/src/components/ProductCard.svelte +++ b/src/components/ProductCard.svelte @@ -23,9 +23,24 @@ if (!product.Validate()) { throw new Error('this should not happen'); } - //productFromRocket = rocket.Products().get(product.ID()); }); + function disabled(productFromRocket: RocketProduct): boolean { + let disabled = false; + if (!productFromRocket?.ValidNow()) { + disabled = true; + } + if ( + productFromRocket.MaxPurchases() > 0 && + productFromRocket.MaxPurchases() - zapsForThisProduct(productFromRocket!).size == 0 + ) { + disabled = true; + } + return disabled; + // productFromRocket.MaxPurchases() > 0 && + // productFromRocket.MaxPurchases() - zapsForThisProduct(productFromRocket).size == 0 && !productFromRocket.ValidNow() + } + function zapsForThisProduct(product: RocketProduct): Map { let m = new Map(); if (unratifiedZaps) { @@ -84,8 +99,7 @@ {/if} 0 && - productFromRocket.MaxPurchases() - zapsForThisProduct(productFromRocket).size == 0} + disabled={disabled(productFromRocket)} {product} rocketProduct={rocket.Products().get(product.ID())} {rocket} @@ -102,7 +116,13 @@ 'max purchases', productFromRocket.MaxPurchases(), 'price', - productFromRocket.Price() + productFromRocket.Price(), + 'valid after', + productFromRocket.ValidAfter(), + 'seconds till valid', + productFromRocket.TimeTillValid(), + 'validNow', + productFromRocket.ValidNow() ); } }}>print product