/** @jsx h */ import { Component, h } from "https://esm.sh/preact@10.17.1"; import { recommendedRelays } from "./relay-config.ts"; import { AddIcon } from "./icons/add-icon.tsx"; import { CenterClass, NoOutlineClass } from "./components/tw.ts"; import { DividerBackgroundColor, ErrorColor, HoverButtonBackgroundColor, PrimaryTextColor, } from "./style/colors.ts"; import { emitFunc } from "../event-bus.ts"; import { RelayConfig } from "./relay-config.ts"; import { HidePopOver } from "./components/popover.tsx"; type RelayRecommendListProps = { relayConfig: RelayConfig; emit: emitFunc; }; export class RelayRecommendList extends Component { computeRecommendedRelays() { // remove the relays that are already in the relayConfig return recommendedRelays.filter((r) => { return !this.props.relayConfig.getRelayURLs().has(r); }); } handleAddRelay = async (relayUrl: string) => { const p = this.props.relayConfig.add(relayUrl); this.props.emit({ type: "HidePopOver", }); const relay = await p; if (relay instanceof Error) { console.error(relay); return; } this.forceUpdate(); }; render() { return (
Recommend Relays
    {this.computeRecommendedRelays().map((r) => { return (
  • {r}
  • ); })}
); } }