diff options
author | Dominik Guzei <dominik.guzei@gmail.com> | 2019-04-10 16:12:38 +0200 |
---|---|---|
committer | Dominik Guzei <dominik.guzei@gmail.com> | 2019-04-10 16:12:38 +0200 |
commit | 073212bf046b9218f9e3129988b1b63fba5d685d (patch) | |
tree | b6c4c2db33f3a111a82e7801073bb5b697f9a56c /packages | |
parent | improve contrast of workspace switching indicator (diff) | |
download | ferdium-app-073212bf046b9218f9e3129988b1b63fba5d685d.tar.gz ferdium-app-073212bf046b9218f9e3129988b1b63fba5d685d.tar.zst ferdium-app-073212bf046b9218f9e3129988b1b63fba5d685d.zip |
added generic pro badge component for settings nav
Diffstat (limited to 'packages')
-rw-r--r-- | packages/ui/src/badge/ProBadge.tsx | 65 | ||||
-rw-r--r-- | packages/ui/src/index.ts | 1 |
2 files changed, 66 insertions, 0 deletions
diff --git a/packages/ui/src/badge/ProBadge.tsx b/packages/ui/src/badge/ProBadge.tsx new file mode 100644 index 000000000..eb00e156d --- /dev/null +++ b/packages/ui/src/badge/ProBadge.tsx | |||
@@ -0,0 +1,65 @@ | |||
1 | import { Theme } from '@meetfranz/theme'; | ||
2 | import classnames from 'classnames'; | ||
3 | import React, { Component } from 'react'; | ||
4 | import injectStyle from 'react-jss'; | ||
5 | |||
6 | import { Icon, Badge } from '../'; | ||
7 | import { IWithStyle } from '../typings/generic'; | ||
8 | |||
9 | interface IProps extends IWithStyle { | ||
10 | badgeClasses?: string; | ||
11 | iconClasses?: string; | ||
12 | inverted?: boolean; | ||
13 | } | ||
14 | |||
15 | const styles = (theme: Theme) => ({ | ||
16 | badge: { | ||
17 | height: 'auto', | ||
18 | padding: [4, 6, 2, 7], | ||
19 | borderRadius: theme.borderRadiusSmall, | ||
20 | }, | ||
21 | invertedBadge: { | ||
22 | background: theme.styleTypes.primary.contrast, | ||
23 | color: theme.styleTypes.primary.accent, | ||
24 | }, | ||
25 | icon: { | ||
26 | fill: theme.styleTypes.primary.contrast, | ||
27 | }, | ||
28 | invertedIcon: { | ||
29 | fill: theme.styleTypes.primary.accent, | ||
30 | }, | ||
31 | }); | ||
32 | |||
33 | class ProBadgeComponent extends Component<IProps> { | ||
34 | render() { | ||
35 | const { | ||
36 | classes, | ||
37 | badgeClasses, | ||
38 | iconClasses, | ||
39 | inverted, | ||
40 | } = this.props; | ||
41 | |||
42 | return ( | ||
43 | <Badge | ||
44 | type="primary" | ||
45 | className={classnames([ | ||
46 | classes.badge, | ||
47 | inverted && classes.invertedBadge, | ||
48 | badgeClasses, | ||
49 | ])} | ||
50 | data-type="franz-badge" | ||
51 | > | ||
52 | <Icon | ||
53 | icon="mdiStar" | ||
54 | className={classnames([ | ||
55 | classes.icon, | ||
56 | inverted && classes.invertedIcon, | ||
57 | iconClasses, | ||
58 | ])} | ||
59 | /> | ||
60 | </Badge> | ||
61 | ); | ||
62 | } | ||
63 | } | ||
64 | |||
65 | export const ProBadge = injectStyle(styles)(ProBadgeComponent); | ||
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 1eeec5144..666495ce9 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts | |||
@@ -3,3 +3,4 @@ export { Infobox } from './infobox'; | |||
3 | export * from './headline'; | 3 | export * from './headline'; |
4 | export { Loader } from './loader'; | 4 | export { Loader } from './loader'; |
5 | export { Badge } from './badge'; | 5 | export { Badge } from './badge'; |
6 | export { ProBadge } from './badge/ProBadge'; | ||