Merged in fix/adjust-datalayer (pull request #62)
Fix/adjust datalayer Approved-by: Michael Zetterberg
This commit is contained in:
@@ -2,6 +2,7 @@ import { notFound } from "next/navigation"
|
||||
|
||||
import { request } from "@/lib/request"
|
||||
import { GetCurrentBlockPage } from "@/lib/graphql/Query/CurrentBlockPage.graphql"
|
||||
import { GetCurrentBlockPageTrackingData } from "@/lib/graphql/Query/CurrentBlockPageTrackingData.graphql"
|
||||
|
||||
import ContentPage from "@/components/Current/ContentPage"
|
||||
import Header from "@/components/Current/Header"
|
||||
@@ -9,6 +10,7 @@ import Tracking from "@/components/Current/Tracking"
|
||||
|
||||
import type { PageArgs, LangParams, UriParams } from "@/types/params"
|
||||
import type { GetCurrentBlockPageData } from "@/types/requests/currentBlockPage"
|
||||
import { TrackingData } from "@/types/requests/trackingData"
|
||||
|
||||
export default async function CurrentContentPage({
|
||||
params,
|
||||
@@ -26,7 +28,7 @@ export default async function CurrentContentPage({
|
||||
url: searchParams.uri,
|
||||
},
|
||||
{
|
||||
tags: [`${searchParams.uri}-${params.lang}`]
|
||||
tags: [`${searchParams.uri}-${params.lang}`],
|
||||
}
|
||||
)
|
||||
|
||||
@@ -36,11 +38,24 @@ export default async function CurrentContentPage({
|
||||
console.log("SearchParams URI: ", searchParams.uri)
|
||||
throw new Error("Not found")
|
||||
}
|
||||
|
||||
// This is currently to be considered a temporary solution to provide the tracking with a few values in english to align with existing reports
|
||||
const pageDataForTracking = await request<TrackingData>(
|
||||
GetCurrentBlockPageTrackingData,
|
||||
{ uid: response.data.all_current_blocks_page.items[0].system.uid },
|
||||
{
|
||||
tags: [`${searchParams.uri}-en`],
|
||||
}
|
||||
)
|
||||
|
||||
const pageData = response.data.all_current_blocks_page.items[0]
|
||||
|
||||
const trackingData = {
|
||||
lang: params.lang,
|
||||
publishedDate: pageData.system.updated_at,
|
||||
createdDate: pageData.system.created_at,
|
||||
pageId: pageData.system.uid,
|
||||
englishUrl: pageDataForTracking.data?.current_blocks_page.url,
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -9,9 +9,13 @@ import { usePathname, useSearchParams } from "next/navigation"
|
||||
import { useEffect, useState } from "react"
|
||||
|
||||
function createPageObject(trackingData: TrackingData) {
|
||||
const englishSegments = trackingData.englishUrl
|
||||
? trackingData.englishUrl.split("/").filter((seg?: string) => seg)
|
||||
: null
|
||||
|
||||
const [lang, ...segments] = trackingData.pathName
|
||||
.split("/")
|
||||
.filter((v: string) => v)
|
||||
.filter((seg: string) => seg)
|
||||
|
||||
function getSiteSections(segments: string[]): SiteSectionObject {
|
||||
/*
|
||||
@@ -39,10 +43,12 @@ function createPageObject(trackingData: TrackingData) {
|
||||
}
|
||||
return sitesections
|
||||
}
|
||||
const sitesections = getSiteSections(segments)
|
||||
const sitesections = englishSegments
|
||||
? getSiteSections(englishSegments)
|
||||
: getSiteSections(segments)
|
||||
const { host: domain, href: fullurl, origin } = window.location
|
||||
const page_obj = {
|
||||
pagename: segments.join("|"),
|
||||
pagename: englishSegments ? englishSegments.join("|") : segments.join("|"),
|
||||
pagetype: "contentpage",
|
||||
pageurl: origin + trackingData.pathName,
|
||||
fullurl,
|
||||
@@ -53,7 +59,7 @@ function createPageObject(trackingData: TrackingData) {
|
||||
querystring: trackingData.queryString || "",
|
||||
pageid: trackingData.pageId,
|
||||
// sessionid: "<unique identifier of session>", // base on what?
|
||||
domainlanguage: lang,
|
||||
domainlanguage: trackingData.lang ? trackingData.lang : lang,
|
||||
hotelbrand: "scandic",
|
||||
siteversion: "new-web",
|
||||
...sitesections,
|
||||
|
||||
5
lib/graphql/Query/CurrentBlockPageTrackingData.graphql
Normal file
5
lib/graphql/Query/CurrentBlockPageTrackingData.graphql
Normal file
@@ -0,0 +1,5 @@
|
||||
query GetCurrentBlockPageTrackingData($uid: String!) {
|
||||
current_blocks_page(uid: $uid, locale: "en") {
|
||||
url
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,18 @@
|
||||
import { Lang } from "../lang"
|
||||
|
||||
export type TrackingProps = {
|
||||
pageData: {
|
||||
pageId: string
|
||||
createdDate: string
|
||||
publishedDate: string
|
||||
englishUrl?: string
|
||||
lang: Lang
|
||||
}
|
||||
}
|
||||
|
||||
export type TrackingData = {
|
||||
lang: Lang
|
||||
englishUrl?: string
|
||||
pathName: string
|
||||
queryString: string
|
||||
pageId: string
|
||||
|
||||
3
types/requests/trackingData.ts
Normal file
3
types/requests/trackingData.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export type TrackingData = {
|
||||
current_blocks_page: { url: string; title: string }
|
||||
}
|
||||
Reference in New Issue
Block a user