# 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