gatsby-matrix-theme 34.0.25 → 35.0.0
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 +40 -0
- package/package.json +2 -2
- package/src/components/atoms/cards/operator-card/template-four/index.js +0 -1
- package/src/components/atoms/cards/operators-table/index.js +1 -1
- package/src/components/atoms/operator-bonuses/index.js +18 -9
- package/src/components/molecules/header/variants/operator/template-five/index.js +6 -1
- package/src/components/molecules/header/variants/operator/template-four/index.js +6 -1
- package/src/components/molecules/header/variants/operator/template-one-two/index.js +6 -1
- package/src/components/molecules/header/variants/operator/template-three/index.js +6 -1
- package/src/components/molecules/operator-details/index.js +34 -8
- package/src/components/molecules/operator-details/operator-details.module.scss +16 -10
- package/src/components/molecules/small-welcome-bonus/index.js +3 -4
- package/src/components/molecules/toplist/row/variant-one.js +11 -96
- package/src/components/molecules/toplist/row/variant-one.module.scss +36 -276
- package/src/components/molecules/toplist/row/variant-one.test.js +1 -53
- package/src/components/molecules/wagering-calculator/index.js +6 -1
- package/src/gatsby-core-theme/components/organisms/toplist/list/list.module.scss +7 -27
- package/storybook/public/{970.026a627d.iframe.bundle.js → 970.45afd955.iframe.bundle.js} +3 -3
- package/storybook/public/{970.026a627d.iframe.bundle.js.map → 970.45afd955.iframe.bundle.js.map} +1 -1
- package/storybook/public/iframe.html +1 -1
- package/storybook/public/main.6606080f.iframe.bundle.js +2 -0
- package/storybook/public/main.1052ee17.iframe.bundle.js +0 -2
- /package/storybook/public/{970.026a627d.iframe.bundle.js.LICENSE.txt → 970.45afd955.iframe.bundle.js.LICENSE.txt} +0 -0
- /package/storybook/public/{main.1052ee17.iframe.bundle.js.LICENSE.txt → main.6606080f.iframe.bundle.js.LICENSE.txt} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
# [35.0.0](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v34.0.26...v35.0.0) (2023-11-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* added sposonred and nofollow with all pretty links ([0ae586c](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0ae586ca6c9406318a2b2d500c1d893c38116c59))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Code Refactoring
|
|
10
|
+
|
|
11
|
+
* changes to code review ([cb728ff](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/cb728ff47ba405b7f3901660e8e16231f3e90a02))
|
|
12
|
+
* changes to partnership toplist ([aa5ae18](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/aa5ae18c78ec36db9f960847d4d45b9974599cbb))
|
|
13
|
+
* changes to ribbon ([9ae2276](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/9ae2276d15aa0771f64b04d3784fcb69dfe82985))
|
|
14
|
+
* changes to tablet view ([30c3e86](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/30c3e86a6fcc6fb63e63b09af06080e6080160e4))
|
|
15
|
+
* clean up classes ([5cbcc0f](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/5cbcc0f6d2e8d309ba87fe5cdf4396645feccbf4))
|
|
16
|
+
* correction to selling points ([5ad7033](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/5ad70335e7b0bb297ac6b1d3bad7fe2b72155861))
|
|
17
|
+
* remove unnecessary markup and styles ([e17e9da](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/e17e9da08664af0522db07dc269a92822b7301b7))
|
|
18
|
+
* removed unused code ([bd56c46](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/bd56c46785a89b5366b9f1241eab065049319f6d))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
* Merge branch 'tm-3724-affiliate-links-sponspored' into 'master' ([151aa25](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/151aa25994031ed7e76d5ddb4e442d0ab6cfafb3))
|
|
22
|
+
* Merge branch 'tm-3690-toplist' into 'master' ([ec8577c](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/ec8577cada8fec754b1abb3cc8a3b90cb5c13ea8))
|
|
23
|
+
* Merge branch 'master' into tm-3690-toplist ([4e2bb46](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/4e2bb46b459d67e44ceb7efbdfcaba0e2868b453))
|
|
24
|
+
* Merge branch 'master' into tm-3690-toplist ([c097dc4](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/c097dc4371d2fd56dc0622b75e6c7fac1b9a8552))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Tests
|
|
28
|
+
|
|
29
|
+
* correction to test ([44ff3fa](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/44ff3fa574c6b6f96bb1f2192aa9fbe1b581c22f))
|
|
30
|
+
|
|
31
|
+
## [34.0.26](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v34.0.25...v34.0.26) (2023-10-26)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Bug Fixes
|
|
35
|
+
|
|
36
|
+
* target ([273cbd8](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/273cbd8f35e132d8975102661a7cde1e0b614a63))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
* Merge branch 'operator-details' into 'master' ([cb3d763](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/cb3d76320b64c8e443484e3edf0c13339944e341))
|
|
40
|
+
|
|
1
41
|
## [34.0.25](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v34.0.24...v34.0.25) (2023-10-26)
|
|
2
42
|
|
|
3
43
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gatsby-matrix-theme",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "35.0.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"description": "Matrix Theme NPM Package",
|
|
6
6
|
"author": "",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@react-icons/all-files": "^4.1.0",
|
|
27
27
|
"gatsby": "^5.11.0",
|
|
28
|
-
"gatsby-core-theme": "30.0.
|
|
28
|
+
"gatsby-core-theme": "30.0.10",
|
|
29
29
|
"gatsby-plugin-sharp": "^5.11.0",
|
|
30
30
|
"gatsby-plugin-sitemap": "^3.3.0",
|
|
31
31
|
"gatsby-transformer-sharp": "^5.11.0",
|
|
@@ -59,7 +59,7 @@ const CasinosTable = ({ module, page }) => {
|
|
|
59
59
|
href={prettyTracker(item.relation, 'main', false, page?.template)}
|
|
60
60
|
className="table-operator-card-gtm btn-cta"
|
|
61
61
|
target="_blank"
|
|
62
|
-
rel="noreferrer"
|
|
62
|
+
rel="nofollow noreferrer sponsored"
|
|
63
63
|
>
|
|
64
64
|
{`${translate(translations, 'visit_table', 'Visit')} ${item?.relation?.name}`}
|
|
65
65
|
</a>
|
|
@@ -3,18 +3,17 @@
|
|
|
3
3
|
/* eslint-disable react/prop-types */
|
|
4
4
|
/* eslint-disable camelcase */
|
|
5
5
|
import React, { useContext } from 'react';
|
|
6
|
-
import
|
|
6
|
+
import OperatorCta from 'gatsby-core-theme/src/components/atoms/operator-cta-button';
|
|
7
7
|
import { Context } from 'gatsby-core-theme/src/context/MainProvider';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import styles from './operator-bonuses.module.scss';
|
|
10
10
|
|
|
11
|
-
import { getBonus,
|
|
11
|
+
import { getBonus, translate } from '~helpers/getters';
|
|
12
12
|
|
|
13
13
|
const OperatorBonuses = ({ page, operator }) => {
|
|
14
14
|
const onliner = getBonus('main', operator);
|
|
15
15
|
const { min_deposit, currency } = operator?.bonus;
|
|
16
16
|
const { deposit_wagering } = operator;
|
|
17
|
-
const prettyLink = prettyTracker(operator, 'main', false, page?.template);
|
|
18
17
|
const status = operator?.status;
|
|
19
18
|
const isPlaceholder = status === 'coming_soon' || page.extra_fields.operator_is_placeholder == 1;
|
|
20
19
|
const isInoperative = status === 'inactive' || page.extra_fields.operator_is_inoperative == 1;
|
|
@@ -59,12 +58,22 @@ const OperatorBonuses = ({ page, operator }) => {
|
|
|
59
58
|
</p>
|
|
60
59
|
)}
|
|
61
60
|
{!isPlaceholder && !isInoperative && (
|
|
62
|
-
<
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
<OperatorCta
|
|
62
|
+
translationsObj={{
|
|
63
|
+
active: { translationKey: 'btn_bonus', defaultValue: 'Get your bonus now' },
|
|
64
|
+
not_recommended: {
|
|
65
|
+
translationKey: 'not_recommended',
|
|
66
|
+
defaultValue: 'Not Recommended',
|
|
67
|
+
},
|
|
68
|
+
coming_soon: { translationKey: 'coming_soon', defaultValue: 'Soon Available' },
|
|
69
|
+
inactive: {
|
|
70
|
+
translationKey: 'inactive',
|
|
71
|
+
defaultValue: 'Not Accepting New Players',
|
|
72
|
+
},
|
|
73
|
+
blacklisted: { translationKey: 'blacklisted', defaultValue: 'Blacklisted' },
|
|
74
|
+
}}
|
|
75
|
+
operator={operator}
|
|
76
|
+
tracker="main"
|
|
68
77
|
/>
|
|
69
78
|
)}
|
|
70
79
|
</div>
|
|
@@ -32,7 +32,12 @@ const TemplateFive = ({
|
|
|
32
32
|
const { translations } = useContext(Context) || {};
|
|
33
33
|
|
|
34
34
|
const logo = () => (
|
|
35
|
-
<a
|
|
35
|
+
<a
|
|
36
|
+
href={prettyLink}
|
|
37
|
+
target="_blank"
|
|
38
|
+
rel="nofollow noreferrer sponsored"
|
|
39
|
+
className="header-gtm logo-cta "
|
|
40
|
+
>
|
|
36
41
|
<LazyImage
|
|
37
42
|
loading="eager"
|
|
38
43
|
src={imagePrettyUrl(image?.filename, 208, 208)}
|
|
@@ -29,7 +29,12 @@ const TemplateFour = ({
|
|
|
29
29
|
const ribbon = ribbons?.length > 0 ? ribbons[0] : null;
|
|
30
30
|
|
|
31
31
|
const logo = () => (
|
|
32
|
-
<a
|
|
32
|
+
<a
|
|
33
|
+
href={prettyLink}
|
|
34
|
+
target="_blank"
|
|
35
|
+
rel="nofollow noreferrer sponsored"
|
|
36
|
+
className="header-gtm logo-cta "
|
|
37
|
+
>
|
|
33
38
|
<LazyImage
|
|
34
39
|
loading="eager"
|
|
35
40
|
src={imagePrettyUrl(image?.filename, 300, 300)}
|
|
@@ -32,7 +32,12 @@ const TemplateOneTwo = ({
|
|
|
32
32
|
const ribbon = ribbons?.length > 0 ? ribbons[0] : null;
|
|
33
33
|
|
|
34
34
|
const logo = () => (
|
|
35
|
-
<a
|
|
35
|
+
<a
|
|
36
|
+
href={prettyLink}
|
|
37
|
+
target="_blank"
|
|
38
|
+
rel="nofollow noreferrer sponsored"
|
|
39
|
+
className="header-gtm logo-cta "
|
|
40
|
+
>
|
|
36
41
|
<LazyImage
|
|
37
42
|
loading="eager"
|
|
38
43
|
src={imagePrettyUrl(image?.filename, 179, 179)}
|
|
@@ -22,7 +22,12 @@ const TemplateThree = ({
|
|
|
22
22
|
const ribbon = ribbons?.length > 0 ? ribbons[0] : null;
|
|
23
23
|
|
|
24
24
|
const logo = () => (
|
|
25
|
-
<a
|
|
25
|
+
<a
|
|
26
|
+
href={prettyLink}
|
|
27
|
+
target="_blank"
|
|
28
|
+
rel="nofollow noreferrer sponsored"
|
|
29
|
+
className="header-gtm logo-cta "
|
|
30
|
+
>
|
|
26
31
|
<LazyImage
|
|
27
32
|
loading="eager"
|
|
28
33
|
src={imagePrettyUrl(image?.filename, 179, 179)}
|
|
@@ -4,16 +4,22 @@ import loadable from '@loadable/component';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
|
|
6
6
|
import Link from 'gatsby-core-theme/src/hooks/link';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
translate,
|
|
9
|
+
imagePrettyUrl,
|
|
10
|
+
getAltText,
|
|
11
|
+
prettyTracker,
|
|
12
|
+
} from 'gatsby-core-theme/src/helpers/getters';
|
|
8
13
|
import { Context } from '~context/MainProvider';
|
|
9
14
|
import styles from './operator-details.module.scss';
|
|
10
15
|
|
|
11
16
|
const OperatorDetails = ({
|
|
12
17
|
item,
|
|
13
|
-
|
|
18
|
+
prettyLinkTracker = false,
|
|
14
19
|
costumeStyle,
|
|
15
20
|
template,
|
|
16
21
|
ribbons,
|
|
22
|
+
tracker = 'main',
|
|
17
23
|
showRating = true,
|
|
18
24
|
showAuthor = true,
|
|
19
25
|
showReviewLink = true,
|
|
@@ -32,6 +38,9 @@ const OperatorDetails = ({
|
|
|
32
38
|
|
|
33
39
|
const itemName = item?.name || item?.relation?.name;
|
|
34
40
|
|
|
41
|
+
const trackerType = tracker.toLowerCase().replace(' ', '_');
|
|
42
|
+
const prettyLink = prettyTracker(item, trackerType, false, template);
|
|
43
|
+
|
|
35
44
|
const image =
|
|
36
45
|
item?.standardised_logo_url_object ||
|
|
37
46
|
item?.logo_url_object ||
|
|
@@ -62,9 +71,27 @@ const OperatorDetails = ({
|
|
|
62
71
|
? loadable(() => import('../../atoms/author/template-two'))
|
|
63
72
|
: null;
|
|
64
73
|
|
|
74
|
+
// eslint-disable-next-line react/prop-types
|
|
75
|
+
const Tag = ({ children, classStyle = '' }) =>
|
|
76
|
+
prettyLinkTracker ? (
|
|
77
|
+
<a
|
|
78
|
+
href={prettyLink}
|
|
79
|
+
aria-label={itemName}
|
|
80
|
+
target="_blank"
|
|
81
|
+
rel="nofollow noreferrer sponsored"
|
|
82
|
+
className={classStyle}
|
|
83
|
+
>
|
|
84
|
+
{children}
|
|
85
|
+
</a>
|
|
86
|
+
) : (
|
|
87
|
+
<Link to={reviewPath} className={classStyle}>
|
|
88
|
+
{children}
|
|
89
|
+
</Link>
|
|
90
|
+
);
|
|
91
|
+
|
|
65
92
|
return (
|
|
66
93
|
<div className={`${styles.operatorDetails} ${costumeStyle}`}>
|
|
67
|
-
<
|
|
94
|
+
<Tag classStyle="Logo cta">
|
|
68
95
|
<LazyImage
|
|
69
96
|
src={imagePrettyUrl(image?.filename, imageWidth, imageHeight)}
|
|
70
97
|
alt={getAltText(image, itemName)}
|
|
@@ -78,7 +105,7 @@ const OperatorDetails = ({
|
|
|
78
105
|
typeof ribbons !== 'undefined' &&
|
|
79
106
|
ribbons &&
|
|
80
107
|
ribbons?.length > 0 && <span className={styles.ribbon}>{ribbons[0]}</span>}
|
|
81
|
-
</
|
|
108
|
+
</Tag>
|
|
82
109
|
|
|
83
110
|
<div className={styles.details}>
|
|
84
111
|
{showRibbon &&
|
|
@@ -91,9 +118,7 @@ const OperatorDetails = ({
|
|
|
91
118
|
</span>
|
|
92
119
|
)}
|
|
93
120
|
|
|
94
|
-
<
|
|
95
|
-
{itemName}
|
|
96
|
-
</Link>
|
|
121
|
+
<Tag classStyle={`${styles.operatorName} name-cta `}>{itemName}</Tag>
|
|
97
122
|
|
|
98
123
|
<div
|
|
99
124
|
className={`${styles.ratingAuthor}
|
|
@@ -159,7 +184,8 @@ OperatorDetails.propTypes = {
|
|
|
159
184
|
}),
|
|
160
185
|
}),
|
|
161
186
|
costumeStyle: PropTypes.string,
|
|
162
|
-
|
|
187
|
+
prettyLinkTracker: PropTypes.bool,
|
|
188
|
+
tracker: PropTypes.string,
|
|
163
189
|
showRating: PropTypes.bool,
|
|
164
190
|
showAuthor: PropTypes.bool,
|
|
165
191
|
showReviewLink: PropTypes.bool,
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
> a {
|
|
6
6
|
flex: none;
|
|
7
|
-
position: relative;
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -17,19 +16,26 @@
|
|
|
17
16
|
.ribbon {
|
|
18
17
|
position: absolute;
|
|
19
18
|
white-space: nowrap;
|
|
20
|
-
width:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
font-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
width: auto;
|
|
20
|
+
top: -1rem;
|
|
21
|
+
right: 2.4rem;
|
|
22
|
+
font-weight: 700;
|
|
23
|
+
font-size: 0.9rem;
|
|
24
|
+
line-height: normal;
|
|
25
|
+
letter-spacing: 0.5px;
|
|
26
|
+
text-transform: uppercase;
|
|
26
27
|
display: flex;
|
|
27
28
|
align-items: center;
|
|
28
29
|
justify-content: center;
|
|
29
|
-
background-color: #
|
|
30
|
-
color: #
|
|
30
|
+
background-color: #20cd77;
|
|
31
|
+
color: #1b1b1c;
|
|
31
32
|
border-radius: 10rem;
|
|
32
|
-
|
|
33
|
+
padding: 0.4rem 0.8rem;
|
|
34
|
+
|
|
35
|
+
@include min (tablet) {
|
|
36
|
+
right: auto;
|
|
37
|
+
left: 2.4rem;
|
|
38
|
+
}
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
.contentRibbon {
|
|
@@ -39,7 +39,7 @@ const Index = ({ page }) => {
|
|
|
39
39
|
href={prettyLink}
|
|
40
40
|
title={operator.name}
|
|
41
41
|
target="_blank"
|
|
42
|
-
rel="noreferrer"
|
|
42
|
+
rel="nofollow noreferrer sponsored"
|
|
43
43
|
className="small-welcome-bonus-gtm logo-cta"
|
|
44
44
|
aria-label={`${operator?.name} Link`}
|
|
45
45
|
>
|
|
@@ -59,11 +59,10 @@ const Index = ({ page }) => {
|
|
|
59
59
|
href={prettyLink}
|
|
60
60
|
title={operator.name}
|
|
61
61
|
target="_blank"
|
|
62
|
-
rel="noreferrer"
|
|
62
|
+
rel="nofollow noreferrer sponsored"
|
|
63
63
|
className="small-welcome-bonus-gtm"
|
|
64
64
|
>
|
|
65
|
-
{
|
|
66
|
-
{playNow}{' '}
|
|
65
|
+
{playNow}
|
|
67
66
|
</a>
|
|
68
67
|
)}
|
|
69
68
|
</div>
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
/* eslint-disable react/prop-types */
|
|
2
2
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
3
|
-
import React
|
|
3
|
+
import React from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import { prettyTracker, getExtraField, translate } from 'gatsby-core-theme/src/helpers/getters';
|
|
6
|
-
import Label from 'gatsby-core-theme/src/components/atoms/label';
|
|
7
5
|
import SellingPoints from 'gatsby-core-theme/src/components/atoms/selling-points';
|
|
8
6
|
import OperatorCta from 'gatsby-core-theme/src/components/atoms/operator-cta-button';
|
|
9
7
|
import Tnc from 'gatsby-core-theme/src/components/molecules/tnc';
|
|
10
8
|
import Bonus from 'gatsby-core-theme/src/components/molecules/bonus-box/template-one';
|
|
11
|
-
import { Context } from 'gatsby-core-theme/src/context/MainProvider';
|
|
12
|
-
import ReviewLink from 'gatsby-core-theme/src/components/atoms/review-link';
|
|
13
|
-
import { getLaunchDate } from '../../../../helpers/strings';
|
|
14
9
|
import CasinoDetails from '../../operator-details';
|
|
15
10
|
import styles from './variant-one.module.scss';
|
|
16
11
|
|
|
@@ -19,38 +14,17 @@ export default function Row({
|
|
|
19
14
|
tracker = 'main',
|
|
20
15
|
oneliner = 'main',
|
|
21
16
|
layout = 'list',
|
|
22
|
-
number = 1,
|
|
23
17
|
index,
|
|
24
|
-
isPPC = false,
|
|
25
|
-
showLaunchDate = true,
|
|
26
|
-
showCtaReviewLink = false,
|
|
27
18
|
className,
|
|
28
19
|
itemRefs,
|
|
29
|
-
endLink = false,
|
|
30
20
|
authorTemplateTwo = false,
|
|
31
21
|
showAuthor,
|
|
32
22
|
useOneStarRating,
|
|
33
23
|
template,
|
|
34
24
|
}) {
|
|
35
|
-
const itemName = item.name;
|
|
36
|
-
const reviewPath = item.review_link ? `/${item.review_link}` : item.path || null;
|
|
37
|
-
const pros = item.extra_fields?.pro_1 || item.extra_fields?.pro_2 || item.extra_fields?.pro_3;
|
|
38
|
-
const { translations } = useContext(Context) || {};
|
|
39
25
|
const tandcEnabled = item?.extra_fields?.terms_and_conditions_text_enabled === '1';
|
|
40
|
-
|
|
41
|
-
if (pros) {
|
|
42
|
-
sellingPoints = [
|
|
43
|
-
item.extra_fields.pro_1,
|
|
44
|
-
item.extra_fields.pro_2,
|
|
45
|
-
item.extra_fields.pro_3,
|
|
46
|
-
].filter(Boolean);
|
|
47
|
-
}
|
|
48
|
-
const trackerType = tracker.toLowerCase().replace(' ', '_');
|
|
49
|
-
const prettyLink = prettyTracker(item, trackerType, false, template);
|
|
26
|
+
const sellingPoints = item.selling_points;
|
|
50
27
|
const { ribbons } = item;
|
|
51
|
-
const hasRibbon = ribbons && ribbons.length > 0;
|
|
52
|
-
|
|
53
|
-
const launchDate = getLaunchDate(item.founded);
|
|
54
28
|
|
|
55
29
|
const addToRefs = (el, itemNum) => {
|
|
56
30
|
if (el && itemRefs) {
|
|
@@ -61,102 +35,45 @@ export default function Row({
|
|
|
61
35
|
return (
|
|
62
36
|
<li
|
|
63
37
|
className={`${className || ''} ${styles?.row || ''} ${
|
|
64
|
-
layout === 'grid' ? styles?.grid || '' : ''
|
|
65
|
-
} ${showLaunchDate ? styles?.launchDate || '' : ''} ${
|
|
66
38
|
!tandcEnabled ? styles?.rowNoTandC || '' : ''
|
|
67
39
|
}`}
|
|
68
40
|
ref={(el) => addToRefs(el, index)}
|
|
69
41
|
>
|
|
70
|
-
{layout === 'grid' && (
|
|
71
|
-
<div
|
|
72
|
-
className={`${styles?.numbers || ''} ${styles[`num_${number}`] || ''}`}
|
|
73
|
-
id={`num_${number}`}
|
|
74
|
-
>
|
|
75
|
-
{number}
|
|
76
|
-
</div>
|
|
77
|
-
)}
|
|
78
|
-
{hasRibbon && (
|
|
79
|
-
<div className={styles?.ribbon || ''}>
|
|
80
|
-
{ribbons.slice(0, 3).map((r) => (
|
|
81
|
-
<Label
|
|
82
|
-
title={r}
|
|
83
|
-
bgColor={
|
|
84
|
-
getExtraField(item.extra_fields, 'ribbon_color')
|
|
85
|
-
? getExtraField(item.extra_fields, 'ribbon_color')
|
|
86
|
-
: '#0000'
|
|
87
|
-
}
|
|
88
|
-
/>
|
|
89
|
-
))}
|
|
90
|
-
</div>
|
|
91
|
-
)}
|
|
92
|
-
|
|
93
42
|
<CasinoDetails
|
|
94
43
|
item={item}
|
|
95
44
|
tracker={tracker}
|
|
96
45
|
template={template}
|
|
97
|
-
|
|
46
|
+
prettyLinkTracker
|
|
98
47
|
showAuthor={showAuthor}
|
|
99
48
|
useOneStarRating={useOneStarRating}
|
|
100
49
|
costumeStyle={styles.operatorDetails}
|
|
101
50
|
authorTemplateTwo={authorTemplateTwo}
|
|
51
|
+
ribbons={ribbons}
|
|
52
|
+
showRibbon
|
|
102
53
|
/>
|
|
103
54
|
|
|
104
55
|
<Bonus item={item} tracker={oneliner} />
|
|
105
56
|
|
|
106
57
|
<SellingPoints sellingPoints={sellingPoints} limit={3} />
|
|
107
58
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
</p>
|
|
115
|
-
<p>{launchDate}</p>
|
|
116
|
-
</>
|
|
117
|
-
)}
|
|
118
|
-
</div>
|
|
119
|
-
)}
|
|
120
|
-
|
|
121
|
-
<span className={styles?.ctaAndReview || ''}>
|
|
122
|
-
<OperatorCta
|
|
123
|
-
operator={item}
|
|
124
|
-
tracker={tracker}
|
|
125
|
-
gtmClass="toplist-operator-cta-gtm"
|
|
126
|
-
pageTemplate={template}
|
|
127
|
-
/>
|
|
128
|
-
{!isPPC && showCtaReviewLink && reviewPath && (
|
|
129
|
-
<ReviewLink
|
|
130
|
-
className={`${styles?.reviewLink || ''} toplist-variant-one-gtm`}
|
|
131
|
-
template={template}
|
|
132
|
-
operatorName={itemName}
|
|
133
|
-
reviewPath={reviewPath}
|
|
134
|
-
/>
|
|
135
|
-
)}
|
|
136
|
-
</span>
|
|
59
|
+
<OperatorCta
|
|
60
|
+
operator={item}
|
|
61
|
+
tracker={tracker}
|
|
62
|
+
gtmClass="toplist-operator-cta-gtm"
|
|
63
|
+
pageTemplate={template}
|
|
64
|
+
/>
|
|
137
65
|
|
|
138
|
-
{!isPPC && endLink && reviewPath && (
|
|
139
|
-
<ReviewLink
|
|
140
|
-
className={`${styles?.reviewLinkEnd || ''} toplist-variant-one-gtm`}
|
|
141
|
-
template={template}
|
|
142
|
-
operatorName={itemName}
|
|
143
|
-
reviewPath={reviewPath}
|
|
144
|
-
/>
|
|
145
|
-
)}
|
|
146
66
|
{tandcEnabled && <Tnc onlyMobile={layout === 'list'} operator={item} />}
|
|
147
67
|
</li>
|
|
148
68
|
);
|
|
149
69
|
}
|
|
150
70
|
|
|
151
71
|
Row.propTypes = {
|
|
152
|
-
showLaunchDate: PropTypes.bool,
|
|
153
72
|
index: PropTypes.number,
|
|
154
73
|
className: PropTypes.string,
|
|
155
74
|
tracker: PropTypes.string,
|
|
156
75
|
oneliner: PropTypes.string,
|
|
157
76
|
layout: PropTypes.oneOf(['list', 'grid']),
|
|
158
|
-
showCtaReviewLink: PropTypes.bool,
|
|
159
|
-
endLink: PropTypes.bool,
|
|
160
77
|
item: PropTypes.shape({
|
|
161
78
|
path: PropTypes.string,
|
|
162
79
|
authorName: PropTypes.string,
|
|
@@ -193,8 +110,6 @@ Row.propTypes = {
|
|
|
193
110
|
logo_url: PropTypes.string,
|
|
194
111
|
}),
|
|
195
112
|
}).isRequired,
|
|
196
|
-
number: PropTypes.number,
|
|
197
|
-
isPPC: PropTypes.bool,
|
|
198
113
|
showAuthor: PropTypes.bool,
|
|
199
114
|
useOneStarRating: PropTypes.bool,
|
|
200
115
|
};
|