1
+ import React , { useState } from 'react' ;
1
2
import logo from '../assets/images/logo.png' ;
2
- import { Link } from 'react-router-dom' ; // Import Link from react-router-dom
3
+ import { Link , useNavigate } from 'react-router-dom' ; // Import Link and useNavigate from react-router-dom
3
4
4
5
function Navbar ( { loggedin } ) {
6
+ const [ searchTerm , setSearchTerm ] = useState ( '' ) ; // State for search term
7
+ const navigate = useNavigate ( ) ; // useNavigate for navigation
8
+
9
+ // Handle search input change
10
+ const handleSearchChange = ( event ) => {
11
+ setSearchTerm ( event . target . value ) ;
12
+ } ;
13
+
14
+ // Handle search submission
15
+ const handleSearchSubmit = ( event ) => {
16
+ event . preventDefault ( ) ; // Prevent page refresh
17
+ if ( searchTerm ) {
18
+ // Redirect to the search results page with the search term
19
+ navigate ( `/search?query=${ encodeURIComponent ( searchTerm ) } ` ) ;
20
+ setSearchTerm ( '' ) ; // Clear the input after submission
21
+ }
22
+ } ;
23
+
5
24
return (
6
25
< nav className = "navbar navbar-expand-lg" >
7
26
< div className = "container-fluid" >
@@ -16,12 +35,11 @@ function Navbar({ loggedin }) {
16
35
< li className = "nav-item" >
17
36
< Link className = "nav-link active" aria-current = "page" to = "/home" > Home</ Link >
18
37
</ li >
19
- ) : (
20
- < li className = "nav-item" >
38
+ ) : (
39
+ < li className = "nav-item" >
21
40
< Link className = "nav-link active" aria-current = "page" to = "/" > Home</ Link >
22
41
</ li >
23
42
) }
24
-
25
43
< li className = "nav-item" >
26
44
< Link className = "nav-link" aria-current = "page" to = "/events" > Events</ Link >
27
45
</ li >
@@ -36,8 +54,14 @@ function Navbar({ loggedin }) {
36
54
</ li >
37
55
</ ul >
38
56
< div className = "d-flex align-items-center flex-column flex-lg-row" >
39
- < form className = "me-2 mb-2 mb-lg-0" >
40
- < input type = "text" className = "form-control form-control-sm" placeholder = "Search" />
57
+ < form className = "me-2 mb-2 mb-lg-0" onSubmit = { handleSearchSubmit } >
58
+ < input
59
+ type = "text"
60
+ className = "form-control form-control-sm"
61
+ placeholder = "Search"
62
+ value = { searchTerm }
63
+ onChange = { handleSearchChange }
64
+ />
41
65
</ form >
42
66
{ loggedin === 'true' ? (
43
67
< Link className = "btn btn-primary clk" to = "/profile" > Profile </ Link >
0 commit comments