about.js
2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"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 };
}
}