Skip to content

Commit b79a0d4

Browse files
committed
apichange: use same query for both interest and username
1 parent dcb207a commit b79a0d4

File tree

1 file changed

+9
-19
lines changed

1 file changed

+9
-19
lines changed

web/app/search/page.tsx

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ export default function SearchPage({
2626
const initialData = useMemo(() => {
2727
return data?.filter((item) => item.id !== myId && item.id !== 0) ?? null;
2828
}, [data, myId]);
29-
const users = query
30-
? initialData?.filter((user) =>
31-
user.name.toLowerCase().includes(query.toLowerCase()),
32-
)
33-
: initialData;
3429

3530
const {
3631
state: { data: matches },
@@ -46,26 +41,21 @@ export default function SearchPage({
4641
!matches?.some((match) => match.id === userId) &&
4742
!pending?.some((pending) => pending.id === userId);
4843

49-
const [searchQuery__interest, setSearchQuery__interest] = useState<
50-
string | null
51-
>(null);
52-
setSearchQuery__interest; // TODO: use this in some UI
53-
54-
const filteredUsers = users
55-
// this is O(count(users) * count(avg(count(interests))) * count(avg(len(interests.name)))). very bad.
56-
?.filter(
57-
(u) =>
58-
searchQuery__interest === null ||
59-
u.interestSubjects.some((i) => i.name.includes(searchQuery__interest)),
60-
);
44+
// this is very expensive. someone fix this pls
45+
const users = initialData?.filter(
46+
(user) =>
47+
query === "" ||
48+
user.name.includes(query) ||
49+
user.interestSubjects.some((i) => i.name.includes(query)),
50+
);
6151

6252
return (
6353
<div className="flex min-h-screen justify-center ">
6454
<div className="w-full">
6555
<h2 className="m-5 mb-4 font-bold text-2xl">ユーザー検索</h2>
6656
<Search placeholder="検索" setSearchString={setQuery} />
67-
{filteredUsers ? (
68-
<Table users={filteredUsers} canRequest={canRequest} />
57+
{users ? (
58+
<Table users={users} canRequest={canRequest} />
6959
) : (
7060
<FullScreenCircularProgress />
7161
)}

0 commit comments

Comments
 (0)