From 581e4df423090fbb303fd0f6ba1f929b29d09d63 Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Thu, 24 Aug 2023 09:13:28 -0700 Subject: [PATCH] Add support for nostr.build and NIP 98 Auth --- src/app/shared/Compose.svelte | 7 ++- src/app/views/NoteCreate.svelte | 4 +- src/engine/components/Builder.ts | 3 + src/partials/ImageInput.svelte | 95 ++++++++++++++++---------------- 4 files changed, 58 insertions(+), 51 deletions(-) diff --git a/src/app/shared/Compose.svelte b/src/app/shared/Compose.svelte index 7b1817ea..fd1a616d 100644 --- a/src/app/shared/Compose.svelte +++ b/src/app/shared/Compose.svelte @@ -209,11 +209,16 @@ } export const write = text => { - contenteditable.getInput().focus() + const input = contenteditable.getInput() + + input.focus() const selection = window.getSelection() const textNode = document.createTextNode(text) + const target = last(input.childNodes) as unknown as Node + const offset = target instanceof Text ? target.wholeText.length : target.childNodes.length + selection.collapse(target, offset) selection.getRangeAt(0).insertNode(textNode) selection.collapse(textNode, text.length) diff --git a/src/app/views/NoteCreate.svelte b/src/app/views/NoteCreate.svelte index 0b9f4d34..a2f1b644 100644 --- a/src/app/views/NoteCreate.svelte +++ b/src/app/views/NoteCreate.svelte @@ -84,7 +84,9 @@ } const setWordCount = throttle(300, () => { - wordCount = compose.parse().match(/\s+/g)?.length || 0 + if (compose) { + wordCount = compose.parse().match(/\s+/g)?.length || 0 + } }) onMount(() => { diff --git a/src/engine/components/Builder.ts b/src/engine/components/Builder.ts index 4c20b495..615a61d2 100644 --- a/src/engine/components/Builder.ts +++ b/src/engine/components/Builder.ts @@ -173,6 +173,9 @@ export class Builder { createLabel = (payload: EventOpts) => buildEvent(1985, payload) + createNip98AuthHeader = (tags: string[][]) => + `Nostr ${btoa(JSON.stringify(buildEvent(27235, {tags})))}` + initialize(engine: Engine) { this.engine = engine } diff --git a/src/partials/ImageInput.svelte b/src/partials/ImageInput.svelte index 56b7c79e..205ded53 100644 --- a/src/partials/ImageInput.svelte +++ b/src/partials/ImageInput.svelte @@ -1,12 +1,13 @@ @@ -89,24 +94,16 @@ -{#if quote} +{#if isOpen} -

Confirm File Upload

-

Please accept the following terms:

-

{quote.terms}

-
- Decline - Accept -
-
-
-{:else if isOpen} - - -

Upload a File

-

Click below to select a file to upload.

- + {#if loading} + Uploading your media... + {:else} +

Upload a File

+

Click below to select a file to upload.

+ + {/if}
{/if}