From 00af3aab6404328be454dda5906489d2d9d5ddbe Mon Sep 17 00:00:00 2001 From: codytseng Date: Sun, 22 Dec 2024 22:22:43 +0800 Subject: [PATCH] feat: add default search relays --- package-lock.json | 2 +- package.json | 2 +- src/components/NoteList/index.tsx | 4 ++-- src/constants.ts | 9 +++++++++ src/providers/RelaySettingsProvider.tsx | 12 +++++++++--- src/services/client.service.ts | 8 +------- 6 files changed, 23 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3d820f3..586f2c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@radix-ui/react-dropdown-menu": "^2.1.4", "@radix-ui/react-hover-card": "^1.1.4", "@radix-ui/react-popover": "^1.1.4", - "@radix-ui/react-scroll-area": "^1.2.0", + "@radix-ui/react-scroll-area": "1.2.0", "@radix-ui/react-separator": "^1.1.1", "@radix-ui/react-slot": "^1.1.1", "@radix-ui/react-switch": "^1.1.2", diff --git a/package.json b/package.json index 1e07b4a..44b8615 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@radix-ui/react-dropdown-menu": "^2.1.4", "@radix-ui/react-hover-card": "^1.1.4", "@radix-ui/react-popover": "^1.1.4", - "@radix-ui/react-scroll-area": "^1.2.0", + "@radix-ui/react-scroll-area": "1.2.0", "@radix-ui/react-separator": "^1.1.1", "@radix-ui/react-slot": "^1.1.1", "@radix-ui/react-switch": "^1.1.2", diff --git a/src/components/NoteList/index.tsx b/src/components/NoteList/index.tsx index 1cc4fb8..2db3edb 100644 --- a/src/components/NoteList/index.tsx +++ b/src/components/NoteList/index.tsx @@ -160,7 +160,7 @@ export default function NoteList({ } pullingContent="" > - <> +
{newEvents.filter((event) => displayReplies || !isReplyNoteEvent(event)).length > 0 && (
- +
{hasMore ? ( diff --git a/src/constants.ts b/src/constants.ts index 2447bd5..c79fb9d 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -3,3 +3,12 @@ export const StorageKey = { RELAY_GROUPS: 'relayGroups', ACCOUNTS: 'accounts' } + +export const BIG_RELAY_URLS = [ + 'wss://relay.damus.io/', + 'wss://nos.lol/', + 'wss://relay.nostr.band/', + 'wss://relay.noswhere.com/' +] + +export const SEARCHABLE_RELAY_URLS = ['wss://relay.nostr.band/', 'wss://search.nos.today/'] diff --git a/src/providers/RelaySettingsProvider.tsx b/src/providers/RelaySettingsProvider.tsx index 7f4710e..e59e121 100644 --- a/src/providers/RelaySettingsProvider.tsx +++ b/src/providers/RelaySettingsProvider.tsx @@ -1,8 +1,9 @@ -import { TRelayGroup } from '@/types' +import { SEARCHABLE_RELAY_URLS } from '@/constants' import { checkAlgoRelay, checkSearchRelay } from '@/lib/relay' import { isWebsocketUrl, normalizeUrl } from '@/lib/url' import client from '@/services/client.service' import storage from '@/services/storage.service' +import { TRelayGroup } from '@/types' import { createContext, Dispatch, useContext, useEffect, useState } from 'react' type TRelaySettingsContext = { @@ -37,7 +38,7 @@ export function RelaySettingsProvider({ children }: { children: React.ReactNode ? temporaryRelayUrls : (relayGroups.find((group) => group.isActive)?.relayUrls ?? []) ) - const [searchableRelayUrls, setSearchableRelayUrls] = useState([]) + const [searchableRelayUrls, setSearchableRelayUrls] = useState(SEARCHABLE_RELAY_URLS) const [areAlgoRelays, setAreAlgoRelays] = useState(false) useEffect(() => { @@ -63,7 +64,12 @@ export function RelaySettingsProvider({ children }: { children: React.ReactNode setRelayUrls(newRelayUrls) } const relayInfos = await client.fetchRelayInfos(newRelayUrls) - setSearchableRelayUrls(newRelayUrls.filter((_, index) => checkSearchRelay(relayInfos[index]))) + const searchableRelayUrls = newRelayUrls.filter((_, index) => + checkSearchRelay(relayInfos[index]) + ) + setSearchableRelayUrls( + searchableRelayUrls.length ? searchableRelayUrls : SEARCHABLE_RELAY_URLS + ) const nonAlgoRelayUrls = newRelayUrls.filter((_, index) => !checkAlgoRelay(relayInfos[index])) setAreAlgoRelays(newRelayUrls.length > 0 && nonAlgoRelayUrls.length === 0) client.setCurrentRelayUrls(nonAlgoRelayUrls) diff --git a/src/services/client.service.ts b/src/services/client.service.ts index eb35ca1..da1787a 100644 --- a/src/services/client.service.ts +++ b/src/services/client.service.ts @@ -1,3 +1,4 @@ +import { BIG_RELAY_URLS } from '@/constants' import { formatPubkey } from '@/lib/pubkey' import { tagNameEquals } from '@/lib/tag' import { isWebsocketUrl, normalizeUrl } from '@/lib/url' @@ -15,13 +16,6 @@ import { VerifiedEvent } from 'nostr-tools' -const BIG_RELAY_URLS = [ - 'wss://relay.damus.io/', - 'wss://nos.lol/', - 'wss://relay.nostr.band/', - 'wss://relay.noswhere.com/' -] - type TTimelineRef = [string, number] class ClientService extends EventTarget {