UNPKG

1.26 kBJavaScriptView Raw
1import React, {Component} from 'react';
2import PropTypes from 'prop-types';
3import classNames from 'classnames';
4
5import rerenderHOC from '../global/rerender-hoc';
6import Theme from '../global/theme';
7
8import styles from './header.css';
9
10/**
11 * @name Header
12 */
13
14export default class Header extends Component {
15 static propTypes = {
16 className: PropTypes.string,
17 children: PropTypes.node,
18 spaced: PropTypes.bool,
19 theme: PropTypes.string
20 };
21
22 static defaultProps = {
23 spaced: true,
24 theme: Theme.DARK
25 };
26
27 render() {
28 const {children, className, spaced, theme, ...restProps} = this.props;
29 const classes = classNames(styles.header, styles[theme], className, {
30 [styles.headerSpaced]: spaced
31 });
32
33 return (
34 <div
35 {...restProps}
36 className={classes}
37 >
38 {children}
39 </div>
40 );
41 }
42}
43
44export const RerenderableHeader = rerenderHOC(Header);
45export {default as Logo} from './logo';
46export {default as Tray} from './tray';
47export {default as TrayIcon} from './tray-icon';
48export {default as Profile} from './profile';
49export {default as SmartProfile} from './smart-profile';
50export {default as Services} from './services';
51export {default as SmartServices} from './smart-services';