gatsby-matrix-theme 6.0.2 → 6.0.3
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 +33 -0
- package/package.json +2 -2
- package/src/components/atoms/cards/article-card/index.js +6 -3
- package/src/components/atoms/cards/game-card/index.js +19 -6
- package/src/components/atoms/cards/operator-card/index.js +15 -10
- package/src/components/molecules/toplist/row/variant-one.js +2 -1
- package/src/gatsby-core-theme/components/atoms/author/author.module.scss +68 -0
- package/src/gatsby-core-theme/components/atoms/author/index.js +77 -0
- package/src/gatsby-core-theme/components/atoms/module-title/index.js +14 -11
- package/src/gatsby-core-theme/components/organisms/head/index.js +11 -6
- package/src/gatsby-core-theme/styles/utils/variables/_main.scss +8 -0
- package/src/hooks/tabs/index.js +3 -1
- package/storybook/public/{145.adc0cfd7.iframe.bundle.js → 152.a6570944.iframe.bundle.js} +4 -4
- package/storybook/public/{145.adc0cfd7.iframe.bundle.js.LICENSE.txt → 152.a6570944.iframe.bundle.js.LICENSE.txt} +0 -0
- package/storybook/public/{145.adc0cfd7.iframe.bundle.js.map → 152.a6570944.iframe.bundle.js.map} +1 -1
- package/storybook/public/252.19995cf7.iframe.bundle.js +1 -0
- package/storybook/public/331.4e2323f9.iframe.bundle.js +1 -0
- package/storybook/public/720.6b3cfa44.iframe.bundle.js +1 -0
- package/storybook/public/iframe.html +1 -1
- package/storybook/public/main.38064527.iframe.bundle.js +1 -0
- package/storybook/public/runtime~main.aff10fe9.iframe.bundle.js +1 -0
- package/storybook/public/859.94495706.iframe.bundle.js +0 -1
- package/storybook/public/main.62ff6f3d.iframe.bundle.js +0 -1
- package/storybook/public/runtime~main.2f06b328.iframe.bundle.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,36 @@
|
|
|
1
|
+
## [6.0.3](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v6.0.2...v6.0.3) (2022-04-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add endpoint for bacom ([8fb13db](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/8fb13dbea8b9863c9586c28000163f176408e179))
|
|
7
|
+
* add onestar design for game, operator card and toplist ([bf53abe](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/bf53abefee45f6d4d73e2b730615b0bfe9e4658d))
|
|
8
|
+
* added default width and height for game cards ([5d5a488](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/5d5a488167854b04c7cdfccf221c23e0a6e51c88))
|
|
9
|
+
* added reading time meta tag for twitter ([6e84e86](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/6e84e86d2a7f6ab592ddfa3b85936a0118ca8b39))
|
|
10
|
+
* head meta tag and added header extended part ([01808d2](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/01808d217d31af35bcec881eea3dced5d3584353))
|
|
11
|
+
* heading sequence hide titles that dont have data ([7a72a8b](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/7a72a8b9a36655bf625124e371f8c357484cf7a9))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Code Refactoring
|
|
15
|
+
|
|
16
|
+
* extended header ([d3674f1](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/d3674f167e9001b8bb521aa990070fc7d43ba3bb))
|
|
17
|
+
* made changes to new component ([0cec052](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0cec05271de2e888a0bab6c98f644d48943ff68a))
|
|
18
|
+
* made changes to new component ([a1ad73d](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/a1ad73d0088e30a90894a782464930f6c41dc63e))
|
|
19
|
+
* replace env check with prop ([0d6a7fd](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/0d6a7fd8770199d61487821377dc34a489e8a35f))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Config
|
|
23
|
+
|
|
24
|
+
* resolve conflicts ([fa897c8](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/fa897c8dbf240040b5745fd2bf2815feedae4a1d))
|
|
25
|
+
* update theme ([2f90038](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/2f90038d19fd30e2bb7f832a5045fd9646263850))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
* Merge branch 'extended-page-header' into 'master' ([e81be14](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/e81be144dc2139d57436fb84768fe6859202fd49))
|
|
29
|
+
* Merge branch 'tm-2813-heading-sequence' into 'master' ([38c4cd1](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/38c4cd134a610ab0aa4720382419993ff429d6d6))
|
|
30
|
+
* Merge branch 'fix-star-ratings' into 'master' ([d0da5b4](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/d0da5b4709e7cea67c45469460d97f31ae442da3))
|
|
31
|
+
* Merge branch 'revert-8fb13dbe' into 'master' ([b212c7e](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/b212c7e184d0f942d0a96d82ba9a546d4570ebe7))
|
|
32
|
+
* Revert "fix: add endpoint for bacom" ([6a5880f](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/commit/6a5880ffd7def8560756c3a3ea961f3e27c7f22e))
|
|
33
|
+
|
|
1
34
|
## [6.0.2](https://git.ilcd.rocks/team-floyd/themes/matrix-theme/compare/v6.0.1...v6.0.2) (2022-04-07)
|
|
2
35
|
|
|
3
36
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gatsby-matrix-theme",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.3",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"description": "Matrix Theme NPM Package",
|
|
6
6
|
"author": "",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"gatsby-transformer-sharp": "^4.10.0",
|
|
29
29
|
"react": "^17.0.2",
|
|
30
30
|
"react-dom": "^17.0.2",
|
|
31
|
-
"gatsby-core-theme": "^6.1.
|
|
31
|
+
"gatsby-core-theme": "^6.1.2"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@babel/core": "^7.13.1",
|
|
@@ -24,7 +24,6 @@ const ArticleCard = ({ item, width, height }) => {
|
|
|
24
24
|
};
|
|
25
25
|
const cardBackgroundImage = getSectionExtraField(null, item, 'card_background_image');
|
|
26
26
|
const featured = !!cardBackgroundImage;
|
|
27
|
-
const AuthorProfile = author && author.profile_page_path;
|
|
28
27
|
const AuthorName = author && author.name;
|
|
29
28
|
const { translations } = useContext(Context) || {};
|
|
30
29
|
|
|
@@ -58,7 +57,7 @@ const ArticleCard = ({ item, width, height }) => {
|
|
|
58
57
|
gtmClass="article-card-gtm btn-cta"
|
|
59
58
|
/>
|
|
60
59
|
<div className={styles.cardMeta}>
|
|
61
|
-
<Author
|
|
60
|
+
<Author prefix="by" name={AuthorName} date={created_at} isCardsAuthor />
|
|
62
61
|
</div>
|
|
63
62
|
</div>
|
|
64
63
|
</BaseCard>
|
|
@@ -67,7 +66,11 @@ const ArticleCard = ({ item, width, height }) => {
|
|
|
67
66
|
|
|
68
67
|
ArticleCard.propTypes = {
|
|
69
68
|
item: PropTypes.shape({
|
|
70
|
-
author: PropTypes.shape({
|
|
69
|
+
author: PropTypes.shape({
|
|
70
|
+
name: PropTypes.string,
|
|
71
|
+
profile_page_path: PropTypes.string,
|
|
72
|
+
twitter_profile: PropTypes.string,
|
|
73
|
+
}),
|
|
71
74
|
title: PropTypes.string,
|
|
72
75
|
created_at: PropTypes.string,
|
|
73
76
|
path: PropTypes.string,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
1
2
|
import React, { useContext } from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
|
-
import
|
|
4
|
-
import StarRating from 'gatsby-core-theme/src/components/molecules/star-rating';
|
|
4
|
+
import loadable from '@loadable/component';
|
|
5
5
|
import Button from 'gatsby-core-theme/src/components/atoms/button';
|
|
6
6
|
import GatsbyImg from 'gatsby-core-theme/src/hooks/gatsby-img';
|
|
7
7
|
import Link from 'gatsby-core-theme/src/hooks/link';
|
|
@@ -16,11 +16,20 @@ import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
|
|
|
16
16
|
import BaseCard from '../base-card';
|
|
17
17
|
import styles from './game-card.module.scss';
|
|
18
18
|
|
|
19
|
-
const GameCard = ({
|
|
19
|
+
const GameCard = ({
|
|
20
|
+
item,
|
|
21
|
+
button_text = 'play_now',
|
|
22
|
+
width = 300,
|
|
23
|
+
height = 250,
|
|
24
|
+
useOneStarRating = false,
|
|
25
|
+
}) => {
|
|
20
26
|
const { relation, title, path, banner } = item;
|
|
21
27
|
const cardBackgroundImage = getSectionExtraField(null, item, 'card_background_image');
|
|
22
28
|
const featured = !!cardBackgroundImage;
|
|
23
29
|
const { translations } = useContext(Context) || {};
|
|
30
|
+
const StarRating = useOneStarRating
|
|
31
|
+
? loadable(() => import('gatsby-core-theme/src/components/molecules/star-rating/one-star'))
|
|
32
|
+
: loadable(() => import('gatsby-core-theme/src/components/molecules/star-rating'));
|
|
24
33
|
|
|
25
34
|
return (
|
|
26
35
|
<BaseCard item={item} isLinked cardType="game">
|
|
@@ -31,7 +40,12 @@ const GameCard = ({ item, button_text = 'play_now', width, height }) => {
|
|
|
31
40
|
aria-label={`${title} Link`}
|
|
32
41
|
>
|
|
33
42
|
{banner ? (
|
|
34
|
-
<LazyImage
|
|
43
|
+
<LazyImage
|
|
44
|
+
width={width}
|
|
45
|
+
height={height}
|
|
46
|
+
src={imagePrettyUrl(banner, width, height)}
|
|
47
|
+
alt={title}
|
|
48
|
+
/>
|
|
35
49
|
) : (
|
|
36
50
|
<GatsbyImg filename="default-slot.jpg" alt={title} />
|
|
37
51
|
)}
|
|
@@ -48,8 +62,6 @@ const GameCard = ({ item, button_text = 'play_now', width, height }) => {
|
|
|
48
62
|
<StarRating
|
|
49
63
|
numOfStars={5}
|
|
50
64
|
halfStars={false}
|
|
51
|
-
iconEmpty={<FaStar />}
|
|
52
|
-
iconFull={<FaStar />}
|
|
53
65
|
rating={[
|
|
54
66
|
relation.first_rating,
|
|
55
67
|
relation.second_rating,
|
|
@@ -88,6 +100,7 @@ GameCard.propTypes = {
|
|
|
88
100
|
button_text: PropTypes.string,
|
|
89
101
|
width: PropTypes.number,
|
|
90
102
|
height: PropTypes.number,
|
|
103
|
+
useOneStarRating: PropTypes.bool,
|
|
91
104
|
};
|
|
92
105
|
|
|
93
106
|
export default GameCard;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
1
2
|
/* eslint-disable camelcase */
|
|
2
3
|
import React, { useContext } from 'react';
|
|
3
4
|
import PropTypes from 'prop-types';
|
|
4
|
-
import
|
|
5
|
-
import StarRating from 'gatsby-core-theme/src/components/molecules/star-rating';
|
|
5
|
+
import loadable from '@loadable/component';
|
|
6
6
|
import { 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';
|
|
@@ -13,13 +13,23 @@ import OperatorCta from 'gatsby-core-theme/src/components/atoms/operator-cta';
|
|
|
13
13
|
import BaseCard from '../base-card';
|
|
14
14
|
import styles from './operator-card.module.scss';
|
|
15
15
|
|
|
16
|
-
const OperatorCard = ({
|
|
16
|
+
const OperatorCard = ({
|
|
17
|
+
item,
|
|
18
|
+
featured = false,
|
|
19
|
+
number,
|
|
20
|
+
width,
|
|
21
|
+
height,
|
|
22
|
+
useOneStarRating = false,
|
|
23
|
+
}) => {
|
|
17
24
|
const { relation, path } = item;
|
|
18
25
|
const reviewPath = path || relation.path;
|
|
19
26
|
const status = relation?.status;
|
|
20
27
|
const isInactive = status === 'inactive';
|
|
21
28
|
const backgroundImage = number === 1 ? 'featuredCasino' : null;
|
|
22
29
|
const { translations } = useContext(Context) || {};
|
|
30
|
+
const StarRating = useOneStarRating
|
|
31
|
+
? loadable(() => import('gatsby-core-theme/src/components/molecules/star-rating/one-star'))
|
|
32
|
+
: loadable(() => import('gatsby-core-theme/src/components/molecules/star-rating'));
|
|
23
33
|
|
|
24
34
|
return (
|
|
25
35
|
<BaseCard featured={featured} backgroundImage={backgroundImage} item={item} cardType="operator">
|
|
@@ -40,13 +50,7 @@ const OperatorCard = ({ item, featured = false, number, width, height }) => {
|
|
|
40
50
|
alt={relation.name}
|
|
41
51
|
/>
|
|
42
52
|
</Link>
|
|
43
|
-
<StarRating
|
|
44
|
-
numOfStars={5}
|
|
45
|
-
halfStars={false}
|
|
46
|
-
iconEmpty={<FaStar />}
|
|
47
|
-
iconFull={<FaStar />}
|
|
48
|
-
rating={relation.rating}
|
|
49
|
-
/>
|
|
53
|
+
<StarRating numOfStars={5} halfStars={false} rating={relation.rating} />
|
|
50
54
|
</div>
|
|
51
55
|
<div
|
|
52
56
|
className={`${styles.cardContent} ${featured && styles.featured} ${
|
|
@@ -106,6 +110,7 @@ OperatorCard.propTypes = {
|
|
|
106
110
|
number: PropTypes.number,
|
|
107
111
|
width: PropTypes.number,
|
|
108
112
|
height: PropTypes.number,
|
|
113
|
+
useOneStarRating: PropTypes.bool,
|
|
109
114
|
};
|
|
110
115
|
|
|
111
116
|
export default OperatorCard;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
1
2
|
import React, { useContext } from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { MdCheck } from 'react-icons/md';
|
|
@@ -10,7 +11,7 @@ import {
|
|
|
10
11
|
import Link from 'gatsby-core-theme/src/hooks/link';
|
|
11
12
|
import Label from 'gatsby-core-theme/src/components/atoms/label';
|
|
12
13
|
import LazyImage from 'gatsby-core-theme/src/hooks/lazy-image';
|
|
13
|
-
import StarRating from 'gatsby-core-theme/src/components/molecules/star-rating';
|
|
14
|
+
import StarRating from 'gatsby-core-theme/src/components/molecules/star-rating/one-star';
|
|
14
15
|
import SellingPoints from 'gatsby-core-theme/src/components/atoms/selling-points';
|
|
15
16
|
import OperatorCta from 'gatsby-core-theme/src/components/atoms/operator-cta';
|
|
16
17
|
import Tnc from 'gatsby-core-theme/src/components/molecules/tnc';
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
.authorWraper {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-rows: repeat(2, 1fr);
|
|
4
|
+
align-items: center;
|
|
5
|
+
font-size: var(--author-text-fontSize);
|
|
6
|
+
color: var(--author-primary-text-color);
|
|
7
|
+
.infoContainer {
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
white-space: nowrap;
|
|
11
|
+
.prefixStyle {
|
|
12
|
+
margin: 0px;
|
|
13
|
+
}
|
|
14
|
+
.authorImg {
|
|
15
|
+
width: 30px;
|
|
16
|
+
height: 30px;
|
|
17
|
+
border-radius: 50%;
|
|
18
|
+
margin: 0px 8px 0px 6px;
|
|
19
|
+
}
|
|
20
|
+
> a {
|
|
21
|
+
color: var(--author-link-text-color);
|
|
22
|
+
font-weight: var(--author-fontweight);
|
|
23
|
+
text-decoration: underline;
|
|
24
|
+
|
|
25
|
+
&:before {
|
|
26
|
+
content: '';
|
|
27
|
+
padding: 0px 2px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&:after {
|
|
31
|
+
content: '';
|
|
32
|
+
padding: 0px 2px;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
.dateTimeWrapper {
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
white-space: nowrap;
|
|
40
|
+
.readingWithBorder {
|
|
41
|
+
&:before {
|
|
42
|
+
content: '|';
|
|
43
|
+
padding: 0px 3px;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@include min(tablet) {
|
|
49
|
+
display: flex;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.authorCard {
|
|
54
|
+
display: flex;
|
|
55
|
+
width: 100%;
|
|
56
|
+
justify-content: space-between;
|
|
57
|
+
color: var( --author-card-text-color);
|
|
58
|
+
|
|
59
|
+
@include min(tablet){
|
|
60
|
+
display: flex;
|
|
61
|
+
justify-content: space-between;
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.prefixCardText {
|
|
67
|
+
padding-right: 2px;
|
|
68
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/* eslint-disable arrow-body-style */
|
|
2
|
+
import React, { useContext } from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
|
|
5
|
+
import { translate } from 'gatsby-core-theme/src/helpers/getters';
|
|
6
|
+
import { Context } from 'gatsby-core-theme/src/context/TranslationsProvider';
|
|
7
|
+
import { formatDate } from '~helpers/date-time';
|
|
8
|
+
import Link from '~hooks/link';
|
|
9
|
+
import styles from './author.module.scss';
|
|
10
|
+
|
|
11
|
+
const Author = ({
|
|
12
|
+
name,
|
|
13
|
+
date,
|
|
14
|
+
authorImg,
|
|
15
|
+
readingTime,
|
|
16
|
+
link,
|
|
17
|
+
prefix = '',
|
|
18
|
+
type = 'default',
|
|
19
|
+
icon = false,
|
|
20
|
+
splitDateFormat = '.',
|
|
21
|
+
dateFormat = 'DD.MM.YYYY',
|
|
22
|
+
isCardsAuthor = false,
|
|
23
|
+
}) => {
|
|
24
|
+
const { translations } = useContext(Context) || {};
|
|
25
|
+
const prefixstyle = !link || !authorImg;
|
|
26
|
+
|
|
27
|
+
const getPrefixBasedOnPage = type.includes('review')
|
|
28
|
+
? translate(translations, 'reviewed_by', 'Review by')
|
|
29
|
+
: translate(translations, 'written_by', 'Written by');
|
|
30
|
+
|
|
31
|
+
const getRoundMinutes = (time) => {
|
|
32
|
+
const [minutes, seconds] = time.split(':');
|
|
33
|
+
const value = seconds > 30 ? Number(minutes) + 1 : Number(minutes);
|
|
34
|
+
return value === 0 ? 1 : value;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<div className={`${styles.authorWraper} ${isCardsAuthor && styles.authorCard} `}>
|
|
39
|
+
<div className={`${styles.infoContainer} ${isCardsAuthor && styles.infoCardContainer}`}>
|
|
40
|
+
<p className={`${styles.prefixStyle} ${prefixstyle && styles.prefixCardText}`}>
|
|
41
|
+
{prefix || getPrefixBasedOnPage}
|
|
42
|
+
</p>
|
|
43
|
+
<Link to={link} title={name}>
|
|
44
|
+
{name}
|
|
45
|
+
</Link>
|
|
46
|
+
{icon}
|
|
47
|
+
{authorImg && <img src={authorImg} alt={name} className={styles.authorImg} />}
|
|
48
|
+
</div>
|
|
49
|
+
<div className={styles.dateTimeWrapper}>
|
|
50
|
+
{date && <div>{formatDate(date, dateFormat, splitDateFormat, 'en-GB')}</div>}
|
|
51
|
+
{readingTime && (
|
|
52
|
+
<div className={date && styles.readingWithBorder}>
|
|
53
|
+
{`${translate(translations, 'reading_time', 'Reading time')} ${getRoundMinutes(
|
|
54
|
+
readingTime
|
|
55
|
+
)} ${translate(translations, 'minutes', 'min')}`}
|
|
56
|
+
</div>
|
|
57
|
+
)}
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
Author.propTypes = {
|
|
64
|
+
prefix: PropTypes.string,
|
|
65
|
+
name: PropTypes.string.isRequired,
|
|
66
|
+
date: PropTypes.string,
|
|
67
|
+
dateFormat: PropTypes.string,
|
|
68
|
+
type: PropTypes.string,
|
|
69
|
+
link: PropTypes.string,
|
|
70
|
+
authorImg: PropTypes.string,
|
|
71
|
+
readingTime: PropTypes.string,
|
|
72
|
+
icon: PropTypes.string,
|
|
73
|
+
splitDateFormat: PropTypes.string,
|
|
74
|
+
isCardsAuthor: PropTypes.bool,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export default Author;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
1
2
|
import React, { useContext } from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { FaAngleRight } from 'react-icons/fa';
|
|
@@ -34,8 +35,7 @@ const ModuleTitle = ({ module, viewMoreIcon = <FaAngleRight />, pageContext = nu
|
|
|
34
35
|
|
|
35
36
|
const getTitle = (className) => {
|
|
36
37
|
const moduleTitle = module?.title || module?.module_title;
|
|
37
|
-
|
|
38
|
-
if (!module?.module_title_tag) {
|
|
38
|
+
if (!module?.module_title_tag && moduleTitle) {
|
|
39
39
|
return (
|
|
40
40
|
<h2 className={`${styles.noTag} ${className}`}>
|
|
41
41
|
{moduleTitle}
|
|
@@ -61,16 +61,19 @@ const ModuleTitle = ({ module, viewMoreIcon = <FaAngleRight />, pageContext = nu
|
|
|
61
61
|
) : null}
|
|
62
62
|
</CustomTag>
|
|
63
63
|
);
|
|
64
|
+
|
|
64
65
|
return (
|
|
65
|
-
|
|
66
|
-
{
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
moduleTitle && (
|
|
67
|
+
<span className={`${styles.noTag} ${className}`}>
|
|
68
|
+
{moduleTitle}
|
|
69
|
+
{currentMonth ? (
|
|
70
|
+
<span className={styles.toplistDate}>
|
|
71
|
+
<small>•</small>
|
|
72
|
+
{`${currentMonth} ${year}`}
|
|
73
|
+
</span>
|
|
74
|
+
) : null}
|
|
75
|
+
</span>
|
|
76
|
+
)
|
|
74
77
|
);
|
|
75
78
|
};
|
|
76
79
|
|
|
@@ -67,12 +67,15 @@ const Head = ({ page = {}, siteInfo }) => {
|
|
|
67
67
|
<link rel="canonical" href={getCanonicalUrl(page)} />
|
|
68
68
|
{page.preconnect_links &&
|
|
69
69
|
page.preconnect_links.map((link) => <link key={keygen()} rel="preconnect" href={link} />)}
|
|
70
|
-
<meta
|
|
71
|
-
<meta
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
<meta
|
|
70
|
+
<meta property="og:title" content={page.meta_title} />
|
|
71
|
+
<meta
|
|
72
|
+
property="og:site_name"
|
|
73
|
+
content={siteInfo?.site_name && setName(siteInfo?.site_name)}
|
|
74
|
+
/>
|
|
75
|
+
<meta property="og:description" content={parsedMetaDescr} />
|
|
76
|
+
<meta property="og:type" content={page.path === '/' ? 'website' : 'article'} />
|
|
77
|
+
<meta property="og:image" content={pageImage} />
|
|
78
|
+
<meta property="og:url" content={getUrl(page.path)} />
|
|
76
79
|
<meta
|
|
77
80
|
property="og:locale"
|
|
78
81
|
content={
|
|
@@ -99,6 +102,8 @@ const Head = ({ page = {}, siteInfo }) => {
|
|
|
99
102
|
<meta name="twitter:creator" content={`@${twitterUsername}`} />
|
|
100
103
|
<meta name="twitter:card" content="summary" />
|
|
101
104
|
<meta name="twitter:image" content={pageImage} />
|
|
105
|
+
<meta property="twitter:label1" content="Reading time" />
|
|
106
|
+
<meta property="twitter:data1" content={`${page.reading_time}`} />
|
|
102
107
|
</Helmet>
|
|
103
108
|
)}
|
|
104
109
|
</>
|
|
@@ -112,5 +112,13 @@
|
|
|
112
112
|
|
|
113
113
|
--primaryText-bonus: '#e00028'
|
|
114
114
|
--secondaryText-bonus: '#17182f';
|
|
115
|
+
|
|
116
|
+
// Extended Header Part - Author -
|
|
117
|
+
--author-text-fontSize: 1.4rem;
|
|
118
|
+
--author-primary-text-color: #151824;
|
|
119
|
+
--author-link-text-color: #151824;
|
|
120
|
+
--author-fontweight: 100;
|
|
121
|
+
--author-card-text-color: #151824;
|
|
122
|
+
|
|
115
123
|
|
|
116
124
|
}
|
package/src/hooks/tabs/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* eslint-disable react/forbid-prop-types */
|
|
2
|
+
/* eslint-disable react/jsx-no-bind */
|
|
1
3
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
4
|
import React, { useContext, useState } from 'react';
|
|
3
5
|
import PropTypes from 'prop-types';
|
|
@@ -53,7 +55,7 @@ const Tabs = ({
|
|
|
53
55
|
styles[headerClass]
|
|
54
56
|
} ${tabsAlign === 'right' && styles.invertOrder}`;
|
|
55
57
|
const getTitle = () => {
|
|
56
|
-
if (!module?.module_title) {
|
|
58
|
+
if (!module?.module_title && module.title) {
|
|
57
59
|
return (
|
|
58
60
|
<h2 className={styles.noTag}>
|
|
59
61
|
{module.title}
|