master
حسین معصومی پور 2024-02-16 19:10:32 +03:30
parent bfd480ed91
commit 1be89d76c9
44 changed files with 201 additions and 162 deletions

View File

@ -1,3 +1,4 @@
{ {
"extends": "next/core-web-vitals" "extends": "next/core-web-vitals",
"rules": { "react/no-unescaped-entities": 0 }
} }

View File

@ -5,7 +5,7 @@ import React, { useContext } from "react";
import logo from "../../../public/images/logo.png"; import logo from "../../../public/images/logo.png";
import p2 from "../../../public/images/product/2.png"; import p2 from "../../../public/images/product/2.png";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import AddToCart from "../Components/AddToCart/page"; import AddToCart from "../Components/AddToCart/Page";
import Link from "next/link"; import Link from "next/link";
const CardCart = ({ data }) => { const CardCart = ({ data }) => {
@ -21,12 +21,14 @@ const CardCart = ({ data }) => {
width={100} width={100}
height={100} height={100}
className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover"
alt=""
/> />
) : ( ) : (
<div className="xs:!w-[85px] lg:!w-[85px] "> <div className="xs:!w-[85px] lg:!w-[85px] ">
<Image <Image
src={logo} src={logo}
className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5" className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5"
alt=""
/> />
</div> </div>
)} )}

View File

@ -6,7 +6,7 @@ import React, { useContext, useState } from "react";
import logo from "../../../public/images/logo.png"; import logo from "../../../public/images/logo.png";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import AddToCart from "../Components/AddToCart/page"; import AddToCart from "../Components/AddToCart/Page";
const CardCategories = ({ data }) => { const CardCategories = ({ data }) => {
const CTX = useContext(AppContext); const CTX = useContext(AppContext);
@ -52,12 +52,14 @@ const CardCategories = ({ data }) => {
width={100} width={100}
height={100} height={100}
className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover"
alt=""
/> />
) : ( ) : (
<div className="xs:!w-[85px] lg:!w-[85px] h-[90px] mt-10 "> <div className="xs:!w-[85px] lg:!w-[85px] h-[90px] mt-10 ">
<Image <Image
src={logo} src={logo}
className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5" className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5"
alt=""
/> />
</div> </div>
)} )}

View File

@ -6,7 +6,7 @@ import React, { useContext, useState } from "react";
import logo from "../../../public/images/logo.png"; import logo from "../../../public/images/logo.png";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import AddToCart from "../Components/AddToCart/page"; import AddToCart from "../Components/AddToCart/Page";
const CardCategoriesMobile = ({ data }) => { const CardCategoriesMobile = ({ data }) => {
const CTX = useContext(AppContext); const CTX = useContext(AppContext);
@ -22,12 +22,14 @@ const CardCategoriesMobile = ({ data }) => {
width={100} width={100}
height={100} height={100}
className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover"
alt=""
/> />
) : ( ) : (
<div className="xs:!w-[85px] lg:!w-[85px] "> <div className="xs:!w-[85px] lg:!w-[85px] ">
<Image <Image
src={logo} src={logo}
className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5" className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5"
alt=""
/> />
</div> </div>
)} )}

View File

@ -6,7 +6,7 @@ import logo from "../../../public/images/logo.png";
import Image from "next/image"; import Image from "next/image";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import AddToCart from "../Components/AddToCart/page"; import AddToCart from "../Components/AddToCart/Page";
import Link from "next/link"; import Link from "next/link";
const CardNormal = ({ data }) => { const CardNormal = ({ data }) => {
@ -45,12 +45,14 @@ const CardNormal = ({ data }) => {
width={100} width={100}
height={100} height={100}
className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover"
alt=""
/> />
) : ( ) : (
<div className="xs:!w-[85px] lg:!w-[85px] h-[90px] mt-10 "> <div className="xs:!w-[85px] lg:!w-[85px] h-[90px] mt-10 ">
<Image <Image
src={logo} src={logo}
className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5" className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5"
alt=""
/> />
</div> </div>
)} )}

View File

@ -2,7 +2,7 @@ import Image from "next/image";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React from "react"; import React from "react";
import p1 from "../../../public/images/product/1.png"; import p1 from "../../../public/images/product/1.png";
import AddToCart from "../Components/AddToCart/page"; import AddToCart from "../Components/AddToCart/Page";
const CardSurprise = () => { const CardSurprise = () => {
return ( return (
@ -24,7 +24,11 @@ const CardSurprise = () => {
</div> </div>
</div>{" "} </div>{" "}
<div className="w-full h-fit "> <div className="w-full h-fit ">
<Image src={p1} className="xs:w-[110px] lg:w-[170px] mx-auto" /> <Image
src={p1}
className="xs:w-[110px] lg:w-[170px] mx-auto"
alt=""
/>
</div> </div>
<div className="p-3 text-right"> <div className="p-3 text-right">
<p className="mb-0 text-[15px] font-bold max-h-[50px] "> <p className="mb-0 text-[15px] font-bold max-h-[50px] ">

View File

@ -1,7 +1,7 @@
"use client"; "use client";
import React, { useContext, useEffect, useState } from "react"; import React, { useContext, useEffect, useState } from "react";
import { Switch } from "@headlessui/react"; import { Switch } from "@headlessui/react";
import RangeSlider from "plugins/RangeSlider/page"; import RangeSlider from "plugins/RangeSlider/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
@ -93,8 +93,11 @@ const FilterCategory = ({
</div> </div>
<div className="h-[300px] overflow-y-auto p-5 scroll-1 overflow-hidden"> <div className="h-[300px] overflow-y-auto p-5 scroll-1 overflow-hidden">
{brands?.map((e) => ( {brands?.map((e, index) => (
<div onClick={() => handleFilterBrand(e.name, e.id)}> <div
key={index}
onClick={() => handleFilterBrand(e.name, e.id)}
>
<div className="flex my-2 cursor-pointer"> <div className="flex my-2 cursor-pointer">
<div <div
className={` w-[30px] h-[30px] rounded-lg border ml-3 tr03 ${ className={` w-[30px] h-[30px] rounded-lg border ml-3 tr03 ${

View File

@ -1,5 +1,5 @@
"use client"; "use client";
import CardCategories from "@comp/Cards/CardCategories/page"; import CardCategories from "@comp/Cards/CardCategories/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React, { useContext, useEffect } from "react"; import React, { useContext, useEffect } from "react";
@ -130,8 +130,8 @@ const ListProdocts = ({
</div> </div>
<div className="grid xs:grid-cols-1 lg:grid-cols-4 xl:grid-cols-5"> <div className="grid xs:grid-cols-1 lg:grid-cols-4 xl:grid-cols-5">
{products?.map((e) => ( {products?.map((e, index) => (
<CardCategories data={e} /> <CardCategories key={index} data={e} />
))} ))}
</div> </div>
</div> </div>

View File

@ -1,5 +1,5 @@
"use client"; "use client";
import SideBarNavBarMobile from "@comp/Navbar/SideBarNavBarMobile/page"; import SideBarNavBarMobile from "@comp/Navbar/SideBarNavBarMobile/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import React, { useContext } from "react"; import React, { useContext } from "react";

View File

@ -1,5 +1,5 @@
"use client"; "use client";
import SideBarNavBarMobile from "@comp/Navbar/SideBarNavBarMobile/page"; import SideBarNavBarMobile from "@comp/Navbar/SideBarNavBarMobile/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import BottomSheetFilter from "plugins/bottomSheet/BottomSheetFilter"; import BottomSheetFilter from "plugins/bottomSheet/BottomSheetFilter";
import React, { useContext, useEffect, useState } from "react"; import React, { useContext, useEffect, useState } from "react";

View File

@ -1,6 +1,6 @@
"use client"; "use client";
import CardCategoriesMobile from "@comp/Cards/CardCategoriesMobile/page"; import CardCategoriesMobile from "@comp/Cards/CardCategoriesMobile/Page";
import CardNormal from "@comp/Cards/CardNormal/page"; import CardNormal from "@comp/Cards/CardNormal/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import React, { useContext } from "react"; import React, { useContext } from "react";
import InfiniteScroll from "react-infinite-scroll-component"; import InfiniteScroll from "react-infinite-scroll-component";
@ -13,8 +13,8 @@ const ListProductsMobile = (props) => {
return ( return (
<> <>
<div className="grid xs:grid-cols-1 lg:grid-cols-4 xl:grid-cols-5"> <div className="grid xs:grid-cols-1 lg:grid-cols-4 xl:grid-cols-5">
{products?.map((e) => ( {products?.map((e, index) => (
<CardCategoriesMobile data={e} /> <CardCategoriesMobile key={index} data={e} />
))} ))}
</div> </div>
</> </>

View File

@ -9,7 +9,7 @@ const Footer = () => {
<div className="bg-gray-100 p-5 pb-10 lg:flex rtl lg:px-20"> <div className="bg-gray-100 p-5 pb-10 lg:flex rtl lg:px-20">
<div className=" p-3 xs:w-full lg:w-8/12 mx-2 flex rtl"> <div className=" p-3 xs:w-full lg:w-8/12 mx-2 flex rtl">
<div className="xs:w-[70px] lg:w-[100px]"> <div className="xs:w-[70px] lg:w-[100px]">
<Image src={logo} /> <Image src={logo} alt="" />
</div> </div>
<div className="mr-3"> <div className="mr-3">
<h3> <h3>

View File

@ -6,7 +6,7 @@ import p1 from "../../../public/images/product/1.png";
import p2 from "../../../public/images/product/2.png"; import p2 from "../../../public/images/product/2.png";
import p3 from "../../../public/images/product/3.png"; import p3 from "../../../public/images/product/3.png";
import p4 from "../../../public/images/product/4.png"; import p4 from "../../../public/images/product/4.png";
import CardNormal from "@comp/Cards/CardNormal/page"; import CardNormal from "@comp/Cards/CardNormal/Page";
const BeautySection = ({ data }) => { const BeautySection = ({ data }) => {
console.log("BeautySection", data); console.log("BeautySection", data);
@ -62,8 +62,8 @@ const BeautySection = ({ data }) => {
}, },
}} }}
> >
{data?.map((e) => ( {data?.map((e, index) => (
<SwiperSlide> <SwiperSlide key={index}>
<CardNormal data={e} /> <CardNormal data={e} />
</SwiperSlide> </SwiperSlide>
))} ))}

View File

@ -12,7 +12,7 @@ const BetweenSexualSection = () => {
<div className="grid xs:grid-cols-1 lg:grid-cols-3 rtl "> <div className="grid xs:grid-cols-1 lg:grid-cols-3 rtl ">
<div className=" rounded-3xl overflow-hidden relative z-10"> <div className=" rounded-3xl overflow-hidden relative z-10">
<div className="w-full"> <div className="w-full">
<Image src={between} className=" object-cover" /> <Image src={between} className=" object-cover" alt="" />
</div> </div>
</div> </div>
@ -41,7 +41,11 @@ const BetweenSexualSection = () => {
<div className="flex justify-end"> <div className="flex justify-end">
<div className="absolute mt-[-43px]"> <div className="absolute mt-[-43px]">
<div className="xs:w-[140px] lg:w-[150px]"> <div className="xs:w-[140px] lg:w-[150px]">
<Image src={between1} className=" object-cover" /> <Image
src={between1}
className=" object-cover"
alt=""
/>
</div> </div>
</div> </div>
</div> </div>
@ -61,7 +65,11 @@ const BetweenSexualSection = () => {
<div className="flex justify-end"> <div className="flex justify-end">
<div className="absolute mt-[-43px]"> <div className="absolute mt-[-43px]">
<div className="xs:w-[140px] lg:w-[150px]"> <div className="xs:w-[140px] lg:w-[150px]">
<Image src={between2} className=" object-cover" /> <Image
src={between2}
className=" object-cover"
alt=""
/>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,4 +1,4 @@
import MovingLogos from "plugins/MovingLogos/page"; import MovingLogos from "plugins/MovingLogos/Page";
import React from "react"; import React from "react";
const BrandsLogoSection = () => { const BrandsLogoSection = () => {

View File

@ -28,7 +28,7 @@ const HeroSection = () => {
<div className="flex justify-center"> <div className="flex justify-center">
<div className="absolute w-full"> <div className="absolute w-full">
<div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] "> <div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] ">
<Image src={yek} /> <Image src={yek} alt="" />
</div> </div>
</div> </div>
</div> </div>
@ -46,7 +46,7 @@ const HeroSection = () => {
<div className="flex justify-center"> <div className="flex justify-center">
<div className="absolute w-full"> <div className="absolute w-full">
<div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] "> <div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] ">
<Image src={doo} /> <Image src={doo} alt="" />
</div> </div>
</div> </div>
</div> </div>
@ -64,7 +64,7 @@ const HeroSection = () => {
<div className="flex justify-center"> <div className="flex justify-center">
<div className="absolute w-full"> <div className="absolute w-full">
<div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] "> <div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] ">
<Image src={see} />{" "} <Image src={see} alt="" />{" "}
</div> </div>
</div> </div>
</div> </div>
@ -82,7 +82,7 @@ const HeroSection = () => {
<div className="flex justify-center"> <div className="flex justify-center">
<div className="absolute w-full"> <div className="absolute w-full">
<div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] "> <div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] ">
<Image src={chr} /> <Image src={chr} alt="" />
</div> </div>
</div> </div>
</div> </div>
@ -100,7 +100,7 @@ const HeroSection = () => {
<div className="flex justify-center"> <div className="flex justify-center">
<div className="absolute w-full"> <div className="absolute w-full">
<div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] "> <div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] ">
<Image src={png} /> <Image src={png} alt="" />
</div> </div>
</div> </div>
</div> </div>
@ -118,7 +118,7 @@ const HeroSection = () => {
<div className="flex justify-center"> <div className="flex justify-center">
<div className="absolute w-full"> <div className="absolute w-full">
<div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] "> <div className=" xs:w-[110px] lg:w-[170px] lg:ml-[-20px] xs:ml-[-15px] mt-[-10px] ">
<Image src={shs} />{" "} <Image src={shs} alt="" />{" "}
</div> </div>
</div> </div>
</div> </div>

View File

@ -7,7 +7,7 @@ import p2 from "../../../public/images/product/2.png";
import p3 from "../../../public/images/product/3.png"; import p3 from "../../../public/images/product/3.png";
import p4 from "../../../public/images/product/4.png"; import p4 from "../../../public/images/product/4.png";
import khane from "../../../public/images/khane.jpg"; import khane from "../../../public/images/khane.jpg";
import CardNormal from "@comp/Cards/CardNormal/page"; import CardNormal from "@comp/Cards/CardNormal/Page";
const HomeSection = ({ data }) => { const HomeSection = ({ data }) => {
return ( return (
@ -16,7 +16,7 @@ const HomeSection = ({ data }) => {
<div className="grid xs:grid-cols-1 lg:grid-cols-3 rtl "> <div className="grid xs:grid-cols-1 lg:grid-cols-3 rtl ">
<div className="rounded-3xl overflow-hidden relative z-10"> <div className="rounded-3xl overflow-hidden relative z-10">
<div className="w-full"> <div className="w-full">
<Image src={khane} className="object-cover" /> <Image src={khane} className="object-cover" alt="" />
</div> </div>
</div> </div>
@ -55,8 +55,8 @@ const HomeSection = ({ data }) => {
}, },
}} }}
> >
{data?.map((e) => ( {data?.map((e, index) => (
<SwiperSlide> <SwiperSlide key={index}>
<CardNormal data={e} /> <CardNormal data={e} />
</SwiperSlide> </SwiperSlide>
))} ))}

View File

@ -7,7 +7,7 @@ import p1 from "../../../public/images/product/1.png";
import p2 from "../../../public/images/product/2.png"; import p2 from "../../../public/images/product/2.png";
import p3 from "../../../public/images/product/3.png"; import p3 from "../../../public/images/product/3.png";
import p4 from "../../../public/images/product/4.png"; import p4 from "../../../public/images/product/4.png";
import CardNormal from "@comp/Cards/CardNormal/page"; import CardNormal from "@comp/Cards/CardNormal/Page";
const SurpriseSection = ({ data }) => { const SurpriseSection = ({ data }) => {
console.log("sss injaaaha", data); console.log("sss injaaaha", data);
@ -64,8 +64,8 @@ const SurpriseSection = ({ data }) => {
}, },
}} }}
> >
{data?.map((e) => ( {data?.map((e, index) => (
<SwiperSlide> <SwiperSlide key={index}>
<CardNormal data={e} /> <CardNormal data={e} />
</SwiperSlide> </SwiperSlide>
))} ))}

View File

@ -1,5 +1,5 @@
"use client"; "use client";
import CardCart from "@comp/Cards/CardCart/page"; import CardCart from "@comp/Cards/CardCart/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
@ -48,8 +48,8 @@ const CartNavbar = (props) => {
{/* <div className="w-5/12 mx-auto h-[1px] bg-gray-200 my-3"></div> */} {/* <div className="w-5/12 mx-auto h-[1px] bg-gray-200 my-3"></div> */}
<div> <div>
{cart.map((e) => ( {cart.map((e, index) => (
<CardCart data={e} /> <CardCart key={index} data={e} />
))} ))}
</div> </div>
</div> </div>

View File

@ -85,6 +85,7 @@ const SideBarNavBarMobile = () => {
setFirstChild(dataNav[index].children); setFirstChild(dataNav[index].children);
setFirstChildIndex(index); setFirstChildIndex(index);
}} }}
key={index}
> >
<div className="py-3 flex justify-between rtl bg-gray-50 px-1 rounded-lg my-1"> <div className="py-3 flex justify-between rtl bg-gray-50 px-1 rounded-lg my-1">
<p className="text-sm mb-0 font-bold ">{e.name}</p> <p className="text-sm mb-0 font-bold ">{e.name}</p>
@ -123,8 +124,8 @@ const SideBarNavBarMobile = () => {
</p> </p>
</Link> </Link>
</li>{" "} </li>{" "}
{firstChild.map((e) => ( {firstChild.map((e, index) => (
<li> <li key={index}>
<Link <Link
href={`/categories/${e.id}`} href={`/categories/${e.id}`}
onClick={() => CTX.setCloseNavbar(false)} onClick={() => CTX.setCloseNavbar(false)}

View File

@ -11,11 +11,11 @@ import { Menu } from "@headlessui/react";
import { motion } from "framer-motion"; import { motion } from "framer-motion";
import Link from "next/link"; import Link from "next/link";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import CartNavbar from "./CartNavbar/page"; import CartNavbar from "./CartNavbar/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import BottomSheetCart from "plugins/bottomSheet/BottomSheetCart"; import BottomSheetCart from "plugins/bottomSheet/BottomSheetCart";
import { BottomSheet } from "react-spring-bottom-sheet"; import { BottomSheet } from "react-spring-bottom-sheet";
import SearchSideBar from "@comp/Category/Mobile/Component/SearchSideBar/page"; import SearchSideBar from "@comp/Category/Mobile/Component/SearchSideBar/Page";
const Navbar = ({ theme }) => { const Navbar = ({ theme }) => {
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
@ -77,7 +77,7 @@ const Navbar = ({ theme }) => {
} `} } `}
> >
<Link href={"/"}> <Link href={"/"}>
<Image src={theme == 0 ? logoWhite : logoBlack} /> <Image src={theme == 0 ? logoWhite : logoBlack} alt="" />
</Link> </Link>
</div> </div>
@ -202,6 +202,7 @@ const Navbar = ({ theme }) => {
${theme == 0 && isScrolled ? "text-gray-900" : ""}`} ${theme == 0 && isScrolled ? "text-gray-900" : ""}`}
onMouseEnter={() => handleItemNavber(index)} onMouseEnter={() => handleItemNavber(index)}
onMouseLeave={() => setNavItemHover(null)} onMouseLeave={() => setNavItemHover(null)}
key={index}
> >
{e.name}{" "} {e.name}{" "}
</p> </p>
@ -229,7 +230,7 @@ const Navbar = ({ theme }) => {
}`} }`}
> >
<div className="w-[60px] absolute left-0 rotate-180 ml-[-60px] mt-[-15px] "> <div className="w-[60px] absolute left-0 rotate-180 ml-[-60px] mt-[-15px] ">
<Image src={divider} /> <Image src={divider} alt="" />
</div> </div>
<div <div
@ -240,8 +241,8 @@ const Navbar = ({ theme }) => {
<ul className="flex flex-col flex-wrap max-h-96 list-none "> <ul className="flex flex-col flex-wrap max-h-96 list-none ">
{navItemHover != null && {navItemHover != null &&
dataNav && dataNav &&
dataNav[navItemHover].children.map((e) => ( dataNav[navItemHover].children.map((e, index) => (
<li className=" my-2"> <li className=" my-2" key={index}>
<div className="flex"> <div className="flex">
<div className="w-[10px] h-[10px] rounded-full bg-primary-500 mt-1 mx-2"></div> <div className="w-[10px] h-[10px] rounded-full bg-primary-500 mt-1 mx-2"></div>
<Link href={`/categories/${e.id}`}> <Link href={`/categories/${e.id}`}>
@ -275,8 +276,11 @@ const Navbar = ({ theme }) => {
{/* ======hear==== */} {/* ======hear==== */}
{e.children && e.children.length > 0 && ( {e.children && e.children.length > 0 && (
<div> <div>
{e.children.map((child) => ( {e.children.map((child, index) => (
<Link href={`/categories/${child.id}`}> <Link
key={index}
href={`/categories/${child.id}`}
>
<p <p
key={child.id} key={child.id}
className="mb-0 mt-2 text-[14px] mr-2 hover:bg-primary-400 hover:text-white w-fit rounded-full px-2 tr03 cursor-pointer" className="mb-0 mt-2 text-[14px] mr-2 hover:bg-primary-400 hover:text-white w-fit rounded-full px-2 tr03 cursor-pointer"
@ -298,6 +302,7 @@ const Navbar = ({ theme }) => {
<Image <Image
src={cover} src={cover}
className="h-[300px] object-cover brightness-50" className="h-[300px] object-cover brightness-50"
alt=""
/> />
</div> </div>
@ -328,7 +333,7 @@ const Navbar = ({ theme }) => {
</div> </div>
</div> </div>
<div className="w-[60px] absolute right-0 rotate-90 mr-[-60px] mt-[-15px] "> <div className="w-[60px] absolute right-0 rotate-90 mr-[-60px] mt-[-15px] ">
<Image src={divider} /> <Image src={divider} alt="" />
</div> </div>
</div> </div>
</div> </div>
@ -348,9 +353,9 @@ const Navbar = ({ theme }) => {
{" "} {" "}
<div className="w-[70px] mt-[6px] z-10 "> <div className="w-[70px] mt-[6px] z-10 ">
{isScrolled ? ( {isScrolled ? (
<Image src={theme == 0 ? logoBlack : logoBlack} /> <Image src={theme == 0 ? logoBlack : logoBlack} alt="" />
) : ( ) : (
<Image src={theme == 0 ? logoWhite : logoBlack} /> <Image src={theme == 0 ? logoWhite : logoBlack} alt="" />
)} )}
</div> </div>
<div className="flex"> <div className="flex">

View File

@ -28,12 +28,14 @@ const GalleryBox = ({ file }) => {
height={350} height={350}
className=" mx-auto !object-cover" className=" mx-auto !object-cover"
onClick={() => CTX.setIsOpenLightBox(true)} onClick={() => CTX.setIsOpenLightBox(true)}
alt=""
/> />
) : ( ) : (
<div className="xs:!w-[85px] lg:!w-[85px] "> <div className="xs:!w-[85px] lg:!w-[85px] ">
<Image <Image
src={logo} src={logo}
className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5" className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5"
alt=""
/> />
</div> </div>
)} )}

View File

@ -58,7 +58,11 @@ const Input = ({
)} )}
{selectData && {selectData &&
selectData.map((e) => <option value={e.value}>{e.key}</option>)} selectData.map((e, index) => (
<option key={index} value={e.value}>
{e.key}
</option>
))}
</select> </select>
) : ( ) : (
<input <input

View File

@ -70,8 +70,8 @@ const MovingLogos = () => {
x-ref="logos" x-ref="logos"
className="flex items-center justify-center md:justify-start [&_li]:mx-5 [&_img]:max-w-none animate-infinite-scroll hover:animate-infinite-scroll2" className="flex items-center justify-center md:justify-start [&_li]:mx-5 [&_img]:max-w-none animate-infinite-scroll hover:animate-infinite-scroll2"
> >
{logos.map((e) => ( {logos.map((e, index) => (
<li className="w-[]"> <li className="w-[]" key={index}>
<Image <Image
key={e.id} key={e.id}
id={`logo-${e.id}`} id={`logo-${e.id}`}

View File

@ -1,6 +1,6 @@
"use client"; "use client";
import CardCart from "@comp/Cards/CardCart/page"; import CardCart from "@comp/Cards/CardCart/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
@ -29,8 +29,8 @@ const BottomSheetCart = (props) => {
{/* <div className="w-5/12 mx-auto h-[1px] bg-gray-200 my-3"></div> */} {/* <div className="w-5/12 mx-auto h-[1px] bg-gray-200 my-3"></div> */}
<div> <div>
{cart.map((e) => ( {cart.map((e, index) => (
<CardCart data={e} /> <CardCart key={index} data={e} />
))} ))}
</div> </div>
</div> </div>

View File

@ -1,6 +1,6 @@
"use client"; "use client";
import CardCart from "@comp/Cards/CardCart/page"; import CardCart from "@comp/Cards/CardCart/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";

View File

@ -1,6 +1,6 @@
"use client"; "use client";
import CardCart from "@comp/Cards/CardCart/page"; import CardCart from "@comp/Cards/CardCart/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import Chapar from "plugins/Chapar"; import Chapar from "plugins/Chapar";

View File

@ -1,7 +1,7 @@
"use client"; "use client";
import CardCart from "@comp/Cards/CardCart/page"; import CardCart from "@comp/Cards/CardCart/Page";
import FilterCategory from "@comp/Category/FilterCategory/page"; import FilterCategory from "@comp/Category/FilterCategory/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React, { useContext } from "react"; import React, { useContext } from "react";

View File

@ -1,6 +1,6 @@
"use client"; "use client";
import CardCart from "@comp/Cards/CardCart/page"; import CardCart from "@comp/Cards/CardCart/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";

View File

@ -1,9 +1,9 @@
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React from "react"; import React from "react";
const page = () => { const Page = () => {
const number = "02188195164"; const number = "02188195164";
return ( return (
<> <>
@ -15,8 +15,7 @@ const page = () => {
<div className="flex justify-center xs:hidden lg:block"> <div className="flex justify-center xs:hidden lg:block">
<div className="absolute mr-[-1100px] mt-[-200px]"> <div className="absolute mr-[-1100px] mt-[-200px]">
<p className="mb-0 text-[300px] opacity-10 font-extrabold text-white "> <p className="mb-0 text-[300px] opacity-10 font-extrabold text-white ">
{" "} {", "}
,
</p> </p>
</div> </div>
</div> </div>
@ -150,16 +149,16 @@ const page = () => {
جوایز و تقدیر در وسمه جوایز و تقدیر در وسمه
</h2> </h2>
<p className="mb-0 text-right xs:text-sm lg:text-base"> <p className="mb-0 text-right xs:text-sm lg:text-base">
ما در "وسمه" مفتخریم که به خاطر کاری که هر روز از طرف مشتریان، ما در وسمه مفتخریم که به خاطر کاری که هر روز از طرف مشتریان،
کارمندان و جوامع خود انجام میدهیم، مورد تقدیر قرار میگیریم. این کارمندان و جوامع خود انجام میدهیم، مورد تقدیر قرار میگیریم. این
تقدیر و اعترافها، نشان از ارزشی است که ما برای ارتباط مستمر و تقدیر و اعترافها، نشان از ارزشی است که ما برای ارتباط مستمر و
صادقانه با همهی اعضای جامعهی ما قائل هستیم. همهی تلاش ما در صادقانه با همهی اعضای جامعهی ما قائل هستیم. همهی تلاش ما در وسمه
"وسمه" به منظور ارائهی بهترین تجربهی ممکن برای مشتریان عزیزمان به منظور ارائهی بهترین تجربهی ممکن برای مشتریان عزیزمان است. از
است. از انتخاب محصولات با کیفیت تا ارائهی خدمات استثنایی، ما به دقت انتخاب محصولات با کیفیت تا ارائهی خدمات استثنایی، ما به دقت به
به نیازها و خواستههای شما توجه میکنیم تا اطمینان حاصل شود که هرگز نیازها و خواستههای شما توجه میکنیم تا اطمینان حاصل شود که هرگز از
از "وسمه" ناراضی نخواهید شد. با تمام وجود و انگیزهی بیپایان، ما به وسمه ناراضی نخواهید شد. با تمام وجود و انگیزهی بیپایان، ما به
ارتقاء محصولات و خدماتمان ادامه میدهیم تا همیشه بهترین را برای شما ارتقاء محصولات و خدماتمان ادامه میدهیم تا همیشه بهترین را برای شما
فراهم کنیم. وعدهی ما این است که در "وسمه" همیشه یک محیط پذیرایی، فراهم کنیم. وعدهی ما این است که در وسمه همیشه یک محیط پذیرایی،
احترام و نوآوری برای شما وجود داشته باشد احترام و نوآوری برای شما وجود داشته باشد
</p> </p>
</div> </div>
@ -170,4 +169,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,6 +1,6 @@
"use client"; "use client";
import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/page"; import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React, { useContext, useEffect, useState } from "react"; import React, { useContext, useEffect, useState } from "react";
@ -14,7 +14,7 @@ import BottomSheetAddress from "plugins/bottomSheet/BottomSheetAddress";
import Chapar from "plugins/Chapar"; import Chapar from "plugins/Chapar";
import { toast } from "react-toastify"; import { toast } from "react-toastify";
const page = () => { const Page = () => {
const CTX = useContext(AppContext); const CTX = useContext(AppContext);
const [shippingData, setShippingData] = useState([]); const [shippingData, setShippingData] = useState([]);
const [shippingId, setShippingID] = useState(null); const [shippingId, setShippingID] = useState(null);
@ -152,6 +152,7 @@ const page = () => {
: "" : ""
}`} }`}
onClick={() => setAddressId(index)} onClick={() => setAddressId(index)}
key={index}
> >
<div> <div>
<svg <svg
@ -222,6 +223,7 @@ const page = () => {
: "" : ""
}`} }`}
onClick={() => handleShippingID(index)} onClick={() => handleShippingID(index)}
key={index}
> >
<div> <div>
<svg <svg
@ -280,7 +282,7 @@ const page = () => {
}`} }`}
> >
<div> <div>
<Image src={zarin} className="w-[50px]" /> <Image src={zarin} className="w-[50px]" alt="" />
</div> </div>
<div className="mx-2"> <div className="mx-2">
<h3 className="mb-0 text-sm text-right font-medium text-primary-500 "> <h3 className="mb-0 text-sm text-right font-medium text-primary-500 ">
@ -292,7 +294,7 @@ const page = () => {
<div className="flex rtl px-2 py-1 mx-2 mt-5 opacity-40"> <div className="flex rtl px-2 py-1 mx-2 mt-5 opacity-40">
<div> <div>
<Image src={ap} className="w-[45px]" /> <Image src={ap} className="w-[45px]" alt="" />
</div> </div>
<div className="mx-2"> <div className="mx-2">
<h3 className="mb-0 text-sm text-right font-medium text-primary-500 "> <h3 className="mb-0 text-sm text-right font-medium text-primary-500 ">
@ -473,4 +475,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,7 +1,7 @@
"use client"; "use client";
import CardCart from "@comp/Cards/CardCart/page"; import CardCart from "@comp/Cards/CardCart/Page";
import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/page"; import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
@ -10,7 +10,7 @@ import PersianNumber from "plugins/PersianNumber";
import React, { useContext, useEffect } from "react"; import React, { useContext, useEffect } from "react";
import { toast } from "react-toastify"; import { toast } from "react-toastify";
const page = () => { const Page = () => {
const CTX = useContext(AppContext); const CTX = useContext(AppContext);
const router = useRouter(); const router = useRouter();
const cart = CTX.state.cart; const cart = CTX.state.cart;
@ -69,10 +69,10 @@ const page = () => {
closeOnClick: true, closeOnClick: true,
}); });
} }
router.push("/cart/checkout"); // Redirect to the checkout page router.push("/cart/checkout"); // Redirect to the checkout Page
} else { } else {
// If token does not exist, redirect to login // If token does not exist, redirect to login
router.push("/login"); // Redirect to the login page router.push("/login"); // Redirect to the login Page
} }
}; };
@ -100,8 +100,8 @@ const page = () => {
</div> </div>
<div className=""> <div className="">
{cart?.map((e) => ( {cart?.map((e, index) => (
<CardCart data={e} /> <CardCart key={index} data={e} />
))} ))}
<div className=""> <div className="">
@ -194,4 +194,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,17 +1,17 @@
"use client"; "use client";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import React, { useContext, useEffect, useState } from "react"; import React, { useContext, useEffect, useState } from "react";
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import ListProdocts from "@comp/Category/ListProdocts/page"; import ListProdocts from "@comp/Category/ListProdocts/Page";
import FilterCategoryMobile from "@comp/Category/Mobile/FilterCategoryMobile/page"; import FilterCategoryMobile from "@comp/Category/Mobile/FilterCategoryMobile/Page";
import FilterCategory from "@comp/Category/FilterCategory/page"; import FilterCategory from "@comp/Category/FilterCategory/Page";
import ListProductsMobile from "@comp/Category/Mobile/ListProductsMobile/page"; import ListProductsMobile from "@comp/Category/Mobile/ListProductsMobile/Page";
import PaginationCategoory from "@comp/Category/PaginationCategoory/page"; import PaginationCategoory from "@comp/Category/PaginationCategoory/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import InfiniteScroll from "react-infinite-scroll-component"; import InfiniteScroll from "react-infinite-scroll-component";
export default function page({ params }) { export default function Page({ params }) {
// const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/product?page=0`); // const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/product?page=0`);
// const products = await res.json(); // const products = await res.json();
const CTX = useContext(AppContext); const CTX = useContext(AppContext);

View File

@ -1,9 +1,9 @@
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React from "react"; import React from "react";
const page = () => { const Page = () => {
const number = "02188195164"; const number = "02188195164";
return ( return (
<> <>
@ -15,8 +15,7 @@ const page = () => {
<div className="flex justify-center xs:hidden lg:block"> <div className="flex justify-center xs:hidden lg:block">
<div className="absolute mr-[-1100px] mt-[-200px]"> <div className="absolute mr-[-1100px] mt-[-200px]">
<p className="mb-0 text-[300px] opacity-10 font-extrabold text-white "> <p className="mb-0 text-[300px] opacity-10 font-extrabold text-white ">
{" "} {", "}
,
</p> </p>
</div> </div>
</div> </div>
@ -199,9 +198,9 @@ const page = () => {
فروشگاه وسمه، ما به دنبال ارائه محصولات با کیفیت و خدماتی استثنایی فروشگاه وسمه، ما به دنبال ارائه محصولات با کیفیت و خدماتی استثنایی
هستیم تا به شما کمک کنیم تا به بهترین شکل ممکن زندگی کنید. اگر سوالی هستیم تا به شما کمک کنیم تا به بهترین شکل ممکن زندگی کنید. اگر سوالی
دارید یا نیاز به راهنمایی دارید، تیم ما همیشه در دسترس است تا به شما دارید یا نیاز به راهنمایی دارید، تیم ما همیشه در دسترس است تا به شما
کمک کند. با افتخار ما را در فروشگاه "وسمه" به عنوان همراهی شما در کمک کند. با افتخار ما را در فروشگاه وسمه به عنوان همراهی شما در مسیر
مسیر زیبایی و اعتماد به نفس خوش آمدید. با احترام و دوستی، تیم زیبایی و اعتماد به نفس خوش آمدید. با احترام و دوستی، تیم فروشگاه
فروشگاه "وسمه وسمه
</p> </p>
</div> </div>
<div className="w-full lg:mx-10"> <div className="w-full lg:mx-10">
@ -244,4 +243,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,11 +1,11 @@
"use client"; "use client";
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
const page = () => { const Page = () => {
const [faq, setFaq] = useState([]); const [faq, setFaq] = useState([]);
const [faqSelect, setFaqSelect] = useState(0); const [faqSelect, setFaqSelect] = useState(0);
@ -52,6 +52,7 @@ const page = () => {
faqSelect == index ? "bg-gray-100" : "bg-primary-100" faqSelect == index ? "bg-gray-100" : "bg-primary-100"
}`} }`}
onClick={() => setFaqSelect(index)} onClick={() => setFaqSelect(index)}
key={index}
> >
<div className="flex"> <div className="flex">
<span className="mx-2 text-xl text-gray-900"> <span className="mx-2 text-xl text-gray-900">
@ -78,4 +79,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -8,7 +8,7 @@ import AppContext from "@ctx/AppContext";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import "react-toastify/dist/ReactToastify.css"; import "react-toastify/dist/ReactToastify.css";
import { ToastContainer, toast } from "react-toastify"; import { ToastContainer, toast } from "react-toastify";
import Loading from "plugins/Loading/page"; import Loading from "plugins/Loading/Page";
import "react-spring-bottom-sheet/dist/style.css"; import "react-spring-bottom-sheet/dist/style.css";
import BottomSheetAddress from "plugins/bottomSheet/BottomSheetAddress"; import BottomSheetAddress from "plugins/bottomSheet/BottomSheetAddress";
import citiesJSON from "iranCities"; import citiesJSON from "iranCities";
@ -173,7 +173,7 @@ export default function RootLayout({ children }) {
); );
const post = await res.json(); const post = await res.json();
if (paginationSay) { if (paginationSay) {
// If it's a paginated request (not the first page) // If it's a paginated request (not the first Page)
window.scrollTo({ window.scrollTo({
top: 0, top: 0,
behavior: "smooth", // Optional: smooth scrolling behavior behavior: "smooth", // Optional: smooth scrolling behavior
@ -184,16 +184,16 @@ export default function RootLayout({ children }) {
} }
if (post.length <= 19) { if (post.length <= 19) {
// If the length of fetched products is less than or equal to 19, indicating the last page // If the length of fetched products is less than or equal to 19, indicating the last Page
setStopProducts(true); // Assuming this stops pagination setStopProducts(true); // Assuming this stops pagination
} }
if (!paginationSay && pageGetProducts == 0) { if (!paginationSay && pageGetProducts == 0) {
// If it's not a paginated request and it's the first page // If it's not a paginated request and it's the first Page
setProducts(post.products); setProducts(post.products);
setPager(post.pager); setPager(post.pager);
} else if (!paginationSay && pageGetProducts != 0) { } else if (!paginationSay && pageGetProducts != 0) {
// If it's not a paginated request and it's not the first page // If it's not a paginated request and it's not the first Page
console.log("kir", products, !!products ? products : [], post.products); console.log("kir", products, !!products ? products : [], post.products);
setProducts((data) => [...(data ? data : []), ...post.products]); setProducts((data) => [...(data ? data : []), ...post.products]);
} }

View File

@ -120,7 +120,7 @@ const Login = () => {
<div className="bg-white p-10 rounded-3xl"> <div className="bg-white p-10 rounded-3xl">
<div className=" flex justify-center"> <div className=" flex justify-center">
<div className="w-[100px]"> <div className="w-[100px]">
<Image src={logo} className="mx-auto" /> <Image src={logo} className="mx-auto" alt="" />
</div> </div>
</div> </div>
{stepLogin == 0 ? ( {stepLogin == 0 ? (

View File

@ -1,12 +1,12 @@
"use client"; "use client";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import HeroSection from "@comp/LandingPage/HeroSection/page"; import HeroSection from "@comp/LandingPage/HeroSection/Page";
import SurpriseSection from "@comp/LandingPage/SurpriseSection/page"; import SurpriseSection from "@comp/LandingPage/SurpriseSection/Page";
import BetweenSexualSection from "@comp/LandingPage/BetweenSexualSection/page"; import BetweenSexualSection from "@comp/LandingPage/BetweenSexualSection/Page";
import BrandsLogoSection from "@comp/LandingPage/BrandsLogoSection/page"; import BrandsLogoSection from "@comp/LandingPage/BrandsLogoSection/Page";
import BeautySection from "@comp/LandingPage/BeautySection/page"; import BeautySection from "@comp/LandingPage/BeautySection/Page";
import HomeSection from "@comp/LandingPage/HomeSection/page"; import HomeSection from "@comp/LandingPage/HomeSection/Page";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
export default function Page() { export default function Page() {

View File

@ -1,15 +1,15 @@
"use client"; "use client";
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import GalleryBox from "plugins/Gallery/page"; import GalleryBox from "plugins/Gallery/Page";
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import logo from "../../../../public/images/logo.png"; import logo from "../../../../public/images/logo.png";
import Image from "next/image"; import Image from "next/image";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import AddToCart from "@comp/Cards/Components/AddToCart/page"; import AddToCart from "@comp/Cards/Components/AddToCart/Page";
const page = ({ params }) => { const Page = ({ params }) => {
const [product, setProduct] = useState([]); const [product, setProduct] = useState([]);
const [specificationsHeader, setSpecificationsHeader] = useState([]); const [specificationsHeader, setSpecificationsHeader] = useState([]);
@ -104,8 +104,8 @@ const page = ({ params }) => {
</div> </div>
<ul className="mt-3 px-3"> <ul className="mt-3 px-3">
{specificationsHeader.map((e) => ( {specificationsHeader.map((e, index) => (
<li className=" flex my-2"> <li className=" flex my-2" key={index}>
<div className="w-[10px] h-[10px] relative rounded-full bg-primary-500 mt-1"></div> <div className="w-[10px] h-[10px] relative rounded-full bg-primary-500 mt-1"></div>
<p className="mb-0 w-full text-sm text-gray-700 mx-2 "> <p className="mb-0 w-full text-sm text-gray-700 mx-2 ">
{e} {e}
@ -130,12 +130,14 @@ const page = ({ params }) => {
height={350} height={350}
className=" mx-auto !object-cover" className=" mx-auto !object-cover"
onClick={() => CTX.setIsOpenLightBox(true)} onClick={() => CTX.setIsOpenLightBox(true)}
alt=""
/> />
) : ( ) : (
<div className="xs:!w-[85px] lg:!w-[85px] my-10 "> <div className="xs:!w-[85px] lg:!w-[85px] my-10 ">
<Image <Image
src={logo} src={logo}
className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5" className="xs:!w-[70px] lg:!w-[70px] mx-auto !object-cover opacity-25 mt-5"
alt=""
/> />
</div> </div>
)} )}
@ -256,6 +258,7 @@ const page = ({ params }) => {
className={ className={
index % 2 === 0 ? "bg-gray-50 p-3" : "bg-gray-100 p-3" index % 2 === 0 ? "bg-gray-50 p-3" : "bg-gray-100 p-3"
} }
key={index}
> >
<p className="mb-0 text-sm text-gray-600"> <p className="mb-0 text-sm text-gray-600">
{e.title}: {e.title}:
@ -327,4 +330,4 @@ const page = ({ params }) => {
); );
}; };
export default page; export default Page;

View File

@ -1,13 +1,13 @@
"use client"; "use client";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React, { useContext, useEffect } from "react"; import React, { useContext, useEffect } from "react";
import SideBarProfile from "../component/SideBarProfile/page"; import SideBarProfile from "../component/SideBarProfile/Page";
import AppContext from "@ctx/AppContext"; import AppContext from "@ctx/AppContext";
import BottomSheetDeleteAddress from "plugins/bottomSheet/BottomSheetDeleteAddress"; import BottomSheetDeleteAddress from "plugins/bottomSheet/BottomSheetDeleteAddress";
const page = () => { const Page = () => {
const CTX = useContext(AppContext); const CTX = useContext(AppContext);
const addressData = CTX.state.addressData; const addressData = CTX.state.addressData;
@ -55,8 +55,8 @@ const page = () => {
</th> </th>
</tr> </tr>
</thead> </thead>
{addressData.map((e) => ( {addressData.map((e, index) => (
<tbody className="text-gray-600 text-sm"> <tbody className="text-gray-600 text-sm" key={index}>
<tr className="border-b"> <tr className="border-b">
<td className="px-4 py-3 text-center"> <td className="px-4 py-3 text-center">
{e.province} ، {e.city} ، {e.address} ،{e.plaque} ، {e.province} ، {e.city} ، {e.address} ،{e.plaque} ،
@ -93,4 +93,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,9 +1,9 @@
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React from "react"; import React from "react";
import SideBarProfile from "../component/SideBarProfile/page"; import SideBarProfile from "../component/SideBarProfile/Page";
const page = () => { const Page = () => {
return ( return (
<> <>
<Navbar theme={1} /> <Navbar theme={1} />
@ -92,4 +92,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,8 +1,8 @@
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import React from "react"; import React from "react";
import SideBarProfile from "./component/SideBarProfile/page"; import SideBarProfile from "./component/SideBarProfile/Page";
const page = () => { const Page = () => {
return ( return (
<> <>
<Navbar theme={1} /> <Navbar theme={1} />
@ -57,4 +57,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,11 +1,11 @@
"use client"; "use client";
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import { useSearchParams } from "next/navigation"; import { useSearchParams } from "next/navigation";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React from "react"; import React from "react";
const page = () => { const Page = () => {
const params = useSearchParams(); const params = useSearchParams();
const refid = params.get("refid"); const refid = params.get("refid");
const paymentStatus = params.get("paymentStatus"); const paymentStatus = params.get("paymentStatus");
@ -92,4 +92,4 @@ const page = () => {
); );
}; };
export default page; export default Page;

View File

@ -1,9 +1,9 @@
import Footer from "@comp/Footer/page"; import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/page"; import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber"; import PersianNumber from "plugins/PersianNumber";
import React from "react"; import React from "react";
const page = () => { const Page = () => {
const number = "02188195164"; const number = "02188195164";
return ( return (
<> <>
@ -15,8 +15,7 @@ const page = () => {
<div className="flex justify-center xs:hidden lg:block"> <div className="flex justify-center xs:hidden lg:block">
<div className="absolute mr-[-1100px] mt-[-200px]"> <div className="absolute mr-[-1100px] mt-[-200px]">
<p className="mb-0 text-[300px] opacity-10 font-extrabold text-white "> <p className="mb-0 text-[300px] opacity-10 font-extrabold text-white ">
{" "} {", "}
,
</p> </p>
</div> </div>
</div> </div>
@ -93,4 +92,4 @@ const page = () => {
); );
}; };
export default page; export default Page;