aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdrien Hopkins <[email protected]>2025-11-18 11:23:39 -0500
committerAdrien Hopkins <[email protected]>2025-11-18 11:23:39 -0500
commit082429c6ebe4cf78d58e9c0249bb8e83271fc778 (patch)
tree000ecdd138d1c72b8557ffbe6b92efb6178c376a /src
parent9c05ecb697144c3e6299be1158eb4f53d41d3198 (diff)
downloadcoinos-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.json1
-rw-r--r--src/locales/fr.json1
-rw-r--r--src/routes/(app)/settings/+layout.svelte23
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();