Compare commits

...

2 Commits

Author SHA1 Message Date
WindFallten c87f2cec45 Gosha 2024-04-20 11:46:46 +03:00
WindFallten f11e7e95c9 Gosha 2024-04-20 01:46:31 +03:00
9 changed files with 12550 additions and 1296 deletions

11548
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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",

View File

@ -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"}/>

View File

@ -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}
@ -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>
@ -198,6 +213,7 @@ 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"}>

View File

@ -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>
) )
} }

View File

@ -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"}

View File

@ -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>
) )
} }

View File

@ -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
} }

2199
yarn.lock

File diff suppressed because it is too large Load Diff