fix(front) Сделан header footer адаптивные для мобильной и десктоп версии
This commit is contained in:
@@ -1,12 +1,15 @@
|
|||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import siteLogo from "../assets/Исходники/logo.png";
|
import siteLogo from "../assets/Исходники/logo.png";
|
||||||
|
|
||||||
export default function Footer() {
|
export default function FooterDesktop() {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<footer className="bg-light-blue w-full h-27.5 px-16 flex items-center justify-between ">
|
<footer className="bg-light-blue w-full h-27.5 px-16 flex items-center justify-between ">
|
||||||
<button className="flex flex-col items-center text-lg tracking-widest text-gold" onClick={()=>navigate("/")}>
|
<button
|
||||||
|
className="flex flex-col items-center text-lg tracking-widest text-gold"
|
||||||
|
onClick={() => navigate("/")}
|
||||||
|
>
|
||||||
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
|
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
|
||||||
<span>FISH FISH</span>
|
<span>FISH FISH</span>
|
||||||
</button>
|
</button>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import { useNavigate } from "react-router-dom";
|
||||||
|
import siteLogo from "../assets/Исходники/logo.png";
|
||||||
|
|
||||||
|
export default function FooterMobile() {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<footer className="bg-light-blue w-full h-27.5 px-6 flex items-center justify-between ">
|
||||||
|
<button
|
||||||
|
className="flex flex-col items-center text-sm tracking-widest text-gold"
|
||||||
|
onClick={() => navigate("/")}
|
||||||
|
>
|
||||||
|
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
|
||||||
|
<span>FISH FISH</span>
|
||||||
|
</button>
|
||||||
|
<div className="flex items-center">
|
||||||
|
<button className="text-light-gray hover:text-gold transition-colors duration-200 text-sm">
|
||||||
|
+7 (800) 900-20-20
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,12 +1,15 @@
|
|||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import siteLogo from "../assets/Исходники/logo.png";
|
import siteLogo from "../assets/Исходники/logo.png";
|
||||||
|
|
||||||
export default function Header() {
|
export default function HeaderDesktop() {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className="w-full h-27.5 px-16 flex items-center justify-between ">
|
<header className="w-full h-27.5 px-16 flex items-center justify-between ">
|
||||||
<button className="flex flex-col items-center gap-2 text-lg tracking-widest text-gold" onClick={()=>navigate("/")}>
|
<button
|
||||||
|
className="flex flex-col items-center gap-2 text-lg tracking-widest text-gold"
|
||||||
|
onClick={() => navigate("/")}
|
||||||
|
>
|
||||||
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
|
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
|
||||||
<span>FISH FISH</span>
|
<span>FISH FISH</span>
|
||||||
</button>
|
</button>
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
import { useNavigate } from "react-router-dom";
|
||||||
|
import siteLogo from "../assets/Исходники/logo.png";
|
||||||
|
|
||||||
|
export default function HeaderMobile() {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<header className="w-full h-27.5 px-6 flex items-center justify-between ">
|
||||||
|
<button
|
||||||
|
className="flex flex-col items-center gap-2 text-sm tracking-widest text-gold"
|
||||||
|
onClick={() => navigate("/")}
|
||||||
|
>
|
||||||
|
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
|
||||||
|
<span>FISH FISH</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div className="flex items-center">
|
||||||
|
<button className="text-slate-200 hover:text-gold transition-colors duration-200 pr-7">
|
||||||
|
<svg
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<circle
|
||||||
|
cx="12"
|
||||||
|
cy="7.5"
|
||||||
|
r="4"
|
||||||
|
stroke="currentColor"
|
||||||
|
strokeLinecap="square"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M21 21H3C3 17.6863 5.68629 15 9 15H15C18.3137 15 21 17.6863 21 21Z"
|
||||||
|
stroke="currentColor"
|
||||||
|
strokeLinecap="square"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<button className="text-slate-200 hover:text-gold transition-colors duration-200">
|
||||||
|
<svg
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M16.2654 8H7.73459C6.73929 8 5.89545 8.73186 5.75469 9.71716L4.32612 19.7172C4.154 20.922 5.08892 22 6.30602 22H17.694C18.9111 22 19.846 20.922 19.6739 19.7172L18.2453 9.71716C18.1046 8.73186 17.2607 8 16.2654 8Z"
|
||||||
|
stroke="currentColor"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M9 10V5C9 3.89543 9.89543 3 11 3H13C14.1046 3 15 3.89543 15 5V10"
|
||||||
|
stroke="currentColor"
|
||||||
|
/>
|
||||||
|
<circle cx="9" cy="10" r="1" fill="currentColor" />
|
||||||
|
<circle cx="15" cy="10" r="1" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,12 +1,24 @@
|
|||||||
import Footer from "./Footer";
|
import FooterDesktop from "./FooterDesktop";
|
||||||
import Header from "./Header";
|
import HeaderDesktop from "./HeaderDesktop";
|
||||||
|
import FooterMobile from "./FooterMobile";
|
||||||
|
import HeaderMobile from "./HeaderMobile";
|
||||||
|
|
||||||
export default function PageLayout({ children }) {
|
export default function PageLayout({ children }) {
|
||||||
return (
|
return (
|
||||||
<body className="min-h-screen flex flex-col w-full">
|
<body className="min-h-screen flex flex-col w-full">
|
||||||
<Header />
|
<div className="hidden lg:block">
|
||||||
|
<HeaderDesktop />
|
||||||
|
</div>
|
||||||
|
<div className="block lg:hidden">
|
||||||
|
<HeaderMobile />
|
||||||
|
</div>
|
||||||
{children}
|
{children}
|
||||||
<Footer />
|
<div className="hidden lg:block">
|
||||||
|
<FooterDesktop />
|
||||||
|
</div>
|
||||||
|
<div className="block lg:hidden">
|
||||||
|
<FooterMobile />
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import * as api from "../api"; // Импортируем все функции из api/index.js
|
import * as api from "../api"; // Импортируем все функции из api/index.js
|
||||||
import Header from "../components/Header";
|
import PageLayout from "../components/PageLayout";
|
||||||
|
|
||||||
export default function Dashboard() {
|
export default function Dashboard() {
|
||||||
const [formData, setFormData] = useState({
|
const [formData, setFormData] = useState({
|
||||||
@@ -39,8 +39,7 @@ export default function Dashboard() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<PageLayout>
|
||||||
<Header />
|
|
||||||
<div className="max-w-md mx-auto mt-10 p-6 bg-white rounded-lg shadow-md border">
|
<div className="max-w-md mx-auto mt-10 p-6 bg-white rounded-lg shadow-md border">
|
||||||
<form onSubmit={handleSubmit} className="space-y-4">
|
<form onSubmit={handleSubmit} className="space-y-4">
|
||||||
<div>
|
<div>
|
||||||
@@ -109,6 +108,6 @@ export default function Dashboard() {
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</PageLayout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user