diff --git a/src/components/Navbar.jsx b/src/components/Navbar.jsx index e12dd49..10169d6 100644 --- a/src/components/Navbar.jsx +++ b/src/components/Navbar.jsx @@ -1,26 +1,47 @@ import React, { useState } from 'react'; import logo from '../assets/images/logo.png'; import { Link, useNavigate } from 'react-router-dom'; +import courses from './courseData'; // Assuming this is your courses object function Navbar({ loggedin }) { - const [searchTerm, setSearchTerm] = useState(''); // State for search term - const navigate = useNavigate(); // useNavigate for navigation + const [searchTerm, setSearchTerm] = useState(''); + const [suggestions, setSuggestions] = useState([]); + const navigate = useNavigate(); // Handle search input change const handleSearchChange = (event) => { - setSearchTerm(event.target.value); + const searchInput = event.target.value; + setSearchTerm(searchInput); + + // Convert courses object to an array for filtering + const coursesArray = Object.values(courses); + + if (searchInput.trim()) { + const filteredSuggestions = coursesArray.filter((course) => + course.title.toLowerCase().includes(searchInput.toLowerCase()) + ); + setSuggestions(filteredSuggestions); + } else { + setSuggestions([]); + } }; // Handle search submission when "Enter" is pressed const handleSearchSubmit = (event) => { - event.preventDefault(); // Prevent form submission default behavior + event.preventDefault(); if (searchTerm.trim()) { - // Navigate to search page with the query navigate(`/search?query=${encodeURIComponent(searchTerm)}`); - // setSearchTerm(''); // Optionally reset the search input after navigating + setSuggestions([]); // Clear suggestions after search } }; + // Handle suggestion click + const handleSuggestionClick = (suggestion) => { + setSearchTerm(suggestion.title); + navigate(`/search?query=${encodeURIComponent(suggestion.title)}`); + setSuggestions([]); + }; + return (