🌐
50 React Coding Puzzles
  • 50 React Coding Puzzles
  • Contact
  • Reviews
  • Table of Contents
  • Introduction
  • 1 - Simple Counter App
  • 2 - Dynamic List of Items with Strikethrough
  • 3 - Color Picker with Hex Code Display
  • 4 - Password Strength Checker
  • 5 - Countdown Timer with Audio
  • 6 - Dynamic Movie List with Filtering and Sorting
  • 7 - Text Animation Component (Fade/Scroll)
  • 8 - Dynamically Generated Text Art
  • 9 - Meme Generator with Custom Text
  • 10 - "What Should I Eat?" Random Recipe Generator
  • 11 - Simple Quiz App with Multiple Choice
  • 12 - Unit Converter
  • 13 - Dynamic Image Gallery with Lightbox
  • 14 - Weather Widget with Temperature and Description
  • 15 - Contact Form with Email and Message Validation
  • 16 - Color Palette Generator
  • 17 - Drag-and-Drop Feature for Rearranging Items
  • 18 - Interactive Quiz with Dynamic Results and Feedback
  • 19 - To-Do List with Task Categorization
  • 20 - Note-Taking App with Markdown Support
  • 21 - Simple Calculator with Basic Operations
  • 22 - Word Scramble Game with Timer and Score
  • 23 - Number Guessing Game
  • 24 - Digital Clock with Time Zone Support
  • 25 - Interactive Time Zone Converter
  • 26 - Weather Forecast App with Location Detection
  • 27 - Real-Time Stock Ticker with Updates
  • 28 - Virtual Dice Roller with Multiple Dice
  • 29 - Responsive Navigation Menu with Dropdowns
  • 30 - Progress Bar for Loading or Task Completion
  • 31 - Modal Window for Alerts and Confirmations
  • 32 - Infinite Scroll for Loading More Content
  • 33 - Form Validation with Error Messages
  • 34 - Search Bar with Filtering and Suggestions
  • 35 - Drag-and-Drop File Upload
  • 36 - Interactive Color Picker with Sliders
  • 37 - Image Carousel with Autoplay
  • 38 - Rating System with Stars or Thumbs Up/Down
  • 39 - Comment Section with Nested Replies
  • 40 - Pagination for Long Lists of Data
  • 41 - Stopwatch app that tracks elapsed time
  • 42 - Responsive E-commerce Product Grid
  • 43 - Random Movie/Book Recommender
  • 44 - Kanban board for managing tasks with drag-and-drop
  • 45 - Chat application with real-time messaging using WebSockets
  • 46 - Calendar that displays events and allows scheduling
  • 47 - Tic-Tac-Toe Game
  • 48 - Hangman Game
  • 49 - Notes App
  • 50 - Expense Tracker
  • Afterword
  • Appendix
Powered by GitBook
On this page
  • Description
  • Algorithm
  • Classes
  • Code
  • Explanation
  • Possible Future Enhancements

34 - Search Bar with Filtering and Suggestions

Description

Create a search bar component that allows users to enter search terms, provides real-time search suggestions based on entered text, filters displayed data based on the search term, and displays relevant suggestions and filtered results clearly.

Algorithm

  1. Create a React component for the search bar

  2. Define the data array to be searched

  3. Use the useState hook to manage the search term and filtered data

  4. Use the useEffect hook to fetch search suggestions from an API or database

  5. Display the search suggestions and filtered results in a dropdown list

  6. Filter the data array based on the search term

  7. Display the filtered results in a list or table

Classes

  • SearchBar: The main search bar component

  • SearchSuggestion: A single search suggestion component

  • FilteredResult: A single filtered result component

Code

SearchBar.js

import React, { useState, useEffect } from 'react';
import SearchSuggestion from './SearchSuggestion';
import FilteredResult from './FilteredResult';

const SearchBar = () => {
  const [searchTerm, setSearchTerm] = useState('');
  const [filteredData, setFilteredData] = useState([]);
  const [searchSuggestions, setSearchSuggestions] = useState([]);

  useEffect(() => {
    const fetchSearchSuggestions = async () => {
      const response = await fetch('<search-url>');
      const data = await response.json();
      setSearchSuggestions(data);
    };
    fetchSearchSuggestions();
  }, [searchTerm]);

  const handleSearchTermChange = (event) => {
    const searchTerm = event.target.value;
    setSearchTerm(searchTerm);
    const filteredData = data.filter((item) => item.includes(searchTerm));
    setFilteredData(filteredData);
  };

  return (
    <div>
      <input type="search" value={searchTerm} onChange={handleSearchTermChange} />
      <ul>
        {searchSuggestions.map((suggestion) => (
          <SearchSuggestion key={suggestion.id} suggestion={suggestion} />
        ))}
      </ul>
      <ul>
        {filteredData.map((result) => (
          <FilteredResult key={result.id} result={result} />
        ))}
      </ul>
    </div>
  );
};

export default SearchBar;

SearchSuggestion.js

import React from 'react';

const SearchSuggestion = ({ suggestion }) => {
  return <li>{suggestion.label}</li>;
};

export default SearchSuggestion;

FilteredResult.js

import React from 'react';

const FilteredResult = ({ result }) => {
  return <li>{result.label}</li>;
};

export default FilteredResult;

Explanation

The code creates a search bar component that allows users to enter search terms, provides real-time search suggestions based on entered text, filters displayed data based on the search term, and displays relevant suggestions and filtered results clearly. The component uses the useState hook to manage the search term and filtered data, and the useEffect hook to fetch search suggestions from an API or database.

Possible Future Enhancements

  • Add support for more advanced search features, such as faceted search and search filters

  • Add support for searching multiple data sources, such as databases and APIs

  • Add support for displaying search results in a map or other visualization

  • Use a library like React Select for more advanced search suggestion features

Previous33 - Form Validation with Error MessagesNext35 - Drag-and-Drop File Upload

Last updated 10 months ago