diff options
| author | Adrien Hopkins <[email protected]> | 2025-10-31 19:07:30 -0500 |
|---|---|---|
| committer | Adrien Hopkins <[email protected]> | 2025-10-31 19:07:30 -0500 |
| commit | 53cb36710837f1cdf62b4bcf860cff3d405ec664 (patch) | |
| tree | 18c313695779f4503c8729be4f7a117e67d28585 /src | |
| parent | 56e45190fd535f5f6c06914a8b9985e07bd7458c (diff) | |
| download | coinos-ui-53cb36710837f1cdf62b4bcf860cff3d405ec664.tar.gz coinos-ui-53cb36710837f1cdf62b4bcf860cff3d405ec664.zip | |
Add DM Relays to settings page
Currently it uses a separate button, since I need to figure out how to
get this to work with the different pages. Next, I'll fit it into the
save button.
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/(app)/settings/nostr/+page.svelte | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/routes/(app)/settings/nostr/+page.svelte b/src/routes/(app)/settings/nostr/+page.svelte index 7168f4f7..5ca64588 100644 --- a/src/routes/(app)/settings/nostr/+page.svelte +++ b/src/routes/(app)/settings/nostr/+page.svelte @@ -18,6 +18,9 @@ let extensionAvailable = $derived(browser && window.nostr); let { locale } = $derived(user); + import { SimplePool } from 'nostr-tools/pool'; + import { finalizeEvent } from 'nostr-tools/pure'; + let newNsec = $state(), nsec = $state(), pin = $state(""), @@ -41,6 +44,28 @@ await tick(); $save.click(); }; + + const pool = new SimplePool(); + import { PUBLIC_DM_RELAYS } from '$env/static/public'; + const DM_RELAYS_LIST = PUBLIC_DM_RELAYS.split(','); + let dmRelaysText = $state(''); + let updateRelays = async () => { + const newRelays = dmRelaysText.split('\n'); + const event = { + kind: 10050, + created_at: Math.floor(Date.now() / 1000), + tags: newRelays.map(r => ["relay", r]), + content: "" + }; + let signed; + if (await window.nostr.getPublicKey() === user.pubkey) { + signed = await window.nostr.signEvent(event); + } else { + const sk = await getPrivateKey(user); + signed = finalizeEvent(event, sk); + } + await Promise.any(pool.publish(DM_RELAYS_LIST, signed)); + } </script> <input type="hidden" name="challenge" value={challenge} /> @@ -231,3 +256,11 @@ {/if} </div> {/if} + +<p class="font-bold"> + Preferred DM Relays +</p> +Direct Messages meant for you will be published to these relays. + +<textarea name="dmRelays" bind:value={dmRelaysText} rows={3}></textarea> +<button onclick={updateRelays} class="btn">Update Preferred DM Relays</button> |
