fix: refactor tracking requests

This commit is contained in:
Christel Westerberg
2024-07-15 13:35:00 +02:00
parent c7446032fe
commit 183e1cd6d2
14 changed files with 74 additions and 163 deletions
@@ -11,14 +11,14 @@ import styles from "./loyaltyPage.module.css"
import type { LangParams } from "@/types/params"
export default async function LoyaltyPage({ lang }: LangParams) {
const loyaltyPage = await serverClient().contentstack.loyaltyPage.get()
const loyaltyPageRes = await serverClient().contentstack.loyaltyPage.get()
if (!loyaltyPage) {
if (!loyaltyPageRes) {
return null
}
const loyaltyPageTracking = serverClient().contentstack.loyaltyPage.tracking()
const userTracking = serverClient().user.tracking()
const { tracking, loyaltyPage } = loyaltyPageRes
return (
<section className={styles.content}>
{loyaltyPage.sidebar.length ? (
@@ -31,10 +31,7 @@ export default async function LoyaltyPage({ lang }: LangParams) {
<Blocks blocks={loyaltyPage.blocks} lang={lang} />
) : null}
</MaxWidth>
<TrackingSDK
pageDataPromise={loyaltyPageTracking}
userDataPromise={userTracking}
/>
<TrackingSDK pageData={tracking} />
</section>
)
}
@@ -14,14 +14,13 @@ import styles from "./accountPage.module.css"
import { LangParams } from "@/types/params"
export default async function MyPages({ lang }: LangParams) {
const accountPage = await serverClient().contentstack.accountPage.get()
const accountPageRes = await serverClient().contentstack.accountPage.get()
if (!accountPage) {
if (!accountPageRes) {
return null
}
const accountPageTracking = serverClient().contentstack.accountPage.tracking()
const userTrackingData = serverClient().user.tracking()
const { tracking, accountPage } = accountPageRes
const linkToOverview = `/${lang}/webview${accountPage.url}` !== overview[lang]
@@ -29,10 +28,7 @@ export default async function MyPages({ lang }: LangParams) {
<MaxWidth className={styles.blocks} tag="main">
{linkToOverview ? <LinkToOverview lang={lang} /> : null}
<Content lang={lang} content={accountPage.content} />
<TrackingSDK
pageDataPromise={accountPageTracking}
userDataPromise={userTrackingData}
/>
<TrackingSDK pageData={tracking} />
</MaxWidth>
)
}
@@ -11,15 +11,13 @@ import styles from "./loyaltyPage.module.css"
import { LangParams } from "@/types/params"
export default async function AboutScandicFriends({ lang }: LangParams) {
const loyaltyPage = await serverClient().contentstack.loyaltyPage.get()
const loyaltyPageRes = await serverClient().contentstack.loyaltyPage.get()
if (!loyaltyPage) {
if (!loyaltyPageRes) {
return null
}
const loyaltyPageTracking = serverClient().contentstack.loyaltyPage.tracking()
const userTrackingData = serverClient().user.tracking()
const { tracking, loyaltyPage } = loyaltyPageRes
return (
<section className={styles.content}>
<LinkToOverview lang={lang} />
@@ -27,10 +25,7 @@ export default async function AboutScandicFriends({ lang }: LangParams) {
<Title>{loyaltyPage.heading}</Title>
<Blocks blocks={loyaltyPage.blocks} lang={lang} />
</MaxWidth>
<TrackingSDK
pageDataPromise={loyaltyPageTracking}
userDataPromise={userTrackingData}
/>
<TrackingSDK pageData={tracking} />
</section>
)
}
+11 -8
View File
@@ -1,16 +1,19 @@
import { serverClient } from "@/lib/trpc/server"
import TrackingSDKClient from "./Client"
import { TrackingSDKProps } from "@/types/components/tracking"
import { TrackingSDKPageData } from "@/types/components/tracking"
export const preloadUserTracking = () => {
void serverClient().user.tracking()
}
export default async function TrackingSDK({
pageDataPromise,
userDataPromise,
pageData,
}: {
pageDataPromise: Promise<TrackingSDKProps["pageData"]>
userDataPromise: Promise<TrackingSDKProps["userData"]>
pageData: TrackingSDKPageData
}) {
const pageData = await pageDataPromise
const userData = await userDataPromise
const userTrackingData = await serverClient().user.tracking()
return <TrackingSDKClient pageData={pageData} userData={userData} />
return <TrackingSDKClient pageData={pageData} userData={userTrackingData} />
}