gatsby-core-theme 9.0.2 → 10.0.1
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 +54 -0
- package/gatsby-node.esm.js +2 -2
- package/package.json +1 -1
- package/src/components/atoms/author-box/index.js +7 -4
- package/src/components/atoms/module-title/index.js +2 -2
- package/src/components/atoms/sitemap/index.js +5 -3
- package/src/components/atoms/sitemap/sitemap.module.scss +46 -23
- package/src/components/atoms/spotlights/index.js +23 -22
- package/src/components/molecules/content/index.js +2 -1
- package/src/components/molecules/header/index.js +4 -5
- package/src/components/organisms/anchor/index.js +6 -2
- package/src/helpers/processor/index.js +10 -7
- package/src/helpers/processor/modules.js +4 -3
- package/src/helpers/processor/sports.js +1 -1
- package/src/helpers/processor/sports.test.js +8 -8
- package/src/styles/utils/variables/_main.scss +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,57 @@
|
|
|
1
|
+
## [10.0.1](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v10.0.0...v10.0.1) (2022-08-09)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* external links authors ([5980f24](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/5980f248d501ac889e8be854806a47efa5dd8c1e))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Code Refactoring
|
|
10
|
+
|
|
11
|
+
* ui fix for sitemap on tablet ([ded766e](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/ded766e500f3cbcd76942ce87439118bd9df4595))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
* Merge branch 'tm-2996-author-external-links' into 'master' ([4770918](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/4770918406b1226ba415ba433cb724033ddef212))
|
|
15
|
+
* Merge branch 'tm-2978-html-sitemap' into 'master' ([ef159bf](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/ef159bfa7bbda57056f8d4bdb99c19ec862ad291))
|
|
16
|
+
|
|
17
|
+
# [10.0.0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v9.0.3...v10.0.0) (2022-08-09)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* check spotlight link ([71de178](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/71de17852705e047ba0e713dc49ba18d5451eba5))
|
|
23
|
+
* merged master and fixed conflict ([ce170c1](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/ce170c10c56f79d1e21692ba3456a08e550390ff))
|
|
24
|
+
* prefilled modules ([2504e38](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/2504e381da3d80fc260b79037e29c0bc1d74d49a))
|
|
25
|
+
* prefilled modules ([32fcd04](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/32fcd0427c9ee1ae971a78945cb70d344f3f7058))
|
|
26
|
+
* prefilled modules ([a83b03a](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a83b03a5ee1d255f69476c75089a0f06c99c25a7))
|
|
27
|
+
* sitetype config ([cce65f6](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/cce65f6af73d0aea2886cc9d2b5549f73f8e9dcb))
|
|
28
|
+
* sitetype config ([1a2d949](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/1a2d94936c7166a97085298488dd112100a4ab7c))
|
|
29
|
+
* spotlight issue ([3d5c3f8](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/3d5c3f84a9a90127af82bb7cb4dd098485519c2f))
|
|
30
|
+
* template to page type core ([68f31e2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/68f31e2f1bdb09511a8f3524f5dd4e7b570d7431))
|
|
31
|
+
* test ([3919b2e](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/3919b2ea735fb2533d63b92f31375bfd82178664))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Code Refactoring
|
|
35
|
+
|
|
36
|
+
* additions to sitemap markup and style changes ([131cda2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/131cda21a19119846cad30982c7d2f7c43661579))
|
|
37
|
+
* html sitemap page types order ([13a3256](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/13a325680ac4606ae15bae0b0e50093e319c59c6))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
* Merge branch 'prefilled-modules' into 'master' ([86bd578](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/86bd57812da068a19905d13ca808027debe92f2e))
|
|
41
|
+
* Merge branch 'prefilled-modules' of git.ilcd.rocks:team-floyd/themes/gatsby-themes into prefilled-modules ([0c38b0c](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/0c38b0c8fa9f90a68cfa26c4fc708b10e1ed6479))
|
|
42
|
+
* Merge branch 'tm-2978-html-sitemap' into 'master' ([b5e083c](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/b5e083c9f43de95d589cca90dfebe9173154a103))
|
|
43
|
+
* Merge branch 'tm-2988-sitetype-config' into 'master' ([215615c](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/215615c508f16f0b4d4e0c044ef5fc1cd92c20ab))
|
|
44
|
+
* Merge branch 'master' into tm-2978-html-sitemap ([65e35b6](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/65e35b6c7a1b7c1f1481206a5d12df90d7a638db))
|
|
45
|
+
* Merge branch 'tm-2956-page-type' into 'master' ([a2a9b79](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a2a9b79057d2f433b1b284c7c6e85cf4d8652620))
|
|
46
|
+
* Merge branch 'master' into tm-2978-html-sitemap ([fe01a22](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/fe01a22c603a62648a572d42054c7a7b34c5811d))
|
|
47
|
+
|
|
48
|
+
## [9.0.3](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v9.0.2...v9.0.3) (2022-08-04)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
### Bug Fixes
|
|
52
|
+
|
|
53
|
+
* add height of anchor like props ([98dfdae](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/98dfdaef2e1e10a6fb8165c9a2cd943fe7eaacec))
|
|
54
|
+
|
|
1
55
|
## [9.0.2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v9.0.1...v9.0.2) (2022-08-02)
|
|
2
56
|
|
|
3
57
|
|
package/gatsby-node.esm.js
CHANGED
|
@@ -172,7 +172,7 @@ exports.createPages = async ({ actions: { createPage } }, themeOptions) => {
|
|
|
172
172
|
translations = processed.relations.translations[languageKey];
|
|
173
173
|
htmlSitemapPages = processSitemapPages(pages, processed.site_markets);
|
|
174
174
|
|
|
175
|
-
if (
|
|
175
|
+
if (['rage_seo', 'rage_ppc'].includes(response.general.type)) {
|
|
176
176
|
sports = Object.keys(response.relations['sports_data'].sports).map(
|
|
177
177
|
(key) => response.relations['sports_data'].sports[key]
|
|
178
178
|
);
|
|
@@ -264,7 +264,7 @@ exports.createPages = async ({ actions: { createPage } }, themeOptions) => {
|
|
|
264
264
|
});
|
|
265
265
|
});
|
|
266
266
|
|
|
267
|
-
if (
|
|
267
|
+
if (['rage_seo', 'rage_ppc'].includes(response.general.type)) {
|
|
268
268
|
Object.keys(
|
|
269
269
|
(processed.relations &&
|
|
270
270
|
processed.relations.sports_data &&
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@ import React, { useContext } from 'react';
|
|
|
3
3
|
import { FaInstagram } from '@react-icons/all-files/fa/FaInstagram';
|
|
4
4
|
import { FaFacebookSquare } from '@react-icons/all-files/fa/FaFacebookSquare';
|
|
5
5
|
import { FaTwitter } from '@react-icons/all-files/fa/FaTwitter';
|
|
6
|
+
import { IoLogoTiktok } from '@react-icons/all-files/io5/IoLogoTiktok';
|
|
6
7
|
import { FaLinkedin } from '@react-icons/all-files/fa/FaLinkedin';
|
|
7
8
|
import PropTypes from 'prop-types';
|
|
8
9
|
import { translate, imagePrettyUrl, getAltText } from '~helpers/getters';
|
|
@@ -18,6 +19,7 @@ export default function AuthorBox({ author, preElement = null }) {
|
|
|
18
19
|
{ id: 'ig', link: author.instagram_profile, icon: <FaInstagram /> },
|
|
19
20
|
{ id: 'li', link: author.linkedin_profile, icon: <FaLinkedin /> },
|
|
20
21
|
{ id: 'tw', link: author.twitter_profile, icon: <FaTwitter /> },
|
|
22
|
+
{ id: 'tt', link: author.tik_tok, icon: <IoLogoTiktok /> },
|
|
21
23
|
];
|
|
22
24
|
|
|
23
25
|
return (
|
|
@@ -43,7 +45,7 @@ export default function AuthorBox({ author, preElement = null }) {
|
|
|
43
45
|
href={`mailto:${author.email_address}`}
|
|
44
46
|
className="author-gtm"
|
|
45
47
|
target="_blank"
|
|
46
|
-
rel="noreferrer"
|
|
48
|
+
rel="nofollow noreferrer"
|
|
47
49
|
>
|
|
48
50
|
{translate(translations, 'email', 'Email')}
|
|
49
51
|
</a>
|
|
@@ -53,7 +55,7 @@ export default function AuthorBox({ author, preElement = null }) {
|
|
|
53
55
|
href={author.personal_website}
|
|
54
56
|
className="author-gtm"
|
|
55
57
|
target="_blank"
|
|
56
|
-
rel="noreferrer"
|
|
58
|
+
rel="nofollow noreferrer"
|
|
57
59
|
>
|
|
58
60
|
{translate(translations, 'website', 'Website')}
|
|
59
61
|
</a>
|
|
@@ -63,7 +65,7 @@ export default function AuthorBox({ author, preElement = null }) {
|
|
|
63
65
|
href={author.additional_url}
|
|
64
66
|
className="author-gtm"
|
|
65
67
|
target="_blank"
|
|
66
|
-
rel="noreferrer"
|
|
68
|
+
rel="nofollow noreferrer"
|
|
67
69
|
>
|
|
68
70
|
{translate(translations, 'contact', 'Contact')}
|
|
69
71
|
</a>
|
|
@@ -78,7 +80,7 @@ export default function AuthorBox({ author, preElement = null }) {
|
|
|
78
80
|
href={filteredLinks.link}
|
|
79
81
|
className="author-gtm"
|
|
80
82
|
target="_blank"
|
|
81
|
-
rel="noreferrer"
|
|
83
|
+
rel="nofollow noreferrer"
|
|
82
84
|
key={`author-box-link-${filteredLinks.id}`}
|
|
83
85
|
aria-label={`${filteredLinks.id} Link`}
|
|
84
86
|
>
|
|
@@ -126,6 +128,7 @@ AuthorBox.propTypes = {
|
|
|
126
128
|
instagram_profile: PropTypes.string,
|
|
127
129
|
linkedin_profile: PropTypes.string,
|
|
128
130
|
twitter_profile: PropTypes.string,
|
|
131
|
+
tik_tok: PropTypes.string,
|
|
129
132
|
biography: PropTypes.string,
|
|
130
133
|
profile_page_path: PropTypes.string,
|
|
131
134
|
}),
|
|
@@ -24,13 +24,13 @@ const ModuleTitle = ({ module, viewMoreIcon = <FaAngleRight />, pageContext = nu
|
|
|
24
24
|
// return null;
|
|
25
25
|
// }
|
|
26
26
|
|
|
27
|
-
const
|
|
27
|
+
const type = pageContext && pageContext?.page?.type;
|
|
28
28
|
|
|
29
29
|
return (
|
|
30
30
|
<>
|
|
31
31
|
{(module.module_title || module.link_label) && (
|
|
32
32
|
<div
|
|
33
|
-
className={`${styles.moduleTitle} ${styles[
|
|
33
|
+
className={`${styles.moduleTitle} ${styles[type]} ${
|
|
34
34
|
module?.style && styles[module.style]
|
|
35
35
|
}`}
|
|
36
36
|
>
|
|
@@ -28,9 +28,11 @@ const Sitemap = ({ pageContext, templateIcon = <BiSitemap />, linkIcon = <IoMdLi
|
|
|
28
28
|
return (
|
|
29
29
|
templatePagesCount !== undefined && (
|
|
30
30
|
<div>
|
|
31
|
-
|
|
31
|
+
<div>
|
|
32
|
+
{templateIcon && templateIcon}
|
|
33
|
+
<span>{templatePagesCount}</span>
|
|
34
|
+
</div>
|
|
32
35
|
<span>{templateName}</span>
|
|
33
|
-
<span>{templatePagesCount}</span>
|
|
34
36
|
</div>
|
|
35
37
|
)
|
|
36
38
|
);
|
|
@@ -57,7 +59,7 @@ const Sitemap = ({ pageContext, templateIcon = <BiSitemap />, linkIcon = <IoMdLi
|
|
|
57
59
|
|
|
58
60
|
return (
|
|
59
61
|
<Masonry breakpointCols={3} className={styles.container} columnClassName={styles.list}>
|
|
60
|
-
{Object.keys(
|
|
62
|
+
{Object.keys(sitemapData[market]).map((template) => (
|
|
61
63
|
<ul key={template}>
|
|
62
64
|
{getTemplateName(template)}
|
|
63
65
|
{getTemplatePages(template)}
|
|
@@ -47,34 +47,50 @@
|
|
|
47
47
|
text-transform: capitalize;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
> div {
|
|
51
|
+
position: relative;
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
|
|
55
|
+
span {
|
|
56
|
+
@include flex-align(center, center);
|
|
57
|
+
position: absolute;
|
|
58
|
+
top: -1.2rem;
|
|
59
|
+
background-color: var(--page-number-background, green);
|
|
60
|
+
border-radius: 1.2rem;
|
|
61
|
+
border: var(--page-number-border, 0.2rem solid white);
|
|
62
|
+
margin: 0;
|
|
63
|
+
font-size: 1rem;
|
|
64
|
+
color: var(--page-number-color, white);
|
|
65
|
+
font-weight: 700;
|
|
66
|
+
width: 2.4rem;
|
|
67
|
+
height: 2.4rem;
|
|
68
|
+
left: 3.2rem;
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
|
|
67
73
|
> ul {
|
|
74
|
+
position: relative;
|
|
68
75
|
padding-top: 3rem;
|
|
69
76
|
padding-left: 2.7rem;
|
|
70
77
|
margin-left: 2.3rem;
|
|
71
|
-
|
|
78
|
+
|
|
79
|
+
&:before {
|
|
80
|
+
content: ' ';
|
|
81
|
+
border-left: var(--sitemap-connector-border,dashed 1px #e3e6ef);
|
|
82
|
+
left: 0;
|
|
83
|
+
position: absolute;
|
|
84
|
+
top: 0;
|
|
85
|
+
width: 2.5rem;
|
|
86
|
+
height: 4.2rem;
|
|
87
|
+
}
|
|
72
88
|
|
|
73
89
|
li {
|
|
74
90
|
display: grid;
|
|
75
91
|
grid-template-columns: 0.1fr 1fr;
|
|
76
92
|
gap: 0.5rem;
|
|
77
|
-
|
|
93
|
+
padding-bottom: 1rem;
|
|
78
94
|
position: relative;
|
|
79
95
|
|
|
80
96
|
&:before {
|
|
@@ -83,17 +99,23 @@
|
|
|
83
99
|
left: -2.7rem;
|
|
84
100
|
width: 2.5rem;
|
|
85
101
|
top: 1.2rem;
|
|
86
|
-
border: var(--sitemap-connector-border, dashed 1px #e3e6ef);
|
|
102
|
+
border-bottom: var(--sitemap-connector-border, dashed 1px #e3e6ef);
|
|
87
103
|
}
|
|
88
104
|
|
|
89
|
-
&:
|
|
105
|
+
&:after {
|
|
90
106
|
content: ' ';
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
background-color: var(--sitemap-background-color);
|
|
107
|
+
border-left: var(--sitemap-connector-border,dashed 1px #e3e6ef);
|
|
108
|
+
left: -2.7rem;
|
|
94
109
|
position: absolute;
|
|
95
|
-
top:
|
|
96
|
-
|
|
110
|
+
top: 0;
|
|
111
|
+
width: 2.5rem;
|
|
112
|
+
bottom: 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&:last-child:after {
|
|
116
|
+
content: ' ';
|
|
117
|
+
bottom: auto;
|
|
118
|
+
height: 1.2rem;
|
|
97
119
|
}
|
|
98
120
|
|
|
99
121
|
svg {
|
|
@@ -107,6 +129,7 @@
|
|
|
107
129
|
|
|
108
130
|
a {
|
|
109
131
|
padding-left: 0.3rem;
|
|
132
|
+
font-weight: var(--sitemap-link-text-font-weight, normal);
|
|
110
133
|
text-decoration: var(--sitemap-link-text-decoration, none);
|
|
111
134
|
}
|
|
112
135
|
}
|
|
@@ -57,30 +57,31 @@ const Spotlights = ({ module, themeStyles = {} }) => {
|
|
|
57
57
|
<ul>
|
|
58
58
|
{items.map((item) => (
|
|
59
59
|
<li key={keygen()}>
|
|
60
|
-
{item.link
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
60
|
+
{item.link &&
|
|
61
|
+
(item.link.type === 'external' ? (
|
|
62
|
+
<a
|
|
63
|
+
href={item.link.value}
|
|
64
|
+
className="spotlights-gtm"
|
|
65
|
+
title={item.label}
|
|
66
|
+
target="_blank"
|
|
67
|
+
rel="noreferrer"
|
|
68
|
+
aria-label={`${item?.label || item?.link_text} Link`}
|
|
69
|
+
>
|
|
70
|
+
{content(item)}
|
|
71
|
+
</a>
|
|
72
|
+
) : (
|
|
73
|
+
<Link
|
|
74
|
+
to={item.link.value}
|
|
75
|
+
title={item.label}
|
|
76
|
+
className="spotlights-gtm"
|
|
77
|
+
aria-label={`${item?.label || item?.link_text} Link`}
|
|
78
|
+
>
|
|
79
|
+
{content(item)}
|
|
80
|
+
</Link>
|
|
81
|
+
))}
|
|
81
82
|
|
|
82
83
|
{mode === 'image_text' &&
|
|
83
|
-
(item.link.value ? (
|
|
84
|
+
(item.link && item.link.value ? (
|
|
84
85
|
<div className={styles.spotlightsTextCTA}>
|
|
85
86
|
<div dangerouslySetInnerHTML={{ __html: item.text }} />
|
|
86
87
|
{item.link.type === 'external' ? (
|
|
@@ -45,10 +45,11 @@ const Content = ({ module, pageContext = null }) => {
|
|
|
45
45
|
return null;
|
|
46
46
|
};
|
|
47
47
|
const template = pageContext?.page?.template;
|
|
48
|
+
const type = pageContext?.page?.type;
|
|
48
49
|
|
|
49
50
|
return (
|
|
50
51
|
<>
|
|
51
|
-
<div className={`${styles.grid} ${styles[template]}`}>
|
|
52
|
+
<div className={`${styles.grid} ${styles[type]} ${styles[template]}`}>
|
|
52
53
|
{module.value &&
|
|
53
54
|
parse(module.value, {
|
|
54
55
|
replace: replaceMedia,
|
|
@@ -69,11 +69,9 @@ function Header({ section, content = null, backgroundImage = true }) {
|
|
|
69
69
|
)}
|
|
70
70
|
</div>
|
|
71
71
|
|
|
72
|
-
{section.page.template !== 'author' &&
|
|
73
|
-
section.page.
|
|
74
|
-
|
|
75
|
-
section.page.template !== 'article_sports' &&
|
|
76
|
-
section.page.template !== 'game_review' && <h1>{section.page.title}</h1>}
|
|
72
|
+
{section.page.template !== 'author' && !['article', 'game'].includes(section.page.type) && (
|
|
73
|
+
<h1>{section.page.title}</h1>
|
|
74
|
+
)}
|
|
77
75
|
<div className={!content && styles.headerText}>{headerContent()}</div>
|
|
78
76
|
</div>
|
|
79
77
|
</header>
|
|
@@ -85,6 +83,7 @@ Header.propTypes = {
|
|
|
85
83
|
section: PropTypes.shape({
|
|
86
84
|
page: PropTypes.shape({
|
|
87
85
|
template: PropTypes.string,
|
|
86
|
+
type: PropTypes.string,
|
|
88
87
|
path: PropTypes.string,
|
|
89
88
|
updated_at: PropTypes.string,
|
|
90
89
|
created_at: PropTypes.string,
|
|
@@ -17,6 +17,8 @@ function Anchor({
|
|
|
17
17
|
isFixed = true,
|
|
18
18
|
icon = null,
|
|
19
19
|
showTitle = true,
|
|
20
|
+
heightOfAnchor = 60,
|
|
21
|
+
offset = 10,
|
|
20
22
|
}) {
|
|
21
23
|
const [offsetTop, setOffsetTop] = useState(null);
|
|
22
24
|
const itemsRef = useRef([]);
|
|
@@ -38,7 +40,7 @@ function Anchor({
|
|
|
38
40
|
if (targetEl) {
|
|
39
41
|
const offsetPosition = targetEl.offsetTop - headerOffset;
|
|
40
42
|
window.scrollTo({
|
|
41
|
-
top: isFixed ? offsetPosition -
|
|
43
|
+
top: isFixed ? offsetPosition - heightOfAnchor : offsetPosition,
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
};
|
|
@@ -47,7 +49,7 @@ function Anchor({
|
|
|
47
49
|
// get element in viewport
|
|
48
50
|
const currentAnchor = anchorList?.map((el) => {
|
|
49
51
|
const element = document.getElementById(el.id);
|
|
50
|
-
if (element?.offsetTop - headerOffset -
|
|
52
|
+
if (element?.offsetTop - headerOffset - heightOfAnchor - offset <= window.scrollY) {
|
|
51
53
|
return element;
|
|
52
54
|
}
|
|
53
55
|
return null;
|
|
@@ -139,6 +141,8 @@ Anchor.propTypes = {
|
|
|
139
141
|
isFixed: PropTypes.bool,
|
|
140
142
|
icon: PropTypes.element,
|
|
141
143
|
showTitle: PropTypes.string,
|
|
144
|
+
heightOfAnchor: PropTypes.number,
|
|
145
|
+
offset: PropTypes.number,
|
|
142
146
|
};
|
|
143
147
|
|
|
144
148
|
export default Anchor;
|
|
@@ -23,7 +23,7 @@ const postSectionsMap = {
|
|
|
23
23
|
game: 'post_main_games',
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
let
|
|
26
|
+
let rageSportType = null;
|
|
27
27
|
let themeType = null;
|
|
28
28
|
let pages = null;
|
|
29
29
|
let pagesCloned = null;
|
|
@@ -212,15 +212,16 @@ export default {
|
|
|
212
212
|
}
|
|
213
213
|
});
|
|
214
214
|
|
|
215
|
-
|
|
216
|
-
themeType =
|
|
215
|
+
rageSportType = ['rage_seo', 'rage_ppc'].includes(data.general.type);
|
|
216
|
+
themeType = data.general.type ? data.general.type : null;
|
|
217
|
+
|
|
217
218
|
const searchEnabled =
|
|
218
219
|
themeOptions.searchEnabled !== undefined && themeOptions.searchEnabled !== null
|
|
219
220
|
? themeOptions.searchEnabled
|
|
220
221
|
: true;
|
|
221
222
|
|
|
222
223
|
// add sports data
|
|
223
|
-
if (
|
|
224
|
+
if (rageSportType) {
|
|
224
225
|
// should be able to check for site type here (type: sport)
|
|
225
226
|
// assign providers to events, events to schedules etc..
|
|
226
227
|
sportsData = prepareSportsData(data.relations.sports_data);
|
|
@@ -272,7 +273,7 @@ export default {
|
|
|
272
273
|
}
|
|
273
274
|
|
|
274
275
|
// add sports data
|
|
275
|
-
if (
|
|
276
|
+
if (rageSportType) {
|
|
276
277
|
// should be able to check for site type here (type: sport)
|
|
277
278
|
page.relation = addSportsDataToPage(sportsData, page, themeType);
|
|
278
279
|
|
|
@@ -344,8 +345,10 @@ export default {
|
|
|
344
345
|
sectionModule.value_type === ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET
|
|
345
346
|
) {
|
|
346
347
|
const rawValue = prefilledMarketModulesRaw[sectionModule.value_id];
|
|
347
|
-
rawValue
|
|
348
|
-
|
|
348
|
+
if (rawValue !== undefined) {
|
|
349
|
+
rawValue.value_type = sectionModule.value_type;
|
|
350
|
+
page.sections[sectionKey].modules[i] = rawValue;
|
|
351
|
+
}
|
|
349
352
|
}
|
|
350
353
|
});
|
|
351
354
|
}
|
|
@@ -242,9 +242,10 @@ export function processTopListModule(module, relations, pages) {
|
|
|
242
242
|
module.items = module.items.map((listItem) => {
|
|
243
243
|
listItem.items = listItem.items.map((item) => {
|
|
244
244
|
const clone = pick(cloneDeep(relations.operator[item.operator_id]), topListPickKeys);
|
|
245
|
-
const operatorPage =
|
|
246
|
-
|
|
247
|
-
|
|
245
|
+
const operatorPage =
|
|
246
|
+
pages && pages.operator
|
|
247
|
+
? pages.operator.filter((page) => page.relation_id === item.operator_id)
|
|
248
|
+
: [];
|
|
248
249
|
|
|
249
250
|
if (operatorPage.length >= 1) {
|
|
250
251
|
clone.authorName = operatorPage[0].author.name;
|
|
@@ -117,7 +117,7 @@ export function addSportsDataToPage(sportsData, page, themeType) {
|
|
|
117
117
|
relation.schedule = sportsData.schedule;
|
|
118
118
|
}
|
|
119
119
|
// rage-seo pages data
|
|
120
|
-
if (themeType === '
|
|
120
|
+
if (themeType === 'rage_seo') {
|
|
121
121
|
if (pageType === 'homepage') {
|
|
122
122
|
relation.schedule = sportsData.schedule.soccer || null;
|
|
123
123
|
relation.featured_events = sportsData.featured_events.soccer || null;
|
|
@@ -186,7 +186,7 @@ describe('Add Sports Data', () => {
|
|
|
186
186
|
test('rage-seo homepage data', () => {
|
|
187
187
|
const seoHomePages = pages.filter((page) => page.template === 'homepage');
|
|
188
188
|
|
|
189
|
-
relation = addSportsDataToPage(sportsData, seoHomePages[0], '
|
|
189
|
+
relation = addSportsDataToPage(sportsData, seoHomePages[0], 'rage_seo');
|
|
190
190
|
expect(Object.values(relation.schedule).length).toEqual(2);
|
|
191
191
|
expect(relation.featured_events.length).toEqual(3);
|
|
192
192
|
expect(Object.values(relation.tournaments).length).toEqual(2);
|
|
@@ -195,7 +195,7 @@ describe('Add Sports Data', () => {
|
|
|
195
195
|
test('rage-seo live_stream data', () => {
|
|
196
196
|
const seoLiveStreamPages = pages.filter((page) => page.template === 'live_stream');
|
|
197
197
|
|
|
198
|
-
relation = addSportsDataToPage(sportsData, seoLiveStreamPages[0], '
|
|
198
|
+
relation = addSportsDataToPage(sportsData, seoLiveStreamPages[0], 'rage_seo');
|
|
199
199
|
expect(Object.values(relation.schedule).length).toEqual(2);
|
|
200
200
|
expect(relation.providers.length).toEqual(2);
|
|
201
201
|
expect(relation.providers[0].name).toEqual('Bet365');
|
|
@@ -206,7 +206,7 @@ describe('Add Sports Data', () => {
|
|
|
206
206
|
(page) => page.template === 'live_stream_providers'
|
|
207
207
|
);
|
|
208
208
|
|
|
209
|
-
relation = addSportsDataToPage(sportsData, seoLiveStreamProviderPages[0], '
|
|
209
|
+
relation = addSportsDataToPage(sportsData, seoLiveStreamProviderPages[0], 'rage_seo');
|
|
210
210
|
expect(relation.providers.length).toEqual(2);
|
|
211
211
|
expect(relation.providers[0].name).toEqual('Bet365');
|
|
212
212
|
});
|
|
@@ -216,7 +216,7 @@ describe('Add Sports Data', () => {
|
|
|
216
216
|
(page) => page.template === 'team' && page.relation_id && sportsData.teams[page.relation_id]
|
|
217
217
|
);
|
|
218
218
|
|
|
219
|
-
relation = addSportsDataToPage(sportsData, seoTeamPages[0], '
|
|
219
|
+
relation = addSportsDataToPage(sportsData, seoTeamPages[0], 'rage_seo');
|
|
220
220
|
expect(relation.team.name).toEqual('FC Midtjylland');
|
|
221
221
|
expect(relation.event.id).toEqual(30184);
|
|
222
222
|
});
|
|
@@ -229,7 +229,7 @@ describe('Add Sports Data', () => {
|
|
|
229
229
|
sportsData.tournaments[page.relation_id]
|
|
230
230
|
);
|
|
231
231
|
|
|
232
|
-
relation = addSportsDataToPage(sportsData, seoTournamentPages[0], '
|
|
232
|
+
relation = addSportsDataToPage(sportsData, seoTournamentPages[0], 'rage_seo');
|
|
233
233
|
expect(relation.event.id).toEqual(30184);
|
|
234
234
|
expect(relation.providers.length).toEqual(2);
|
|
235
235
|
expect(relation.providers[0].name).toEqual('Bet365');
|
|
@@ -240,7 +240,7 @@ describe('Add Sports Data', () => {
|
|
|
240
240
|
(page) => page.template === 'event' && page.relation_id && sportsData.events[page.relation_id]
|
|
241
241
|
);
|
|
242
242
|
|
|
243
|
-
relation = addSportsDataToPage(sportsData, seoEventPages[0], '
|
|
243
|
+
relation = addSportsDataToPage(sportsData, seoEventPages[0], 'rage_seo');
|
|
244
244
|
expect(relation.event.id).toEqual(seoEventPages[0].relation_id);
|
|
245
245
|
expect(relation.tournament.name).toEqual('England Championship');
|
|
246
246
|
expect(relation.schedule.length).toEqual(2);
|
|
@@ -252,14 +252,14 @@ describe('Add Sports Data', () => {
|
|
|
252
252
|
page.template === 'team' || page.template === 'tournament' || page.template === 'event'
|
|
253
253
|
);
|
|
254
254
|
|
|
255
|
-
relation = addSportsDataToPage(sportsData, seoTeamTournamentEventPages[0], '
|
|
255
|
+
relation = addSportsDataToPage(sportsData, seoTeamTournamentEventPages[0], 'rage_seo');
|
|
256
256
|
expect(relation.mainProviders[0].name).toEqual('Bet365');
|
|
257
257
|
});
|
|
258
258
|
|
|
259
259
|
test('rage-seo leagues_list data', () => {
|
|
260
260
|
const seoLeaguesPages = pages.filter((page) => page.template === 'leagues_list');
|
|
261
261
|
|
|
262
|
-
relation = addSportsDataToPage(sportsData, seoLeaguesPages[0], '
|
|
262
|
+
relation = addSportsDataToPage(sportsData, seoLeaguesPages[0], 'rage_seo');
|
|
263
263
|
expect(Object.values(relation.tournaments).length).toEqual(2);
|
|
264
264
|
expect(Object.values(relation.tournaments)[1].name).toEqual('Super Cup');
|
|
265
265
|
});
|