commit 2b0342b231cdc650121716309ab890559a3df463
parent 1d24c1c28312a5a97746df2e091a0838fa24cb7e
Author: f0x52 <f0x@cthu.lu>
Date: Fri, 16 Dec 2022 12:19:58 +0100
[bugfix] use match-sorter for filtering domain blocks (#1270)
Diffstat:
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/web/source/settings/admin/federation.js b/web/source/settings/admin/federation.js
@@ -31,6 +31,7 @@ const adminActions = require("../redux/reducers/admin").actions;
const submit = require("../lib/submit");
const BackButton = require("../components/back-button");
const Loading = require("../components/loading");
+const { matchSorter } = require("match-sorter");
const base = "/settings/admin/federation";
@@ -79,6 +80,10 @@ function InstanceOverview() {
const blockedInstances = Redux.useSelector(state => state.admin.blockedInstances);
const [_location, setLocation] = useLocation();
+ const filteredInstances = React.useMemo(() => {
+ return matchSorter(Object.values(blockedInstances), filter, {keys: ["domain"]});
+ }, [blockedInstances, filter]);
+
function filterFormSubmit(e) {
e.preventDefault();
setLocation(`${base}/${filter}`);
@@ -96,7 +101,7 @@ function InstanceOverview() {
<Link to={`${base}/${filter}`}><a className="button">Add block</a></Link>
</form>
<div className="list">
- {Object.values(blockedInstances).filter((a) => a.domain.startsWith(filter)).map((entry) => {
+ {filteredInstances.map((entry) => {
return (
<Link key={entry.domain} to={`${base}/${entry.domain}`}>
<a className="entry nounderline">