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

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@ import Image from "next/image";
import PersianNumber from "plugins/PersianNumber";
import React from "react";
import p1 from "../../../public/images/product/1.png";
import AddToCart from "../Components/AddToCart/page";
import AddToCart from "../Components/AddToCart/Page";
const CardSurprise = () => {
return (
@ -24,7 +24,11 @@ const CardSurprise = () => {
</div>
</div>{" "}
<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 className="p-3 text-right">
<p className="mb-0 text-[15px] font-bold max-h-[50px] ">

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
"use client";
import CardCategoriesMobile from "@comp/Cards/CardCategoriesMobile/page";
import CardNormal from "@comp/Cards/CardNormal/page";
import CardCategoriesMobile from "@comp/Cards/CardCategoriesMobile/Page";
import CardNormal from "@comp/Cards/CardNormal/Page";
import AppContext from "@ctx/AppContext";
import React, { useContext } from "react";
import InfiniteScroll from "react-infinite-scroll-component";
@ -13,8 +13,8 @@ const ListProductsMobile = (props) => {
return (
<>
<div className="grid xs:grid-cols-1 lg:grid-cols-4 xl:grid-cols-5">
{products?.map((e) => (
<CardCategoriesMobile data={e} />
{products?.map((e, index) => (
<CardCategoriesMobile key={index} data={e} />
))}
</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=" p-3 xs:w-full lg:w-8/12 mx-2 flex rtl">
<div className="xs:w-[70px] lg:w-[100px]">
<Image src={logo} />
<Image src={logo} alt="" />
</div>
<div className="mr-3">
<h3>

View File

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

View File

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

View File

@ -28,7 +28,7 @@ const HeroSection = () => {
<div className="flex justify-center">
<div className="absolute w-full">
<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>
@ -46,7 +46,7 @@ const HeroSection = () => {
<div className="flex justify-center">
<div className="absolute w-full">
<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>
@ -64,7 +64,7 @@ const HeroSection = () => {
<div className="flex justify-center">
<div className="absolute w-full">
<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>
@ -82,7 +82,7 @@ const HeroSection = () => {
<div className="flex justify-center">
<div className="absolute w-full">
<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>
@ -100,7 +100,7 @@ const HeroSection = () => {
<div className="flex justify-center">
<div className="absolute w-full">
<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>
@ -118,7 +118,7 @@ const HeroSection = () => {
<div className="flex justify-center">
<div className="absolute w-full">
<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>

View File

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

View File

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

View File

@ -1,5 +1,5 @@
"use client";
import CardCart from "@comp/Cards/CardCart/page";
import CardCart from "@comp/Cards/CardCart/Page";
import AppContext from "@ctx/AppContext";
import Link from "next/link";
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>
{cart.map((e) => (
<CardCart data={e} />
{cart.map((e, index) => (
<CardCart key={index} data={e} />
))}
</div>
</div>

View File

@ -85,6 +85,7 @@ const SideBarNavBarMobile = () => {
setFirstChild(dataNav[index].children);
setFirstChildIndex(index);
}}
key={index}
>
<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>
@ -123,8 +124,8 @@ const SideBarNavBarMobile = () => {
</p>
</Link>
</li>{" "}
{firstChild.map((e) => (
<li>
{firstChild.map((e, index) => (
<li key={index}>
<Link
href={`/categories/${e.id}`}
onClick={() => CTX.setCloseNavbar(false)}

View File

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

View File

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

View File

@ -58,7 +58,11 @@ const Input = ({
)}
{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>
) : (
<input

View File

@ -70,8 +70,8 @@ const MovingLogos = () => {
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"
>
{logos.map((e) => (
<li className="w-[]">
{logos.map((e, index) => (
<li className="w-[]" key={index}>
<Image
key={e.id}
id={`logo-${e.id}`}

View File

@ -1,6 +1,6 @@
"use client";
import CardCart from "@comp/Cards/CardCart/page";
import CardCart from "@comp/Cards/CardCart/Page";
import AppContext from "@ctx/AppContext";
import Link from "next/link";
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>
{cart.map((e) => (
<CardCart data={e} />
{cart.map((e, index) => (
<CardCart key={index} data={e} />
))}
</div>
</div>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
"use client";
import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/page";
import Navbar from "@comp/Navbar/page";
import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/Page";
import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber";
import React, { useContext, useEffect, useState } from "react";
@ -14,7 +14,7 @@ import BottomSheetAddress from "plugins/bottomSheet/BottomSheetAddress";
import Chapar from "plugins/Chapar";
import { toast } from "react-toastify";
const page = () => {
const Page = () => {
const CTX = useContext(AppContext);
const [shippingData, setShippingData] = useState([]);
const [shippingId, setShippingID] = useState(null);
@ -152,6 +152,7 @@ const page = () => {
: ""
}`}
onClick={() => setAddressId(index)}
key={index}
>
<div>
<svg
@ -222,6 +223,7 @@ const page = () => {
: ""
}`}
onClick={() => handleShippingID(index)}
key={index}
>
<div>
<svg
@ -280,7 +282,7 @@ const page = () => {
}`}
>
<div>
<Image src={zarin} className="w-[50px]" />
<Image src={zarin} className="w-[50px]" alt="" />
</div>
<div className="mx-2">
<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>
<Image src={ap} className="w-[45px]" />
<Image src={ap} className="w-[45px]" alt="" />
</div>
<div className="mx-2">
<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";
import CardCart from "@comp/Cards/CardCart/page";
import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/page";
import Navbar from "@comp/Navbar/page";
import CardCart from "@comp/Cards/CardCart/Page";
import NavBarDownCart from "@comp/Carts/component/NavBarDownCart/Page";
import Navbar from "@comp/Navbar/Page";
import AppContext from "@ctx/AppContext";
import Link from "next/link";
import { useRouter } from "next/navigation";
@ -10,7 +10,7 @@ import PersianNumber from "plugins/PersianNumber";
import React, { useContext, useEffect } from "react";
import { toast } from "react-toastify";
const page = () => {
const Page = () => {
const CTX = useContext(AppContext);
const router = useRouter();
const cart = CTX.state.cart;
@ -69,10 +69,10 @@ const page = () => {
closeOnClick: true,
});
}
router.push("/cart/checkout"); // Redirect to the checkout page
router.push("/cart/checkout"); // Redirect to the checkout Page
} else {
// 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 className="">
{cart?.map((e) => (
<CardCart data={e} />
{cart?.map((e, index) => (
<CardCart key={index} data={e} />
))}
<div className="">
@ -194,4 +194,4 @@ const page = () => {
);
};
export default page;
export default Page;

View File

@ -1,17 +1,17 @@
"use client";
import Navbar from "@comp/Navbar/page";
import Navbar from "@comp/Navbar/Page";
import React, { useContext, useEffect, useState } from "react";
import Footer from "@comp/Footer/page";
import ListProdocts from "@comp/Category/ListProdocts/page";
import FilterCategoryMobile from "@comp/Category/Mobile/FilterCategoryMobile/page";
import FilterCategory from "@comp/Category/FilterCategory/page";
import ListProductsMobile from "@comp/Category/Mobile/ListProductsMobile/page";
import PaginationCategoory from "@comp/Category/PaginationCategoory/page";
import Footer from "@comp/Footer/Page";
import ListProdocts from "@comp/Category/ListProdocts/Page";
import FilterCategoryMobile from "@comp/Category/Mobile/FilterCategoryMobile/Page";
import FilterCategory from "@comp/Category/FilterCategory/Page";
import ListProductsMobile from "@comp/Category/Mobile/ListProductsMobile/Page";
import PaginationCategoory from "@comp/Category/PaginationCategoory/Page";
import AppContext from "@ctx/AppContext";
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 products = await res.json();
const CTX = useContext(AppContext);

View File

@ -1,9 +1,9 @@
import Footer from "@comp/Footer/page";
import Navbar from "@comp/Navbar/page";
import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber";
import React from "react";
const page = () => {
const Page = () => {
const number = "02188195164";
return (
<>
@ -15,8 +15,7 @@ const page = () => {
<div className="flex justify-center xs:hidden lg:block">
<div className="absolute mr-[-1100px] mt-[-200px]">
<p className="mb-0 text-[300px] opacity-10 font-extrabold text-white ">
{" "}
,
{", "}
</p>
</div>
</div>
@ -199,9 +198,9 @@ const page = () => {
فروشگاه وسمه، ما به دنبال ارائه محصولات با کیفیت و خدماتی استثنایی
هستیم تا به شما کمک کنیم تا به بهترین شکل ممکن زندگی کنید. اگر سوالی
دارید یا نیاز به راهنمایی دارید، تیم ما همیشه در دسترس است تا به شما
کمک کند. با افتخار ما را در فروشگاه "وسمه" به عنوان همراهی شما در
مسیر زیبایی و اعتماد به نفس خوش آمدید. با احترام و دوستی، تیم
فروشگاه "وسمه
کمک کند. با افتخار ما را در فروشگاه وسمه به عنوان همراهی شما در مسیر
زیبایی و اعتماد به نفس خوش آمدید. با احترام و دوستی، تیم فروشگاه
وسمه
</p>
</div>
<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";
import Footer from "@comp/Footer/page";
import Navbar from "@comp/Navbar/page";
import Footer from "@comp/Footer/Page";
import Navbar from "@comp/Navbar/Page";
import PersianNumber from "plugins/PersianNumber";
import React, { useEffect, useState } from "react";
const page = () => {
const Page = () => {
const [faq, setFaq] = useState([]);
const [faqSelect, setFaqSelect] = useState(0);
@ -52,6 +52,7 @@ const page = () => {
faqSelect == index ? "bg-gray-100" : "bg-primary-100"
}`}
onClick={() => setFaqSelect(index)}
key={index}
>
<div className="flex">
<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 "react-toastify/dist/ReactToastify.css";
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 BottomSheetAddress from "plugins/bottomSheet/BottomSheetAddress";
import citiesJSON from "iranCities";
@ -173,7 +173,7 @@ export default function RootLayout({ children }) {
);
const post = await res.json();
if (paginationSay) {
// If it's a paginated request (not the first page)
// If it's a paginated request (not the first Page)
window.scrollTo({
top: 0,
behavior: "smooth", // Optional: smooth scrolling behavior
@ -184,16 +184,16 @@ export default function RootLayout({ children }) {
}
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
}
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);
setPager(post.pager);
} 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);
setProducts((data) => [...(data ? data : []), ...post.products]);
}

View File

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

View File

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

View File

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

View File

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

View File

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