diff --git a/packages/app/src/Pages/Root/FollowSets.tsx b/packages/app/src/Pages/Root/FollowSets.tsx index d2e51af7..45801eda 100644 --- a/packages/app/src/Pages/Root/FollowSets.tsx +++ b/packages/app/src/Pages/Root/FollowSets.tsx @@ -1,10 +1,12 @@ import { dedupe } from "@snort/shared"; import { EventKind, NostrLink, RequestBuilder } from "@snort/system"; import { useRequestBuilder } from "@snort/system-react"; -import { FormattedMessage } from "react-intl"; +import { useState } from "react"; +import { FormattedMessage, useIntl } from "react-intl"; import { Link } from "react-router-dom"; import AsyncButton from "@/Components/Button/AsyncButton"; +import { AutoLoadMore } from "@/Components/Event/LoadMore"; import { AvatarGroup } from "@/Components/User/AvatarGroup"; import DisplayName from "@/Components/User/DisplayName"; import { ProfileLink } from "@/Components/User/ProfileLink"; @@ -15,15 +17,32 @@ import { findTag } from "@/Utils"; export default function FollowSetsPage() { const sub = new RequestBuilder("follow-sets"); sub.withFilter().kinds([EventKind.StarterPackSet, EventKind.FollowSet]); + const { formatMessage } = useIntl(); const data = useRequestBuilder(sub); const wot = useWoT(); const control = useFollowsControls(); const dataSorted = wot.sortEvents(data); + const [showN, setShowN] = useState(10); + const [search, setSearch] = useState(""); + const filtered = dataSorted.filter(s => { + if (search) { + const ss = search.toLowerCase(); + return s.content.toLowerCase().includes(ss) || s.tags.some(t => t[1].toLowerCase().includes(ss)); + } else { + return true; + } + }); return (