diff --git a/src/components/SearchBar/SearchBar.jsx b/src/components/SearchBar/SearchBar.jsx
deleted file mode 100644
index a1dded2..0000000
--- a/src/components/SearchBar/SearchBar.jsx
+++ /dev/null
@@ -1,100 +0,0 @@
-import styles from "./SearchBar.module.css"
-import {Link} from "react-router";
-import {useEffect, useState} from "react";
-import searchEvents from "../../utils/events/searchEvents.js";
-import searchUsers from "../../utils/users/searchUsers.js";
-import { useLocation } from "react-router";
-
-
-function SearchBar() {
- const [searchQuery, setSearchQuery] = useState('');
- const [searchResults, setSearchResults] = useState([]);
- const location = useLocation();
-
- useEffect(() => {
- const performSearch = async (query) => {
- if (query.trim() === '') {
- setSearchResults([]);
- return;
- }
-
- let data;
-
- if (location.pathname.includes("events")) {
- data = await searchEvents(query);
- } else if (location.pathname.includes("volunteers")) {
- data = await searchUsers(query);
- }
-
-
- if (data) {
- setSearchResults(data);
- } else {
- setSearchResults([]);
- }
- };
-
-
- const handler = setTimeout(() => {
- performSearch(searchQuery);
- }, 300);
-
- return () => {
- clearTimeout(handler);
- };
- }, [searchQuery]);
-
- return (
-
-
-
-
- {searchResults.length > 0 ? (
-
- ) : null}
-
-
-
- {searchResults.map((result, i) => (
- (location.pathname.includes("events")) ? (
-
-
-
- {result.image == null ? (
-

- ) : (
-

- )}
-
-
{result.name}
-
-
- ) : location.pathname.includes("volunteers") ? (
-
-
-
- {result.image == null ? (
-

- ) : (
-

- )}
-
-
{result.name} {result.lastname}
-
-
- ) : null
- ))}
-
-
- );
-}
-
-export default SearchBar;
\ No newline at end of file
diff --git a/src/components/SearchBar/SearchBar.module.css b/src/components/SearchBar/SearchBar.module.css
index d35c808..c6a093d 100644
--- a/src/components/SearchBar/SearchBar.module.css
+++ b/src/components/SearchBar/SearchBar.module.css
@@ -1,6 +1,8 @@
.searchBarContainer{
position: fixed;
- top: 4rem;
+ top: 20vh;
+ left: 50%;
+ transform: translateX(-50%);
z-index: 100;
width: 60%;
background: #fff;
diff --git a/src/components/SearchBar/SearchBar.tsx b/src/components/SearchBar/SearchBar.tsx
new file mode 100644
index 0000000..d1ef4c6
--- /dev/null
+++ b/src/components/SearchBar/SearchBar.tsx
@@ -0,0 +1,120 @@
+import styles from "./SearchBar.module.css";
+import { Link } from "react-router";
+import { useEffect, useState } from "react";
+import searchEvents from "../../utils/events/searchEvents.js";
+import searchUsers from "../../utils/users/searchUsers.js";
+import { useLocation } from "react-router";
+
+function SearchBar(): any {
+ const [searchQuery, setSearchQuery] = useState("");
+ const [searchResults, setSearchResults] = useState([]);
+ const location: any = useLocation();
+
+ useEffect(() => {
+ const performSearch = async (query: string): Promise => {
+ if (query.trim() === "") {
+ setSearchResults([]);
+ return;
+ }
+
+ let data: any;
+
+ if (location.pathname.includes("events")) {
+ data = await searchEvents(query);
+ } else if (location.pathname.includes("volunteers")) {
+ data = await searchUsers(query);
+ }
+
+ if (data) {
+ setSearchResults(data);
+ } else {
+ setSearchResults([]);
+ }
+ };
+
+ const handler: ReturnType = setTimeout(() => {
+ performSearch(searchQuery);
+ }, 300);
+
+ return () => {
+ clearTimeout(handler);
+ };
+ }, [searchQuery, location.pathname]);
+
+ return (
+
+
+
+
+ {searchResults.length > 0 ? (
+
+ ) : null}
+
+
+
+ {searchResults.map((result: any, i: number) =>
+ location.pathname.includes("events") ? (
+
+
+
+ {result.image == null ? (
+

+ ) : (
+

+ )}
+
+
{result.name}
+
+
+ ) : location.pathname.includes("volunteers") ? (
+
+
+
+ {result.image == null ? (
+

+ ) : (
+

+ )}
+
+
+ {result.name} {result.lastname}
+
+
+
+ ) : null
+ )}
+
+
+ );
+}
+
+export default SearchBar;
diff --git a/src/components/ToolBar/components/searchBtn/SearchBtn.tsx b/src/components/ToolBar/components/searchBtn/SearchBtn.tsx
new file mode 100644
index 0000000..c93e24a
--- /dev/null
+++ b/src/components/ToolBar/components/searchBtn/SearchBtn.tsx
@@ -0,0 +1,38 @@
+import styles from "../../ToolBar.module.css"
+import Button from "../../../ui/button/button";
+import { useEffect, useState } from "react";
+import SearchBar from "../../../SearchBar/SearchBar";
+
+export default function SearchBtn() {
+
+ const [isSearchVisible, setIsSearchVisible] = useState(false);
+
+ useEffect(() => {
+ if (isSearchVisible) {
+ document.documentElement.style.overflow = 'hidden';
+ } else {
+ document.documentElement.style.overflow = '';
+ }
+
+ return () => {
+ document.documentElement.style.overflow = '';
+ };
+ }, [isSearchVisible]);
+
+ return <>
+
+ {isSearchVisible ? (
+
+
setIsSearchVisible(false)}>
+
+
+ ) : null}
+
+
+
+
+
+ >
+}
\ No newline at end of file