diff --git a/src/components/MeritComment.svelte b/src/components/MeritComment.svelte index 3e199d9..5572d4c 100644 --- a/src/components/MeritComment.svelte +++ b/src/components/MeritComment.svelte @@ -35,7 +35,6 @@ } const e = prepareMeritNoteEvent({ ndk, - author, merit, content }); diff --git a/src/components/NotifyMe.svelte b/src/components/NotifyMe.svelte index e450965..b474283 100644 --- a/src/components/NotifyMe.svelte +++ b/src/components/NotifyMe.svelte @@ -1,21 +1,114 @@ - Nostrocket is sooooo not ready yet but whatever + + + Tell me via DM when there are updates + + - Nostrocket is a work in progress - It kind of works, but there's a lot more to do. There will be bugs. + Subscribe for Updates + + Receive notifications about Nostrocket updates via Nostr DM or email. + +
+ {#if $currentUser} + + {:else} + + {/if} + +
+ + +
+ {#if emailError} +
{emailError}
+ {/if} +
+
-
diff --git a/src/components/VoteOnMeritRequest.svelte b/src/components/VoteOnMeritRequest.svelte index 852a2ad..cd913a1 100644 --- a/src/components/VoteOnMeritRequest.svelte +++ b/src/components/VoteOnMeritRequest.svelte @@ -25,7 +25,6 @@ } prepareMeritVoteEvent({ ndk, - author, rocket, merit, direction @@ -35,10 +34,9 @@ console.log(x); }); if (direction === 'ratify') { - let content = `I've voted to ratify your merit request! ${merit.Problem()} \n\n ${merit.Solution()?merit.Solution():""}`; + let content = `I've voted to ratify your merit request! ${merit.Problem()} \n\n ${merit.Solution() ? merit.Solution() : ''}`; prepareMeritNoteEvent({ ndk, - author, merit, content }) diff --git a/src/lib/event_helpers/merits.ts b/src/lib/event_helpers/merits.ts index 02b11da..8ae6dcb 100644 --- a/src/lib/event_helpers/merits.ts +++ b/src/lib/event_helpers/merits.ts @@ -343,14 +343,13 @@ function pubkeyLatestVote(votes: Votes) { export function prepareMeritNoteEvent(args: { ndk: NDKSvelte; - author: NDKUser; merit: MeritRequest; content: string; }) { const tags = [ ['p', args.merit.Pubkey], - ['e', args.merit.ID, "wss://relay.nostrocket.org", 'reply'], - args.merit.RocketTag?['a', args.merit.RocketTag]:[], + ['e', args.merit.ID, 'wss://relay.nostrocket.org', 'reply'], + args.merit.RocketTag ? ['a', args.merit.RocketTag] : [] ]; return prepareNostrEvent({ ...args, @@ -361,7 +360,6 @@ export function prepareMeritNoteEvent(args: { export function prepareMeritVoteEvent(args: { ndk: NDKSvelte; - author: NDKUser; rocket: Rocket; merit: MeritRequest; direction: string; diff --git a/src/lib/helpers.ts b/src/lib/helpers.ts index 86a0292..7a0178f 100644 --- a/src/lib/helpers.ts +++ b/src/lib/helpers.ts @@ -1,4 +1,4 @@ -import { NDKZap, NDKEvent, type NDKKind, type NDKTag, type NDKUser } from '@nostr-dev-kit/ndk'; +import { NDKKind, NDKZap, NDKEvent, NDKUser, type NDKTag } from '@nostr-dev-kit/ndk'; import type NDKSvelte from '@nostr-dev-kit/ndk-svelte'; import { QrCode } from '$lib/qrcodegen'; @@ -19,8 +19,6 @@ export function getRocketURL(e: NDKEvent): string { return `${ignitionID}?d=${d}&p=${p}`; } - - export function unixTimeNow() { return Math.floor(new Date().getTime() / 1000); } @@ -166,15 +164,12 @@ export async function getAuthorizedZapper(rocket: NDKEvent): Promise { export function prepareNostrEvent(args: { ndk: NDKSvelte; - author: NDKUser; kind: NDKKind; content: string; tags?: NDKTag[]; }) { let e = new NDKEvent(args.ndk); - e.author = args.author; e.kind = args.kind; - e.created_at = Math.floor(new Date().getTime() / 1000); e.content = args.content; if (args.tags) { e.tags = args.tags; @@ -183,6 +178,25 @@ export function prepareNostrEvent(args: { return e; } +export async function prepareEncryptedDirectMessageEvent(args: { + ndk: NDKSvelte; + receiver: NDKUser; + content: string; +}) { + const signer = args.ndk.signer; + if (!signer) { + return new Error('no signer'); + } + const tags = [['p', args.receiver.pubkey]]; + const event = prepareNostrEvent({ + ...args, + kind: NDKKind.EncryptedDirectMessage, + tags + }); + await event.encrypt(args.receiver, signer); + return event; +} + export function drawSvgPath(qr: QrCode, border: number): string { if (border < 0) throw new RangeError('Border must be non-negative'); let parts: Array = [];