diff options
| author | Adrien Hopkins <[email protected]> | 2025-11-18 11:23:39 -0500 |
|---|---|---|
| committer | Adrien Hopkins <[email protected]> | 2025-11-18 11:23:39 -0500 |
| commit | 082429c6ebe4cf78d58e9c0249bb8e83271fc778 (patch) | |
| tree | 000ecdd138d1c72b8557ffbe6b92efb6178c376a /src/routes | |
| parent | 9c05ecb697144c3e6299be1158eb4f53d41d3198 (diff) | |
| download | coinos-ui-082429c6ebe4cf78d58e9c0249bb8e83271fc778.tar.gz coinos-ui-082429c6ebe4cf78d58e9c0249bb8e83271fc778.zip | |
Only put valid URLs in kind-10050 relay tags
Diffstat (limited to 'src/routes')
| -rw-r--r-- | src/routes/(app)/settings/+layout.svelte | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/routes/(app)/settings/+layout.svelte b/src/routes/(app)/settings/+layout.svelte index ef4b8abf..24c54a97 100644 --- a/src/routes/(app)/settings/+layout.svelte +++ b/src/routes/(app)/settings/+layout.svelte @@ -1,4 +1,4 @@ -<script> +<script lang="ts"> import { browser } from "$app/environment"; import { onMount, tick } from "svelte"; import { fly } from "svelte/transition"; @@ -51,11 +51,17 @@ const pool = new SimplePool(); import { PUBLIC_DM_RELAYS } from '$env/static/public'; const DM_RELAYS_LIST = PUBLIC_DM_RELAYS.split(','); - let updateRelaysIfAvailable = async () => { + const updateRelaysIfAvailable = async () => { const relayEntry = document.getElementById('dmRelays'); - if (!relayEntry) return; + if (!relayEntry || relayEntry.value.length === 0) return; + + const newRelays = relayEntry.value.split(/[ \r\n\t]+/) + .filter(isValidURL); + if (newRelays.length === 0) { + warning($t("user.settings.noDMURLsWarning")); + return; + } - const newRelays = relayEntry.value.split(/[ \r\n\t]+/); const event = { kind: 10050, created_at: Math.floor(Date.now() / 1000), @@ -72,6 +78,15 @@ await Promise.any(pool.publish(DM_RELAYS_LIST, signed)); } + const isValidURL = (url: string) => { + try { + new URL(url); + return true; + } catch (err) { + return false; + } + } + async function handleSubmit(e) { updateRelaysIfAvailable(); e.preventDefault(); |
