/
talkie-version-icon.jsx
75 lines (63 loc) · 2.14 KB
/
talkie-version-icon.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
This file is part of Talkie -- text-to-speech browser extension button.
<https://joelpurra.com/projects/talkie/>
Copyright (c) 2016, 2017, 2018, 2019 Joel Purra <https://joelpurra.com/>
Talkie is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Talkie is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Talkie. If not, see <https://www.gnu.org/licenses/>.
*/
import React from "react";
import PropTypes from "prop-types";
import Icon from "./icon.jsx";
export default class TalkieVersionIcon extends React.PureComponent {
static defaultProps = {
mode: "inline",
size: "1.3em",
marginLeft: "0.3em",
marginRight: "0.3em",
className: "",
isPremiumVersion: false,
};
static propTypes = {
mode: PropTypes.oneOf(["inline", "standalone"]).isRequired,
size: PropTypes.string.isRequired,
marginLeft: PropTypes.string.isRequired,
marginRight: PropTypes.string.isRequired,
className: PropTypes.string.isRequired,
isPremiumVersion: PropTypes.bool.isRequired,
}
render() {
const {
mode,
size,
marginLeft,
marginRight,
className,
isPremiumVersion,
} = this.props;
const isPremiumVersionClassName = isPremiumVersion ? "premium" : "free";
const classNames = [
"icon-talkie",
isPremiumVersionClassName,
className,
]
.join(" ")
.trim();
return (
<Icon
mode={mode}
size={size}
marginLeft={marginLeft}
marginRight={marginRight}
className={classNames}
/>
);
}
}