From fe7e60e236437e8c60eff854e16764e6bfff3f90 Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 28 May 2022 13:11:56 -0500 Subject: [PATCH] good enough search working...cheaper than algolia and time saver...move on --- .../desktop/src/components/Conversations.tsx | 8 +++++--- packages/desktop/src/firebase/firestore.ts | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/desktop/src/components/Conversations.tsx b/packages/desktop/src/components/Conversations.tsx index cb42725..dcf87b7 100644 --- a/packages/desktop/src/components/Conversations.tsx +++ b/packages/desktop/src/components/Conversations.tsx @@ -42,7 +42,10 @@ const Conversations = () => { if (searchVal) { enqueueSnackbar('searching...', { variant: 'info' }); - setSearchUsersResults(await searchUsers(searchVal)); + const results = await searchUsers(searchVal); + setSearchUsersResults(results); + + console.warn(results); } }, 500, @@ -180,8 +183,7 @@ function ListPeople({ people }: { people: User[] }) { }} subheader={ - - Priority + Search Results } > diff --git a/packages/desktop/src/firebase/firestore.ts b/packages/desktop/src/firebase/firestore.ts index 4ad0746..b8e3250 100644 --- a/packages/desktop/src/firebase/firestore.ts +++ b/packages/desktop/src/firebase/firestore.ts @@ -12,6 +12,10 @@ import { query, where, getDocs, + orderBy, + limit, + startAt, + endAt, } from 'firebase/firestore'; import { User as FirebaseUser } from 'firebase/auth'; @@ -79,14 +83,18 @@ export const searchUsers = async (searchQuery: string): Promise=', searchQuery.toUpperCase()), - where('email', '<=', searchQuery.toUpperCase() + '\uf8ff'), + orderBy('email'), + startAt(searchQuery), + endAt(searchQuery + '\uf8ff'), + limit(5), ); const nameSearchQuery = query( db.users, - where('displayName', '>=', searchQuery.toUpperCase()), - where('displayName', '<=', searchQuery.toUpperCase() + '\uf8ff'), + orderBy('displayName'), + startAt(searchQuery), + endAt(searchQuery + '\uf8ff'), + limit(5), ); const emailquerySnap = await getDocs(emaildocSearchQuery);