fix h1 and meta

master
حسین معصومی پور 2025-01-10 21:00:16 +03:30
parent fded1df2aa
commit 246f137eda
5 changed files with 100 additions and 114 deletions

View File

@ -40,13 +40,6 @@ const BrandData = ({ params, data, product }) => {
</p>
</div>
<div>
<div
id="blog-content"
dangerouslySetInnerHTML={{ __html: data.description }}
/>
</div>
<div className="grid xs:grid-cols-1 lg:grid-cols-5 gap-5">
{product?.products?.map((e) => (
<div className="relative">
@ -70,6 +63,13 @@ const BrandData = ({ params, data, product }) => {
</div>
)}
</div>
<div>
<div
id="blog-content"
dangerouslySetInnerHTML={{ __html: data.description }}
/>
</div>
</div>
</div>
</div>

View File

@ -180,7 +180,7 @@ const BlogsData = ({ dataCaetgories, data }) => {
</p>
</div>
</Link>
<Link href={`/brands/2fd16c58-81c1-4f1c-9666-77a4b9b482b5/کدکس`}>
<Link href={`/brands/d1e7fd6b-3f50-4a10-8854-63beb8c793dc/کدکس`}>
<div className="w-[100px] h-[100px] rounded-full border-8 border-white shadow-sm mx-2 hover:bg-white tr03 group ">
<p className="mb-0 font-bold text-center mt-7 text-white group-hover:text-black tr03 ">
کدکس

View File

@ -62,57 +62,69 @@ const HeroSection = () => {
return (
<>
<div className="relative w-full xs:h-[200px] md:h-[400px] lg:h-[400px] xl:h-[650px] overflow-hidden lg:mt-[-18px] xs:mt-5 xs:rounded-2xl lg:rounded-none ">
<div
className="absolute flex transition-transform duration-500"
style={{ transform: `translateX(-${currentIndex * 100}%)` }}
>
{slides.map((slide) => (
<Link
href={slide.url}
key={slide.id}
className="flex-shrink-0 w-full"
<div className="text-center relative xs:my-10 lg:mb-20 lg:mt-20">
<div className="absolute xs:mt-[-5px] lg:mt-[-45px] w-full z-0">
<p className="xs:text-[15px] lg:text-[80px] bet-text font-bold">
Vesmeh Cosmetics Shop
</p>
</div>
<h1 className="xs:text-[15px] lg:text-[40px] font-bold relative z-10 px-10">
فروشگاه اینترنتی لوازم آرایشی و بهداشتی وسمه{" "}
</h1>
</div>
<div className="lg:px-20 lg:mt-10 lg:rounded-3xl">
<div className="relative w-full xs:h-[190px] md:h-[400px] lg:h-[260px] xl:h-[400px] 2xl:h-[600px] overflow-hidden lg:mt-[-18px] xs:mt-5 xs:rounded-2xl lg:rounded-3xl ">
<div
className="absolute flex transition-transform duration-500"
style={{ transform: `translateX(-${currentIndex * 100}%)` }}
>
{slides.map((slide) => (
<Link
href={slide.url}
key={slide.id}
className="flex-shrink-0 w-full"
>
<div className="block lg:hidden xs:mx-2 lg:mx-0">
<Image
src={slide?.imageResponsive}
alt={slide?.title}
className="!w-full xs:h-[200px] md:h-[400px] lg:h-[260px] xl:h-[400px] 2xl:h-[600px] rounded-2xl lg:rounded-none object-cover"
layout="responsive"
width={1500}
height={1500}
/>
</div>
<div className="hidden lg:block">
<Image
src={slide?.image}
alt={slide?.title}
className="!w-full xs:h-[200px] md:h-[500px] lg:h-[260px] xl:h-[400px] 2xl:h-[600px] rounded-2xl lg:rounded-none object-cover "
layout="responsive"
width={1500}
height={1500}
/>
</div>
</Link>
))}
</div>
</div>
<div className=" mt-4 px-4 flex justify-center ">
{slides.map((e, index) => (
<button
key={index}
onClick={() => goToSlide(index)}
className={`rounded-full xs:text-[11px] md:text-sm mt-3 mx-1 ${
index === currentIndex
? "bg-gray-100 w-fit xs:h-4 md:h-6 px-2 relative "
: "bg-gray-400 opacity-40 xs:w-4 md:w-6 xs:h-4 md:h-6 "
}`}
>
<div className="block lg:hidden xs:mx-2 lg:mx-0">
<Image
src={slide?.imageResponsive}
alt={slide?.title}
className="!w-full xs:h-[200px] md:h-[400px] lg:h-[400px] xl:h-[650px] rounded-2xl lg:rounded-none object-cover"
layout="responsive"
width={800}
height={600}
/>
</div>
<div className="hidden lg:block">
<Image
src={slide?.image}
alt={slide?.title}
className="!w-full xs:h-[200px] md:h-[400px] lg:h-[400px] xl:h-[650px] rounded-2xl lg:rounded-none object-cover "
layout="responsive"
width={800}
height={600}
/>
</div>
</Link>
{index === currentIndex && e.title}
</button>
))}
</div>
</div>
<div className=" mt-4 px-4">
{slides.map((e, index) => (
<button
key={index}
onClick={() => goToSlide(index)}
className={`rounded-full xs:text-[11px] md:text-sm mt-3 mx-1 ${
index === currentIndex
? "bg-gray-100 w-fit xs:h-4 md:h-6 px-2 relative top-[-6px] "
: "bg-gray-400 opacity-40 xs:w-4 md:w-6 xs:h-4 md:h-6 "
}`}
>
{index === currentIndex && e.title}
</button>
))}
</div>
</>
);
};

View File

@ -32,61 +32,41 @@ async function getProduct(id) {
return post;
}
// export async function generateMetadata({ params }) {
// const data = await getData(params.id[0]);
export async function generateMetadata({ params }) {
const data = await getData(params.id[0]);
// const decodedName = decodeURIComponent(params.id[1]);
// const imageUrl = new URL(
// data?.product?.files && data?.product?.files[0]?.fileLocation,
// process.env.STORAGE_URL
// );
console.log("dataaaaa", data);
// const metadataUrl = new URL(
// `products/${params.id[0]}/${data?.product?.persianName}`,
// process.env.NEXT_PUBLIC_APP_URL
// );
// return {
// title: data?.product?.persianName,
// description: `خرید ${data?.product?.persianName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
// metadataBase: metadataUrl,
// product_id_meta: data?.product?.id,
// alternates: {
// canonical: metadataUrl,
// },
const metadataUrl = new URL(
`products/${params.id[0]}/${data?.product?.persianName}`,
process.env.NEXT_PUBLIC_APP_URL
);
return {
title: !!data?.metaTags.find((e) => e.type == "title")
? data?.metaTags.find((e) => e.type == "title")?.value
: data?.persianName,
description: !!data?.metaTags.find((e) => e.type == "description")
? data?.metaTags.find((e) => e.type == "description")?.value
: ` خرید برند ${data?.persianName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
// keywords: [
// "آرایشی",
// "بهداشت خانگی",
// "محصولات زیبایی",
// "لوازم تمیزی",
// "مراقبت شخصی",
// ],
// openGraph: {
// title: data?.product?.persianName,
// description: ` خرید ${data?.product?.persianName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
// images: [imageUrl],
// url: metadataUrl,
// type: "website",
// locale: "fa-IR",
// type: "website",
// },
// twitter: {
// site: "@vesmehstore",
// description: ` خرید ${data?.product?.persianName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
// title: data?.product?.persianName,
// creator: "@vesmehstore",
// },
// other: {
// product_id: data?.product?.id,
// product_name: data?.product?.persianName,
// product_price: data?.product?.costWithDiscount / 10,
// product_old_price: data?.product?.cost / 10,
// availability: data?.product?.stock > 0 ? "instock" : "outofstock",
// guarantee: "guarantee_sample",
// },
// };
// }
openGraph: {
title: !!data?.metaTags.find((e) => e.type == "title")
? data?.metaTags.find((e) => e.type == "title")?.value
: data?.persianName,
description: !!data?.metaTags.find((e) => e.type == "description")
? data?.metaTags.find((e) => e.type == "description")?.value
: ` خرید برند ${data?.persianName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
},
twitter: {
title: !!data?.metaTags.find((e) => e.type == "title")
? data?.metaTags.find((e) => e.type == "title")?.value
: data?.persianName,
description: !!data?.metaTags.find((e) => e.type == "description")
? data?.metaTags.find((e) => e.type == "description")?.value
: ` خرید برند ${data?.persianName}| برندهای متنوع با پایین ترین قیمت | فروشگاه اینترنتی وسمه`,
},
};
}
const Page = async ({ params }) => {
const data = await getData(params.id[0]);

View File

@ -29,13 +29,7 @@ export const metadata = {
url: "https://www.vesmeh.com",
},
],
keywords: [
"آرایشی",
"بهداشت خانگی",
"محصولات زیبایی",
"لوازم تمیزی",
"مراقبت شخصی",
],
openGraph: {
title:
"خرید لوازم آرایشی و بهداشتی قیمت مناسب و اصل | فروشگاه اینترنتی وسمه",