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 | |
| 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')
| -rw-r--r-- | src/locales/en.json | 1 | ||||
| -rw-r--r-- | src/locales/fr.json | 1 | ||||
| -rw-r--r-- | src/routes/(app)/settings/+layout.svelte | 23 |
3 files changed, 21 insertions, 4 deletions
diff --git a/src/locales/en.json b/src/locales/en.json index 869a6beb..03579132 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -351,6 +351,7 @@ "revealSeed": "Reveal seed phrase", "preferredDM": "Preferred DM Relays", "preferredDMDescription": "Direct Messages meant for you will be published to these relays. To get DMs on multiple relays, put each relay URL on its own line.", + "noDMURLsWarning": "You haven't set any valid relay URLs. You will not be able to use DMs.", "saveSettings": "Save settings", "bannerImage": "Banner Image", "profileImage": "Profile Image", diff --git a/src/locales/fr.json b/src/locales/fr.json index d8533bd7..c891293d 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -250,6 +250,7 @@ "revealSeed": "Montrer la phrase mnémotechnique", "preferredDM": "Relais MD Préferés", "preferredDMDescription": "Messages directs destinés à vous seront publiés à ces relais. Pour obtiendre des messages sur plusieurs relais, met chaque URL sur son propre ligne.", + "noDMURLsWarning": "Vous n'avez pas specifié aucun URL valide. Vous ne pourrez pas utiliser les messages directs.", "notifications": "Notifications de paiement", "notificationsDesc": "Reçevez un email quand un paiement arrive à votre compte", "seedPhrase": "Phrase mnémotechnique", 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(); |
