From ea7209c12fe03f3b8a15c7827e25e506af5b7811 Mon Sep 17 00:00:00 2001 From: Kieran Date: Thu, 2 Feb 2023 18:22:57 +0000 Subject: [PATCH] chore: pick random relays for new users --- src/Pages/Login.tsx | 18 +++++++++++++++++- src/State/Login.ts | 4 +++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Pages/Login.tsx b/src/Pages/Login.tsx index 70c0cbb3..643fb85d 100644 --- a/src/Pages/Login.tsx +++ b/src/Pages/Login.tsx @@ -66,7 +66,23 @@ export default function LoginPage() { async function makeRandomKey() { let newKey = secp.utils.bytesToHex(secp.utils.randomPrivateKey()); - dispatch(setPrivateKey(newKey)) + dispatch(setPrivateKey(newKey)); + + try { + let rsp = await fetch("https://api.nostr.watch/v1/online"); + if (rsp.ok) { + let online: string[] = await rsp.json(); + let pickRandom = online.sort((a, b) => Math.random() >= 0.5 ? 1 : -1).slice(0, 4); // pick 4 random relays + + let relayObjects = pickRandom.map(a => [a, { read: true, write: true }]); + dispatch(setRelays({ + relays: Object.fromEntries(relayObjects), + createdAt: 1 + })); + } + } catch (e) { + console.warn(e); + } navigate("/new"); } diff --git a/src/State/Login.ts b/src/State/Login.ts index 746eaab8..710155ac 100644 --- a/src/State/Login.ts +++ b/src/State/Login.ts @@ -340,10 +340,12 @@ const LoginSlice = createSlice({ state.dmInteraction += 1; }, logout: (state) => { + let relays = { ...state.relays }; Object.assign(state, InitState); state.loggedOut = true; - state.relays = Object.fromEntries(DefaultRelays.entries()); window.localStorage.clear(); + state.relays = relays; + window.localStorage.setItem(RelayListKey, JSON.stringify(relays)); }, markNotificationsRead: (state) => { state.readNotifications = new Date().getTime();