about.js 2 KB
"use client";
import AboutAkruti from "@/components/About/AboutAkruti";
import Experience from "@/components/About/Experience";
import StudioHighlight from "@/components/About/StudioHighlight";
import Breadcrumb from "@/components/Common/Breadcrumb";
import InnerBanner from "@/components/Common/InnerBanner";
import { Contact } from "@/container/Home/Contact";
import { getAboutBySlug } from "@/services/aboutApi";
import { getRedisClient } from "@/redis-client";
import Head from "next/head";
const bannerData = [
  {
    image: "/image/inner-banner/about.png",
    title: "Banner",
  }
];
const breadcrumbData = [
  {
    href: "/",
    label: "About"
  },

];
const AboutPage = ({ aboutData = {} }) => {
  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} />
      <InnerBanner bannerData={bannerData[0] || []} />
      <AboutAkruti aboutData={aboutData?.aboutInfo} />
      <StudioHighlight studioHighlights={aboutData?.studioHighlights} />
      <Experience experience={aboutData?.experience} />
      <Contact />
    </>
  );
};
export default AboutPage;
export async function getServerSideProps({ params }) {
  const redis = getRedisClient();
  const REDIS_KEY = `${process.env.REDIS_KEY_PREFIX}_about`;
  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: { aboutData: JSON.parse(cachedData) } };
    }

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