mirror of
https://github.com/aljazceru/hypergolic.git
synced 2026-02-11 16:34:25 +01:00
problem: can't list amrs for sale
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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 />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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>
|
||||
|
||||
43
src/components/MeritTrades.svelte
Normal file
43
src/components/MeritTrades.svelte
Normal 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>
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user