Browse Source

fix: 🐛

imwald
codytseng 1 year ago
parent
commit
a6ec01d1e8
  1. 19
      src/components/RelaySetsSetting/PullFromRelaysButton.tsx
  2. 2
      src/providers/RelaySetsProvider.tsx

19
src/components/RelaySetsSetting/PullFromRelaysButton.tsx

@ -94,26 +94,29 @@ function RemoteRelaySets({ close }: { close?: () => void }) { @@ -94,26 +94,29 @@ function RemoteRelaySets({ close }: { close?: () => void }) {
limit: 50
}
)
setRelaySets(
events
.map((evt) => {
events.sort((a, b) => b.created_at - a.created_at)
const relaySetIds = new Set<string>()
const relaySets: TRelaySet[] = []
events.forEach((evt) => {
const id = evt.tags.find(tagNameEquals('d'))?.[1]
if (!id) return null
if (!id || relaySetIds.has(id)) return
relaySetIds.add(id)
const relayUrls = evt.tags
.filter(tagNameEquals('relay'))
.map((tag) => tag[1])
.filter((url) => url && isWebsocketUrl(url))
if (!relayUrls.length) return null
if (!relayUrls.length) return
let title = evt.tags.find(tagNameEquals('title'))?.[1]
if (!title) {
title = relayUrls.length === 1 ? simplifyUrl(relayUrls[0]) : id
}
return { id, name: title, relayUrls }
relaySets.push({ id, name: title, relayUrls })
})
.filter(Boolean) as TRelaySet[]
)
setRelaySets(relaySets)
setInitialed(true)
}
init()

2
src/providers/RelaySetsProvider.tsx

@ -67,7 +67,7 @@ export function RelaySetsProvider({ children }: { children: React.ReactNode }) { @@ -67,7 +67,7 @@ export function RelaySetsProvider({ children }: { children: React.ReactNode }) {
return (
<RelaySetsContext.Provider
value={{
relaySets: relaySets,
relaySets,
addRelaySet,
deleteRelaySet,
updateRelaySet,

Loading…
Cancel
Save