diff --git a/package.json b/package.json
index 5d0f40c..8c9a64b 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
},
"dependencies": {
"react": "^18.2.0",
+ "react-device-detect": "^2.2.3",
"react-dom": "^18.2.0",
"react-image-marker": "^1.2.0",
"react-router-dom": "^6.22.3",
diff --git a/src/components/header/Auth.tsx b/src/components/header/Auth.tsx
index bd2fb15..906c5ea 100644
--- a/src/components/header/Auth.tsx
+++ b/src/components/header/Auth.tsx
@@ -1,25 +1,59 @@
+import { isMobile } from "react-device-detect";
+
import Button from "../Button";
+interface AuthProps {
+ isAuth: boolean;
+ userName: string;
+}
+
const Auth = () => {
const isAuth = false;
- const username = "Name";
+ const userName = "Name";
return (
<>
-
- {isAuth ? (
- <>
-
{username}
-
- {/*
![avatar]()
*/}
-
- >
- ) : (
-
- )}
-
+ {isMobile ? (
+
+ ) : (
+
+ )}
>
);
};
+const AuthMobile = ({ isAuth, userName }: AuthProps) => {
+ return (
+
+ {isAuth ? (
+ <>
+
{userName}
+
+ {/*
![avatar]()
*/}
+
+ >
+ ) : (
+
+ )}
+
+ );
+};
+
+const AuthDesktop = ({ isAuth, userName }: AuthProps) => {
+ return (
+
+ {isAuth ? (
+ <>
+
{userName}
+
+ {/*
![avatar]()
*/}
+
+ >
+ ) : (
+
+ )}
+
+ );
+};
+
export default Auth;
diff --git a/src/components/header/Header.tsx b/src/components/header/Header.tsx
deleted file mode 100644
index b84f88a..0000000
--- a/src/components/header/Header.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Outlet } from "react-router-dom";
-import Logo from "./Logo";
-import Location from "./Location";
-import Auth from "./Auth";
-import Navbar from "./Navbar";
-import useModal from "../../store/useModal";
-
-const Header = () => {
- const { modal } = useModal();
- return (
- <>
- {modal}
-
-
- >
- );
-};
-
-export default Header;
diff --git a/src/components/header/Header/DesktopHeader.tsx b/src/components/header/Header/DesktopHeader.tsx
new file mode 100644
index 0000000..a3acb3c
--- /dev/null
+++ b/src/components/header/Header/DesktopHeader.tsx
@@ -0,0 +1,17 @@
+import Auth from "../Auth";
+import Logo from "../Logo";
+import Navbar from "../Navbar";
+import Location from "../Location";
+
+const DesktopHeader = () => (
+
+);
+
+export default DesktopHeader;
diff --git a/src/components/header/Header/Header.tsx b/src/components/header/Header/Header.tsx
new file mode 100644
index 0000000..e9cd566
--- /dev/null
+++ b/src/components/header/Header/Header.tsx
@@ -0,0 +1,18 @@
+import { Outlet } from "react-router-dom";
+import { isMobile } from "react-device-detect";
+import useModal from "../../../store/useModal";
+import DesktopHeader from "./DesktopHeader";
+import MobileHeader from "./MobileHeader";
+
+const Header = () => {
+ const { modal } = useModal();
+ return (
+ <>
+ {modal}
+ {isMobile ? : }
+
+ >
+ );
+};
+
+export default Header;
diff --git a/src/components/header/Header/MobileHeader.tsx b/src/components/header/Header/MobileHeader.tsx
new file mode 100644
index 0000000..505e7a1
--- /dev/null
+++ b/src/components/header/Header/MobileHeader.tsx
@@ -0,0 +1,43 @@
+import { useState } from "react";
+import LogoIcon from "../../icons/LogoIcon";
+import Auth from "../Auth";
+import Navbar from "../Navbar";
+import Location from "../Location";
+
+const MobileHeader = () => {
+ const [isToggled, setIsToggled] = useState(false);
+
+ const handleOnToggleClick = () => {
+ setIsToggled((prev) => !prev);
+ };
+ return (
+
+ );
+};
+
+export default MobileHeader;
diff --git a/src/components/header/Location.tsx b/src/components/header/Location.tsx
index 66f3010..977d223 100644
--- a/src/components/header/Location.tsx
+++ b/src/components/header/Location.tsx
@@ -2,7 +2,7 @@ import LocationIcon from "../icons/LocationIcon";
const Location = () => {
return (
-
+
diff --git a/src/components/header/Navbar.tsx b/src/components/header/Navbar.tsx
index d86ea48..a6a36eb 100644
--- a/src/components/header/Navbar.tsx
+++ b/src/components/header/Navbar.tsx
@@ -1,4 +1,5 @@
import { useState } from "react";
+import { isMobile } from "react-device-detect";
import { Tab } from "../../types/tab";
import NavbarTab from "./NavbarTab";
@@ -32,20 +33,47 @@ const Navbar = () => {
};
return (
-
+ <>
+ {isMobile ? (
+
+ ) : (
+
+ )}
+ >
);
};
+interface NavbarProps {
+ selectedTab: Tab | null;
+ onTabClick: (tab: Tab) => void;
+}
+
+const NavbarDesktop = ({ selectedTab, onTabClick }: NavbarProps) => (
+
+);
+
+const NavbarMobile = ({ selectedTab, onTabClick }: NavbarProps) => (
+
+);
+
export default Navbar;
diff --git a/src/components/header/NavbarTab.tsx b/src/components/header/NavbarTab.tsx
index c03c769..33a53d1 100644
--- a/src/components/header/NavbarTab.tsx
+++ b/src/components/header/NavbarTab.tsx
@@ -9,7 +9,7 @@ interface NavbarTabProps {
const NavbarTab = ({ tab, onClick, isSelected = false }: NavbarTabProps) => {
return (