Compare commits
2 Commits
master
...
features/a
Author | SHA1 | Date |
---|---|---|
|
c87f2cec45 | |
|
f11e7e95c9 |
File diff suppressed because it is too large
Load Diff
|
@ -24,10 +24,10 @@
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"mysql2": "^3.9.1",
|
"mysql2": "^3.9.1",
|
||||||
"nanoid": "^5.0.5",
|
"nanoid": "^5.0.5",
|
||||||
"next": "14.1.0",
|
"next": "^14.2.2",
|
||||||
"next-sitemap": "^4.2.3",
|
"next-sitemap": "^4.2.3",
|
||||||
"react": "^18",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18",
|
"react-dom": "^18.2.0",
|
||||||
"react-hook-form": "^7.50.1",
|
"react-hook-form": "^7.50.1",
|
||||||
"react-image": "^4.1.0",
|
"react-image": "^4.1.0",
|
||||||
"react-imask": "^7.5.0",
|
"react-imask": "^7.5.0",
|
||||||
|
|
|
@ -21,12 +21,13 @@ const Footer = () => {
|
||||||
<div className="socials my-4 flex [&_a]:mr-2">
|
<div className="socials my-4 flex [&_a]:mr-2">
|
||||||
<a href="https://vk.com/relynolli_vk" className={"group"}><VkIcon className={"fill-gray-3 group-hover:fill-primary transition-colors [&_path]:fill-white"}/></a>
|
<a href="https://vk.com/relynolli_vk" className={"group"}><VkIcon className={"fill-gray-3 group-hover:fill-primary transition-colors [&_path]:fill-white"}/></a>
|
||||||
<a href="https://t.me/relynolli" className={"group"}><TgIcon className={"fill-gray-3 group-hover:fill-primary transition-colors [&_path]:fill-white"} /></a>
|
<a href="https://t.me/relynolli" className={"group"}><TgIcon className={"fill-gray-3 group-hover:fill-primary transition-colors [&_path]:fill-white"} /></a>
|
||||||
<a href="https://t.me/relynolli" className={"group"}><YouTubeIcon className={"fill-gray-3 group-hover:fill-primary transition-colors [&_path]:fill-white last:[&_path]:fill-gray-3"} /></a>
|
<a href="https://youtube.com/@Relynolli" className={"group"}><YouTubeIcon className={"fill-gray-3 group-hover:fill-primary transition-colors [&_path]:fill-white last:[&_path]:fill-gray-3"} /></a>
|
||||||
|
{/* <a href="https://youtube.com/@Relynolli" className={"group"}><Img src={'/ozon_icon.png'} className={"w-[40px] h-[40px] grayscale group-hover:grayscale-0 transition-all"} /></a> */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/*<div className={"markets my-2"}>*/}
|
{/* <div className={"markets my-2"}>
|
||||||
{/* <a href="#" className={"group"}><Img src={'/ozon_icon.png'} className={"w-[40px] h-[40px] grayscale group-hover:grayscale-0 transition-all"} /></a>*/}
|
|
||||||
{/*</div>*/}
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
<div className="col-span-12 xl:col-span-3 xl:col-start-5 mt-5">
|
<div className="col-span-12 xl:col-span-3 xl:col-start-5 mt-5">
|
||||||
<h2 className={"text-2xl hover:text-primary transition-colors"}>Бренд</h2>
|
<h2 className={"text-2xl hover:text-primary transition-colors"}>Бренд</h2>
|
||||||
|
@ -51,7 +52,7 @@ const Footer = () => {
|
||||||
<ul className={"text-gray-3 text-sm font-semibold my-2"}>
|
<ul className={"text-gray-3 text-sm font-semibold my-2"}>
|
||||||
<li className={"hover:text-primary transition-colors"}>Оплата</li>
|
<li className={"hover:text-primary transition-colors"}>Оплата</li>
|
||||||
<li className={"hover:text-primary transition-colors"}><Link href={"/contact"}>Контакты</Link></li>
|
<li className={"hover:text-primary transition-colors"}><Link href={"/contact"}>Контакты</Link></li>
|
||||||
<li className={"hover:text-primary transition-colors"}>Поддержка и рекламации</li>
|
<li className={"hover:text-primary transition-colors"}><Link href={"https://forms.yandex.ru/u/65e4c1e9eb6146024f8e3234/"}>Поддержка и рекламации</Link></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<Divider className={"col-span-12 my-8 h-[1px] w-full bg-gray-3"}/>
|
<Divider className={"col-span-12 my-8 h-[1px] w-full bg-gray-3"}/>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import {
|
||||||
Navbar,
|
Navbar,
|
||||||
NavbarBrand,
|
NavbarBrand,
|
||||||
NavbarContent,
|
NavbarContent,
|
||||||
|
Tooltip,
|
||||||
NavbarItem
|
NavbarItem
|
||||||
} from "@nextui-org/react";
|
} from "@nextui-org/react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
@ -107,34 +108,47 @@ const Header = () => {
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div className="w-[35%] xl:w-[30%] xl:flex justify-end [&>*]:mr-4 items-center hidden">
|
<div className="w-[35%] xl:w-[30%] xl:flex justify-end [&>*]:mr-4 items-center hidden">
|
||||||
<div
|
<Tooltip content={"В разработке"} className={"text-black"} size={"lg"}>
|
||||||
className={'border-1 border-[#404040] rounded-[8px] group hover:border-green-2 transition-colors cursor-pointer px-3 h-[50px] flex items-center'}>
|
<div
|
||||||
<SearchIcon className={"stroke-2 stroke-white group-hover:stroke-green-2 transition-colors"}/>
|
className={'border-1 border-[#404040] rounded-[8px] group hover:border-green-2 transition-colors cursor-pointer px-3 h-[50px] flex items-center'}>
|
||||||
</div>
|
<SearchIcon className={"stroke-2 stroke-white group-hover:stroke-green-2 transition-colors"}/>
|
||||||
|
<span
|
||||||
|
className={"block bg-primary text-black absolute top-[-10%] left-0 w-full font-bold lg:hidden px-4 py-2"}>
|
||||||
|
В разработке
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</Tooltip>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
className={"border-1 border-[#404040] rounded-[8px] group hover:border-green-2 transition-colors cursor-pointer px-3 h-[50px] flex items-center"}>
|
className={"border-1 border-[#404040] rounded-[8px] group hover:border-green-2 transition-colors cursor-pointer px-3 h-[50px] flex items-center"}>
|
||||||
<Link href={"#"}
|
<Link href={"tel:+74951919720"}
|
||||||
className={"text-xs 2xl:text-header-link text-white group-hover:text-green-2 group-hover:opacity-100 transition-colors"}>+7(495)191-97-20</Link>
|
className={"text-xs 2xl:text-header-link text-white group-hover:text-green-2 group-hover:opacity-100 transition-colors"}>+7(495)191-97-20</Link>
|
||||||
</div>
|
</div>
|
||||||
|
<Tooltip content={"В разработке"} className={"text-black"} size={"lg"}>
|
||||||
|
<div className={"flex flex-row items-center group"}>
|
||||||
|
<Dropdown>
|
||||||
|
{/* <DropdownTrigger> */}
|
||||||
|
<button
|
||||||
|
className={"flex flex-row items-center border-[#404040] border-1 hover:border-green-2 rounded-[8px] transition-colors h-[50px] px-3"}>
|
||||||
|
<RegistrationIcon
|
||||||
|
className={"mr-2 fill-white group-hover:fill-green-2 transition-colors"}/>
|
||||||
|
<span
|
||||||
|
className={"text-white group-hover:text-green-2 transition-colors"}>Вход</span>
|
||||||
|
<span
|
||||||
|
className={"block bg-primary text-black absolute top-[-10%] left-0 w-full font-bold lg:hidden px-4 py-2"}>
|
||||||
|
В разработке
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
{/* </DropdownTrigger> */}
|
||||||
|
{/* <DropdownMenu className={"text-black"}>
|
||||||
|
<DropdownItem key={"business-login"}>Войти как Юр. Лицо</DropdownItem>
|
||||||
|
<DropdownItem key={"personal-login"}>Войти как Физ. Лицо</DropdownItem>
|
||||||
|
</DropdownMenu> */}
|
||||||
|
|
||||||
<div className={"flex flex-row items-center group"}>
|
</Dropdown>
|
||||||
<Dropdown>
|
</div>
|
||||||
<DropdownTrigger>
|
</Tooltip>
|
||||||
<button
|
|
||||||
className={"flex flex-row items-center border-[#404040] border-1 hover:border-green-2 rounded-[8px] transition-colors h-[50px] px-3"}>
|
|
||||||
<RegistrationIcon
|
|
||||||
className={"mr-2 fill-white group-hover:fill-green-2 transition-colors"}/>
|
|
||||||
<span
|
|
||||||
className={"text-white group-hover:text-green-2 transition-colors"}>Вход</span>
|
|
||||||
</button>
|
|
||||||
</DropdownTrigger>
|
|
||||||
<DropdownMenu className={"text-black"}>
|
|
||||||
<DropdownItem key={"business-login"}>Войти как Юр. Лицо</DropdownItem>
|
|
||||||
<DropdownItem key={"personal-login"}>Войти как Физ. Лицо</DropdownItem>
|
|
||||||
</DropdownMenu>
|
|
||||||
|
|
||||||
</Dropdown>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{cart.data &&
|
{cart.data &&
|
||||||
<Badge isInvisible={!Boolean(cart.data.data)} color={"primary"} content={cart.data.data && cart.data.data.length}
|
<Badge isInvisible={!Boolean(cart.data.data)} color={"primary"} content={cart.data.data && cart.data.data.length}
|
||||||
|
@ -171,7 +185,7 @@ const Header = () => {
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<div className="flex flex-row flex-wrap justify-stretch [&>*]:mr-4 items-start">
|
<div className="flex flex-row flex-wrap justify-stretch [&>*]:mr-4 items-start">
|
||||||
<div
|
<div
|
||||||
className={"border-1 border-[#404040] rounded-[8px] group hover:border-green-2 transition-colors cursor-pointer px-3 h-[50px] flex items-center w-full mb-4"}>
|
className={"border-1 border-[#404040] rounded-[8px] group hover:border-green-2 transition-colors cursor-pointer px-3 h-[50px] flex items-center w-full mb-4"}>
|
||||||
|
@ -179,6 +193,7 @@ const Header = () => {
|
||||||
className={"text-xs 2xl:text-header-link text-white group-hover:text-green-2 group-hover:opacity-100 transition-colors"}>+7(495)191-97-20</Link>
|
className={"text-xs 2xl:text-header-link text-white group-hover:text-green-2 group-hover:opacity-100 transition-colors"}>+7(495)191-97-20</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div className={"flex flex-row items-center group w-1/2"}>
|
<div className={"flex flex-row items-center group w-1/2"}>
|
||||||
<Dropdown>
|
<Dropdown>
|
||||||
<DropdownTrigger>
|
<DropdownTrigger>
|
||||||
|
@ -197,7 +212,8 @@ const Header = () => {
|
||||||
|
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{cart.data &&
|
{cart.data &&
|
||||||
<Badge isInvisible={!Boolean(cart.data.data)} color={"primary"} content={cart.data.data && cart.data.data.length}
|
<Badge isInvisible={!Boolean(cart.data.data)} color={"primary"} content={cart.data.data && cart.data.data.length}
|
||||||
className={"text-black font-semibold"}>
|
className={"text-black font-semibold"}>
|
||||||
|
|
|
@ -9,7 +9,7 @@ const News = (props: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||||
{
|
{
|
||||||
props.news.picture && <Img className={"max-h-[250px] lg:max-h-[500px] mb-6 mx-auto rounded-[20px]"} src={"https://relynolli.ru/upload/" + props.news.picture} alt={props.news.name} />
|
props.news.picture && <Img className={"max-h-[250px] lg:max-h-[500px] mb-6 mx-auto rounded-[20px]"} src={"https://relynolli.ru/upload/" + props.news.picture} alt={props.news.name} />
|
||||||
}
|
}
|
||||||
<div className="content text-base lg:text-2xl [&>*]:mb-4 [&_img]:max-h-[250px] [&_img]:lg:max-h-[500px] [&_a]:text-primary break-words" dangerouslySetInnerHTML={{__html: props.news.content}}></div>
|
<div className="content text-base lg:text-xl [&>*]:mb-4 [&_img]:max-h-[250px] [&_img]:lg:max-h-[500px] [&_a]:text-primary break-words" dangerouslySetInnerHTML={{__html: props.news.content}}></div>
|
||||||
</Wrapper>
|
</Wrapper>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,7 +110,7 @@ const Hero = () => {
|
||||||
|
|
||||||
const MainInfo = () => {
|
const MainInfo = () => {
|
||||||
return (
|
return (
|
||||||
<section className={"bg-white text-black rounded-[8px]"}>
|
<section className={"bg-white text-black"}>
|
||||||
<div className="wrapper py-8 mb-8">
|
<div className="wrapper py-8 mb-8">
|
||||||
<h1 className={"text-4xl xl:text-title-1 leading-normal font-bold text-center italic uppercase text-black mb-8"}>Моторные
|
<h1 className={"text-4xl xl:text-title-1 leading-normal font-bold text-center italic uppercase text-black mb-8"}>Моторные
|
||||||
масла и смазочные материалы <br/>
|
масла и смазочные материалы <br/>
|
||||||
|
@ -122,7 +122,7 @@ const MainInfo = () => {
|
||||||
<div
|
<div
|
||||||
className="wrapper mx-auto py-8 grid grid-cols-1 lg:grid-cols-2 grid-rows-3 lg:grid-rows-2 gap-4 h-auto [&>*]:h-[390px] [&_span]:text-base [&_span]:md:text-xl [&_span]:leading-[110%]">
|
className="wrapper mx-auto py-8 grid grid-cols-1 lg:grid-cols-2 grid-rows-3 lg:grid-rows-2 gap-4 h-auto [&>*]:h-[390px] [&_span]:text-base [&_span]:md:text-xl [&_span]:leading-[110%]">
|
||||||
|
|
||||||
<Card className={"lg:hover:scale-105 relative group lg:grayscale hover:grayscale-0 transition-all"}>
|
<Card className={"lg:hover:scale-105 relative group lg:grayscale hover:grayscale-0 transition-all rounded-[30px]"}>
|
||||||
<Link href={"/catalog"} className={"absolute top-0 left-0 z-20 w-full h-full"}/>
|
<Link href={"/catalog"} className={"absolute top-0 left-0 z-20 w-full h-full"}/>
|
||||||
<Image removeWrapper className={"w-full h-full object-cover brightness-75 relative z-10"}
|
<Image removeWrapper className={"w-full h-full object-cover brightness-75 relative z-10"}
|
||||||
src={"/oil2.png"}></Image>
|
src={"/oil2.png"}></Image>
|
||||||
|
@ -295,7 +295,7 @@ const NewsSlider = () => {
|
||||||
return (
|
return (
|
||||||
<section className={""}>
|
<section className={""}>
|
||||||
<div className="wrapper">
|
<div className="wrapper">
|
||||||
<div className="flex flex-wrap items-center mb-5">
|
<div className="flex flex-wrap justify-between items-center mb-5">
|
||||||
<h2 className={"text-2xl md:text-3xl leading-[35px] text-white m-0 mr-4 "}>Новости</h2>
|
<h2 className={"text-2xl md:text-3xl leading-[35px] text-white m-0 mr-4 "}>Новости</h2>
|
||||||
<Link
|
<Link
|
||||||
className={"block border-primary border-1 text-primary rounded px-4 py-2 italic text-2xl hover:bg-primary hover:text-black transition-colors font-bold"}
|
className={"block border-primary border-1 text-primary rounded px-4 py-2 italic text-2xl hover:bg-primary hover:text-black transition-colors font-bold"}
|
||||||
|
|
|
@ -9,7 +9,7 @@ const News = (props: InferGetStaticPropsType<typeof getStaticProps>) => {
|
||||||
{
|
{
|
||||||
props.news.picture && <Img className={"max-h-[250px] lg:max-h-[500px] mb-6 mx-auto rounded-[20px]"} src={"https://relynolli.ru/upload/" + props.news.picture} alt={props.news.name} />
|
props.news.picture && <Img className={"max-h-[250px] lg:max-h-[500px] mb-6 mx-auto rounded-[20px]"} src={"https://relynolli.ru/upload/" + props.news.picture} alt={props.news.name} />
|
||||||
}
|
}
|
||||||
<div className="content text-base lg:text-2xl [&>*]:mb-4 [&_img]:max-h-[250px] [&_img]:lg:max-h-[500px] [&_a]:text-primary break-words" dangerouslySetInnerHTML={{__html: props.news.content}}></div>
|
<div className="content text-base lg:text-xl [&>*]:mb-4 [&_img]:max-h-[250px] [&_img]:lg:max-h-[500px] [&_a]:text-primary break-words" dangerouslySetInnerHTML={{__html: props.news.content}}></div>
|
||||||
</Wrapper>
|
</Wrapper>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ class LocalAPI {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.instance = axios.create({
|
this.instance = axios.create({
|
||||||
baseURL: process.env.NODE_ENV === "development" ? "http://localhost:8000" : "https://relynolli.ru"
|
baseURL: "https://relynolli.ru"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,9 @@ class LocalAPI {
|
||||||
...filters
|
...filters
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if (!data.data) {
|
||||||
|
data.data = []
|
||||||
|
}
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue