fix: Allow querying by email address in share popover

This commit is contained in:
Tom Moor
2024-02-04 18:27:06 -05:00
parent 8ee266f7b1
commit 930210e46d
2 changed files with 27 additions and 10 deletions

View File

@@ -426,15 +426,22 @@ function SuggestionsMenu<T extends MenuItem>(props: Props<T>) {
} }
return ( return (
(item.title || "").toLowerCase().includes(searchInput) || (item.title || "").toLocaleLowerCase().includes(searchInput) ||
(item.keywords || "").toLowerCase().includes(searchInput) (item.keywords || "").toLocaleLowerCase().includes(searchInput)
); );
}); });
return filterExcessSeparators( return filterExcessSeparators(
filtered.sort((item) => filtered
searchInput && item.title ? commandScore(item.title, searchInput) : 0 .map((item) => ({
) item,
score:
searchInput && item.title
? commandScore(item.title, searchInput)
: 0,
}))
.sort((a, b) => b.score - a.score)
.map(({ item }) => item)
); );
}, [commands, props]); }, [commands, props]);

View File

@@ -1,3 +1,4 @@
import commandScore from "command-score";
import invariant from "invariant"; import invariant from "invariant";
import deburr from "lodash/deburr"; import deburr from "lodash/deburr";
import differenceWith from "lodash/differenceWith"; import differenceWith from "lodash/differenceWith";
@@ -331,11 +332,20 @@ export default class UsersStore extends Store<User> {
} }
function queriedUsers(users: User[], query?: string) { function queriedUsers(users: User[], query?: string) {
return query const normalizedQuery = deburr((query || "").toLocaleLowerCase());
? filter(users, (user) =>
deburr(user.name.toLocaleLowerCase()).includes( return normalizedQuery
deburr(query.toLocaleLowerCase()) ? filter(
) users,
(user) =>
deburr(user.name.toLocaleLowerCase()).includes(normalizedQuery) ||
user.email?.includes(normalizedQuery)
) )
.map((user) => ({
user,
score: commandScore(user.name, normalizedQuery),
}))
.sort((a, b) => b.score - a.score)
.map(({ user }) => user)
: users; : users;
} }