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