Add a search bar over name and description
This commit is contained in:
		
							parent
							
								
									bb3e2630f3
								
							
						
					
					
						commit
						9207c34bf2
					
				|  | @ -1,3 +1,6 @@ | |||
| import { searchInAny } from 'common/util/parse' | ||||
| import { debounce } from 'lodash' | ||||
| import { useMemo, useState } from 'react' | ||||
| import { Col } from 'web/components/layout/col' | ||||
| import { Page } from 'web/components/page' | ||||
| import { Title } from 'web/components/title' | ||||
|  | @ -66,14 +69,32 @@ function grantsToGrantees(grantsList: Grant[]) { | |||
| } | ||||
| 
 | ||||
| export default function Grants() { | ||||
|   const [query, setQuery] = useState('') | ||||
|   const debouncedQuery = debounce(setQuery, 50) | ||||
| 
 | ||||
|   const filteredGrantees = useMemo( | ||||
|     () => | ||||
|       grantees.filter((grantee) => | ||||
|         searchInAny(query, grantee.name, grantee.description) | ||||
|       ), | ||||
|     [query] | ||||
|   ) | ||||
| 
 | ||||
|   return ( | ||||
|     <Page> | ||||
|       <Col className="w-full rounded px-4 py-6 sm:px-8 xl:w-[125%]"> | ||||
|         <Col className=""> | ||||
|           <Title className="!mt-0" text="Manifold for Charity" /> | ||||
|           <Title className="!mt-0" text="EA Grants Database" /> | ||||
| 
 | ||||
|           <input | ||||
|             type="text" | ||||
|             onChange={(e) => debouncedQuery(e.target.value)} | ||||
|             placeholder="Find a charity" | ||||
|             className="input input-bordered mb-6 w-full" | ||||
|           /> | ||||
| 
 | ||||
|           <div className="grid max-w-xl grid-flow-row grid-cols-1 gap-4 lg:max-w-full lg:grid-cols-2 xl:grid-cols-3"> | ||||
|             {grantees.map((grantee) => ( | ||||
|             {filteredGrantees.map((grantee) => ( | ||||
|               <GranteeCard grantee={grantee} key={grantee.name} /> | ||||
|             ))} | ||||
|           </div> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user