@@ -2,16 +2,17 @@ import React from 'react';
2
2
import { useLocation } from 'react-router-dom' ;
3
3
import courses from './courseData' ; // Ensure the path is correct
4
4
import { Link } from 'react-router-dom' ;
5
+
5
6
const useQuery = ( ) => {
6
7
return new URLSearchParams ( useLocation ( ) . search ) ;
7
8
} ;
8
9
9
10
function SearchResults ( ) {
10
11
const query = useQuery ( ) ;
11
12
const searchTerm = query . get ( 'query' ) ?. toLowerCase ( ) || '' ;
12
-
13
+
13
14
// Filter courses based on the search term
14
- const filteredCourses = Object . values ( courses ) . filter ( course =>
15
+ const filteredCourses = Object . entries ( courses ) . filter ( ( [ key , course ] ) =>
15
16
course . title . toLowerCase ( ) . includes ( searchTerm ) ||
16
17
course . description . toLowerCase ( ) . includes ( searchTerm )
17
18
) ;
@@ -20,10 +21,11 @@ function SearchResults() {
20
21
< div className = "container mt-5" >
21
22
< h2 > Search Results for "{ searchTerm } "</ h2 >
22
23
< div className = "row row-cols-1 row-cols-md-3 g-3" >
23
- { Object . entries ( courses ) . map ( ( [ key , course ] , index ) => (
24
+ { filteredCourses . length > 0 ? (
25
+ filteredCourses . map ( ( [ key , course ] , index ) => (
24
26
< div className = "col" key = { index } >
25
27
< div className = "card h-100" >
26
- < Link to = { `/courses/${ key } ` } className = ' lnk' >
28
+ < Link to = { `/courses/${ key } ` } className = " lnk" >
27
29
< img src = { course . image } className = "card-img-top" alt = { course . title } />
28
30
< div className = "card-body" >
29
31
< h5 className = "card-title" > { course . title } </ h5 >
@@ -32,9 +34,12 @@ function SearchResults() {
32
34
</ Link >
33
35
</ div >
34
36
</ div >
35
- ) ) }
36
- </ div >
37
+ ) )
38
+ ) : (
39
+ < p > No courses match your search term.</ p >
40
+ ) }
37
41
</ div >
42
+ </ div >
38
43
) ;
39
44
}
40
45
0 commit comments