gatsby-core-theme 2.0.0 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/package.json +1 -1
- package/src/components/atoms/bonus/bonus.test.js +0 -2
- package/src/components/atoms/bonus/index.js +2 -5
- package/src/components/atoms/spotlights/index.js +4 -1
- package/src/components/atoms/spotlights/spotlights.module.scss +9 -6
- package/src/components/molecules/content/index.js +6 -1
- package/src/components/molecules/link-list/index.js +1 -1
- package/src/components/molecules/star-rating/index.js +6 -2
- package/src/components/molecules/star-rating/star-rating.test.js +5 -6
- package/src/components/molecules/toplist/default-row/toplist.test.js +2 -2
- package/src/components/organisms/toplist/toplist.test.js +1 -2
- package/src/helpers/events.js +29 -18
- package/src/helpers/processor/index.js +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,52 @@
|
|
|
1
|
+
## [2.0.4](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v2.0.3...v2.0.4) (2021-12-22)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* operator bonus added dividor ([f191fd6](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/f191fd60fb0be440b7fa16b8d4415a0997c00608))
|
|
7
|
+
* sitemap bug in rage sites ([ce649bf](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/ce649bfcce46d8b9bc5d732028555d68c6e800bc))
|
|
8
|
+
* spotlights component ([3154c2a](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/3154c2a89ed1da2231f4031e386166c0b408309f))
|
|
9
|
+
* star ratings ([884ba75](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/884ba7515f8835a20b673753887cd57173672f6a))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
* Merge branch 'tm-2630-rage-sitemap' into 'master' ([f00efd3](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/f00efd3c5060bc3b55171052aa3e948e95caf8f9))
|
|
13
|
+
* Merge branch 'master' of git.ilcd.rocks:team-floyd/themes/gatsby-themes ([026b9ad](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/026b9adf17a058e64e7d81f588a03b36550c2de4))
|
|
14
|
+
* Merge branch 'tm-2610-operator-bonus' into 'master' ([6415f0e](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/6415f0ee7badb5e1435f2bcce2a85c6fbbe25826))
|
|
15
|
+
|
|
16
|
+
## [2.0.3](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v2.0.2...v2.0.3) (2021-12-18)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* fixed schedule for rage ppc ([02f910f](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/02f910f01b3ac1e9b442a1dc0a3e8f19466bac23))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Code Refactoring
|
|
25
|
+
|
|
26
|
+
* remove unneeded check ([2201e4d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/2201e4d14c17684a4f49e2035af99ace83b108b1))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
* Merge branch 'fix-build-schedule' into 'master' ([356b451](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/356b451459a126c41a6f27e0b0fcfbd300d45679))
|
|
30
|
+
|
|
31
|
+
## [2.0.2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v2.0.1...v2.0.2) (2021-12-17)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Bug Fixes
|
|
35
|
+
|
|
36
|
+
* added lazyload for starrating ([34a3bce](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/34a3bce70bde1e9364f4c5aba14845d19d39664e))
|
|
37
|
+
* content iframe lazy ([413f83d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/413f83d70eb05aa514f003e450afce04366537d5))
|
|
38
|
+
* tests ([c56a1c0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/c56a1c0168247d25f8445f6b9ed8102c6bae8c08))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
* Merge branch 'master' of git.ilcd.rocks:team-floyd/themes/gatsby-themes ([4c1f4f3](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/4c1f4f3c5f366cd57245ca2ef9bb5ec603d13e97))
|
|
42
|
+
|
|
43
|
+
## [2.0.1](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v2.0.0...v2.0.1) (2021-12-16)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Bug Fixes
|
|
47
|
+
|
|
48
|
+
* link list bug ([893b8c1](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/893b8c12737a4007c94364ace744e7c1d7459706))
|
|
49
|
+
|
|
1
50
|
# [2.0.0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v1.6.22...v2.0.0) (2021-12-16)
|
|
2
51
|
|
|
3
52
|
|
package/package.json
CHANGED
|
@@ -11,8 +11,6 @@ describe('Bonus Component', () => {
|
|
|
11
11
|
const { container, getByText } = render(<Bonus item={item} tracker="main" />);
|
|
12
12
|
expect(getByText('€100 welcome bonus')).toBeTruthy();
|
|
13
13
|
expect(getByText('€100 welcome bonus').getAttribute('class')).toEqual('title');
|
|
14
|
-
expect(getByText('150 free spins')).toBeTruthy();
|
|
15
|
-
expect(getByText('150 free spins').getAttribute('class')).toEqual('desc');
|
|
16
14
|
expect(container.querySelector('div.bonus')).toBeTruthy();
|
|
17
15
|
});
|
|
18
16
|
test('without oneLiner', () => {
|
|
@@ -17,7 +17,7 @@ const Bonus = ({ item, tracker = 'main' }) => {
|
|
|
17
17
|
<div className={styles.bonus}>
|
|
18
18
|
<div className={styles.title}>{onelinerSplitted[0]}</div>
|
|
19
19
|
{onelinerSplitted.length === 2 && (
|
|
20
|
-
<div className={styles.desc}>{
|
|
20
|
+
<div className={styles.desc}>{`+${onelinerSplitted[1]}`}</div>
|
|
21
21
|
)}
|
|
22
22
|
</div>
|
|
23
23
|
);
|
|
@@ -25,10 +25,7 @@ const Bonus = ({ item, tracker = 'main' }) => {
|
|
|
25
25
|
|
|
26
26
|
Bonus.propTypes = {
|
|
27
27
|
tracker: PropTypes.string,
|
|
28
|
-
item: PropTypes.shape({
|
|
29
|
-
one_liners: PropTypes.object,
|
|
30
|
-
bonus: PropTypes.object,
|
|
31
|
-
}),
|
|
28
|
+
item: PropTypes.shape({}),
|
|
32
29
|
};
|
|
33
30
|
|
|
34
31
|
export default Bonus;
|
|
@@ -20,7 +20,10 @@ const Spotlights = ({ module }) => {
|
|
|
20
20
|
<span className={styles.itemImage}>
|
|
21
21
|
<LazyImage alt={item.label || item?.link_text} src={imagePrettyUrl(img)} />
|
|
22
22
|
</span>
|
|
23
|
-
<
|
|
23
|
+
<div className={styles.content}>
|
|
24
|
+
<span className={styles.label}>{item.label}</span>
|
|
25
|
+
{item.subtitle && <span className={styles.subtitle}>{item.subtitle}</span>}
|
|
26
|
+
</div>
|
|
24
27
|
</>
|
|
25
28
|
);
|
|
26
29
|
};
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
@include min(desktop) {
|
|
14
|
-
grid-template-columns: repeat(
|
|
14
|
+
grid-template-columns: repeat(3, 1fr);
|
|
15
15
|
column-gap: 1.6rem;
|
|
16
16
|
}
|
|
17
17
|
li {
|
|
@@ -29,17 +29,20 @@
|
|
|
29
29
|
width: 100%;
|
|
30
30
|
height: 15rem;
|
|
31
31
|
img {
|
|
32
|
-
width: 100%;
|
|
33
32
|
height: 100%;
|
|
34
33
|
object-fit: cover;
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
font-size: 2rem;
|
|
40
|
-
color: black;
|
|
36
|
+
|
|
37
|
+
.content {
|
|
41
38
|
padding: 1rem;
|
|
39
|
+
.label {
|
|
40
|
+
font-weight: 700;
|
|
41
|
+
font-size: 2rem;
|
|
42
|
+
color: black;
|
|
43
|
+
}
|
|
42
44
|
}
|
|
45
|
+
|
|
43
46
|
.body {
|
|
44
47
|
padding: 0 1rem 1rem 1rem;
|
|
45
48
|
}
|
|
@@ -4,13 +4,18 @@ import React from 'react';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import parse from 'html-react-parser';
|
|
6
6
|
|
|
7
|
+
import loadable from '@loadable/component';
|
|
7
8
|
import LazyImage from '~hooks/lazy-image';
|
|
8
9
|
import { parseCss } from '~helpers/css-parser';
|
|
9
|
-
|
|
10
10
|
import styles from './content.module.scss';
|
|
11
11
|
|
|
12
12
|
const Content = ({ module, pageContext = null }) => {
|
|
13
13
|
const replaceMedia = (node) => {
|
|
14
|
+
if (node.name === 'iframe') {
|
|
15
|
+
const Iframe = loadable(() => import('gatsby-core-theme/src/components/atoms/iframe'));
|
|
16
|
+
return <Iframe src={node.attribs.src} />;
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
if (node.name === 'img') {
|
|
15
20
|
let stylesClass = null;
|
|
16
21
|
const classes = node.attribs.class;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
|
|
3
|
+
import LazyLoad from 'react-lazyload';
|
|
4
4
|
import styles from './star-rating.module.scss';
|
|
5
5
|
import keygen from '~helpers/keygen';
|
|
6
6
|
import { getRating } from '~helpers/rating';
|
|
@@ -33,7 +33,11 @@ const StarRating = ({ numOfStars, rating, halfStars = true }) => {
|
|
|
33
33
|
}
|
|
34
34
|
return output;
|
|
35
35
|
};
|
|
36
|
-
return
|
|
36
|
+
return (
|
|
37
|
+
<LazyLoad>
|
|
38
|
+
<div className={styles.starRatingContainer}>{renderFarm()}</div>
|
|
39
|
+
</LazyLoad>
|
|
40
|
+
);
|
|
37
41
|
};
|
|
38
42
|
|
|
39
43
|
StarRating.propTypes = {
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { render, cleanup } from '@testing-library/react';
|
|
2
|
+
import { render, cleanup, waitFor } from '@testing-library/react';
|
|
3
3
|
import '@testing-library/jest-dom/extend-expect';
|
|
4
4
|
|
|
5
5
|
import StarRating from '.';
|
|
6
6
|
|
|
7
7
|
describe('StarRating Component', () => {
|
|
8
|
-
test('render container with lazyload', () => {
|
|
8
|
+
test('render container with lazyload', async () => {
|
|
9
9
|
const { container } = render(<StarRating numOfStars={10} rating={6.5} />);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
expect(container.querySelectorAll('.emptyStar')).toHaveLength(3);
|
|
10
|
+
await waitFor(() => {
|
|
11
|
+
expect(container.querySelectorAll('.lazyload-placeholder')).toHaveLength(1);
|
|
12
|
+
});
|
|
14
13
|
});
|
|
15
14
|
});
|
|
16
15
|
afterEach(() => {
|
|
@@ -7,10 +7,10 @@ import { getToplistItem } from '~tests/factories/modules/toplist.factory';
|
|
|
7
7
|
|
|
8
8
|
describe('Molecules/TopList/Row', () => {
|
|
9
9
|
test('render with props', () => {
|
|
10
|
-
const { container
|
|
10
|
+
const { container } = render(<Row item={getToplistItem()} tracker="main" />);
|
|
11
11
|
expect(container).toBeTruthy();
|
|
12
12
|
expect(container.querySelector('.row.list')).toBeTruthy();
|
|
13
|
-
expect(getByText('150 free spins')).toBeTruthy();
|
|
13
|
+
// expect(getByText('150 free spins')).toBeTruthy();
|
|
14
14
|
});
|
|
15
15
|
|
|
16
16
|
test('grid layout', () => {
|
|
@@ -9,10 +9,9 @@ import { getListToplistItems } from '~tests/factories/modules/toplist.factory';
|
|
|
9
9
|
|
|
10
10
|
describe('Organisms/TopList', () => {
|
|
11
11
|
test('render with props', () => {
|
|
12
|
-
const { container
|
|
12
|
+
const { container } = render(<TopList module={{ items: getListToplistItems(3) }} />);
|
|
13
13
|
expect(container).toBeTruthy();
|
|
14
14
|
expect(container.querySelector('.list')).toBeTruthy();
|
|
15
|
-
expect(getByText('150 free spins')).toBeTruthy();
|
|
16
15
|
});
|
|
17
16
|
|
|
18
17
|
test('headerExtra', () => {
|
package/src/helpers/events.js
CHANGED
|
@@ -48,30 +48,41 @@ export function convertTimeZone(event) {
|
|
|
48
48
|
return { ...event, ...dateAttrs };
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
function updateSchedule(schedule) {
|
|
52
|
+
if (!schedule) {
|
|
53
|
+
return {};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return Object.keys(schedule).reduce((acc, key) => {
|
|
57
|
+
const { tournaments } = schedule[key] || {};
|
|
58
|
+
if (!tournaments && ['soccer', 'handball', 'tennis', 'cricket'].includes(key)) {
|
|
59
|
+
const value = updateSchedule(schedule[key]);
|
|
60
|
+
acc[key] = value;
|
|
61
|
+
return acc;
|
|
62
|
+
}
|
|
63
|
+
// else if schedule is normal format
|
|
64
|
+
const formattedTournaments = Object.keys(tournaments).reduce(
|
|
65
|
+
(tournamentAcc, currentTournamentKey) => {
|
|
66
|
+
const league = tournaments[currentTournamentKey];
|
|
67
|
+
const formattedEvents = league.events.map((event) => convertTimeZone(event));
|
|
68
|
+
|
|
69
|
+
tournamentAcc[currentTournamentKey] = { ...league, events: formattedEvents };
|
|
70
|
+
return tournamentAcc;
|
|
71
|
+
},
|
|
72
|
+
{}
|
|
73
|
+
);
|
|
74
|
+
acc[key] = { ...schedule[key], tournaments: formattedTournaments };
|
|
75
|
+
return acc;
|
|
76
|
+
}, {});
|
|
77
|
+
}
|
|
78
|
+
|
|
51
79
|
export function updateAllTimezones(relation) {
|
|
52
80
|
const relationSchedule = relation?.schedule;
|
|
53
81
|
const relationFeaturedEvents = relation?.featured_events;
|
|
54
82
|
const relationShowcasedEvents = relation?.showcased_events;
|
|
55
83
|
|
|
56
84
|
// formated timezone schedule
|
|
57
|
-
const schedule = relationSchedule
|
|
58
|
-
? Object.keys(relationSchedule).reduce((acc, dateKey) => {
|
|
59
|
-
const { tournaments } = relationSchedule[dateKey] || {};
|
|
60
|
-
|
|
61
|
-
const formattedTournaments = Object.keys(tournaments).reduce(
|
|
62
|
-
(tournamentAcc, currentTournamentKey) => {
|
|
63
|
-
const league = tournaments[currentTournamentKey];
|
|
64
|
-
const formattedEvents = league.events.map((event) => convertTimeZone(event));
|
|
65
|
-
tournamentAcc[currentTournamentKey] = { ...league, events: formattedEvents };
|
|
66
|
-
return tournamentAcc;
|
|
67
|
-
},
|
|
68
|
-
{}
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
acc[dateKey] = { ...relation.schedule[dateKey], tournaments: formattedTournaments };
|
|
72
|
-
return acc;
|
|
73
|
-
}, {})
|
|
74
|
-
: {};
|
|
85
|
+
const schedule = updateSchedule(relationSchedule);
|
|
75
86
|
|
|
76
87
|
// formated timezone featured events
|
|
77
88
|
const featured_events = relationFeaturedEvents?.map((event) => convertTimeZone(event)) || [];
|
|
@@ -39,9 +39,12 @@ export function processSitemapPages(pages, markets) {
|
|
|
39
39
|
pageListByMarket[market] = [];
|
|
40
40
|
let pageList = [];
|
|
41
41
|
Object.keys(pages[market]).forEach((pageType) => {
|
|
42
|
-
const filteredPages = pages[market][pageType].filter(
|
|
43
|
-
(page
|
|
44
|
-
|
|
42
|
+
const filteredPages = pages[market][pageType].filter((page) => {
|
|
43
|
+
if (page.type === 'event') {
|
|
44
|
+
return page.relation.event && page.robot_options && page.robot_options.page_index === 1;
|
|
45
|
+
}
|
|
46
|
+
return page.robot_options && page.robot_options.page_index === 1;
|
|
47
|
+
});
|
|
45
48
|
|
|
46
49
|
pageList = pageList.concat(filteredPages.map((row) => pick(row, pickHTMLSitemapPageKeys)));
|
|
47
50
|
});
|