File tree Expand file tree Collapse file tree 1 file changed +56
-0
lines changed Expand file tree Collapse file tree 1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change 1+ import  React ,  {  useEffect ,  useState  }  from  'react' ; 
2+ 
3+ const  TaskSearch  =  ( )  =>  { 
4+   const  [ tasks ,  setTasks ]  =  useState ( [ ] ) ; 
5+   const  [ loading ,  setLoading ]  =  useState ( true ) ; 
6+   const  [ error ,  setError ]  =  useState ( null ) ; 
7+   const  [ searchQuery ,  setSearchQuery ]  =  useState ( '' ) ; 
8+ 
9+   useEffect ( ( )  =>  { 
10+     setLoading ( true ) ; 
11+     fetch ( `/search?query=${ encodeURIComponent ( searchQuery ) }  ` ) 
12+       . then ( response  =>  { 
13+         if  ( ! response . ok )  { 
14+           throw  new  Error ( 'Network response was not ok' ) ; 
15+         } 
16+         return  response . json ( ) ; 
17+       } ) 
18+       . then ( data  =>  { 
19+         setTasks ( data ) ; 
20+         setLoading ( false ) ; 
21+       } ) 
22+       . catch ( error  =>  { 
23+         setError ( error . message ) ; 
24+         setLoading ( false ) ; 
25+       } ) ; 
26+   } ,  [ searchQuery ] ) ;  // Depend on searchQuery 
27+ 
28+   if  ( loading )  { 
29+     return  < div > Loading...</ div > ; 
30+   } 
31+ 
32+   if  ( error )  { 
33+     return  < div > Error: { error } </ div > ; 
34+   } 
35+ 
36+   return  ( 
37+     < div > 
38+       < h2 > Task Search</ h2 > 
39+       < input 
40+         type = "text" 
41+         placeholder = "Search tasks..." 
42+         value = { searchQuery } 
43+         onChange = { ( e )  =>  setSearchQuery ( e . target . value ) } 
44+       /> 
45+       < ul > 
46+         { tasks . map ( task  =>  ( 
47+           < li  key = { task . id } > 
48+             < p > { task . description } </ p > 
49+           </ li > 
50+         ) ) } 
51+       </ ul > 
52+     </ div > 
53+   ) ; 
54+ } ; 
55+ 
56+ export  default  TaskSearch ; 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments