import { VIDEO_KIND } from "@/const"; import { Icon } from "@/element/icon"; import VideoGridSorted from "@/element/video-grid-sorted"; import { EventKind, RequestBuilder } from "@snort/system"; import { useRequestBuilder } from "@snort/system-react"; import { useMemo, useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { useNavigate, useParams } from "react-router-dom"; export const SearchRelays = [ "wss://relay.nostr.band", "wss://search.nos.today", "wss://relay.noswhere.com", "wss://saltivka.org", ]; export default function SearchPage() { const { term } = useParams(); const { formatMessage } = useIntl(); const navigate = useNavigate(); const [search, setSearch] = useState(term ?? ""); const sub = useMemo(() => { if (!term) return; const rb = new RequestBuilder(`search:${term}`); rb.withOptions({ skipDiff: true }) rb.withFilter() .relay(SearchRelays) .kinds([EventKind.LiveEvent, VIDEO_KIND]) .search(term) .limit(50); return rb; }, [term]); const results = useRequestBuilder(sub); return (