Browse Source

fix: 🐛

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

39
src/components/RelaySetsSetting/PullFromRelaysButton.tsx

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

2
src/providers/RelaySetsProvider.tsx

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

Loading…
Cancel
Save