From bf7da3c01c8084f0186e5a0fcc8d9b844845366c Mon Sep 17 00:00:00 2001 From: oguz Date: Sat, 21 Dec 2024 21:22:16 +0300 Subject: [PATCH] search fixed after refresh page --- src/components/Home.jsx | 7 ++++--- src/components/nav/SideNav.jsx | 32 +++++++++++++++++++++---------- src/components/websites/Index.jsx | 7 +++---- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/components/Home.jsx b/src/components/Home.jsx index f2931e1..d500d85 100644 --- a/src/components/Home.jsx +++ b/src/components/Home.jsx @@ -1,5 +1,5 @@ -import { motion } from 'framer-motion'; -import { useEffect, useState } from 'react'; +import { motion } from "framer-motion"; +import { useEffect, useState } from "react"; export default function Home() { const [showText, setShowText] = useState(false); @@ -59,7 +59,8 @@ export default function Home() {

Explore our vast collection of web development resources, designed to - give you the knowledge and tools you need to succeed in the world of web development! + give you the knowledge and tools you need to succeed in the world of + web development!

diff --git a/src/components/nav/SideNav.jsx b/src/components/nav/SideNav.jsx index 18cc3cb..34d2ed8 100644 --- a/src/components/nav/SideNav.jsx +++ b/src/components/nav/SideNav.jsx @@ -1,13 +1,20 @@ -import React, { useState } from "react"; +import React, { useEffect, useState } from "react"; import NavItem from "./NavItem"; import { AiOutlineSearch } from "react-icons/ai"; import SideNavMobile from "./SideNavMobile"; function SideNav() { const [showSideNav, setShowSideNav] = useState(false); - const [searchResult,setSearchResult] = useState(""); + const [searchResult, setSearchResult] = useState(""); let debounceTimer; + const search = new URLSearchParams(window.location.search).get("search"); + + useEffect(() => { + if (search) { + setSearchResult(search); + } + }, []); const clickHandler = () => { setShowSideNav(!showSideNav); @@ -22,31 +29,36 @@ function SideNav() { const debounce = (func, delay) => { clearTimeout(debounceTimer); debounceTimer = setTimeout(func, delay); - }; + }; return ( <>
-
+
debounce(() => handleInputChange(e), 1500)} - style={{ background: "transparent", outline: "none",width:"100%" }} + onChange={(e) => debounce(() => handleInputChange(e), 1500)} + defaultValue={searchResult} + style={{ + background: "transparent", + outline: "none", + width: "100%", + }} placeholder="search..." >
{/* nav */}
- +
{!showSideNav ? ( -
+
{ @@ -28,7 +28,7 @@ const Index = () => { setData([...tailwind]); } else if (filter === "nextjs") { setData([...nextjs]); - } else { + } else { setData([]); // Set empty array if no matching filter is found } }, [filter]); @@ -46,8 +46,7 @@ const Index = () => { return `${item.title.toLowerCase()}`.includes(searchItem.toLowerCase()); }); setSearchData(value); - }, [searchItem,data] - ) + }, [searchItem, data]); return (