catalogue.js 2.15 KB
"use client";
import InnerDetailsCatalogue from "@/components/Catalogue/InnerDetailsCatalogue";
import Breadcrumb from "@/components/Common/Breadcrumb";
import HeadTitle from "@/components/Common/HeadTitle";
import InnerBanner from "@/components/Common/InnerBanner";
import InnerContent from "@/components/Contacts/InnerContent";
import { getCataloguesBySlug } from "@/services/cataloguesApi";
import { getRedisClient } from "@/redis-client";
import Head from "next/head";
  const bannerData = [
    {
      image: "/image/inner-banner/contacts.png",
      title: "Banner",
    }
  ];
    const headTitleData = [
    {
      title: "Catalogue",
      description:"Our Akruti Luxe Catalogue brings together iconic designs, premium materials,<br /> and Contemporary elegance—your guide to living beautifully.",
     
    }
  ];
const breadcrumbData = [
  {
    href: "/",
    label: "Catalogue"
  },
  
];
const ContactsPage = ({cataloguesData={cataloguesData}}) => {
 
  return (
    <>
      <Head>
        <title>Akruti </title>
        <meta name="description" content="Akruti" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <Breadcrumb breadcrumbData={breadcrumbData} />
      <HeadTitle categoryData={headTitleData[0] || []} />
      <InnerDetailsCatalogue cataloguesData={cataloguesData} />
    </>
  );
};
export default ContactsPage;
export async function getServerSideProps({ params }) {
  const redis = getRedisClient();
  const REDIS_KEY = `${process.env.REDIS_KEY_PREFIX}_catalogues`;
  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: { cataloguesData: JSON.parse(cachedData) } };
    }

    const cataloguesData = await getCataloguesBySlug();
    await redis.set(REDIS_KEY, JSON.stringify(cataloguesData), "EX", REDIS_EXPIRE);
    console.log("normal data fetched");
    return { props: { cataloguesData } };
  } catch (error) {
    console.error("Product page SSR error:", error);
    return { notFound: true };
  }
}