WIP Relay editing UI
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Settings
|
||||
class NostrEditRelaysComponent < ViewComponent::Base
|
||||
def initialize(nip65_event: nil)
|
||||
@nip65_event = nip65_event
|
||||
@relays = build_relays
|
||||
ensure_site_relay
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def build_relays
|
||||
if @nip65_event.present?
|
||||
@nip65_event["tags"]
|
||||
.select { |t| t[0] == "r" }
|
||||
.map { |t| { url: t[1], marker: t[2] } }
|
||||
else
|
||||
Setting.nostr_discovery_relays.map { |url| { url: url, marker: nil } }
|
||||
end
|
||||
end
|
||||
|
||||
def ensure_site_relay
|
||||
site_relay_url = Setting.nostr_relay_url
|
||||
return if site_relay_url.blank?
|
||||
|
||||
@relays.reject! { |r| r[:url] == site_relay_url }
|
||||
@relays.unshift({ url: site_relay_url, marker: nil })
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user