diff --git a/components/AppsComponent/ProductData/page.jsx b/components/AppsComponent/ProductData/page.jsx index c8f7432..28821c4 100644 --- a/components/AppsComponent/ProductData/page.jsx +++ b/components/AppsComponent/ProductData/page.jsx @@ -142,6 +142,8 @@ const ProductData = ({ params, data }) => { className=" mx-auto !object-cover" onClick={() => CTX.setIsOpenLightBox(true)} alt={`${product.persianName} - ${product.englishName}`} + property + loading="eager" /> ) : (
diff --git a/components/Footer/page.jsx b/components/Footer/page.jsx index 76396c7..564e20b 100644 --- a/components/Footer/page.jsx +++ b/components/Footer/page.jsx @@ -1,6 +1,7 @@ import Image from "next/image"; import Link from "next/link"; import logo from "../../public/images/logo.png"; +import bale from "@img/bale.png"; const Footer = () => { return ( @@ -35,7 +36,7 @@ const Footer = () => {
-
+
@@ -52,7 +53,7 @@ const Footer = () => { -
  • +
  • کرم مرطوب کننده دست و پا{" "}
  • @@ -60,28 +61,28 @@ const Footer = () => { -
  • +
  • مرطوب کننده و آبرسان صورت{" "}
  • -
  • +
  • شوینده سطوح
  • -
  • +
  • بهداشت دهان و دندان
  • -
  • +
  • نرم کننده مو
  • @@ -92,34 +93,34 @@ const Footer = () => { -
  • +
  • کیت رنگ مو{" "}
  • -
  • +
  • بهداشت خانه و آشپرخانه{" "}
  • -
  • +
  • سرم مو{" "}
  • -
  • +
  • ژل بهداشتی بانوان{" "}
  • -
  • +
  • مجله زیبایی وسمه{" "}
  • @@ -136,20 +137,24 @@ const Footer = () => {
      -
    • +
    • سوالات متداول{" "}
    • -
    • تماس باما
    • +
    • + تماس باما{" "} +
    • -
    • +
    • قوانین سایت
    • -
    • درباره ما
    • +
    • + درباره ما{" "} +
    @@ -194,84 +199,87 @@ const Footer = () => {
    -
    - - - - - -
    -
    - - + +
    + - - - - - - - -
    -
    - - - -
    + + + +
    + -
    - - - -
    + +
    + + + + + + + + + + +
    +
    + +
    +
    + پیام رسان بله وسمه +
    +
    +
    + + +
    + + + +
    +
    diff --git a/components/LandingPage/BeautySection/page.jsx b/components/LandingPage/BeautySection/page.jsx index e303c6a..28b1b80 100644 --- a/components/LandingPage/BeautySection/page.jsx +++ b/components/LandingPage/BeautySection/page.jsx @@ -1,4 +1,5 @@ import CardNormal from "@comp/Cards/CardNormal/page"; +import Link from "next/link"; import { Swiper, SwiperSlide } from "swiper/react"; const BeautySection = ({ data }) => { @@ -61,11 +62,16 @@ const BeautySection = ({ data }) => { ))} -
    -

    - مشاهده بیشتر{" "} -

    -
    + +
    +

    + مشاهده بیشتر{" "} +

    +
    +
    ); diff --git a/components/LandingPage/HeroSection/page.jsx b/components/LandingPage/HeroSection/page.jsx index 93267b0..c547c5d 100644 --- a/components/LandingPage/HeroSection/page.jsx +++ b/components/LandingPage/HeroSection/page.jsx @@ -15,7 +15,7 @@ const HeroSection = () => { وسمه ، بُن مضـــــــــــارع زیبایی

    - پلتفرم زیبایی ایرانی راهی برای زیبایی بهتر + زیبایی شما در اولویت ماست{" "}

    @@ -28,7 +28,12 @@ const HeroSection = () => {
    - مراقبت پوست فروشگاه اینترنتی وسمه + مراقبت پوست فروشگاه اینترنتی وسمه
    @@ -48,7 +53,12 @@ const HeroSection = () => {
    - آرایش لب فروشگاه اینترنتی وسمه + آرایش لب فروشگاه اینترنتی وسمه
    @@ -68,7 +78,12 @@ const HeroSection = () => {
    - آرایش ناخن فروشگاه اینترنتی وسمه{" "} + آرایش ناخن فروشگاه اینترنتی وسمه{" "}
    @@ -88,7 +103,12 @@ const HeroSection = () => {
    - بهداشت جنسی فروشگاه اینترنتی وسمه + بهداشت جنسی فروشگاه اینترنتی وسمه
    @@ -108,7 +128,12 @@ const HeroSection = () => {
    - آرایش چشم فروشگاه اینترنتی وسمه + آرایش چشم فروشگاه اینترنتی وسمه
    @@ -128,7 +153,12 @@ const HeroSection = () => {
    - کرم پودر فروشگاه اینترنتی وسمه{" "} + کرم پودر فروشگاه اینترنتی وسمه{" "}
    diff --git a/components/LandingPage/HomeSection/page.jsx b/components/LandingPage/HomeSection/page.jsx index 360b5b3..138de26 100644 --- a/components/LandingPage/HomeSection/page.jsx +++ b/components/LandingPage/HomeSection/page.jsx @@ -3,6 +3,7 @@ import Image from "next/image"; import { Swiper, SwiperSlide } from "swiper/react"; import khane from "../../../public/images/khane.jpg"; import CardSurprise from "@comp/Cards/CardSurprise/page"; +import Link from "next/link"; const HomeSection = ({ data }) => { return ( @@ -62,6 +63,16 @@ const HomeSection = ({ data }) => {
    + +
    +

    + مشاهده بیشتر{" "} +

    +
    + ); diff --git a/components/LandingPage/SurpriseSection/page.jsx b/components/LandingPage/SurpriseSection/page.jsx index 93c0658..330c13b 100644 --- a/components/LandingPage/SurpriseSection/page.jsx +++ b/components/LandingPage/SurpriseSection/page.jsx @@ -66,11 +66,11 @@ const SurpriseSection = ({ data }) => { ))} -
    + {/*

    مشاهده بیشتر{" "}

    -
    +
    */} ); diff --git a/components/TimerDown/TimerDown.jsx b/components/TimerDown/TimerDown.jsx index c6e651e..445da7c 100644 --- a/components/TimerDown/TimerDown.jsx +++ b/components/TimerDown/TimerDown.jsx @@ -4,8 +4,6 @@ import PersianNumber from "plugins/PersianNumber"; import { useEffect, useState } from "react"; const TimerDown = () => { - const targetTimestamp = 1710654443 * 1000; // Convert to milliseconds - const [timeRemaining, setTimeRemaining] = useState({ days: 0, hours: 0, @@ -15,34 +13,44 @@ const TimerDown = () => { }); useEffect(() => { - const interval = setInterval(() => { + const calculateTimeRemaining = () => { + // Get current date and time const now = new Date(); - const timeDifference = targetTimestamp - now.getTime(); - if (timeDifference > 0) { - const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); - const hours = Math.floor( - (timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) - ); - const minutes = Math.floor( - (timeDifference % (1000 * 60 * 60)) / (1000 * 60) - ); - const seconds = Math.floor((timeDifference % (1000 * 60)) / 1000); - const milliseconds = timeDifference % 1000; + // Calculate yesterday's date + const yesterday = new Date(now); + yesterday.setDate(now.getDate() - 1); + yesterday.setHours(23, 59, 0, 0); // Set time to 23:59:00 - setTimeRemaining({ - days, - hours, - minutes, - seconds, - milliseconds, - }); - } else { - clearInterval(interval); - } - }, 1000); + // Calculate tomorrow's date + const tomorrow = new Date(now); + tomorrow.setDate(now.getDate() + 1); + tomorrow.setHours(23, 59, 0, 0); // Set time to 23:59:00 - return () => clearInterval(interval); + // Calculate time difference + const difference = tomorrow - now; + + // Convert time difference to days, hours, minutes, seconds, and milliseconds + const days = Math.floor(difference / (1000 * 60 * 60 * 24)); + const hours = Math.floor( + (difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) + ); + const minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60)); + const seconds = Math.floor((difference % (1000 * 60)) / 1000); + const milliseconds = difference % 1000; + + // Update state + setTimeRemaining({ days, hours, minutes, seconds, milliseconds }); + }; + + // Call calculateTimeRemaining once to set initial state + calculateTimeRemaining(); + + // Update time remaining every second + const intervalId = setInterval(calculateTimeRemaining, 1000); + + // Clean up interval on component unmount + return () => clearInterval(intervalId); }, []); return ( diff --git a/next.config.js b/next.config.js index 2b45e70..05eb8b9 100644 --- a/next.config.js +++ b/next.config.js @@ -2,6 +2,7 @@ const nextConfig = { reactStrictMode: false, // React Strict Mode is off images: { + minimumCacheTTL: 2592000, domains: ["storage.vesmeh.com"], remotePatterns: [ { diff --git a/plugins/Gallery/page.jsx b/plugins/Gallery/page.jsx index 768c684..862ae8e 100644 --- a/plugins/Gallery/page.jsx +++ b/plugins/Gallery/page.jsx @@ -25,6 +25,8 @@ const GalleryBox = ({ file }) => { className=" mx-auto !object-cover" onClick={() => CTX.setIsOpenLightBox(true)} alt={file[0].fileName} + priority + loading="eager" /> ) : (
    @@ -51,6 +53,8 @@ const GalleryBox = ({ file }) => { alt={e.fileName} width={50} height={50} + priority + loading="eager" />
    diff --git a/public/images/bale.png b/public/images/bale.png new file mode 100644 index 0000000..15907cd Binary files /dev/null and b/public/images/bale.png differ diff --git a/src/app/blogs/[...id]/page.jsx b/src/app/blogs/[...id]/page.jsx index 657187d..2d76191 100644 --- a/src/app/blogs/[...id]/page.jsx +++ b/src/app/blogs/[...id]/page.jsx @@ -10,6 +10,28 @@ async function getData(id) { const page = async ({ params }) => { const data = await getData(params.id[0]); + console.log(data); + + // const structuredData = { + // "@context": "https://schema.org", + // "@type": "BlogPosting", + // headline: "This is a cool blog post", + // image: ["small.webp", "large.webp"], + // datePublished: "2024-02-15T00:00:00", + // dateModified: "2025-02-15T00:00:00", + // author: [ + // { + // "@type": "Person", + // name: "Firstname LastName", + // jobTitle: "Blog post writer", + // worksFor: "Blog post company", + // url: `${process.env.NEXT_PUBLIC_SITE_URL}/people/firstname-lastname`, + // image: `${process.env.NEXT_PUBLIC_SITE_URL}/people/f_lastname.webp`, + // }, + // ], + // description: "There are things in this post. Don't be vague like me", + // }; + return ; }; diff --git a/src/app/layout.jsx b/src/app/layout.jsx index 23ed82e..29f7fd8 100644 --- a/src/app/layout.jsx +++ b/src/app/layout.jsx @@ -58,26 +58,25 @@ export const metadata = { other: { enamad: "735422" }, }; -// const structuredData = { -// "@context": "https://schema.org", -// "@type": "Organization", -// url: process.env.NEXT_PUBLIC_APP_URL, -// logo: "", -// name: "فروشگاه اینترنتی وسمه", -// legalName: "وسمه", -// telephone: "+982188196154", -// sameAs: ["https://t.me/vesmehhcom"], -// }; +const structuredData = { + "@context": "https://schema.org", + "@type": "Organization", + url: process.env.NEXT_PUBLIC_APP_URL, + logo: "https://storage.vesmeh.com/Logo/Med/Main.png", + name: "فروشگاه اینترنتی وسمه", + legalName: "وسمه", + telephone: "+982188196154", + sameAs: [ + "https://t.me/vesmehhcom", + "https://twitter.com/vesmehcom", + "https://www.instagram.com/vesmehcom", + ], +}; export default function RootLayout({ children }) { - // if (process.env.NEXT_PUBLIC_IS_DEV === "false") { - // - // - // } - return ( - {/* +