Commit 87c12ee4 by Ravindra Kanojiya

updated collection page

1 parent 037b0fd1
......@@ -8,7 +8,6 @@ import Catalogues from "@/container/Home/Catalogues";
import { Contact } from "@/container/Home/Contact";
import { getCollectionDetailCategoryData } from "@/services/collectionDetailCategoryApi";
import { getCataloguesBySlug } from "@/services/cataloguesApi";
import { getRedisClient } from "@/redis-client";
import CompanyOverview from "@/components/Collection/CompanyOverview";
import TechnicalDetails from "@/components/Collection/TechnicalDetails";
import Explore from "@/components/Collection/Explore";
......@@ -17,6 +16,7 @@ import { useEffect, useState } from "react";
import StoneFinishCabinet from "@/components/StoneFinishCabinet/StoneFinishCabinet";
const ProductPage = ({ productData, cataloguesData }) => {
console.log("productData", productData)
const router = useRouter();
const { category, subCategory: subCategorySlug, productSlug } = router.query;
......@@ -104,7 +104,12 @@ const isStoneLayout =
{isStoneLayout && (
<StoneFinishCabinet StoneFinishCabinet={productData?.aboutInfoStone} />
)}
{isStoneLayout && (
<Video productData={productData?.aboutInfoStone?.video} />
)}
{isStoneLayout && productData?.aboutInfoStone?.gallery?.length > 0 && (
<Gallery productData={productData.aboutInfoStone.gallery} />
)}
{productData?.video && (
<Video productData={productData.video} />
)}
......@@ -154,17 +159,8 @@ export default ProductPage;
/* ---------- SSR ---------- */
export async function getServerSideProps({ params }) {
const { productSlug } = params;
const redis = getRedisClient();
const REDIS_KEY = `${process.env.REDIS_KEY_PREFIX}_product_${productSlug}`;
const REDIS_EXPIRE = parseInt(process.env.REDIS_KEY_EXPIRE) || 86400;
try {
const cachedData = await redis.get(REDIS_KEY);
if (cachedData) {
console.log("redis data fetched");
return { props: JSON.parse(cachedData) };
}
const { productSlug } = params;
const productData = await getCollectionDetailCategoryData(productSlug);
const cataloguesData = await getCataloguesBySlug();
......@@ -173,10 +169,12 @@ export async function getServerSideProps({ params }) {
return { notFound: true };
}
const result = { productData: productData[0], cataloguesData };
await redis.set(REDIS_KEY, JSON.stringify(result), "EX", REDIS_EXPIRE);
console.log("normal data fetched");
return { props: result };
return {
props: {
productData: productData[0], // ✅ single product
cataloguesData,
},
};
} catch (error) {
console.error("Product page SSR error:", error);
return { notFound: true };
......
......@@ -117,6 +117,9 @@ const isStoneLayout =
{isStoneLayout && (
<StoneFinishCabinet StoneFinishCabinet={productData?.aboutInfoStone} />
)}
{isStoneLayout && (
<Video productData={productData?.aboutInfoStone?.video} />
)}
{productData?.technicalDetails?.length > 0 && (
<TechnicalDetails productData={productData?.technicalDetails} />
)}
......
......@@ -79,6 +79,14 @@ export async function getCollectionDetailCategoryData(productSlug) {
bottomInfo: {
populate: "*",
},
video: {
populate: "*",
},
gallery: {
populate: {
image: true,
},
},
},
},
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!