gatsby-core-theme 44.13.0 → 44.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/gatsby-browser.js +77 -45
- package/package.json +1 -1
- package/src/components/app-tracker-ssr.js +11 -6
- package/src/helpers/tracker.mjs +49 -3
- package/src/helpers/tracker.test.js +36 -0
- package/src/resolver/common.mjs +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
## [44.13.2](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/compare/v44.13.1...v44.13.2) (2026-02-05)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* update removeUnwantedSections function ([c2c4e35](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/c2c4e3592bfd9f7701ed9189a5252eb6d2206489))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
* Merge branch 'en-360-search' into 'master' ([0b1fc19](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/0b1fc1916c148930195ffbee900ec9369023516d))
|
|
10
|
+
|
|
11
|
+
## [44.13.1](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/compare/v44.13.0...v44.13.1) (2026-02-02)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* conditional set cookie in tracker ssr ([75b54b0](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/75b54b0d15b9b43304c3de7cdc0d16dcf6022a43))
|
|
17
|
+
* delete external referrer cookie ([24881a3](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/24881a3042486a3289ca1e16eec89095415b28c6))
|
|
18
|
+
* external referer as request url on tracker ([c78a5ee](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/c78a5eec765c99067135c2e9fbdeeadcec1e319f))
|
|
19
|
+
* remove external referer on route update ([a951246](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/a9512464b6c1008764b8696e741df5a5aae6707b))
|
|
20
|
+
* update tracker link ([f52be1c](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/f52be1c3dc67c1b1fbd2c8c044574b3b8ba206d8))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
* Merge branch 'fix/delete-external-referrer-cookie' into 'master' ([e2af155](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/e2af1555083beff6f7cf6c76f0013668c56b8045))
|
|
24
|
+
* Merge branch 'feat-tracker-referer' into 'master' ([3dbbc21](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/3dbbc2148762b8cfd6bb10ace986fc42850f99ab))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Tests
|
|
28
|
+
|
|
29
|
+
* trackers ([6730f77](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/commit/6730f77e591e7e70f23f65c822600dc1813b0e79))
|
|
30
|
+
|
|
1
31
|
# [44.13.0](https://gitlab.com/g2m-gentoo/team-floyd/themes/gatsby-themes/compare/v44.12.4...v44.13.0) (2026-01-28)
|
|
2
32
|
|
|
3
33
|
|
package/gatsby-browser.js
CHANGED
|
@@ -9,23 +9,27 @@
|
|
|
9
9
|
/* eslint-disable prefer-destructuring */
|
|
10
10
|
|
|
11
11
|
// Main Vars
|
|
12
|
-
require(
|
|
13
|
-
require(
|
|
14
|
-
require(
|
|
15
|
-
require(
|
|
16
|
-
require(
|
|
17
|
-
require(
|
|
12
|
+
require("./src/styles/utils/variables/_colors.scss");
|
|
13
|
+
require("./src/styles/utils/variables/_main.scss");
|
|
14
|
+
require("./src/styles/base/_typography.scss");
|
|
15
|
+
require("./src/styles/base/_reset.scss");
|
|
16
|
+
require("./src/styles/base/_spacing.scss");
|
|
17
|
+
require("./src/styles/layouts/_grid.scss");
|
|
18
18
|
|
|
19
19
|
function initGTM() {
|
|
20
|
-
if (
|
|
20
|
+
if (
|
|
21
|
+
window.loadGTM === false ||
|
|
22
|
+
window.gtmDidInit ||
|
|
23
|
+
process.env.DISABLE_GTM === "true"
|
|
24
|
+
) {
|
|
21
25
|
return false;
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
window.gtmDidInit = true; // flag to ensure script does not get added to DOM more than once.
|
|
25
29
|
const trackingLink = `https://www.googletagmanager.com/gtm.js?id=${process.env.GA_TRACKING_ID}`;
|
|
26
30
|
|
|
27
|
-
const script = document.createElement(
|
|
28
|
-
script.type =
|
|
31
|
+
const script = document.createElement("script");
|
|
32
|
+
script.type = "text/javascript";
|
|
29
33
|
script.async = true;
|
|
30
34
|
script.src = trackingLink;
|
|
31
35
|
|
|
@@ -33,18 +37,18 @@ function initGTM() {
|
|
|
33
37
|
// eslint-disable-next-line no-undef
|
|
34
38
|
dataLayer.push({
|
|
35
39
|
// ensure PageViews are always tracked
|
|
36
|
-
event:
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
event: "gtm.js",
|
|
41
|
+
"gtm.start": new Date().getTime(),
|
|
42
|
+
"gtm.uniqueEventId": 0,
|
|
39
43
|
});
|
|
40
44
|
};
|
|
41
45
|
document.head.appendChild(script);
|
|
42
46
|
|
|
43
|
-
const noscript = document.createElement(
|
|
44
|
-
const iframe = document.createElement(
|
|
47
|
+
const noscript = document.createElement("noscript");
|
|
48
|
+
const iframe = document.createElement("iframe");
|
|
45
49
|
iframe.src = trackingLink;
|
|
46
|
-
iframe.style.display =
|
|
47
|
-
iframe.style.visibility =
|
|
50
|
+
iframe.style.display = "none";
|
|
51
|
+
iframe.style.visibility = "hidden";
|
|
48
52
|
iframe.height = 0;
|
|
49
53
|
iframe.width = 0;
|
|
50
54
|
noscript.innerHTML += iframe.outerHTML;
|
|
@@ -52,16 +56,15 @@ function initGTM() {
|
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
function optinMonster() {
|
|
55
|
-
const script = document.createElement(
|
|
56
|
-
script.id =
|
|
57
|
-
script.setAttribute(
|
|
58
|
-
script.setAttribute(
|
|
59
|
-
script.src =
|
|
59
|
+
const script = document.createElement("script");
|
|
60
|
+
script.id = "optin-monstr";
|
|
61
|
+
script.setAttribute("data-user", process.env.OPTINMONSTR_USER);
|
|
62
|
+
script.setAttribute("data-account", process.env.OPTINMONSTR_ACC);
|
|
63
|
+
script.src = "https://a.omappapi.com/app/js/api.min.js";
|
|
60
64
|
script.async = true;
|
|
61
65
|
document.head.appendChild(script);
|
|
62
66
|
}
|
|
63
67
|
|
|
64
|
-
|
|
65
68
|
const loadFacebookPixel = () => {
|
|
66
69
|
!(function (f, b, e, v, n, t, s) {
|
|
67
70
|
// eslint-disable-next-line no-multi-assign
|
|
@@ -75,15 +78,20 @@ const loadFacebookPixel = () => {
|
|
|
75
78
|
if (!f._fbq) f._fbq = n;
|
|
76
79
|
n.push = n;
|
|
77
80
|
n.loaded = !0;
|
|
78
|
-
n.version =
|
|
81
|
+
n.version = "2.0";
|
|
79
82
|
n.queue = [];
|
|
80
83
|
t = b.createElement(e);
|
|
81
84
|
t.async = !0;
|
|
82
|
-
t.id =
|
|
85
|
+
t.id = "pixel-code";
|
|
83
86
|
t.src = v;
|
|
84
87
|
s = b.getElementsByTagName(e)[0];
|
|
85
88
|
s.parentNode.insertBefore(t, s);
|
|
86
|
-
})(
|
|
89
|
+
})(
|
|
90
|
+
window,
|
|
91
|
+
document,
|
|
92
|
+
"script",
|
|
93
|
+
"https://connect.facebook.net/en_US/fbevents.js"
|
|
94
|
+
);
|
|
87
95
|
};
|
|
88
96
|
|
|
89
97
|
const microsoftAdvertising = () => {
|
|
@@ -91,59 +99,71 @@ const microsoftAdvertising = () => {
|
|
|
91
99
|
var f, n, i;
|
|
92
100
|
(w[u] = w[u] || []),
|
|
93
101
|
(f = function () {
|
|
94
|
-
var o = { ti:
|
|
95
|
-
(o.q = w[u]), (w[u] = new UET(o)), w[u].push(
|
|
102
|
+
var o = { ti: "187106455", enableAutoSpaTracking: true };
|
|
103
|
+
(o.q = w[u]), (w[u] = new UET(o)), w[u].push("pageLoad");
|
|
96
104
|
}),
|
|
97
105
|
(n = d.createElement(t)),
|
|
98
106
|
(n.src = r),
|
|
99
107
|
(n.async = 1),
|
|
100
|
-
(n.id =
|
|
108
|
+
(n.id = "microsoft-code"),
|
|
101
109
|
(n.onload = n.onreadystatechange =
|
|
102
110
|
function () {
|
|
103
111
|
var s = this.readyState;
|
|
104
|
-
(s && s !==
|
|
112
|
+
(s && s !== "loaded" && s !== "complete") ||
|
|
105
113
|
(f(), (n.onload = n.onreadystatechange = null));
|
|
106
114
|
}),
|
|
107
115
|
(i = d.getElementsByTagName(t)[0]),
|
|
108
116
|
i.parentNode.insertBefore(n, i);
|
|
109
|
-
})(window, document,
|
|
117
|
+
})(window, document, "script", "//bat.bing.com/bat.js", "uetq");
|
|
110
118
|
};
|
|
111
119
|
|
|
112
|
-
const piguard = () =>{
|
|
120
|
+
const piguard = () => {
|
|
113
121
|
if (window.loadGTM === false) {
|
|
114
122
|
return false;
|
|
115
123
|
}
|
|
116
124
|
|
|
117
|
-
const script = document.createElement(
|
|
118
|
-
script.id =
|
|
125
|
+
const script = document.createElement("script");
|
|
126
|
+
script.id = "piguard";
|
|
119
127
|
script.src = `https://pg.${process.env.GATSBY_SITE_NAME}/analytics.js?tid=PP-${process.env.PIGUARD_ID}`;
|
|
120
128
|
script.async = true;
|
|
121
129
|
document.head.appendChild(script);
|
|
122
|
-
}
|
|
130
|
+
};
|
|
123
131
|
|
|
124
132
|
function scrollEvent(event) {
|
|
125
133
|
initGTM();
|
|
126
134
|
|
|
127
|
-
if (
|
|
135
|
+
if (
|
|
136
|
+
!document.getElementById("piguard") &&
|
|
137
|
+
process.env.ENABLE_PIGUARD === "true"
|
|
138
|
+
) {
|
|
128
139
|
piguard();
|
|
129
140
|
}
|
|
130
141
|
|
|
131
|
-
if (
|
|
142
|
+
if (
|
|
143
|
+
process.env.ENABLE_MICROSOFT === "true" &&
|
|
144
|
+
!document.getElementById("microsoft-code")
|
|
145
|
+
)
|
|
132
146
|
microsoftAdvertising();
|
|
133
147
|
|
|
134
|
-
if (
|
|
148
|
+
if (
|
|
149
|
+
process.env.ENABLE_OPTINMONSTR === "true" &&
|
|
150
|
+
!document.getElementById("optin-monstr")
|
|
151
|
+
)
|
|
135
152
|
optinMonster();
|
|
136
|
-
if (
|
|
153
|
+
if (
|
|
154
|
+
process.env.ENABLE_PIXEL === "true" &&
|
|
155
|
+
!document.getElementById("pixel-code")
|
|
156
|
+
) {
|
|
137
157
|
if (
|
|
138
|
-
typeof window !==
|
|
158
|
+
typeof window !== "undefined" &&
|
|
139
159
|
window.location.pathname !== process.env.PAGE_EXCLUDE_PIXEL
|
|
140
160
|
) {
|
|
141
161
|
loadFacebookPixel();
|
|
142
162
|
|
|
143
|
-
fbq(
|
|
163
|
+
fbq("init", process.env.PIXEL_ID);
|
|
144
164
|
|
|
145
165
|
// Initialize and track the PageView event
|
|
146
|
-
fbq(
|
|
166
|
+
fbq("track", "PageView");
|
|
147
167
|
}
|
|
148
168
|
}
|
|
149
169
|
|
|
@@ -153,11 +173,23 @@ function scrollEvent(event) {
|
|
|
153
173
|
}
|
|
154
174
|
|
|
155
175
|
exports.onClientEntry = () => {
|
|
156
|
-
if (process.env.PPC ===
|
|
176
|
+
if (process.env.PPC === "true") {
|
|
157
177
|
scrollEvent(null);
|
|
158
178
|
} else {
|
|
159
|
-
document.addEventListener(
|
|
160
|
-
document.addEventListener(
|
|
161
|
-
document.addEventListener(
|
|
179
|
+
document.addEventListener("scroll", scrollEvent, { passive: true });
|
|
180
|
+
document.addEventListener("mousemove", scrollEvent, { passive: true });
|
|
181
|
+
document.addEventListener("touchstart", scrollEvent, { passive: true });
|
|
162
182
|
}
|
|
183
|
+
// Capture external referrer on first entry
|
|
184
|
+
if (
|
|
185
|
+
document.referrer &&
|
|
186
|
+
!document.referrer.includes(window.location.hostname)
|
|
187
|
+
) {
|
|
188
|
+
document.cookie = `external_referer=${document.referrer}; path=/; SameSite=Lax`;
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
exports.onRouteUpdate = () => {
|
|
193
|
+
document.cookie =
|
|
194
|
+
"external_referer=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax";
|
|
163
195
|
};
|
package/package.json
CHANGED
|
@@ -22,13 +22,14 @@ const AppTracker = (props) => {
|
|
|
22
22
|
}
|
|
23
23
|
`);
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
25
|
const { pageContext } = props;
|
|
28
26
|
|
|
29
27
|
return (
|
|
30
28
|
<MainProvider
|
|
31
|
-
value={{
|
|
29
|
+
value={{
|
|
30
|
+
translations: data.translations,
|
|
31
|
+
language: pageContext.page.language,
|
|
32
|
+
}}
|
|
32
33
|
>
|
|
33
34
|
<Tracker {...props} />
|
|
34
35
|
</MainProvider>
|
|
@@ -36,18 +37,22 @@ const AppTracker = (props) => {
|
|
|
36
37
|
};
|
|
37
38
|
|
|
38
39
|
export const Head = ({ pageContext }) => (
|
|
39
|
-
<HeadData
|
|
40
|
+
<HeadData
|
|
41
|
+
page={pageContext.page}
|
|
42
|
+
authors={pageContext.authors}
|
|
43
|
+
siteInfo={pageContext.siteInfo}
|
|
44
|
+
/>
|
|
40
45
|
);
|
|
41
46
|
|
|
42
47
|
export async function getServerData({ pageContext, headers, url }) {
|
|
43
|
-
|
|
44
|
-
res = await getAffiliateLink(
|
|
48
|
+
const res = await getAffiliateLink(
|
|
45
49
|
pageContext.operator,
|
|
46
50
|
pageContext.page.path,
|
|
47
51
|
pageContext.page,
|
|
48
52
|
headers,
|
|
49
53
|
url
|
|
50
54
|
);
|
|
55
|
+
|
|
51
56
|
return res;
|
|
52
57
|
}
|
|
53
58
|
|
package/src/helpers/tracker.mjs
CHANGED
|
@@ -107,16 +107,20 @@ function extractUrlParams(url) {
|
|
|
107
107
|
function buildUrlParams(operator, trackerName, headers, cookie, extraParams) {
|
|
108
108
|
const ip = headers?.get("x-real-ip") || headers?.get("host") || "127.0.0.1";
|
|
109
109
|
const userAgent = headers?.get("user-agent") || null;
|
|
110
|
+
|
|
110
111
|
const affObject = isJsonString(cookie.affObject)
|
|
111
112
|
? JSON.parse(cookie.affObject)
|
|
112
113
|
: {};
|
|
113
114
|
|
|
114
115
|
if (extraParams && extraParams.pt) affObject.module = extraParams.pt;
|
|
116
|
+
|
|
115
117
|
affObject.request_url =
|
|
116
|
-
affObject.http_referer ||
|
|
117
|
-
headers?.get("referrer") ||
|
|
118
118
|
affObject.request_url ||
|
|
119
|
+
cookie.external_referer ||
|
|
120
|
+
headers?.get("referer") ||
|
|
121
|
+
affObject.http_referer ||
|
|
119
122
|
null;
|
|
123
|
+
|
|
120
124
|
return {
|
|
121
125
|
site_id: process.env.SITE_ID,
|
|
122
126
|
operator_short_name: operator.short_name,
|
|
@@ -137,7 +141,7 @@ function buildUrlParams(operator, trackerName, headers, cookie, extraParams) {
|
|
|
137
141
|
cookie: JSON.stringify(cookie),
|
|
138
142
|
...(affObject || {}),
|
|
139
143
|
...(affObject && !affObject.referer
|
|
140
|
-
? { referer: headers?.get("
|
|
144
|
+
? { referer: headers?.get("referer") }
|
|
141
145
|
: {}),
|
|
142
146
|
...(extraParams || {}),
|
|
143
147
|
};
|
|
@@ -279,3 +283,45 @@ export function trackerLinkActive(operator, tracker = "main") {
|
|
|
279
283
|
}
|
|
280
284
|
return operator?.links[tracker] || operator?.links?.main;
|
|
281
285
|
}
|
|
286
|
+
export function buildExternalRefererDeleteSetCookies(headers) {
|
|
287
|
+
const getHeader = (name) => {
|
|
288
|
+
if (!headers) return null;
|
|
289
|
+
if (typeof headers.get === "function") return headers.get(name) || null;
|
|
290
|
+
return headers[name] || null;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
const hostHeader =
|
|
294
|
+
getHeader("host") ||
|
|
295
|
+
getHeader(":authority") ||
|
|
296
|
+
getHeader("x-forwarded-host") ||
|
|
297
|
+
getHeader("x-forwarded-server");
|
|
298
|
+
|
|
299
|
+
let hostname = null;
|
|
300
|
+
if (hostHeader) hostname = hostHeader.split(":")[0];
|
|
301
|
+
|
|
302
|
+
const normalizeDomain = (d) => {
|
|
303
|
+
if (!d) return null;
|
|
304
|
+
let dn = d.trim();
|
|
305
|
+
if (dn.startsWith(".")) dn = dn.slice(1);
|
|
306
|
+
if (dn.startsWith("www.")) dn = dn.slice(4);
|
|
307
|
+
return dn || null;
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
const normalizedHost = normalizeDomain(hostname);
|
|
311
|
+
const domainPart =
|
|
312
|
+
normalizedHost && !normalizedHost.includes("localhost")
|
|
313
|
+
? `; Domain=${normalizedHost}`
|
|
314
|
+
: "";
|
|
315
|
+
|
|
316
|
+
const cookieBase =
|
|
317
|
+
"external_referer=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0";
|
|
318
|
+
const buildDeleteCookie = (dp) => `${cookieBase}${dp}; SameSite=Lax`;
|
|
319
|
+
|
|
320
|
+
// Only emit deletion cookies derived from the Host (domainPart) and
|
|
321
|
+
// a host-only variant. No need to parse existing Set-Cookie headers.
|
|
322
|
+
if (domainPart) {
|
|
323
|
+
return [buildDeleteCookie(domainPart), buildDeleteCookie("")];
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
return buildDeleteCookie("");
|
|
327
|
+
}
|
|
@@ -273,4 +273,40 @@ describe("Tracker Helper", () => {
|
|
|
273
273
|
expect(Tracker.isTrackerLink("za_en/type/short_name")).toBe(false);
|
|
274
274
|
});
|
|
275
275
|
});
|
|
276
|
+
|
|
277
|
+
describe("buildExternalRefererDeleteSetCookies()", () => {
|
|
278
|
+
const cookieBase =
|
|
279
|
+
"external_referer=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0";
|
|
280
|
+
|
|
281
|
+
test("returns two deletion cookies when host header present (Map)", () => {
|
|
282
|
+
const headers = new Map();
|
|
283
|
+
headers.set("host", "example.com:8080");
|
|
284
|
+
|
|
285
|
+
const result = Tracker.buildExternalRefererDeleteSetCookies(headers);
|
|
286
|
+
|
|
287
|
+
expect(Array.isArray(result)).toBe(true);
|
|
288
|
+
expect(result.length).toBe(2);
|
|
289
|
+
expect(result[0]).toBe(`${cookieBase}; Domain=example.com; SameSite=Lax`);
|
|
290
|
+
expect(result[1]).toBe(`${cookieBase}; SameSite=Lax`);
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
test("returns single deletion cookie when no host header present", () => {
|
|
294
|
+
const result = Tracker.buildExternalRefererDeleteSetCookies(null);
|
|
295
|
+
expect(result).toBe(`${cookieBase}; SameSite=Lax`);
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
test("normalizes leading dot and www. in host (object with :authority)", () => {
|
|
299
|
+
const headers = {
|
|
300
|
+
get: (name) => {
|
|
301
|
+
if (name === ":authority") return "www.example.com";
|
|
302
|
+
return null;
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
const result = Tracker.buildExternalRefererDeleteSetCookies(headers);
|
|
307
|
+
expect(Array.isArray(result)).toBe(true);
|
|
308
|
+
expect(result[0]).toBe(`${cookieBase}; Domain=example.com; SameSite=Lax`);
|
|
309
|
+
expect(result[1]).toBe(`${cookieBase}; SameSite=Lax`);
|
|
310
|
+
});
|
|
311
|
+
});
|
|
276
312
|
});
|
package/src/resolver/common.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import { pickPageKeys, pickRelationKeys } from '../constants/pick-keys.mjs';
|
|
|
4
4
|
import settings from '../constants/settings.mjs';
|
|
5
5
|
// eslint-disable-next-line import/no-cycle
|
|
6
6
|
import { processExtraFields } from './index.mjs';
|
|
7
|
+
import { mainSettings } from '../constants/site-settings/main.mjs';
|
|
7
8
|
|
|
8
9
|
const { pick } = loadash;
|
|
9
10
|
|
|
@@ -141,7 +142,7 @@ export function clean(object) {
|
|
|
141
142
|
}
|
|
142
143
|
|
|
143
144
|
export function removeUnwantedSections(obj, pageType, ribbonsData) {
|
|
144
|
-
|
|
145
|
+
const limit = mainSettings?.default?.recommended_casinos_limit || 3;
|
|
145
146
|
const marketSection = {
|
|
146
147
|
games: ["post_main_games"],
|
|
147
148
|
operator: [
|
|
@@ -183,7 +184,7 @@ export function removeUnwantedSections(obj, pageType, ribbonsData) {
|
|
|
183
184
|
) {
|
|
184
185
|
acc[key].modules[0].items[0].items = acc[
|
|
185
186
|
key
|
|
186
|
-
].modules[0].items[0].items.slice(0,
|
|
187
|
+
].modules[0].items[0].items.slice(0, limit);
|
|
187
188
|
const { items } = acc[key].modules[0].items[0];
|
|
188
189
|
|
|
189
190
|
// Connect ribbons ID to label
|