gatsby-matrix-theme 6.0.7 → 7.0.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/package.json +2 -2
  3. package/src/components/atoms/author-card/index.js +4 -3
  4. package/src/components/atoms/cards/author-card/index.js +8 -3
  5. package/src/components/atoms/cards/game-card/index.js +7 -1
  6. package/src/components/atoms/cards/operator-card/index.js +8 -3
  7. package/src/components/atoms/cards/payment-method-card/index.js +11 -2
  8. package/src/components/atoms/cards/popup-card/index.js +11 -2
  9. package/src/components/atoms/cards/software-provider-card/index.js +9 -2
  10. package/src/components/molecules/carousel/screenshot-slide/index.js +2 -2
  11. package/src/components/molecules/small-welcome-bonus/index.js +3 -2
  12. package/src/components/molecules/toplist/row/variant-one.js +4 -1
  13. package/src/gatsby-core-theme/components/atoms/author/author.module.scss +63 -4
  14. package/src/gatsby-core-theme/components/atoms/author/index.js +25 -13
  15. package/src/gatsby-core-theme/components/atoms/spotlights/spotlights-theme.module.scss +4 -0
  16. package/src/gatsby-core-theme/components/molecules/module/index.js +1 -1
  17. package/src/gatsby-core-theme/components/organisms/head/index.js +1 -4
  18. package/src/gatsby-core-theme/components/organisms/toplist/index.js +4 -1
  19. package/src/gatsby-core-theme/components/organisms/toplist/list/index.js +4 -0
  20. package/src/gatsby-core-theme/helpers/schema.js +72 -84
  21. package/src/gatsby-core-theme/helpers/schema.test.js +165 -0
  22. package/src/helpers/strings.js +1 -1
  23. package/src/helpers/strings.test.js +1 -1
  24. package/src/hooks/tabs/index.js +22 -16
  25. package/src/hooks/tabs/tabs.module.scss +21 -6
  26. package/storybook/public/152.6cc82cda.iframe.bundle.js +7 -0
  27. package/storybook/public/{152.9981f97c.iframe.bundle.js.LICENSE.txt → 152.6cc82cda.iframe.bundle.js.LICENSE.txt} +0 -0
  28. package/storybook/public/{152.9981f97c.iframe.bundle.js.map → 152.6cc82cda.iframe.bundle.js.map} +1 -1
  29. package/storybook/public/331.e1ec4d4f.iframe.bundle.js +1 -0
  30. package/storybook/public/409.d7fe6677.iframe.bundle.js +1 -0
  31. package/storybook/public/720.03eee3cd.iframe.bundle.js +1 -0
  32. package/storybook/public/iframe.html +1 -1
  33. package/storybook/public/main.aea3939f.iframe.bundle.js +1 -0
  34. package/storybook/public/{runtime~main.9b2d0881.iframe.bundle.js → runtime~main.d8ea6524.iframe.bundle.js} +1 -1
  35. package/storybook/public/152.9981f97c.iframe.bundle.js +0 -7
  36. package/storybook/public/331.d887dc00.iframe.bundle.js +0 -1
  37. package/storybook/public/409.a5d345d6.iframe.bundle.js +0 -1
  38. package/storybook/public/720.bf033bab.iframe.bundle.js +0 -1
  39. package/storybook/public/main.a3cba67c.iframe.bundle.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,82 @@
1
+ ## [7.0.2](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v7.0.1...v7.0.2) (2022-05-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * alignment for toplist tabs ([37c0f39](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/37c0f39a5e9d35bfff0a11c94d102793cfc38de4))
7
+ * moved tabs aboved module-introduction and fixed layout ([480edba](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/480edbaf6e1ed588923996e099fea31484d70a8c))
8
+
9
+
10
+ ### Code Refactoring
11
+
12
+ * author card alignment ([c856e84](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/c856e84877e496b136fb13714c224c5f4894d3f1))
13
+ * theme styles to match IL ([8099473](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/80994733d4227f38f7999cea67654a70d6a783f4))
14
+
15
+
16
+ * Merge branch 'tm-2689-include-a-paragraph-in-all-module' into 'master' ([0e3e26b](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0e3e26b203a3b708834a5415253804c80c62f917))
17
+ * Merge branch 'tm-2801-fact-checker' into 'master' ([29ea252](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/29ea252b432f524a8592c339f2a870fbe483cab0))
18
+
19
+ ## [7.0.1](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v7.0.0...v7.0.1) (2022-05-05)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * aded page path to toplist row ([0169dc1](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0169dc16798874635f4cb61b708f68f2bd40b2a1))
25
+
26
+
27
+ ### Code Refactoring
28
+
29
+ * update nsa specific schema ([ee5bd71](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/ee5bd7134baf71dc3aba62f8c833e4dbc7007933))
30
+
31
+
32
+ * Merge branch 'tm-2814-toplist-extra-prop' into 'master' ([78975b6](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/78975b654605f831f78ecc0805d91a234a40a262))
33
+ * Merge branch 'tm-2708-update-nsa-specific-schema' into 'master' ([90821d2](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/90821d27e7d8c218bee5c590a2dc997798f7912c))
34
+
35
+ # [7.0.0](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v6.0.7...v7.0.0) (2022-05-05)
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * add props from image_object ([281f8cf](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/281f8cf5e71a961c0c2d44048e700980ba378a65))
41
+ * fix conflicts ([b516ebf](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/b516ebf750adc150a7f357e72567886f6cf151f2))
42
+ * launch date test ([88cf0cb](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/88cf0cb87c16480a249780ba709961182b11cb6e))
43
+ * rearenged logic in order for toplist's title and module introduction to appear in a correct way ([89a2c23](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/89a2c235c0b6cfef90ad7ba663b02a532b96db89))
44
+ * replace altText ([1f3b340](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/1f3b340bd3d21d0ed915e67237e6255c68f38d37))
45
+
46
+
47
+ ### Code Refactoring
48
+
49
+ * align spotlight links ([11ae011](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/11ae01120c99c42233a962375ab7454ecb26f654))
50
+ * author format change ([52ca43b](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/52ca43b06b7e5817d6bd5aa5144250b5712e16a2))
51
+ * correction to proptypes ([22b3bce](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/22b3bce9f02ea56fa8414061ea0e296d9dd2c1fa))
52
+ * disable NSA extra braedcrumb for schema ([c7476c6](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/c7476c6e6d38a024931b96d94dc67d2ffddddcc6))
53
+ * hide fact checker on article cards ([4487d16](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/4487d166727cf389e9a5520d4b2c578af7e54448))
54
+ * matrix fact checked by ([0ae7edc](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0ae7edc29d4391ef441f99b7e722bb0b810d3b83))
55
+ * remove fallback for publishing principles ([58e2a37](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/58e2a377b477d03da86216b6e8be598f9145d31e))
56
+ * remove styles and use prop for author card fact checker ([a2910b7](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/a2910b76f4725087703cdb7e45d50c23051c6a1c))
57
+ * update head meta robots for archive ([8c163b9](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/8c163b9ad8ad345ce2e467d46361b5fa3af96c34))
58
+ * update NSA specific breadcrumb schema ([0ccd233](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0ccd233d26acd27f5b0e6bf1457e8a8b487e6a4e))
59
+ * update site specific schema and update tests ([d796598](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/d796598928668f2cbdc9c1397e8f0c03139aad06))
60
+
61
+
62
+ ### Config
63
+
64
+ * update core theme ([4849170](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/4849170f16a98dc3ba4b6b57fe23bec941d379df))
65
+ * updated to latest core version ([2362319](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/236231966a405123c153d1269f0e1b2bbf9ef277))
66
+
67
+
68
+ * Merge branch 'tm-2801-fact-checker' into 'master' ([1aa6e20](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/1aa6e2038bf610f18e5c6d6db1cb529a172a8ea1))
69
+ * Merge branch 'tm-2829-image-alt-text' into 'master' ([fe1faea](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/fe1faea10da44d3df6121afe2218ec112fa0f7ee))
70
+ * Merge branch 'tm-2708-update-site-specific-schema' into 'master' ([9292722](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/9292722a6cdd664f4d1746f8a56d33db0f681b49))
71
+ * Merge branch 'tm-2831-update-archive-noindex-nofollow' into 'master' ([b7fec29](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/b7fec29a39cacc39b6f1ffb02cefe3e50a5b0c9b))
72
+ * Merge branch 'tm-2880-spotlight-links' into 'master' ([3ba81db](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/3ba81dbf0efcd3abd63d6bdb6b40dc56f0434086))
73
+ * Merge branch 'master' into tm-2708-update-site-specific-schema ([4e6a2aa](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/4e6a2aa0f50d316bf54c7cc75e668ec7527f4a38))
74
+ * Merge branch 'master' into tm-2801-fact-checker ([5e3e762](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/5e3e76213240cf0aeef600de7a200050a6a11b7f))
75
+ * Merge branch 'master' into tm-2880-spotlight-links ([87d9b61](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/87d9b61689689e2231dbdaf07c8fd7c916ce9c15))
76
+ * Merge branch 'tm-2689-add-paragraph' into 'master' ([7db206a](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/7db206a4f4b1a67772ee425951e0c73e13037d8f))
77
+ * Merge branch 'master' into tm-2880-spotlight-links ([be5072f](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/be5072f72e787dbfd7ca10b3b13acb623d80e1ea))
78
+ * Merge branch 'master' into tm-2801-fact-checker ([09ab168](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/09ab16836bc94b6565eb67481eacd7c4a2dee768))
79
+
1
80
  ## [6.0.7](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v6.0.6...v6.0.7) (2022-04-28)
2
81
 
3
82
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-matrix-theme",
3
- "version": "6.0.7",
3
+ "version": "7.0.2",
4
4
  "main": "index.js",
5
5
  "description": "Matrix Theme NPM Package",
6
6
  "author": "",
@@ -29,7 +29,7 @@
29
29
  "react": "^17.0.2",
30
30
  "gatsby-plugin-sitemap": "^3.3.0",
31
31
  "react-dom": "^17.0.2",
32
- "gatsby-core-theme": "^6.1.9"
32
+ "gatsby-core-theme": "^7.0.1"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@babel/core": "^7.13.1",
@@ -1,19 +1,20 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
1
2
  /* eslint-disable camelcase */
2
3
  import React from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
5
- import { imagePrettyUrl } from 'gatsby-core-theme/src/helpers/getters';
6
+ import { imagePrettyUrl, getAltText } from 'gatsby-core-theme/src/helpers/getters';
6
7
  import styles from './author-card.module.scss';
7
8
 
8
9
  const AuthorCard = ({ author, width = 60, height = 60 }) => {
9
- const { name, author_title, email_address, image, image_alt } = author || {};
10
+ const { name, author_title, email_address, image, image_alt, image_object } = author || {};
10
11
 
11
12
  return (
12
13
  <div className={styles.authorCard}>
13
14
  <div className={styles.img}>
14
15
  <LazyImage
15
16
  src={imagePrettyUrl(image)}
16
- alt={image_alt || name}
17
+ alt={getAltText(image_object, image_alt || name)}
17
18
  width={width}
18
19
  height={height}
19
20
  />
@@ -1,16 +1,18 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
1
2
  /* eslint-disable camelcase */
2
3
  import React from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
5
-
6
+ import { getAltText } from 'gatsby-core-theme/src/helpers/getters';
6
7
  import styles from './author-card.module.scss';
7
8
 
8
9
  const AuthorCard = ({ item, width, height }) => {
9
- const { name, position, email, image } = item;
10
+ const { name, position, email, image, image_object } = item;
11
+
10
12
  return (
11
13
  <div className={styles.authorCard}>
12
14
  <div className={styles.img}>
13
- <LazyImage width={width} height={height} src={image} alt={name} />
15
+ <LazyImage width={width} height={height} src={image} alt={getAltText(image_object, name)} />
14
16
  </div>
15
17
  <div className={styles.txt}>
16
18
  <div className={styles.name}>{name}</div>
@@ -34,6 +36,9 @@ AuthorCard.propTypes = {
34
36
  position: PropTypes.string,
35
37
  email: PropTypes.string,
36
38
  image: PropTypes.string,
39
+ image_object: PropTypes.shape({
40
+ alt: PropTypes.string,
41
+ }),
37
42
  }).isRequired,
38
43
  width: PropTypes.number,
39
44
  height: PropTypes.number,
@@ -9,6 +9,7 @@ import {
9
9
  imagePrettyUrl,
10
10
  getSectionExtraField,
11
11
  translate,
12
+ getAltText,
12
13
  } from 'gatsby-core-theme/src/helpers/getters';
13
14
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
14
15
  import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
@@ -27,6 +28,8 @@ const GameCard = ({
27
28
  const cardBackgroundImage = getSectionExtraField(null, item, 'card_background_image');
28
29
  const featured = !!cardBackgroundImage;
29
30
  const { translations } = useContext(Context) || {};
31
+
32
+ const logUrlObject = relation?.thumbnail_filename_object;
30
33
  const StarRating = useOneStarRating
31
34
  ? loadable(() => import('gatsby-core-theme/src/components/molecules/star-rating/one-star'))
32
35
  : loadable(() => import('gatsby-core-theme/src/components/molecules/star-rating'));
@@ -44,7 +47,7 @@ const GameCard = ({
44
47
  width={width}
45
48
  height={height}
46
49
  src={imagePrettyUrl(banner, width, height)}
47
- alt={title}
50
+ alt={getAltText(logUrlObject, title)}
48
51
  />
49
52
  ) : (
50
53
  <GatsbyImg filename="default-slot.jpg" alt={title} />
@@ -92,6 +95,9 @@ GameCard.propTypes = {
92
95
  third_rating: PropTypes.string,
93
96
  fourth_rating: PropTypes.string,
94
97
  game_provider: PropTypes.shape({ name: PropTypes.string }),
98
+ thumbnail_filename_object: PropTypes.shape({
99
+ alt: PropTypes.string,
100
+ }),
95
101
  }),
96
102
  title: PropTypes.string,
97
103
  path: PropTypes.string,
@@ -3,7 +3,7 @@
3
3
  import React, { useContext } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import loadable from '@loadable/component';
6
- import { imagePrettyUrl, translate } from 'gatsby-core-theme/src/helpers/getters';
6
+ import { getAltText, imagePrettyUrl, translate } from 'gatsby-core-theme/src/helpers/getters';
7
7
  import Link from 'gatsby-core-theme/src/hooks/link';
8
8
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
9
9
  import Bonus from 'gatsby-core-theme/src/components/atoms/bonus';
@@ -26,6 +26,7 @@ const OperatorCard = ({
26
26
  const status = relation?.status;
27
27
  const isInactive = status === 'inactive';
28
28
  const backgroundImage = number === 1 ? 'featuredCasino' : null;
29
+ const logUrlObject = relation?.logo_url_object;
29
30
  const { translations } = useContext(Context) || {};
30
31
  const StarRating = useOneStarRating
31
32
  ? loadable(() => import('gatsby-core-theme/src/components/molecules/star-rating/one-star'))
@@ -46,8 +47,8 @@ const OperatorCard = ({
46
47
  <LazyImage
47
48
  width={width}
48
49
  height={height}
49
- src={imagePrettyUrl(relation.logo_url)}
50
- alt={relation.name}
50
+ src={imagePrettyUrl(relation?.logo_url_object?.filename)}
51
+ alt={getAltText(logUrlObject, relation.name)}
51
52
  />
52
53
  </Link>
53
54
  <StarRating numOfStars={5} halfStars={false} rating={relation.rating} />
@@ -103,6 +104,10 @@ OperatorCard.propTypes = {
103
104
  terms_and_conditions_text_enabled: PropTypes.string,
104
105
  }),
105
106
  status: PropTypes.string,
107
+ logo_url_object: PropTypes.shape({
108
+ alt: PropTypes.string,
109
+ filename: PropTypes.string,
110
+ }),
106
111
  }),
107
112
  path: PropTypes.string,
108
113
  }).isRequired,
@@ -2,7 +2,12 @@ import React, { useContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Link from 'gatsby-core-theme/src/hooks/link';
4
4
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
5
- import { imagePrettyUrl, textWordsLimit, translate } from 'gatsby-core-theme/src/helpers/getters';
5
+ import {
6
+ getAltText,
7
+ imagePrettyUrl,
8
+ textWordsLimit,
9
+ translate,
10
+ } from 'gatsby-core-theme/src/helpers/getters';
6
11
  import Button from 'gatsby-core-theme/src/components/atoms/button';
7
12
  import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
8
13
 
@@ -11,6 +16,7 @@ import styles from './payment-method-card.module.scss';
11
16
 
12
17
  const PaymentMethodCard = ({ item, showTitle = true, showDesc = true, width, height }) => {
13
18
  const { title, path, relation, sections } = item;
19
+ const logUrlObject = relation?.logo_object;
14
20
  const { translations } = useContext(Context) || {};
15
21
 
16
22
  return (
@@ -27,7 +33,7 @@ const PaymentMethodCard = ({ item, showTitle = true, showDesc = true, width, hei
27
33
  height={height}
28
34
  className={styles.logo}
29
35
  src={imagePrettyUrl(relation?.logo)}
30
- alt={title}
36
+ alt={getAltText(logUrlObject, title)}
31
37
  />
32
38
  </Link>
33
39
  {showTitle && (
@@ -64,6 +70,9 @@ PaymentMethodCard.propTypes = {
64
70
  relation: PropTypes.shape({
65
71
  games_count: PropTypes.number,
66
72
  logo: PropTypes.string,
73
+ logo_object: PropTypes.shape({
74
+ alt: PropTypes.string,
75
+ }),
67
76
  }),
68
77
  sections: PropTypes.shape({
69
78
  header: PropTypes.shape({
@@ -2,7 +2,7 @@ import React, { useContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
4
4
  import OperatorCta from 'gatsby-core-theme/src/components/atoms/operator-cta';
5
- import { imagePrettyUrl, translate } from 'gatsby-core-theme/src/helpers/getters';
5
+ import { getAltText, imagePrettyUrl, translate } from 'gatsby-core-theme/src/helpers/getters';
6
6
  import Tnc from 'gatsby-core-theme/src/components/molecules/tnc';
7
7
  import StarRating from 'gatsby-core-theme/src/components/molecules/star-rating';
8
8
  import LazyImage from '~hooks/lazy-image';
@@ -27,11 +27,17 @@ const PopupCard = ({
27
27
  oneLiner,
28
28
  secondLiner,
29
29
  ];
30
+ const logUrlObject = item?.logo_url_object;
30
31
 
31
32
  return (
32
33
  <div className={styles.popupCard}>
33
34
  <div className={styles.imgContainer}>
34
- <LazyImage src={imagePrettyUrl(logoUrl)} alt={oneLiner} width={98} height={98} />
35
+ <LazyImage
36
+ src={imagePrettyUrl(logoUrl)}
37
+ alt={getAltText(logUrlObject, oneLiner)}
38
+ width={98}
39
+ height={98}
40
+ />
35
41
  {showRating && <StarRating numOfStars={5} rating={item?.rating} />}
36
42
  {showName && <p className={styles.name}>{name}</p>}
37
43
  </div>
@@ -71,6 +77,9 @@ PopupCard.propTypes = {
71
77
  }),
72
78
  review_link: PropTypes.string,
73
79
  rating: PropTypes.string,
80
+ logo_url_object: PropTypes.shape({
81
+ alt: PropTypes.string,
82
+ }),
74
83
  extra_fields: PropTypes.shape({
75
84
  terms_and_conditions_text_enabled: PropTypes.string,
76
85
  }),
@@ -2,7 +2,12 @@ import React, { useContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Link from 'gatsby-core-theme/src/hooks/link';
4
4
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
5
- import { imagePrettyUrl, textWordsLimit, translate } from 'gatsby-core-theme/src/helpers/getters';
5
+ import {
6
+ getAltText,
7
+ imagePrettyUrl,
8
+ textWordsLimit,
9
+ translate,
10
+ } from 'gatsby-core-theme/src/helpers/getters';
6
11
  import Button from 'gatsby-core-theme/src/components/atoms/button';
7
12
  import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
8
13
 
@@ -23,6 +28,7 @@ const SoftwareProviderCard = ({
23
28
  }) => {
24
29
  const { title, path, relation, sections } = item;
25
30
  const { translations } = useContext(Context) || {};
31
+ const logUrlObject = relation?.logo_object;
26
32
 
27
33
  return (
28
34
  <BaseCard item={item} cardType="software_provider">
@@ -38,7 +44,7 @@ const SoftwareProviderCard = ({
38
44
  height={height}
39
45
  className={styles.logo}
40
46
  src={imagePrettyUrl(relation?.logo)}
41
- alt={title}
47
+ alt={getAltText(logUrlObject, title)}
42
48
  />
43
49
  </Link>
44
50
  {showTitle && (
@@ -87,6 +93,7 @@ SoftwareProviderCard.propTypes = {
87
93
  relation: PropTypes.shape({
88
94
  games_count: PropTypes.number,
89
95
  logo: PropTypes.string,
96
+ logo_object: PropTypes.shape({}),
90
97
  }),
91
98
  sections: PropTypes.shape({
92
99
  header: PropTypes.shape({
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
4
4
  import parse from 'html-react-parser';
5
5
 
6
6
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
7
- import { imagePrettyUrl } from 'gatsby-core-theme/src/helpers/getters';
7
+ import { imagePrettyUrl, getAltText } from 'gatsby-core-theme/src/helpers/getters';
8
8
  import styles from './screenshot-slide.module.scss';
9
9
 
10
10
  const Slide = ({ item = {}, slideTitle = '' }) => (
@@ -15,7 +15,7 @@ const Slide = ({ item = {}, slideTitle = '' }) => (
15
15
  height={item?.image_object?.height}
16
16
  className={styles.image}
17
17
  src={imagePrettyUrl(item.image)}
18
- alt={item.title || slideTitle}
18
+ alt={getAltText(item?.image_object, item.title || slideTitle)}
19
19
  />
20
20
  )}
21
21
  {item.content && <p className={styles.content}>{parse(item.content)}</p>}
@@ -7,6 +7,7 @@ import {
7
7
  imagePrettyUrl,
8
8
  translate,
9
9
  getBonus,
10
+ getAltText,
10
11
  } from 'gatsby-core-theme/src/helpers/getters';
11
12
  import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
12
13
  import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
@@ -22,7 +23,7 @@ const Index = ({ page }) => {
22
23
  const prettyLink = prettyTracker(operator);
23
24
  let playNow = translate(translations, 'play_now', 'Play now');
24
25
  const bonus = getBonus('main', operator);
25
-
26
+ const logUrlObject = operator?.logo_url_object;
26
27
  if (isMobile) {
27
28
  playNow = `> ${translate(translations, 'play_for_real_at', 'Play for real at')} @ ${
28
29
  operator.name
@@ -45,7 +46,7 @@ const Index = ({ page }) => {
45
46
  <LazyImage
46
47
  width={120}
47
48
  height={50}
48
- alt={operator?.name}
49
+ alt={getAltText(logUrlObject, operator?.name)}
49
50
  src={imagePrettyUrl(logo_url, 120, 50)}
50
51
  />
51
52
  </a>
@@ -7,6 +7,7 @@ import {
7
7
  imagePrettyUrl,
8
8
  getExtraField,
9
9
  translate,
10
+ getAltText,
10
11
  } from 'gatsby-core-theme/src/helpers/getters';
11
12
  import Link from 'gatsby-core-theme/src/hooks/link';
12
13
  import Label from 'gatsby-core-theme/src/components/atoms/label';
@@ -45,6 +46,7 @@ export default function Row({
45
46
  const trackerType = tracker.toLowerCase().replace(' ', '_');
46
47
  const prettyLink = prettyTracker(item, trackerType);
47
48
  const launchDate = getLaunchDate(item.founded);
49
+ const logUrlObject = item?.logo_url_object;
48
50
 
49
51
  return (
50
52
  <div className={`${styles.row} ${layout === 'grid' ? styles.grid : ''}`}>
@@ -77,7 +79,7 @@ export default function Row({
77
79
  className="toplist-variant-one-gtm logo-cta"
78
80
  >
79
81
  <LazyImage
80
- alt={itemName}
82
+ alt={getAltText(logUrlObject, itemName)}
81
83
  width={128}
82
84
  height={40}
83
85
  src={imagePrettyUrl(logoUrl, 128, 60)}
@@ -148,6 +150,7 @@ Row.propTypes = {
148
150
  name: PropTypes.string,
149
151
  logo_url: PropTypes.string,
150
152
  rating: PropTypes.string,
153
+ logo_url_object: PropTypes.shape({}),
151
154
  selling_points: PropTypes.arrayOf(PropTypes.string),
152
155
  review_link: PropTypes.string,
153
156
  one_liners: PropTypes.shape({
@@ -1,13 +1,25 @@
1
1
  .authorWraper {
2
- display: grid;
3
- grid-template-rows: repeat(2, 1fr);
2
+ display: flex;
3
+ flex-wrap: wrap;
4
4
  align-items: center;
5
+ justify-content: flex-end;
5
6
  font-size: var(--author-text-fontSize);
6
7
  color: var(--author-primary-text-color);
8
+ max-width: 370px;
9
+ column-gap: 0.5rem;
10
+
11
+ > div {
12
+ display: flex;
13
+ justify-content: flex-end;
14
+ }
15
+
7
16
  .infoContainer {
8
17
  display: flex;
9
18
  align-items: center;
10
19
  white-space: nowrap;
20
+ order: 1;
21
+ flex: 1 1 auto;
22
+
11
23
  .prefixStyle {
12
24
  margin: 0px;
13
25
  }
@@ -34,21 +46,64 @@
34
46
  padding: 0px 2px;
35
47
  }
36
48
  }
49
+
50
+ @include max(mobile) {
51
+ justify-content: flex-start;
52
+ }
37
53
  }
38
54
  .dateTimeWrapper {
39
55
  display: flex;
40
56
  align-items: center;
41
57
  white-space: nowrap;
58
+ order: 4;
59
+ flex: 0 0 auto;
60
+ gap: 0.5rem;
61
+
42
62
  .readingWithBorder {
43
63
  &:before {
44
64
  content: '|';
45
65
  padding: 0px 3px;
46
66
  }
47
67
  }
68
+
69
+ @include max(mobile){
70
+ order: 2;
71
+
72
+ span {
73
+ display: none;
74
+ }
75
+ }
76
+ }
77
+
78
+ .readingWithBorder {
79
+ order: 2;
80
+ flex: 0 0 auto;
81
+ gap: 0.5rem;
82
+
83
+ @include max(mobile){
84
+ order: 4;
85
+ }
48
86
  }
49
87
 
50
- @include min(tablet) {
51
- display: flex;
88
+ .reviewer {
89
+ order: 3;
90
+ flex: 1 1 auto;
91
+ gap: 0.5rem;
92
+
93
+ > a {
94
+ color: var(--author-link-text-color);
95
+ font-weight: var(--author-fontweight);
96
+ text-decoration: underline;
97
+ }
98
+
99
+ @include max(mobile) {
100
+ justify-content: flex-start;
101
+ }
102
+ }
103
+
104
+ @include max(mobile) {
105
+ max-width: 100%;
106
+ margin: 0.8rem 0 0.2rem;
52
107
  }
53
108
  }
54
109
 
@@ -58,6 +113,10 @@
58
113
  justify-content: space-between;
59
114
  color: var( --author-card-text-color);
60
115
 
116
+ .infoContainer {
117
+ justify-content: flex-start;
118
+ }
119
+
61
120
  @include min(tablet){
62
121
  display: flex;
63
122
  justify-content: space-between;
@@ -22,6 +22,7 @@ const Author = ({
22
22
  splitDateFormat = '.',
23
23
  dateFormat = 'DD.MM.YYYY',
24
24
  isCardsAuthor = false,
25
+ reviewer = {},
25
26
  }) => {
26
27
  const { translations } = useContext(Context) || {};
27
28
  const prefixstyle = !link || !authorImg;
@@ -34,7 +35,7 @@ const Author = ({
34
35
  <div className={`${styles.authorWraper} ${isCardsAuthor && styles.authorCard} `}>
35
36
  <div className={`${styles.infoContainer} ${isCardsAuthor && styles.infoCardContainer}`}>
36
37
  <p className={`${styles.prefixStyle} ${prefixstyle && styles.prefixCardText}`}>
37
- {prefix || getPrefixBasedOnPage}
38
+ <span>{prefix || getPrefixBasedOnPage}</span>
38
39
  </p>
39
40
  <Link to={link} title={name}>
40
41
  {name}
@@ -50,18 +51,28 @@ const Author = ({
50
51
  />
51
52
  )}
52
53
  </div>
53
- <div className={styles.dateTimeWrapper}>
54
- {date && <div>{formatDate(date, dateFormat, splitDateFormat, 'en-GB')}</div>}
55
- {readingTime && (
56
- <div className={date && styles.readingWithBorder}>
57
- {`${translate(translations, 'reading_time', 'Reading time')} ${readingTime} ${translate(
58
- translations,
59
- 'minutes',
60
- 'min'
61
- )}`}
62
- </div>
63
- )}
64
- </div>
54
+ {reviewer.name && !isCardsAuthor && (
55
+ <div className={date && styles.reviewer}>
56
+ <span>{`${translate(translations, 'fact_checked_by', 'Fact checked by')}`}</span>
57
+ {` `}
58
+ <Link to={reviewer.profile_page_path} title={reviewer.name}>
59
+ {reviewer.name}
60
+ </Link>
61
+ </div>
62
+ )}
63
+ {date && (
64
+ <div className={styles.dateTimeWrapper}>
65
+ {!isCardsAuthor && <span>{translate(translations, 'published_on', 'Published on')}</span>}
66
+ {` `}
67
+ {formatDate(date, dateFormat, splitDateFormat, 'en-GB')}
68
+ </div>
69
+ )}
70
+ {readingTime && !isCardsAuthor && (
71
+ <div className={date && styles.readingWithBorder}>
72
+ <span>{translate(translations, 'reading_time', 'Reading time')}</span>
73
+ {` ${readingTime} ${translate(translations, 'minutes', 'min')}`}
74
+ </div>
75
+ )}
65
76
  </div>
66
77
  );
67
78
  };
@@ -78,6 +89,7 @@ Author.propTypes = {
78
89
  icon: PropTypes.string,
79
90
  splitDateFormat: PropTypes.string,
80
91
  isCardsAuthor: PropTypes.bool,
92
+ reviewer: PropTypes.shape({}),
81
93
  };
82
94
 
83
95
  export default Author;
@@ -34,6 +34,10 @@
34
34
  }
35
35
 
36
36
  > div {
37
+ display: flex;
38
+ flex-direction: column;
39
+ flex: 1;
40
+ justify-content: space-between;
37
41
  font-size: var(--spotlight-testimonials-text-size);
38
42
  color: var(--spotlight-testimonials-text-color);
39
43
  }
@@ -120,7 +120,7 @@ const Modules = ({ module, page, pageContext }) => {
120
120
  } ${styles.module} ${module?.style && styles[module.style]} module`}
121
121
  >
122
122
  {module.name !== 'top_list' && <ModuleTitle module={module} />}
123
- {module.module_introduction && (
123
+ {module.name !== 'top_list' && module.module_introduction && (
124
124
  // eslint-disable-next-line react/no-danger
125
125
  <div dangerouslySetInnerHTML={{ __html: module?.module_introduction }} />
126
126
  )}
@@ -57,10 +57,7 @@ const Head = ({ page = {}, siteInfo }) => {
57
57
  {page.meta_robots && process.env.GATSBY_ACTIVE_ENV !== 'development' && (
58
58
  <meta name="robots" content={page.meta_robots.join()} />
59
59
  )}
60
- {page.robot_options && !page.path.includes('/page/') && (
61
- <meta name="robots" content={getRobotOptions(page.robot_options)} />
62
- )}
63
- {page.path.includes('/page/') && <meta name="robots" content="noindex,follow" />}
60
+ {page.robot_options && <meta name="robots" content={getRobotOptions(page.robot_options)} />}
64
61
  {process.env.GATSBY_ACTIVE_ENV === 'development' && (
65
62
  <meta name="googlebot" content="noindex,follow" />
66
63
  )}
@@ -1,4 +1,6 @@
1
+ /* eslint-disable react/forbid-prop-types */
1
2
  import React from 'react';
3
+ // eslint-disable-next-line import/no-extraneous-dependencies
2
4
  import PropTypes from 'prop-types';
3
5
  // eslint-disable-next-line import/no-extraneous-dependencies
4
6
  import keygen from '~helpers/keygen';
@@ -16,6 +18,7 @@ const TopList = ({ module, toplistHeading, CustomRow, page }) => {
16
18
  <div label={toplist.title} key={keygen()}>
17
19
  {toplistHeading}
18
20
  <List
21
+ pagePath={page.path}
19
22
  toplist={toplist}
20
23
  CustomRow={Row}
21
24
  hasLoadMoreButton={toplist.show_load_more}
@@ -37,7 +40,7 @@ TopList.propTypes = {
37
40
  }),
38
41
  toplistHeading: PropTypes.element,
39
42
  CustomRow: PropTypes.func,
40
- page: PropTypes.shape({ template: PropTypes.string }),
43
+ page: PropTypes.shape({ template: PropTypes.string, path: PropTypes.string }),
41
44
  };
42
45
 
43
46
  export default TopList;