Files
Iris/src/js/components/Header.js

73 lines
1.6 KiB
JavaScript
Raw Normal View History

import React, { PropTypes } from 'react'
2017-02-22 08:36:17 +13:00
import FontAwesome from 'react-fontawesome'
import Icon from './Icon'
2017-03-06 09:03:20 +13:00
import ContextMenuTrigger from './ContextMenuTrigger'
export default class Header extends React.Component{
2017-10-10 13:05:28 +13:00
constructor(props){
super(props);
2017-02-22 08:36:17 +13:00
this.state = {
expanded: false
}
}
handleContextMenuTrigger(e,options){
// We have an override trigger (eg Album, Playlist)
if (this.props.handleContextMenuTrigger){
return this.props.handleContextMenuTrigger(e)
} else {
e.preventDefault()
var data = {
e: e,
context: 'custom',
title: this.props.title,
options: options
}
this.props.uiActions.showContextMenu(data)
2017-03-06 09:03:20 +13:00
}
}
2017-10-21 21:58:53 +13:00
renderContextMenuTrigger(){
// No custom trigger, nor any options
if (!this.props.handleContextMenuTrigger && !this.props.options){
return null;
}
return <ContextMenuTrigger onTrigger={e => this.handleContextMenuTrigger(e,this.props.options)} />
}
2017-03-06 09:03:20 +13:00
renderOptions(){
if (!this.props.options && !this.props.handleContextMenuTrigger){
return null;
}
2017-02-22 08:36:17 +13:00
return (
2017-03-06 09:03:20 +13:00
<div className='options'>
2017-10-21 21:58:53 +13:00
{this.renderContextMenuTrigger()}
2017-02-22 08:36:17 +13:00
<span className="items">
<span className="liner">
{this.props.options ? this.props.options : null}
2017-02-22 08:36:17 +13:00
</span>
</span>
</div>
)
}
render(){
return (
<header className={(this.props.className ? this.props.className : null)}>
2018-05-13 16:03:51 +12:00
<h1>
{this.props.icon ? <i className={"icon header-icon icon-"+this.props.icon}></i> : null}
{this.props.title ? this.props.title : null}
</h1>
{this.renderOptions()}
</header>
)
}
}