gatsby-matrix-theme 3.2.14 → 3.2.18

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/package.json +2 -2
  3. package/src/components/atoms/cards/comparison-table/table/index.js +79 -70
  4. package/src/components/atoms/cards/comparison-table/table/table.module.scss +36 -37
  5. package/src/components/atoms/cards/operators-table/index.js +24 -10
  6. package/src/components/atoms/cards/operators-table/table.module.scss +15 -8
  7. package/src/components/molecules/game-iframe/game-iframe.module.scss +3 -0
  8. package/src/components/molecules/game-iframe/index.js +7 -2
  9. package/storybook/public/{0.ec2c65bb.iframe.bundle.js → 0.ae1584dd.iframe.bundle.js} +1 -1
  10. package/storybook/public/{1.fc1fb4aa.iframe.bundle.js → 1.5b14cfe6.iframe.bundle.js} +1 -1
  11. package/storybook/public/{10.ff8f20a0.iframe.bundle.js → 10.3d48be86.iframe.bundle.js} +1 -1
  12. package/storybook/public/{11.a965ed36.iframe.bundle.js → 11.3e5dcd6e.iframe.bundle.js} +1 -1
  13. package/storybook/public/{12.f31f86bb.iframe.bundle.js → 12.be3dbae0.iframe.bundle.js} +1 -1
  14. package/storybook/public/{13.c72a573a.iframe.bundle.js → 13.4c418d5e.iframe.bundle.js} +1 -1
  15. package/storybook/public/{14.454a253c.iframe.bundle.js → 14.13d10e61.iframe.bundle.js} +1 -1
  16. package/storybook/public/{15.baadf857.iframe.bundle.js → 15.2a8de093.iframe.bundle.js} +1 -1
  17. package/storybook/public/{16.9d6c22db.iframe.bundle.js → 16.e735ba7a.iframe.bundle.js} +1 -1
  18. package/storybook/public/{5.23a17f5a.iframe.bundle.js → 5.311f8126.iframe.bundle.js} +3 -3
  19. package/storybook/public/{5.23a17f5a.iframe.bundle.js.LICENSE.txt → 5.311f8126.iframe.bundle.js.LICENSE.txt} +0 -0
  20. package/storybook/public/5.311f8126.iframe.bundle.js.map +1 -0
  21. package/storybook/public/{6.069b5bfa.iframe.bundle.js → 6.16b0d47b.iframe.bundle.js} +1 -1
  22. package/storybook/public/{7.600a6e84.iframe.bundle.js → 7.95714d3a.iframe.bundle.js} +1 -1
  23. package/storybook/public/{8.fd6b3f00.iframe.bundle.js → 8.447f6c90.iframe.bundle.js} +1 -1
  24. package/storybook/public/{9.b7047aeb.iframe.bundle.js → 9.ad2cc66b.iframe.bundle.js} +3 -3
  25. package/storybook/public/{9.b7047aeb.iframe.bundle.js.LICENSE.txt → 9.ad2cc66b.iframe.bundle.js.LICENSE.txt} +0 -0
  26. package/storybook/public/9.ad2cc66b.iframe.bundle.js.map +1 -0
  27. package/storybook/public/iframe.html +1 -1
  28. package/storybook/public/main.bcb2214e.iframe.bundle.js +1 -0
  29. package/storybook/public/{runtime~main.ce98447d.iframe.bundle.js → runtime~main.3edb71ab.iframe.bundle.js} +1 -1
  30. package/storybook/public/{vendors~main.7fc7de06.iframe.bundle.js → vendors~main.75c685f6.iframe.bundle.js} +4 -4
  31. package/storybook/public/{vendors~main.7fc7de06.iframe.bundle.js.LICENSE.txt → vendors~main.75c685f6.iframe.bundle.js.LICENSE.txt} +0 -0
  32. package/storybook/public/vendors~main.75c685f6.iframe.bundle.js.map +1 -0
  33. package/storybook/public/5.23a17f5a.iframe.bundle.js.map +0 -1
  34. package/storybook/public/9.b7047aeb.iframe.bundle.js.map +0 -1
  35. package/storybook/public/main.35edfd20.iframe.bundle.js +0 -1
  36. package/storybook/public/vendors~main.7fc7de06.iframe.bundle.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,65 @@
1
+ ## [3.2.18](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v3.2.17...v3.2.18) (2022-01-25)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * cards v2 table translation key ([248cc7e](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/248cc7e36150831db8e7c598db5b537aee9b2a4f))
7
+ * iframe default image ([538c356](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/538c3562e2e81cc78cc5b06384e616f79f082da6))
8
+
9
+
10
+ ### Config
11
+
12
+ * updated core version ([b76c067](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/b76c0674a927d8b90b14f561d4a89382ad309538))
13
+
14
+
15
+ * Merge branch 'tm-2671-iframe-default-image' into 'master' ([839702e](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/839702e3ff05b1bfa2133b3c3748f592c5292be6))
16
+ * Merge branch 'tm-2667-cards-v2-table' into 'master' ([a3ca044](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/a3ca044169985daba1f5a7960d77c3a28cc68838))
17
+
18
+ ## [3.2.17](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v3.2.16...v3.2.17) (2022-01-21)
19
+
20
+
21
+ ### Config
22
+
23
+ * updated core version ([59be540](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/59be540b131c9432fedcdaf3ea0ea0644ac63dbf))
24
+ * updated core version ([a2b7043](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/a2b70435b212a8bdf89f59885b2d8ebf5c9418ef))
25
+
26
+
27
+ * Merge branch 'master' of git.ilcd.rocks:team-floyd/themes/matrix-theme ([be52d15](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/be52d153cedb0a88b07a99300f605ddc8e736bbf))
28
+
29
+ ## [3.2.16](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v3.2.15...v3.2.16) (2022-01-20)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * cards v2 tables ([9bf37b7](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/9bf37b745affa8bd3fc5f06dcd37ff08a5f59c4c))
35
+ * table cards styling ([47c30d5](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/47c30d5a0c8301ea0156af02274c9f82e364f48e))
36
+
37
+
38
+ ### Config
39
+
40
+ * updated core theme version ([e870906](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/e870906b830e863854da1c23f25eec56302e1cc1))
41
+
42
+
43
+ * Merge branch 'tm-2597-table-fixes' into 'master' ([3c97a96](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/3c97a9622fa85956e9ffbaf9cd83f497c9b52a80))
44
+
45
+ ## [3.2.15](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v3.2.14...v3.2.15) (2022-01-20)
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * make style and add load more button in payment section ([360f920](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/360f92081de6587872df734d9c7c53e01c6a7cbf))
51
+ * table changes ([50c01df](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/50c01dfe13ece0ffc14afff598c067c53e5c1b6a))
52
+
53
+
54
+ ### Code Refactoring
55
+
56
+ * comparison module logic ([50a34a0](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/50a34a0556c3523e1c23bbfd25c8ca7ac85cf96d))
57
+
58
+
59
+ * Merge branch 'tm-2585-comparison-module-changes' into 'master' ([733f558](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/733f5580f353ac5e98a4788a0d350b909ea186f1))
60
+ * Merge branch 'master' of git.ilcd.rocks:team-floyd/themes/matrix-theme into tm-2585-comparison-module-changes ([e5ccc72](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/e5ccc72e81cc297ce782b0da84a1bab4aadda225))
61
+ * Merge branch 'tm-2597-operators-table' into 'master' ([dacec3d](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/dacec3d702a26138ba4dc7bf98279bb93219d876))
62
+
1
63
  ## [3.2.14](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v3.2.13...v3.2.14) (2022-01-19)
2
64
 
3
65
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-matrix-theme",
3
- "version": "3.2.14",
3
+ "version": "3.2.18",
4
4
  "main": "index.js",
5
5
  "description": "Matrix Theme NPM Package",
6
6
  "author": "",
@@ -31,7 +31,7 @@
31
31
  "cross-env": "^7.0.2",
32
32
  "dotenv": "8.2.0",
33
33
  "gatsby": "^3.3.1",
34
- "gatsby-core-theme": "^2.2.0",
34
+ "gatsby-core-theme": "^2.2.3",
35
35
  "gatsby-image": "^3.3.0",
36
36
  "gatsby-plugin-image": "^1.3.1",
37
37
  "gatsby-plugin-postcss": "^4.3.0",
@@ -1,7 +1,9 @@
1
- import React, { useContext } from 'react';
1
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
2
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
3
+ /* eslint-disable jsx-a11y/anchor-is-valid */
4
+ import React, { useContext, useState } from 'react';
2
5
  import PropTypes from 'prop-types';
3
6
  import { AiOutlineCheckCircle } from 'react-icons/ai';
4
- import { VscFiles } from 'react-icons/vsc';
5
7
  import { imagePrettyUrl, translate } from 'gatsby-core-theme/src/helpers/getters';
6
8
  import LazyImg from 'gatsby-core-theme/src/hooks/lazy-image';
7
9
  import OperatorCta from 'gatsby-core-theme/src/components/atoms/operator-cta';
@@ -9,7 +11,6 @@ import StarRating from 'gatsby-core-theme/src/components/molecules/star-rating';
9
11
  import Link from 'gatsby-core-theme/src/hooks/link';
10
12
  import Bonus from 'gatsby-core-theme/src/components/atoms/bonus';
11
13
  import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
12
-
13
14
  import styles from './table.module.scss';
14
15
 
15
16
  const listHeadings = [
@@ -24,6 +25,7 @@ const listHeadings = [
24
25
  {
25
26
  defaultValue: 'Bonus',
26
27
  key: 'bonus',
28
+ // customComponent: ({operator}) => ( <td>{operator.title}</td> ), This is an example
27
29
  },
28
30
  {
29
31
  defaultValue: 'Top Features',
@@ -46,14 +48,25 @@ const listHeadings = [
46
48
  key: 'licenses',
47
49
  },
48
50
  ];
49
- export default function ComparisonTable({ items, tabelInfo = listHeadings }) {
51
+ export default function ComparisonTable({ items, tabelInfo = listHeadings, ctaKey = 'play_now' }) {
50
52
  const { translations } = useContext(Context) || {};
53
+ const [showAllPayment, setShowAllPayment] = useState([]);
54
+
55
+ const showAllPayments = (index) => {
56
+ setShowAllPayment([...showAllPayment, index]);
57
+ };
58
+
59
+ const cell = (heading, item, key, index) => {
60
+ const rowData = tabelInfo.find((m) => m.key === heading);
61
+ if (rowData && rowData.customComponent) {
62
+ const CustomComponent = rowData.customComponent;
63
+ return <CustomComponent operator={item} />;
64
+ }
51
65
 
52
- const cell = (heading, item, index) => {
53
66
  switch (heading) {
54
67
  case 'casino_name':
55
68
  return (
56
- <td key={index} className={styles.casinoName}>
69
+ <td key={key} className={styles.casinoName}>
57
70
  <LazyImg
58
71
  src={imagePrettyUrl(item?.relation?.logo_url)}
59
72
  height={89}
@@ -66,7 +79,7 @@ export default function ComparisonTable({ items, tabelInfo = listHeadings }) {
66
79
  tracker="main"
67
80
  operator={item?.relation}
68
81
  // new key
69
- translationKey="play_ex"
82
+ translationKey={ctaKey}
70
83
  gtmClass="comparison-table-gtm btn-cta"
71
84
  />
72
85
  </div>
@@ -74,20 +87,20 @@ export default function ComparisonTable({ items, tabelInfo = listHeadings }) {
74
87
  );
75
88
  case 'rating':
76
89
  return (
77
- <td key={index} className={styles.raiting}>
90
+ <td key={key} className={styles.raiting}>
78
91
  <StarRating numOfStars={5} rating={item?.relation?.rating} />
79
- <Link to={item.path}> {translate(translations, 'review', 'Read Review')} </Link>
92
+ <Link to={item.path}> {translate(translations, 'review', 'Review')} </Link>
80
93
  </td>
81
94
  );
82
95
  case 'bonus':
83
96
  return (
84
- <td key={index} className={styles.bonus}>
97
+ <td key={key} className={styles.bonus}>
85
98
  <Bonus tracker="main" item={item?.relation} />
86
99
  </td>
87
100
  );
88
101
  case 'top_features':
89
102
  return (
90
- <td key={index} className={styles.topFeatures}>
103
+ <td key={key} className={styles.topFeatures}>
91
104
  {item?.relation?.selling_points &&
92
105
  item?.relation?.selling_points.map((sellingPoint) => (
93
106
  <span key={sellingPoint}>
@@ -96,67 +109,61 @@ export default function ComparisonTable({ items, tabelInfo = listHeadings }) {
96
109
  ))}
97
110
  </td>
98
111
  );
99
- case 'coupon_code':
100
- return (
101
- <td key={index} className={styles.couponCode}>
102
- {item?.relation?.extra_fields?.coupon_code && (
103
- <>
104
- <p>
105
- {item?.relation?.extra_fields?.coupon_code}{' '}
106
- <VscFiles color="var(--coupon-code-color);" />
107
- </p>
108
- </>
109
- )}
110
- </td>
111
- );
112
112
  case 'payment_methods':
113
113
  return (
114
- <td key={index} className={styles.paymentMethods}>
115
- {item?.relation?.bonus?.deposit_methods &&
116
- item?.relation?.bonus?.deposit_methods.slice(0, 5).map((deposit) => (
117
- <span key={deposit.name}>
118
- <LazyImg
119
- src={imagePrettyUrl(deposit?.logo_filename)}
120
- width={72}
121
- height={72}
122
- alt={deposit.name}
123
- />
124
- </span>
125
- ))}
126
- {item?.relation?.bonus?.deposit_methods?.length > 5 && (
127
- <span>+{item?.relation?.bonus?.deposit_methods.length - 5}</span>
128
- )}
114
+ <td key={key} className={styles.paymentMethods}>
115
+ <div>
116
+ {item?.relation?.bonus?.deposit_methods &&
117
+ // eslint-disable-next-line array-callback-return
118
+ item?.relation?.bonus?.deposit_methods.map((deposit, i, list) => {
119
+ if (i < (showAllPayment.includes(index) ? list.length : 5)) {
120
+ return (
121
+ <span key={deposit.name}>
122
+ <LazyImg
123
+ src={imagePrettyUrl(deposit?.logo_filename)}
124
+ width={72}
125
+ height={72}
126
+ alt={deposit.name}
127
+ />
128
+ </span>
129
+ );
130
+ }
131
+ })}
132
+ {item?.relation?.bonus?.deposit_methods?.length > 5 &&
133
+ !showAllPayment.includes(index) && (
134
+ <a
135
+ onClick={() => {
136
+ showAllPayments(index);
137
+ }}
138
+ >
139
+ +{item?.relation?.bonus?.deposit_methods.length - 5}
140
+ </a>
141
+ )}
142
+ </div>
129
143
  </td>
130
144
  );
131
145
  case 'banking':
132
146
  return (
133
- <td key={index} className={styles.banking}>
134
- <p>
135
- {translate(translations, 'min_deposit', 'Min Deposit')}
136
- <span>{item?.relation?.bonus?.min_deposit}</span>
137
- </p>
138
- <p>
139
- {translate(translations, 'max_withdrawal', 'Max Withdrawal')}
140
- <span>{item?.relation?.bonus?.max_withdrawal}</span>
141
- </p>
142
- <p>
143
- {translate(translations, 'currency_support', 'Currency Support')}
144
- <span>
145
- {item?.relation?.bonus?.currencies &&
146
- item?.relation?.bonus?.currencies
147
- .slice(0, 3)
148
- .map((currencies, i, list) => (
149
- <>{`${currencies.iso_code}${i + 1 < list.length ? ', ' : ''}`}</>
150
- ))}
151
- </span>
152
- </p>
147
+ <td key={key} className={styles.banking}>
148
+ {item?.relation?.bonus?.min_deposit && (
149
+ <p>
150
+ {translate(translations, 'min_deposit', 'Min Deposit')}
151
+ <span>{item.relation.bonus.min_deposit}</span>
152
+ </p>
153
+ )}
154
+ {item?.relation?.bonus?.max_withdrawal && (
155
+ <p>
156
+ {translate(translations, 'max_withdrawal', 'Max Withdrawal')}
157
+ <span>{item.relation.bonus.max_withdrawal}</span>
158
+ </p>
159
+ )}
153
160
  </td>
154
161
  );
155
162
  case 'currencies':
156
163
  return (
157
- <td key={index} className={styles.currencies}>
164
+ <td key={key} className={styles.currencies}>
158
165
  {item?.relation?.bonus?.currencies &&
159
- item?.relation?.bonus?.currencies.map((currencies) => (
166
+ item?.relation?.bonus?.currencies.slice(0, 6).map((currencies) => (
160
167
  // eslint-disable-next-line react/no-array-index-key
161
168
  <span key={currencies.iso_code}>{currencies.iso_code} </span>
162
169
  ))}
@@ -164,15 +171,17 @@ export default function ComparisonTable({ items, tabelInfo = listHeadings }) {
164
171
  );
165
172
  case 'licenses':
166
173
  return (
167
- <td key={index} className={styles.licenses}>
174
+ <td key={key} className={styles.licenses}>
168
175
  {item?.relation?.bonus?.license_objects &&
169
- item?.relation?.bonus?.license_objects.map((license) => (
170
- <LazyImg
171
- src={imagePrettyUrl(license?.logo_filename)}
172
- height={32}
173
- alt={license.name}
174
- />
175
- ))}
176
+ item?.relation?.bonus?.license_objects
177
+ .slice(0, 3)
178
+ .map((license) => (
179
+ <LazyImg
180
+ src={imagePrettyUrl(license?.logo_filename)}
181
+ height={32}
182
+ alt={license.name}
183
+ />
184
+ ))}
176
185
  </td>
177
186
  );
178
187
  default:
@@ -186,7 +195,7 @@ export default function ComparisonTable({ items, tabelInfo = listHeadings }) {
186
195
  const cells = [];
187
196
 
188
197
  items.forEach((item, index) => {
189
- cells.push(cell(heading.key, item, `${heading}-${index}`));
198
+ cells.push(cell(heading.key, item, `${heading}-${index}`, index));
190
199
  });
191
200
 
192
201
  row.push(
@@ -66,11 +66,13 @@
66
66
  }
67
67
 
68
68
  .bonus {
69
- div:first-child {
69
+ @include flex-direction(column);
70
+ @include flex-align(flex-start, column);
71
+ p:first-child {
70
72
  font-size: 1.6rem;
71
73
  font-weight: bold;
72
74
  }
73
- div:nth-child(2) {
75
+ p:nth-child(2) {
74
76
  font-size: 1.4rem;
75
77
  font-weight: bold;
76
78
  }
@@ -112,14 +114,17 @@
112
114
  line-height: 2.4rem;
113
115
  margin-bottom: 1rem;
114
116
  color: black;
115
- span {
117
+ a {
116
118
  font-weight: bold;
119
+ text-decoration: none;
117
120
  }
118
121
  }
119
122
  }
120
123
  .currencies {
121
124
  padding: 1.6rem 1rem;
125
+ @include flex-align(center, flex-start);
122
126
  span {
127
+ text-align: center;
123
128
  margin-left: 0.4rem;
124
129
  background: var(--comparison-currencies-background-color);
125
130
  color: var(--comparison-currencies-text-color);
@@ -128,47 +133,41 @@
128
133
  font-weight: bold;
129
134
  font-size: 12px;
130
135
  line-height: 18px;
131
- width: 4.4rem;
136
+ width: 4.2rem;
132
137
  height: 2.4rem;
133
138
  padding: 0.499rem 0.8rem;
134
139
  display: inline-block;
135
140
  }
136
141
  }
137
142
  .paymentMethods {
138
- display: grid;
139
- grid-template-columns: repeat(3, 1fr);
140
- span {
141
- @include flex-direction(row);
142
- @include flex-align(center, center);
143
- font-weight: bold;
144
- font-size: 14px;
145
- line-height: 18px;
146
- object-fit: contain;
147
- color: black;
148
- margin-bottom: 0.5rem;
149
- margin-top: 0.5rem;
150
- img {
151
- width: 7.2rem;
152
- height: 3.2rem;
153
- object-fit: contain;
154
- }
143
+ height: 12.8rem;
144
+ overflow-y: scroll;
145
+ &::-webkit-scrollbar {
146
+ width: 3px;
155
147
  }
156
- }
157
- .couponCode {
158
- @include flex-align(center, flex-start);
159
- box-sizing: border-box;
160
- p {
161
- @include flex-align(center, center);
162
- border: 1px dashed var(--coupon-code-color);
163
- background-color: var(--backgorund--coupon-code-color);
164
- width: fit-content;
165
- padding: 0.4rem 1.6rem;
166
- border-radius: 0.5rem;
167
- font-weight: bold;
168
- font-size: 1.4rem;
169
- color: var(--coupon-code-color);
170
- svg{
171
- margin-left: 1rem;
148
+ &::-webkit-scrollbar-thumb {
149
+ background-color: darkgrey;
150
+ }
151
+ >div{
152
+ display: grid;
153
+ grid-template-columns: repeat(3, 1fr);
154
+ grid-gap: 1rem;
155
+ span, a {
156
+ @include flex-direction(row);
157
+ @include flex-align(center, center);
158
+ font-weight: bold;
159
+ font-size: 14px;
160
+ line-height: 18px;
161
+ object-fit: contain;
162
+ color: black;
163
+ margin-top: 0.5rem;
164
+ background-color: white;
165
+ width: 100%;
166
+ img {
167
+ width: 7.2rem;
168
+ height: 3.2rem;
169
+ object-fit: contain;
170
+ }
172
171
  }
173
172
  }
174
173
  }
@@ -1,9 +1,10 @@
1
1
  /* eslint-disable camelcase */
2
2
  import React, { useContext } from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import Link from 'gatsby-core-theme/src/hooks/link';
5
4
  import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
6
- import { translate, getBonus } from 'gatsby-core-theme/src/helpers/getters';
5
+ import { translate, getBonus, prettyTracker } from 'gatsby-core-theme/src/helpers/getters';
6
+ import Link from 'gatsby-core-theme/src/hooks/link';
7
+
7
8
  import styles from './table.module.scss';
8
9
 
9
10
  const CasinosTable = ({ module }) => {
@@ -28,23 +29,36 @@ const CasinosTable = ({ module }) => {
28
29
  <table>
29
30
  <thead>
30
31
  <tr>
31
- <th>{`${translate(translations, 'casino', 'Casino')}`}</th>
32
- <th>{`${translate(translations, 'bonus', 'Bonus')}`}</th>
33
- <th>{`${translate(translations, 'visit_casino', 'Visit casino')}`}</th>
32
+ <th>{`${translate(translations, 'online_casino', 'Online casino')}`}</th>
33
+ <th>{`${translate(translations, 'welcome_bonus', 'Welcome bonus')}`}</th>
34
+ <th>{`${translate(translations, 'visit_online_casino', 'Visit online casino')}`}</th>
34
35
  </tr>
35
36
  </thead>
36
37
  <tbody>
37
38
  {items &&
38
39
  items.map((item) => (
39
40
  <tr>
40
- <td>{item.title}</td>
41
41
  <td>
42
- {getBonus('main', item?.relation) && oneLiner(getBonus('main', item?.relation))}
42
+ <Link
43
+ to={item.path || item.relation.path}
44
+ title={item.relation.name}
45
+ className={`${styles.casinoLogo} table-operator-card-gtm`}
46
+ >
47
+ {item.title}
48
+ </Link>
43
49
  </td>
44
50
  <td>
45
- <Link to={item?.path} name={item?.relation?.name}>
46
- {`${item?.relation?.name} ${translate(translations, 'read_review', 'Review')}`}
47
- </Link>
51
+ {getBonus('main', item?.relation) && oneLiner(getBonus('main', item?.relation))}
52
+ </td>
53
+ <td style={{ textAlign: 'left' }}>
54
+ <a
55
+ href={prettyTracker(item.relation)}
56
+ className="table-operator-card-gtm btn-cta"
57
+ target="_blank"
58
+ rel="noreferrer"
59
+ >
60
+ {`${translate(translations, 'visit_table', 'Visit')} ${item?.relation?.name}`}
61
+ </a>
48
62
  </td>
49
63
  </tr>
50
64
  ))}
@@ -26,9 +26,17 @@
26
26
  a {
27
27
  text-decoration: underline;
28
28
  }
29
- .secondLine{
29
+ .secondLine {
30
30
  color: red;
31
31
  }
32
+ &:last-of-type {
33
+ a {
34
+ padding-left: 0;
35
+ text-decoration: none;
36
+ font-size: 1.6rem;
37
+ font-weight: normal;
38
+ }
39
+ }
32
40
  }
33
41
  &:nth-child(odd) {
34
42
  background-color: var(--table-highlight);
@@ -43,12 +51,11 @@
43
51
  tbody {
44
52
  tr {
45
53
  &:first-child {
46
-
47
54
  td {
48
55
  color: white;
49
56
  background-color: var(--table-head-background);
50
57
  border-radius: 0;
51
- .secondLine{
58
+ .secondLine {
52
59
  color: white;
53
60
  }
54
61
  &:first-child {
@@ -56,10 +63,10 @@
56
63
  border-top-right-radius: var(--table-border-radius);
57
64
  }
58
65
 
59
- a {
60
- color: white;
61
- text-decoration: underline;
62
- }
66
+ a {
67
+ color: white;
68
+ text-decoration: underline;
69
+ }
63
70
  }
64
71
  }
65
72
 
@@ -67,7 +74,7 @@
67
74
  display: block;
68
75
  text-align: left;
69
76
  border-bottom: 1px solid #bfd3e5;
70
- width: 100%;
77
+ width: 100%;
71
78
  }
72
79
 
73
80
  &:last-child {
@@ -7,6 +7,9 @@
7
7
  .thumbnail {
8
8
  display: inline-block;
9
9
  position: relative;
10
+ width: 100%;
11
+ display: flex;
12
+ justify-content: center;
10
13
 
11
14
  &::before {
12
15
  display: block;
@@ -5,6 +5,7 @@ import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
5
5
  import { imagePrettyUrl } from 'gatsby-core-theme/src/helpers/getters';
6
6
  import Iframe from 'gatsby-core-theme/src/components/atoms/iframe';
7
7
  import Button from 'gatsby-core-theme/src/components/atoms/button';
8
+ import GatsbyImg from 'gatsby-core-theme/src/hooks/gatsby-img';
8
9
  import styles from './game-iframe.module.scss';
9
10
 
10
11
  const GameIframe = ({ page }) => {
@@ -38,11 +39,15 @@ const GameIframe = ({ page }) => {
38
39
 
39
40
  return (
40
41
  <>
41
- {page.relation && page.relation.iframe !== '' && (
42
+ {page.relation && page.relation.iframe && page.relation.iframe !== '' && (
42
43
  <div>
43
44
  <div className={styles.thumbnailContainer}>
44
45
  <div className={`${styles.thumbnail} ${showIframe ? styles.hide : ''}`}>
45
- <LazyImage src={imagePrettyUrl(page.banner)} />
46
+ {page.banner ? (
47
+ <LazyImage src={imagePrettyUrl(page.banner)} />
48
+ ) : (
49
+ <GatsbyImg filename="default-slot.png" />
50
+ )}
46
51
  <Button
47
52
  isInternalLink={false}
48
53
  onClick={clickHandler}