gatsby-core-theme 14.0.2 → 15.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/__mocks__/file-mock.js +1 -1
  3. package/jest-preprocess.js +2 -2
  4. package/package.json +1 -1
  5. package/src/components/atoms/author/author.module.scss +160 -26
  6. package/src/components/atoms/author/author.test.js +15 -19
  7. package/src/components/atoms/author/index.js +85 -68
  8. package/src/components/atoms/author-box/index.js +9 -1
  9. package/src/components/atoms/collapse/collpase.stories.js +7 -7
  10. package/src/components/atoms/content-box/content-box.stories.js +6 -9
  11. package/src/components/atoms/google-tag-manager/body.js +1 -1
  12. package/src/components/atoms/label/label.stories.js +2 -4
  13. package/src/components/atoms/open-graph/open-graph.stories.js +1 -2
  14. package/src/components/atoms/operator-info-block/operator-info-block.test.js +1 -1
  15. package/src/components/atoms/search/autocomplete/game.js +1 -1
  16. package/src/components/atoms/timeline/timeline.stories.js +6 -12
  17. package/src/components/atoms/timeline/timeline.test.js +5 -10
  18. package/src/components/molecules/content-and-custom-module/content-and-custom-module.stories.js +5 -10
  19. package/src/components/molecules/content-and-custom-module/content-and-custom-module.test.js +1 -2
  20. package/src/components/molecules/header/index.js +1 -0
  21. package/src/components/molecules/link-list/index.js +2 -2
  22. package/src/components/molecules/link-list/link-list.test.js +10 -26
  23. package/src/components/molecules/operator-banner/operator-banner.stories.js +1 -2
  24. package/src/components/molecules/slider/slider.stories.js +1 -2
  25. package/src/components/molecules/star-rating/star-rating.stories.js +2 -2
  26. package/src/components/molecules/sticky/sticky.test.js +8 -4
  27. package/src/components/organisms/carousel/carousel.test.js +3 -7
  28. package/src/components/organisms/form/form.stories.js +1 -2
  29. package/src/components/organisms/navigation/index.js +4 -12
  30. package/src/components/organisms/navigation/navigationContext.js +2 -2
  31. package/src/components/organisms/toplist/toplist.stories.js +1 -2
  32. package/src/components/pages/tracker/tracker.stories.js +1 -1
  33. package/src/constants/module-value.js +1 -1
  34. package/src/constants/pick-keys.js +2 -2
  35. package/src/helpers/cookies.test.js +2 -2
  36. package/src/helpers/css-parser.js +0 -1
  37. package/src/helpers/date-time.test.js +3 -3
  38. package/src/helpers/search-source.js +4 -4
  39. package/src/helpers/validation.test.js +9 -9
  40. package/src/hooks/gatsby-img/index.js +0 -1
  41. package/storybook/babel.config.js +6 -6
  42. package/tests/factories/modules/modules.factory.js +30 -6
  43. package/tests/factories/pages/default.factory.js +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,40 @@
1
+ # [15.0.0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v14.0.3...v15.0.0) (2022-11-11)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * added new fields in payment and software providers ([4c09173](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/4c09173104d745a36d3d3b1fd99f9cb6f2b95066))
7
+ * commit mistakes ([d6a6b1c](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/d6a6b1c45a37c884340b0bd1b0145ffc6dd00b2f))
8
+ * images-explicit-width-height ([bc279e5](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/bc279e5e483395981311ff61b99145b97e8159fb))
9
+ * init commit ([f715767](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/f715767484a23a8dd90c299eb71d3b1679118a4a))
10
+ * init commit ([6889643](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/688964337c3174693a33cc12220ae76d272fe59f))
11
+
12
+
13
+ ### Code Refactoring
14
+
15
+ * changes to author component ([5d03632](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/5d036328439dd240c6fa940d02021e01a6553f33))
16
+ * remove author from sitemap ([10c5537](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/10c55370b6fd8709b5db9a3936a079d71e92cfe7))
17
+
18
+
19
+ * Merge branch 'TM-3044-replace-author' into 'master' ([dfda6cc](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/dfda6cceee50b1ee4902bacb2ef2e27f20247a9a))
20
+ * Merge branch 'tm-3096-images-explicit-width-height' into 'master' ([29a8226](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/29a822610fc3a07a077af9b355c9cdd147fe9282))
21
+ * Merge branch 'master' into TM-3044-replace-author ([4f51f20](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/4f51f20884df620616eba09649e1cccf274d68f6))
22
+
23
+
24
+ ### Tests
25
+
26
+ * correction to test scripts ([a868f6f](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a868f6f37f7482ad63850b118cd4fcd4614e9cf9))
27
+
28
+ ## [14.0.3](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v14.0.2...v14.0.3) (2022-11-04)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * aligned master branch ([63acad9](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/63acad942ba18affb6a0d95fad1c4149dfd1060e))
34
+ * aligned master branch ([89246fc](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/89246fc645950553c3f6a0a9888851357d222a2f))
35
+ * reverted logo fix ([786879f](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/786879f6d3f5afd6da37b90ccc3da7136613c5f8))
36
+
37
+
1
38
  ## [14.0.2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v14.0.1...v14.0.2) (2022-11-03)
2
39
 
3
40
 
@@ -1 +1 @@
1
- module.exports = 'test-file-stub'
1
+ module.exports = 'test-file-stub';
@@ -1,4 +1,4 @@
1
1
  const babelOptions = {
2
2
  presets: ['babel-preset-gatsby'],
3
- }
4
- module.exports = require('babel-jest').createTransformer(babelOptions)
3
+ };
4
+ module.exports = require('babel-jest').createTransformer(babelOptions);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-core-theme",
3
- "version": "14.0.2",
3
+ "version": "15.0.0",
4
4
  "description": "Gatsby Theme NPM Package",
5
5
  "main": "index.js",
6
6
  "GATSBY_RECAPTCHA_SITEKEY": "6LfoyvMUAAAAAO4nl_MQnqHb4XdHxEiu5cXgIqeB",
@@ -1,34 +1,168 @@
1
- .authorInfo {
2
- font-size: 1.5rem;
3
- }
4
- .date {
5
- font-size: 1.5rem;
6
- }
7
- .authorIcon {
8
- margin-right: 0.5rem;
9
- font-size: 1.8rem;
10
- }
11
- .authorIcon,
12
- .dateTimeWrapper,
13
- .authorInfo {
14
- height: 2rem;
15
- display: inline-block;
16
- font-weight: 400;
17
- vertical-align: bottom;
18
- a {
19
- color: #09f;
20
- }
21
- }
22
-
23
- .authorWrapper {
1
+ .authorWraper {
24
2
  display: flex;
25
- flex-direction: column;
3
+ flex-wrap: wrap;
4
+ align-items: center;
5
+ font-size: var(--author-text-fontSize);
6
+ color: var(--author-primary-text-color);
26
7
  column-gap: 0.5rem;
8
+ max-width: var(--main-container-max);
9
+ margin: 0 auto;
10
+ padding: 0 2.4rem;
27
11
 
28
12
  > div {
29
13
  display: flex;
30
14
  justify-content: flex-end;
31
- flex-wrap: wrap;
32
- column-gap: 0.5rem;
15
+ }
16
+
17
+ .infoContainer {
18
+ display: flex;
19
+ align-items: center;
20
+ white-space: nowrap;
21
+ order: 1;
22
+
23
+ .prefixStyle {
24
+ margin: 0;
25
+ }
26
+
27
+ img {
28
+ width: 30px;
29
+ height: 30px;
30
+ border-radius: 50%;
31
+ margin: 0 8px 0 6px;
32
+ }
33
+
34
+ > a {
35
+ color: var(--author-link-text-color);
36
+ font-weight: var(--author-fontweight);
37
+ text-decoration: underline;
38
+
39
+ &:before {
40
+ content: '';
41
+ padding: 0 2px;
42
+ }
43
+
44
+ &:after {
45
+ content: '';
46
+ padding: 0 2px;
47
+ }
48
+ }
49
+
50
+ @include max(mobile) {
51
+ justify-content: flex-start;
52
+
53
+ > a,
54
+ .prefixStyle {
55
+ display: none;
56
+ }
57
+
58
+ img {
59
+ margin: 0;
60
+ }
61
+ }
62
+ }
63
+ .dateTimeWrapper {
64
+ display: flex;
65
+ align-items: center;
66
+ white-space: nowrap;
67
+ order: 4;
68
+ flex: 1 1 auto;
69
+ gap: 0.5rem;
70
+
71
+ a {
72
+ pointer-events: none;
73
+ color: var(--author-primary-text-color);;
74
+ }
75
+
76
+ @include max(mobile){
77
+ order: 2;
78
+ flex: 0 0 auto;
79
+
80
+ .dateLink {
81
+ pointer-events: all;
82
+ text-decoration: underline;
83
+ }
84
+ }
85
+ }
86
+
87
+ .readingWithBorder {
88
+ order: 2;
89
+ flex: 0 0 auto;
90
+ gap: 0.5rem;
91
+
92
+ .readText {
93
+ display: none;
94
+ }
95
+
96
+ @include max(mobile){
97
+ order: 4;
98
+ flex: 1 1 auto;
99
+
100
+ .readingTimeText {
101
+ display: none;
102
+ }
103
+
104
+ .readText {
105
+ display: block;
106
+ }
107
+ }
108
+ }
109
+
110
+ .reviewer {
111
+ order: 3;
112
+ gap: 0.5rem;
113
+
114
+ > a {
115
+ color: var(--author-link-text-color);
116
+ font-weight: var(--author-fontweight);
117
+ text-decoration: underline;
118
+ }
119
+
120
+ @include max(mobile) {
121
+ justify-content: flex-start;
122
+ display: none;
123
+ }
124
+ }
125
+
126
+ @include max(mobile) {
127
+ padding: 0 1.6rem;
128
+ }
129
+ }
130
+
131
+ .authorCard {
132
+ display: flex;
133
+ width: 100%;
134
+ justify-content: space-between;
135
+ color: var( --author-card-text-color);
136
+ padding: 0;
137
+
138
+ .infoContainer {
139
+ justify-content: flex-start;
140
+
141
+ @include max(mobile) {
142
+ .prefixStyle {
143
+ display: block;
144
+ }
145
+ }
146
+ }
147
+
148
+ @include min(tablet){
149
+ display: flex;
150
+ justify-content: space-between;
151
+
152
+ }
153
+ }
154
+
155
+ .prefixCardText {
156
+ padding-right: 2px;
157
+ }
158
+
159
+ .authorSeparator:not(.authorCard) {
160
+ div:not(:first-of-type):not(:last-of-type)::before {
161
+ content: '|';
162
+ padding: 0 3px;
163
+
164
+ @include max(mobile){
165
+ display: none;
166
+ }
33
167
  }
34
168
  }
@@ -6,26 +6,21 @@ import Author from '.';
6
6
 
7
7
  describe('Author Component', () => {
8
8
  test('render with props', () => {
9
- const { container, getByText } = render(
10
- <Author
11
- name="mohsen"
12
- prefix="by"
13
- authorProfile="/author"
14
- link="https://twitter.com/name"
15
- icon={<i className="twitter" />}
16
- />
17
- );
18
- expect(container.querySelector('.authorInfo')).toBeTruthy();
19
- const info = getByText('mohsen');
20
- expect(info).toBeTruthy();
21
- expect(container.querySelector('a').getAttribute('href')).toEqual('https://twitter.com/name');
22
- expect(container.querySelector('i.twitter')).toBeTruthy();
9
+ const { container, getByText } = render(<Author name="mohsen" prefix="by" link="name" />);
10
+ expect(container.querySelector('.authorWraper')).toBeTruthy();
11
+ expect(container.querySelector('.infoContainer')).toBeTruthy();
12
+ const prefix = getByText('by');
13
+ const name = getByText('mohsen');
14
+ expect(prefix).toBeTruthy();
15
+ expect(name).toBeTruthy();
16
+ expect(container.querySelector('a').getAttribute('href')).toEqual('/name');
23
17
  });
24
18
 
25
- test('without link and icon', () => {
19
+ test('without link and image', () => {
26
20
  const { container } = render(<Author name="mohsen" />);
27
- expect(container.querySelector('.authorInfo')).toBeTruthy();
21
+ expect(container.querySelector('.infoContainer')).toBeTruthy();
28
22
  expect(container.querySelector('a')).toBeFalsy();
23
+ expect(container.querySelector('img')).toBeFalsy();
29
24
  });
30
25
 
31
26
  test('with date', () => {
@@ -38,10 +33,11 @@ describe('Author Component', () => {
38
33
  />
39
34
  );
40
35
  expect(container.querySelector('.dateTimeWrapper')).toBeTruthy();
41
- const info = getByText('with mohsen');
42
- expect(info).toBeTruthy();
36
+ const date = getByText('24.04.2020');
37
+ const prefix = getByText('with');
38
+ expect(date).toBeTruthy();
39
+ expect(prefix).toBeTruthy();
43
40
  expect(container.querySelector('i')).toBeTruthy();
44
- expect(container.querySelector('a')).toBeFalsy();
45
41
  });
46
42
  });
47
43
  afterEach(() => {
@@ -1,94 +1,111 @@
1
1
  /* eslint-disable arrow-body-style */
2
- import React from 'react';
2
+ import React, { useContext } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
 
5
5
  import { formatDate } from '~helpers/date-time';
6
+ import { translate, imagePrettyUrl } from '~helpers/getters';
6
7
  import Link from '~hooks/link';
8
+ import LazyImage from '~hooks/lazy-image';
9
+ import { Context } from '~context/MainProvider';
7
10
  import styles from './author.module.scss';
8
11
 
9
12
  const Author = ({
10
13
  name,
11
- icon = null,
12
- link = '',
13
- authorProfile = '',
14
+ date,
15
+ authorImg,
16
+ readingTime,
17
+ link,
14
18
  prefix = '',
15
- date = '',
19
+ type = 'default',
20
+ icon = false,
21
+ splitDateFormat = '.',
16
22
  dateFormat = 'DD.MM.YYYY',
17
- dateSeparator = '/',
18
- readingTime = '',
19
- reviewer = {},
23
+ isCardsAuthor = false,
24
+ reviewer,
25
+ clock = '../../../images/clock.svg',
20
26
  }) => {
21
- return (
22
- <div className={styles.authorWrapper}>
23
- <div>
24
- {link && icon && (
25
- <div className={styles.authorIcon}>
26
- <a
27
- href={link}
28
- target="_blank"
29
- rel="noreferrer"
30
- aria-label={`${name} Link`}
31
- className="author-gtm"
32
- >
33
- {icon}
34
- </a>
35
- </div>
36
- )}
37
- {!link && icon && <div className={styles.authorIcon}>{icon}</div>}
27
+ const { translations } = useContext(Context) || {};
28
+ const prefixstyle = !link || !authorImg;
29
+
30
+ const getPrefixBasedOnPage = type.includes('review')
31
+ ? translate(translations, 'reviewed_by', 'Review by')
32
+ : translate(translations, 'written_by', 'Written by');
38
33
 
39
- <div className={styles.authorInfo}>
40
- {name &&
41
- (authorProfile ? (
42
- <>
43
- {`${prefix} `}
44
- <Link to={authorProfile} className="author-gtm" title={name}>
45
- {name}
46
- </Link>
47
- </>
48
- ) : (
49
- `${prefix} ${name}`
50
- ))}
34
+ return (
35
+ <div
36
+ className={`${styles.authorWraper} ${isCardsAuthor && styles.authorCard} ${
37
+ styles.authorSeparator
38
+ }`}
39
+ >
40
+ {name && (
41
+ <div className={`${styles.infoContainer} ${isCardsAuthor && styles.infoCardContainer}`}>
42
+ <p className={`${styles.prefixStyle} ${prefixstyle && styles.prefixCardText}`}>
43
+ <span>{translate(translations, prefix, prefix) || getPrefixBasedOnPage}</span>
44
+ </p>
45
+ <Link to={link} title={name}>
46
+ {name}
47
+ </Link>
48
+ {icon}
49
+ {authorImg && (
50
+ <LazyImage
51
+ alt={name}
52
+ loading="eager"
53
+ width={30}
54
+ height={30}
55
+ src={imagePrettyUrl(authorImg, 30, 30)}
56
+ />
57
+ )}
58
+ </div>
59
+ )}
60
+ {reviewer && !isCardsAuthor && (
61
+ <div className={date && styles.reviewer}>
62
+ <span>{`${translate(translations, 'fact_checked_by', 'Fact checked by')}`}</span>
63
+ {` `}
64
+ <Link to={reviewer.profile_page_path} title={reviewer.name}>
65
+ {reviewer.name}
66
+ </Link>
67
+ </div>
68
+ )}
69
+ {readingTime && !isCardsAuthor && (
70
+ <div className={date && styles.readingWithBorder}>
71
+ <img width={14} height={14} className={styles.clock} src={clock} alt="clock" />
72
+ <span className={styles.readingTimeText}>
73
+ {translate(translations, 'reading_time', 'Reading time')}
74
+ </span>
75
+ {` ${readingTime} ${translate(translations, 'minutes', 'min')}`}
76
+ <span className={styles.readText}>{translate(translations, 'read', 'read')}</span>
51
77
  </div>
52
- {readingTime && (
53
- <div className={date && styles.readingWithBorder}>
54
- <span>Reading time</span>
55
- {` ${readingTime} min`}
56
- </div>
57
- )}
58
- </div>
59
- <div>
60
- {reviewer && (
61
- <div className={date && styles.reviewer}>
62
- <span>Fact checked by</span>
63
- {` `}
64
- <Link to={reviewer.profile_page_path} title={reviewer.name}>
65
- {reviewer.name}
66
- </Link>
67
- </div>
68
- )}
69
- {date && (
70
- <div className={styles.dateTimeWrapper}>
71
- <span>Published on</span>
72
- {` `}
73
- {formatDate(date, dateFormat, dateSeparator, 'en-GB')}
74
- </div>
75
- )}
76
- </div>
78
+ )}
79
+ {date && (
80
+ <div className={styles.dateTimeWrapper}>
81
+ {!isCardsAuthor && <span>{translate(translations, 'published_on', 'Published on')}</span>}
82
+ {` `}
83
+ <a href="#authorbox" className={!isCardsAuthor && styles.dateLink}>
84
+ {formatDate(date, dateFormat, splitDateFormat, 'en-GB')}
85
+ </a>
86
+ </div>
87
+ )}
77
88
  </div>
78
89
  );
79
90
  };
80
91
 
81
92
  Author.propTypes = {
82
- name: PropTypes.string.isRequired,
83
- icon: PropTypes.oneOfType([PropTypes.element, PropTypes.any]),
84
- link: PropTypes.string,
85
- authorProfile: PropTypes.string,
86
93
  prefix: PropTypes.string,
94
+ name: PropTypes.string.isRequired,
87
95
  date: PropTypes.string,
88
96
  dateFormat: PropTypes.string,
89
- dateSeparator: PropTypes.string,
97
+ type: PropTypes.string,
98
+ link: PropTypes.string,
99
+ authorImg: PropTypes.string,
90
100
  readingTime: PropTypes.string,
91
- reviewer: PropTypes.shape({}),
101
+ icon: PropTypes.string,
102
+ splitDateFormat: PropTypes.string,
103
+ isCardsAuthor: PropTypes.bool,
104
+ reviewer: PropTypes.shape({
105
+ profile_page_path: PropTypes.string,
106
+ name: PropTypes.string,
107
+ }),
108
+ clock: PropTypes.string,
92
109
  };
93
110
 
94
111
  export default Author;
@@ -62,6 +62,8 @@ export default function AuthorBox({
62
62
  <LazyImage
63
63
  src="../../../images/verify.svg"
64
64
  alt={translate(translations, 'verified', 'Verified')}
65
+ width={20}
66
+ height={20}
65
67
  />
66
68
  </p>
67
69
  {author.author_title && <p className={styles.title}>{author.author_title}</p>}
@@ -145,7 +147,13 @@ export default function AuthorBox({
145
147
  {author.expertise.map((item, index) => (
146
148
  // eslint-disable-next-line react/no-array-index-key
147
149
  <li key={index} className={styles.expertiseItem}>
148
- <img className={styles.check} src={check} alt="check" />
150
+ <img
151
+ className={styles.check}
152
+ src={check}
153
+ alt="check"
154
+ width="10px"
155
+ height="8px"
156
+ />
149
157
  {item}
150
158
  </li>
151
159
  ))}
@@ -67,8 +67,7 @@ export default {
67
67
  parameters: {
68
68
  docs: {
69
69
  description: {
70
- component:
71
- 'Generates a collapsible box, with content & icon.',
70
+ component: 'Generates a collapsible box, with content & icon.',
72
71
  },
73
72
  page: () => (
74
73
  <>
@@ -86,9 +85,10 @@ const Template = (args) => <Collapse {...args} />;
86
85
 
87
86
  export const Default = Template.bind({});
88
87
  Default.args = {
89
- buttonText : "show",
90
- contentText : "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy",
91
- onlyMobile : false,
92
- onlyDesktop : false,
93
- initOpen : false,
88
+ buttonText: 'show',
89
+ contentText:
90
+ "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy",
91
+ onlyMobile: false,
92
+ onlyDesktop: false,
93
+ initOpen: false,
94
94
  };
@@ -6,9 +6,9 @@ import {
6
6
  PRIMARY_STORY,
7
7
  ArgsTable,
8
8
  } from '@storybook/addon-docs/blocks';
9
- import content_1 from "../../../../static/images/content-1.png"
10
- import content_2 from "../../../../static/images/content-2.png"
11
- import content_3 from "../../../../static/images/content-3.png"
9
+ import content_1 from '../../../../static/images/content-1.png';
10
+ import content_2 from '../../../../static/images/content-2.png';
11
+ import content_3 from '../../../../static/images/content-3.png';
12
12
 
13
13
  import ContentBox from '.';
14
14
 
@@ -52,20 +52,17 @@ Default.args = {
52
52
  {
53
53
  title: 'Fully licensed casinos',
54
54
  image: content_1,
55
- text:
56
- 'We only list and review fully licensed and legally operating casinos so you can be sure where you end up playing will be safe and secure.',
55
+ text: 'We only list and review fully licensed and legally operating casinos so you can be sure where you end up playing will be safe and secure.',
57
56
  },
58
57
  {
59
58
  title: 'Get the most for your money',
60
59
  image: content_2,
61
- text:
62
- 'We list all the features the Casinos have to offer so you can make an educated decision about where to place your money for maximum gains!',
60
+ text: 'We list all the features the Casinos have to offer so you can make an educated decision about where to place your money for maximum gains!',
63
61
  },
64
62
  {
65
63
  title: 'Authenticly written articles',
66
64
  image: content_3,
67
- text:
68
- 'All our Authors are professional writers with industry know-how, so you can depend on what we say is the truth!',
65
+ text: 'All our Authors are professional writers with industry know-how, so you can depend on what we say is the truth!',
69
66
  },
70
67
  ],
71
68
  };
@@ -9,7 +9,7 @@ const GoogleTagManagerBody = ({ gtm_id }) => (
9
9
  src={`https://www.googletagmanager.com/ns.html?id=${gtm_id}`}
10
10
  height="0"
11
11
  width="0"
12
- style={{display: "none", visibility: "hidden"}}
12
+ style={{ display: 'none', visibility: 'hidden' }}
13
13
  aria-hidden="true"
14
14
  ></iframe>
15
15
  </noscript>
@@ -33,13 +33,11 @@ export default {
33
33
  defaultValue: { summary: 'yellow' },
34
34
  },
35
35
  },
36
-
37
36
  },
38
37
  parameters: {
39
38
  docs: {
40
39
  description: {
41
- component:
42
- 'A component that accepts title & background color and generates a label div.',
40
+ component: 'A component that accepts title & background color and generates a label div.',
43
41
  },
44
42
  page: () => (
45
43
  <>
@@ -58,5 +56,5 @@ const Template = (args) => <Label {...args} />;
58
56
  export const Default = Template.bind({});
59
57
  Default.args = {
60
58
  title: 'Top Casino',
61
- bgColor: 'yellow'
59
+ bgColor: 'yellow',
62
60
  };
@@ -37,8 +37,7 @@ export default {
37
37
  parameters: {
38
38
  docs: {
39
39
  description: {
40
- component:
41
- 'A component to share the page on Twitter & Facebook.',
40
+ component: 'A component to share the page on Twitter & Facebook.',
42
41
  },
43
42
  page: () => (
44
43
  <>
@@ -16,7 +16,7 @@ describe('operatorInfoBlock Component', () => {
16
16
  support_types: ' hello live chat world',
17
17
  types: ['live', 'poker', 'foo', 'bar'],
18
18
  games_amount: '+1000',
19
- status : 'active'
19
+ status: 'active',
20
20
  },
21
21
  }}
22
22
  />
@@ -11,7 +11,7 @@ const Game = ({ item = {} }) => (
11
11
 
12
12
  Game.propTypes = {
13
13
  item: PropTypes.shape({
14
- title: PropTypes.string
14
+ title: PropTypes.string,
15
15
  }).isRequired,
16
16
  };
17
17
 
@@ -27,8 +27,7 @@ export default {
27
27
  parameters: {
28
28
  docs: {
29
29
  description: {
30
- component:
31
- 'A component that accepts an array of objects and returns a timeline.',
30
+ component: 'A component that accepts an array of objects and returns a timeline.',
32
31
  },
33
32
  page: () => (
34
33
  <>
@@ -50,36 +49,31 @@ Default.args = {
50
49
  {
51
50
  date: '2013',
52
51
  title: 'Launched',
53
- text:
54
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
52
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
55
53
  isActive: false,
56
54
  },
57
55
  {
58
56
  date: '2015',
59
57
  title: 'Rebrand + New Website',
60
- text:
61
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
58
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
62
59
  isActive: false,
63
60
  },
64
61
  {
65
62
  date: '2017',
66
63
  title: '150+ Employees',
67
- text:
68
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
64
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
69
65
  isActive: false,
70
66
  },
71
67
  {
72
68
  date: '2019',
73
69
  title: 'We acquired XXX',
74
- text:
75
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
70
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
76
71
  isActive: false,
77
72
  },
78
73
  {
79
74
  date: 'Today',
80
75
  title: 'Over 500 Casino Reviews',
81
- text:
82
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
76
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
83
77
  isActive: true,
84
78
  },
85
79
  ],
@@ -8,36 +8,31 @@ const timelineArray = [
8
8
  {
9
9
  date: '2013',
10
10
  title: 'Launched',
11
- text:
12
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
11
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
13
12
  isActive: false,
14
13
  },
15
14
  {
16
15
  date: '2015',
17
16
  title: 'Rebrand + New Website',
18
- text:
19
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
17
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
20
18
  isActive: false,
21
19
  },
22
20
  {
23
21
  date: '2017',
24
22
  title: '150+ Employees',
25
- text:
26
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
23
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
27
24
  isActive: false,
28
25
  },
29
26
  {
30
27
  date: '2019',
31
28
  title: 'We acquired XXX',
32
- text:
33
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
29
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
34
30
  isActive: false,
35
31
  },
36
32
  {
37
33
  date: 'Today',
38
34
  title: 'Over 500 Casino Reviews',
39
- text:
40
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
35
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
41
36
  isActive: true,
42
37
  },
43
38
  ];
@@ -88,36 +88,31 @@ Default.args = {
88
88
  {
89
89
  date: '2013',
90
90
  title: 'Launched',
91
- text:
92
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
91
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
93
92
  isActive: false,
94
93
  },
95
94
  {
96
95
  date: '2015',
97
96
  title: 'Rebrand + New Website',
98
- text:
99
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
97
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
100
98
  isActive: false,
101
99
  },
102
100
  {
103
101
  date: '2017',
104
102
  title: '150+ Employees',
105
- text:
106
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
103
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
107
104
  isActive: false,
108
105
  },
109
106
  {
110
107
  date: '2019',
111
108
  title: 'We acquired XXX',
112
- text:
113
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
109
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
114
110
  isActive: false,
115
111
  },
116
112
  {
117
113
  date: 'Today',
118
114
  title: 'Over 500 Casino Reviews',
119
- text:
120
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
115
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
121
116
  isActive: true,
122
117
  },
123
118
  ],
@@ -9,8 +9,7 @@ const timelineArray = [
9
9
  {
10
10
  date: '2013',
11
11
  title: 'Launched',
12
- text:
13
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
12
+ text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. At urna in sapien posuere leo imperdiet pulvinar dictum.',
14
13
  isActive: false,
15
14
  },
16
15
  ];
@@ -44,6 +44,7 @@ function Header({ section, content = null, backgroundImage = true, showAuthor =
44
44
  const Author =
45
45
  section.page.path !== '/' &&
46
46
  section.page.path !== 'contact-us' &&
47
+ section.page.path !== 'sitemap' &&
47
48
  section.page.author &&
48
49
  showAuthor
49
50
  ? loadable(() => import('~atoms/author'))
@@ -30,8 +30,8 @@ const LinkList = ({
30
30
  <LazyImage
31
31
  src={imagePrettyUrl(item.image)}
32
32
  alt={getAltText(item?.image_object, item.title)}
33
- width={width}
34
- height={height}
33
+ width={width || item?.image_object?.width}
34
+ height={height || item?.image_object?.height}
35
35
  loading={disableLazyLoad ? 'eager' : 'lazy'}
36
36
  />
37
37
  );
@@ -5,34 +5,25 @@ import '@testing-library/jest-dom/extend-expect';
5
5
  import { getNavigationModule } from '~tests/factories/sections/navigation.factory';
6
6
  import LinkList from '.';
7
7
 
8
-
9
-
10
8
  describe('Link List Component', () => {
11
9
  test('render multiple lists', () => {
12
- const links = getNavigationModule(2,true);
10
+ const links = getNavigationModule(2, true);
13
11
 
14
- const { getByText } = render(
15
- <LinkList
16
- lists={links}
17
- />
18
- );
12
+ const { getByText } = render(<LinkList lists={links} />);
19
13
  expect(getByText('title nav_1_1')).toBeTruthy();
20
- expect(getByText('submenu nav_1_1').closest('a').getAttribute('href')).toEqual('/submenu_nav_1_1');
14
+ expect(getByText('submenu nav_1_1').closest('a').getAttribute('href')).toEqual(
15
+ '/submenu_nav_1_1'
16
+ );
21
17
  expect(getByText('title nav_1_1').closest('ul').children.length).toBe(2);
22
18
  expect(getByText('title nav_1_2')).toBeTruthy();
23
- expect(getByText('submenu nav_1_2').closest('a').getAttribute('href')).toEqual('/submenu_nav_1_2');
19
+ expect(getByText('submenu nav_1_2').closest('a').getAttribute('href')).toEqual(
20
+ '/submenu_nav_1_2'
21
+ );
24
22
  expect(getByText('title nav_1_2').closest('ul').children.length).toBe(2);
25
23
  });
26
24
  const links = getNavigationModule(4);
27
25
  test('render single list', () => {
28
-
29
-
30
- const { getByText } = render(
31
- <LinkList
32
- lists={links}
33
- singleList
34
- />
35
- );
26
+ const { getByText } = render(<LinkList lists={links} singleList />);
36
27
 
37
28
  expect(getByText('title nav_1_1')).toBeTruthy();
38
29
  expect(getByText('title nav_1_1').closest('a').getAttribute('href')).toEqual('/menu_nav_1_1');
@@ -45,14 +36,7 @@ describe('Link List Component', () => {
45
36
  });
46
37
 
47
38
  test('render image list', () => {
48
-
49
- const { getByTitle } = render(
50
- <LinkList
51
- lists={links}
52
- singleList
53
- imageOnly
54
- />
55
- );
39
+ const { getByTitle } = render(<LinkList lists={links} singleList imageOnly />);
56
40
 
57
41
  expect(getByTitle('title nav_1_1')).toBeTruthy();
58
42
  expect(getByTitle('title nav_1_2')).toBeTruthy();
@@ -63,8 +63,7 @@ export default {
63
63
  name: 'sticky',
64
64
  type: { name: 'boolean', required: false },
65
65
  defaultValue: false,
66
- description:
67
- 'If true it will be wrapped with a Sticky component.',
66
+ description: 'If true it will be wrapped with a Sticky component.',
68
67
  table: {
69
68
  type: { summary: 'boolean' },
70
69
  defaultValue: { summary: false },
@@ -119,8 +119,7 @@ export default {
119
119
  const list = [
120
120
  {
121
121
  title: 'slide one',
122
- text:
123
- "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,",
122
+ text: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,",
124
123
  image: Slide1,
125
124
  },
126
125
  {
@@ -36,7 +36,7 @@ export default {
36
36
  type: { summary: 'number | array of numbers' },
37
37
  defaultValue: { summary: '' },
38
38
  },
39
- control: { type: 'range', min: 0, max: 10, step: .5 },
39
+ control: { type: 'range', min: 0, max: 10, step: 0.5 },
40
40
  },
41
41
  halfStars: {
42
42
  name: 'halfStars',
@@ -106,5 +106,5 @@ export const Default = Template.bind({});
106
106
  Default.args = {
107
107
  numOfStars: 10,
108
108
  rating: 6.5,
109
- halfStars: true
109
+ halfStars: true,
110
110
  };
@@ -8,7 +8,7 @@ describe('summary component', () => {
8
8
  test('test content', () => {
9
9
  const { container, getByText } = render(<Sticky>Test content</Sticky>);
10
10
  expect(container).toBeTruthy();
11
-
11
+
12
12
  expect(container.querySelector('.notScrolled')).toBeTruthy();
13
13
  expect(getByText('Test content')).toBeTruthy();
14
14
  // expect(container.querySelector('.sticky')).toBeVisible();
@@ -16,15 +16,19 @@ describe('summary component', () => {
16
16
 
17
17
  test('test content', () => {
18
18
  const { container, getByText } = render(<Sticky showOnScroll={false}>Test content</Sticky>);
19
-
19
+
20
20
  expect(container).toBeTruthy();
21
21
  expect(container.querySelector('.notScrolled')).toBeFalsy();
22
22
  expect(getByText('Test content')).toBeTruthy();
23
23
  });
24
24
 
25
25
  test('test content', () => {
26
- const { container, getByText } = render(<Sticky showOnScroll={false} position='top'>Test content</Sticky>);
27
-
26
+ const { container, getByText } = render(
27
+ <Sticky showOnScroll={false} position="top">
28
+ Test content
29
+ </Sticky>
30
+ );
31
+
28
32
  expect(container).toBeTruthy();
29
33
  expect(container.querySelector('.top')).toBeTruthy();
30
34
  expect(container.querySelector('.notScrolled')).toBeFalsy();
@@ -14,15 +14,11 @@ describe('Carousel Component', () => {
14
14
  test('render slides', () => {
15
15
  const { container, getAllByText } = render(<Carousel module={carouselItems} />);
16
16
  expect(getAllByText('title 1')).toBeTruthy();
17
-
17
+
18
18
  expect(container.querySelectorAll('.sliderItem span.title')).toHaveLength(2);
19
19
  expect(container.querySelectorAll('.sliderItem a.primary')).toHaveLength(1);
20
- expect(container.querySelectorAll('.sliderItem a.secondary')).toHaveLength(
21
- 1
22
- );
23
- expect(container.querySelectorAll('.sliderItem span.label')).toHaveLength(
24
- 2
25
- );
20
+ expect(container.querySelectorAll('.sliderItem a.secondary')).toHaveLength(1);
21
+ expect(container.querySelectorAll('.sliderItem span.label')).toHaveLength(2);
26
22
  });
27
23
  });
28
24
  afterEach(() => {
@@ -91,8 +91,7 @@ export default {
91
91
  parameters: {
92
92
  docs: {
93
93
  description: {
94
- component:
95
- 'Generates a Contact-us or Newsletter from.',
94
+ component: 'Generates a Contact-us or Newsletter from.',
96
95
  },
97
96
  page: () => (
98
97
  <>
@@ -7,7 +7,6 @@ import Menu from '~molecules/menu';
7
7
  import { toggleScroll } from '~helpers/scroll';
8
8
  import ConditionalWrapper from '~atoms/conditional-wrapper';
9
9
  import Sticky from '~molecules/sticky';
10
- import Image from '../../../hooks/gatsby-img';
11
10
 
12
11
  import NavigationProvider from './navigationContext';
13
12
 
@@ -15,7 +14,7 @@ import styles from './navigation.module.scss';
15
14
 
16
15
  const Navigation = ({
17
16
  section,
18
- logo = 'logo.jpg',
17
+ logo = '../../../../../images/logo.svg',
19
18
  logoWidth = 200,
20
19
  logoHeight = 31,
21
20
  searchIcon = null,
@@ -43,18 +42,11 @@ const Navigation = ({
43
42
 
44
43
  const Search = hasSearch ? loadable(() => import('~organisms/search')) : null;
45
44
  const logoImg = (
46
- // <img
47
- // alt={`${process.env.GATSBY_SITE_NAME} logo`}
48
- // src={logo}
49
- // width={logoWidth}
50
- // height={logoHeight}
51
- // />
52
- <Image
53
- objectFit="contain"
54
- filename={logo}
45
+ <img
46
+ alt={`${process.env.GATSBY_SITE_NAME} logo`}
47
+ src={logo}
55
48
  width={logoWidth}
56
49
  height={logoHeight}
57
- alt={`${process.env.GATSBY_SITE_NAME} logo`}
58
50
  />
59
51
  );
60
52
 
@@ -1,8 +1,8 @@
1
- import React, { useState, createContext } from "react";
1
+ import React, { useState, createContext } from 'react';
2
2
 
3
3
  export const NavigationContext = createContext(false);
4
4
 
5
- const NavigationProvider = props => {
5
+ const NavigationProvider = (props) => {
6
6
  const [showMenu, setShowMenu] = useState(false);
7
7
  const [showSearch, setShowSearch] = useState(false);
8
8
 
@@ -52,8 +52,7 @@ export default {
52
52
  name: 'page',
53
53
  type: { name: 'object', required: false },
54
54
  defaultValue: null,
55
- description:
56
- 'The page object.',
55
+ description: 'The page object.',
57
56
  table: {
58
57
  type: { summary: 'object' },
59
58
  defaultValue: { summary: null },
@@ -10,7 +10,7 @@ import {
10
10
  import Tracker from '.';
11
11
  // When we separate repo's we need to move these files to gatsby-theme
12
12
  import bgVideoSrc from '../../../../../storybook-images/splash-page.webm';
13
- import bgImageSrc from '../../../../../storybook-images/splash-page.svg';
13
+ import bgImageSrc from '../../../../../storybook-images/splash-page.svg';
14
14
 
15
15
  export default {
16
16
  title: 'Gatsby-Theme/Pages/Tracker',
@@ -7,4 +7,4 @@ export default Object.freeze({
7
7
  OWNER_TYPE_TEMPLATE: 'template',
8
8
  VALUE_TYPE_PREFILLED_MODULE_MARKET: 'prefilled_module_market',
9
9
  VALUE_TYPE_PREFILLED_MODULE: 'prefilled_module',
10
- })
10
+ });
@@ -68,8 +68,8 @@ export const pickRelationKeys = {
68
68
  'thumbnail_filename',
69
69
  'thumbnail_filename_object',
70
70
  ],
71
- software_provider: ['logo_object', 'logo', 'games_count', 'name'],
72
- payment_method: ['logo_object', 'logo', 'name', 'rating'],
71
+ software_provider: ['logo_object', 'logo', 'games_count', 'name', 'standardised_logo_url_object'],
72
+ payment_method: ['logo_object', 'logo', 'name', 'rating', 'standardised_logo_url_object'],
73
73
  };
74
74
 
75
75
  export const pickHTMLSitemapPageKeys = ['title', 'path', 'template_id'];
@@ -2,12 +2,12 @@ import * as Cookies from './cookies';
2
2
 
3
3
  describe('Cookies Helper', () => {
4
4
  test('setCookie()', () => {
5
- Cookies.setCookie('name','foo',1,'/')
5
+ Cookies.setCookie('name', 'foo', 1, '/');
6
6
  expect(document.cookie).toEqual('name=foo');
7
7
  });
8
8
 
9
9
  test('getCookie()', () => {
10
- Cookies.setCookie('bar','foo',1,'/')
10
+ Cookies.setCookie('bar', 'foo', 1, '/');
11
11
  expect(Cookies.getCookie('bar')).toEqual('foo');
12
12
  });
13
13
  });
@@ -1,5 +1,4 @@
1
1
  export function parseCss(css) {
2
-
3
2
  const cssFormat = css.trim();
4
3
  const tokenizer = /\s*([a-z-]+)\s*:\s*((?:[^;]*url\(.*?\)[^;]*|[^;]*)*)\s*(?:;|$)/gi;
5
4
  const obj = {};
@@ -3,8 +3,8 @@ import { formatDate } from './date-time';
3
3
  describe('Date-Time Helper', () => {
4
4
  test('formatDate()', () => {
5
5
  expect(formatDate(null, 'YYYY')).toBeNull();
6
- expect(formatDate('2020-04-23 11:45:10', 'DD.MM.YY','.','en-US')).toEqual('4.23.2020');
7
- expect(formatDate('2020-04-23 11:45:10', 'MMM YYYY','/','en-US')).toEqual('April 2020');
8
- expect(formatDate('2020-04-23 11:45:10', 'DD/MM/YYYY', '@@','en-US')).toEqual('04@@23@@2020');
6
+ expect(formatDate('2020-04-23 11:45:10', 'DD.MM.YY', '.', 'en-US')).toEqual('4.23.2020');
7
+ expect(formatDate('2020-04-23 11:45:10', 'MMM YYYY', '/', 'en-US')).toEqual('April 2020');
8
+ expect(formatDate('2020-04-23 11:45:10', 'DD/MM/YYYY', '@@', 'en-US')).toEqual('04@@23@@2020');
9
9
  });
10
10
  });
@@ -1,7 +1,7 @@
1
1
  import { returnDataSet } from '~helpers/search';
2
2
 
3
3
  export default async function loadSource(uniqueField, indexFields) {
4
- return import('../data/search/data.json').then((data) => {
5
- return returnDataSet(uniqueField, indexFields, data);
6
- });
7
- }
4
+ return import('../data/search/data.json').then((data) => {
5
+ return returnDataSet(uniqueField, indexFields, data);
6
+ });
7
+ }
@@ -9,18 +9,18 @@ describe('Validation Helper', () => {
9
9
 
10
10
  test('validateString()', () => {
11
11
  expect(Validation.validateString(2)).toEqual('not_string');
12
- expect(Validation.validateString(true, false,false)).toBe(false);
13
- expect(Validation.validateString('', true,true)).toEqual('empty');
14
- expect(Validation.validateString([], true,false)).toBe(false);
15
- expect(Validation.validateString('some string', true,true)).toBe(true);
12
+ expect(Validation.validateString(true, false, false)).toBe(false);
13
+ expect(Validation.validateString('', true, true)).toEqual('empty');
14
+ expect(Validation.validateString([], true, false)).toBe(false);
15
+ expect(Validation.validateString('some string', true, true)).toBe(true);
16
16
  });
17
17
 
18
18
  test('validateEmail()', () => {
19
19
  expect(Validation.validateEmail(2)).toEqual('not_string');
20
- expect(Validation.validateEmail(true, false,false)).toBe(false);
21
- expect(Validation.validateEmail('', true,true)).toEqual('empty');
22
- expect(Validation.validateEmail({}, true,false)).toBe(false);
23
- expect(Validation.validateEmail('mm@gig', true,true)).toEqual('not_email');
24
- expect(Validation.validateEmail('mohsen@gmail.com', true,true)).toBe(true);
20
+ expect(Validation.validateEmail(true, false, false)).toBe(false);
21
+ expect(Validation.validateEmail('', true, true)).toEqual('empty');
22
+ expect(Validation.validateEmail({}, true, false)).toBe(false);
23
+ expect(Validation.validateEmail('mm@gig', true, true)).toEqual('not_email');
24
+ expect(Validation.validateEmail('mohsen@gmail.com', true, true)).toBe(true);
25
25
  });
26
26
  });
@@ -24,7 +24,6 @@ export const PureImage = ({
24
24
  style={{ height, width }}
25
25
  alt={alt}
26
26
  image={image.node.childImageSharp.gatsbyImageData}
27
- placeholder="none"
28
27
  />
29
28
  );
30
29
  };
@@ -5,9 +5,9 @@ module.exports = {
5
5
  '@babel/preset-env',
6
6
  {
7
7
  targets: {
8
- node: 'current'
9
- }
10
- }
11
- ]
12
- ]
13
- }
8
+ node: 'current',
9
+ },
10
+ },
11
+ ],
12
+ ],
13
+ };
@@ -139,32 +139,56 @@ const prefilledModules = [
139
139
  expected: false,
140
140
  },
141
141
  {
142
- module: { value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET, name: 'cards_v2', sort_by: 'random' },
142
+ module: {
143
+ value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET,
144
+ name: 'cards_v2',
145
+ sort_by: 'random',
146
+ },
143
147
  siteName: 'playcasino.co.za',
144
148
  expected: false,
145
149
  },
146
150
  {
147
- module: { value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET, name: 'module', sort_by: 'asc' },
151
+ module: {
152
+ value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET,
153
+ name: 'module',
154
+ sort_by: 'asc',
155
+ },
148
156
  siteName: 'playcasino.co.za',
149
157
  expected: true,
150
158
  },
151
159
  {
152
- module: { value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET, name: 'module', sort_by: 'random' },
160
+ module: {
161
+ value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET,
162
+ name: 'module',
163
+ sort_by: 'random',
164
+ },
153
165
  siteName: 'playcasino.co.za',
154
166
  expected: true,
155
167
  },
156
168
  {
157
- module: { value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET, name: 'cards', sort_by: 'asc' },
169
+ module: {
170
+ value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET,
171
+ name: 'cards',
172
+ sort_by: 'asc',
173
+ },
158
174
  siteName: 'playcasino.co.za',
159
175
  expected: true,
160
176
  },
161
177
  {
162
- module: { value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET, name: 'cards', sort_by: 'random' },
178
+ module: {
179
+ value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET,
180
+ name: 'cards',
181
+ sort_by: 'random',
182
+ },
163
183
  siteName: 'playcasino.co.za',
164
184
  expected: false,
165
185
  },
166
186
  {
167
- module: { value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET, name: 'cards_v2', sort_by: 'random' },
187
+ module: {
188
+ value_type: ModuleValue.VALUE_TYPE_PREFILLED_MODULE_MARKET,
189
+ name: 'cards_v2',
190
+ sort_by: 'random',
191
+ },
168
192
  siteName: 'playcasino.co.za',
169
193
  expected: false,
170
194
  },
@@ -34,7 +34,7 @@ export default function getPageData() {
34
34
  logo_url: 'rizk-logopng7ed316ac19-original.png',
35
35
  url: 'https://rizk.com',
36
36
  status: 'active',
37
- short_name: "rizk",
37
+ short_name: 'rizk',
38
38
  type: 'casino',
39
39
  iframe: 'https://www.youtube.com/embed/DU1Pio4n_N0',
40
40
  bonus: {