problem: can't list amrs for sale

This commit is contained in:
gsovereignty
2024-08-01 18:27:41 +08:00
parent 6368c7d580
commit 47f2e1666c
16 changed files with 704 additions and 73 deletions

View File

@@ -44,15 +44,15 @@
>
<Dialog.Content>
<Dialog.Header>
<Dialog.Title>Calculate the sats</Dialog.Title>
<Dialog.Title>How much should you request?</Dialog.Title>
<Dialog.Description
>Calculate the sats of the request according to your hour rate.</Dialog.Description
>Use this form to calculate how many Sats you should claim. This information will be public and permanent.</Dialog.Description
>
</Dialog.Header>
<Label for="hourly_rate">Hour rate</Label>
<Input bind:value={hourly_rate} id="hourly_rate" placeholder="? USD / hour" />
<Label for="spent_minutes">Working hours</Label>
<Input bind:value={spent_minutes} id="spent_minutes" placeholder="? minutes" />
<Label for="hourly_rate">Your hourly rate in CuckLoserBucks</Label>
<Input bind:value={hourly_rate} id="hourly_rate" placeholder="USD hourly rate" />
<Label for="spent_minutes">Time spent solving this problem (minutes)</Label>
<Input bind:value={spent_minutes} id="spent_minutes" placeholder="minutes" />
{#if calcSats}
<div>Result: {calcSats.toFixed(0)} sats</div>
{/if}

View File

@@ -5,6 +5,8 @@
import { Avatar } from '@nostr-dev-kit/ndk-svelte-components';
import { NDKNip07Signer } from '@nostr-dev-kit/ndk';
import { onMount } from 'svelte';
import { goto } from '$app/navigation';
import { base } from '$app/paths';
onMount(() => {
if (localStorage.getItem('signed-in')) {
@@ -48,6 +50,9 @@
<DropdownMenu.Content align="end">
<DropdownMenu.Label>My Account</DropdownMenu.Label>
<DropdownMenu.Separator />
<DropdownMenu.Item on:click={()=>{goto(`${base}/sellmerits`)}}>Sell Merits</DropdownMenu.Item>
<DropdownMenu.Item>Buy Merits</DropdownMenu.Item>
<DropdownMenu.Separator />
<DropdownMenu.Item>Settings</DropdownMenu.Item>
<DropdownMenu.Item>Support</DropdownMenu.Item>
<DropdownMenu.Separator />

View File

@@ -5,6 +5,7 @@
import { getRocketURL, parseProblem } from '@/helpers';
import type { NDKEvent } from '@nostr-dev-kit/ndk';
import MeritSummaryCard from './MeritSummaryCard.svelte';
import { Rocket } from '@/event_helpers/rockets';
export let rocket: NDKEvent;
export let merit: MeritRequest;
@@ -37,6 +38,6 @@
<main
class="grid flex-1 items-start gap-4 p-4 sm:px-6 sm:py-0 md:gap-2 lg:grid-cols-3 xl:grid-cols-3"
>
<MeritSummaryCard {rocket} {merit} />
<MeritSummaryCard parsedRocket={new Rocket(rocket)} {merit} />
</main>
</div>

View File

@@ -12,17 +12,17 @@
import { onDestroy } from 'svelte';
import { derived } from 'svelte/store';
export let rocket: NDKEvent;
let parsedRocket = new Rocket(rocket);
//export let rocket: NDKEvent;
export let parsedRocket:Rocket;// = new Rocket(rocket);
let _merits = $ndk.storeSubscribe(
[{ '#a': [`31108:${rocket.author.pubkey}:${rocket.dTag}`], kinds: [1409 as NDKKind] }],
[{ '#a': [`31108:${parsedRocket.Event.author.pubkey}:${parsedRocket.Name()}`], kinds: [1409 as NDKKind] }],
{
subId: `${rocket.dTag}_merits`
subId: `${parsedRocket.Name()}_merits`
}
);
let _votes = $ndk.storeSubscribe({ '#a': [RocketATagFilter(rocket)], kinds: [1410 as NDKKind] });
let _votes = $ndk.storeSubscribe({ '#a': [RocketATagFilter(parsedRocket.Event)], kinds: [1410 as NDKKind] });
onDestroy(() => {
_merits?.unsubscribe();

View File

@@ -21,15 +21,15 @@
import MeritComment from './MeritComment.svelte';
export let merit: MeritRequest;
export let rocket: NDKEvent;
//export let rocket: NDKEvent;
let cuckPrice: number | undefined = undefined;
let result: VoteDirection | undefined;
let parsedRocket = new Rocket(rocket);
export let parsedRocket:Rocket;
let _votes = $ndk.storeSubscribe(
{ '#a': [RocketATagFilter(rocket)], '#e': [merit.ID], kinds: [1410 as NDKKind] },
{ '#a': [RocketATagFilter(parsedRocket.Event)], '#e': [merit.ID], kinds: [1410 as NDKKind] },
{
subId: merit.ID
}
@@ -80,7 +80,7 @@
updatedRocket.ndk = $ndk;
updatedRocket.sign().then(() => {
updatedRocket.publish().then(() => {
goto(`${base}/rockets/${getRocketURL(rocket)}`);
goto(`${base}/rockets/${getRocketURL(parsedRocket.Event)}`);
});
});
}
@@ -170,7 +170,7 @@
<Separator class="my-4" />
<div class="font-semibold">Votes</div>
{#if $votes.size == 0}<Alert
><Info />Waiting for existing <span class="italic">{new Rocket(rocket).Name()}</span> Merit
><Info />Waiting for existing <span class="italic">{parsedRocket.Name()}</span> Merit
holders to vote</Alert
>
{/if}
@@ -219,7 +219,7 @@
{:else if result == 'blackball'}
<span class="scroll-m-20 text-lg font-semibold tracking-tight md:text-xl">REJECTED</span>
{:else if !result}
<VoteOnMeritRequest {merit} rocket={new Rocket(rocket)} />
<VoteOnMeritRequest {merit} rocket={parsedRocket} />
{/if}
</Card.Footer>
</Card.Root>

View File

@@ -0,0 +1,43 @@
<script lang="ts">
import { base } from '$app/paths';
import * as Breadcrumb from '$lib/components/ui/breadcrumb/index.js';
import { Rocket } from '@/event_helpers/rockets';
import { getRocketURL } from '@/helpers';
import type { NDKEvent } from '@nostr-dev-kit/ndk';
export let rocket: NDKEvent;
let parsedRocket = new Rocket(rocket)
</script>
<div class="flex flex-col sm:gap-4">
<header class="flex items-center">
<Breadcrumb.Root class="flex">
<Breadcrumb.List>
<Breadcrumb.Item>
<Breadcrumb.Link href={`${base}/rockets/${getRocketURL(rocket)}`}
>{rocket.getMatchingTags('d')[0][1]}</Breadcrumb.Link
>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Link href={`${base}/rockets/${getRocketURL(rocket)}`}
>Merit Requests</Breadcrumb.Link
>
</Breadcrumb.Item>
<Breadcrumb.Separator />
<Breadcrumb.Item>
<Breadcrumb.Page>
Trade
</Breadcrumb.Page>
</Breadcrumb.Item>
</Breadcrumb.List>
</Breadcrumb.Root>
</header>
<main
class="grid flex-1 items-start gap-4 p-4 sm:px-6 sm:py-0 md:gap-2 lg:grid-cols-3 xl:grid-cols-3"
>
Trade {parsedRocket.Name()} Merits
</main>
</div>

View File

@@ -11,6 +11,7 @@
import ProposedProducts from './ProposedProducts.svelte';
import Todo from './Todo.svelte';
import UpdateMission from './UpdateMission.svelte';
import { Rocket } from '@/event_helpers/rockets';
export let rocket: NDKEvent;
@@ -40,7 +41,7 @@
<ProposedProducts {rocket} />
<MeritRequests {rocket} />
<MeritRequests parsedRocket={new Rocket(rocket)} />
<Card.Root class="sm:col-span-3">
<Card.Header class="pb-3">
<Card.Title>Actions</Card.Title>