Files
Iris/src/js/components/Header.js
2019-02-10 19:51:33 +13:00

71 lines
1.5 KiB
JavaScript
Executable File

import React from 'react'
import Icon from './Icon';
import ContextMenuTrigger from './ContextMenuTrigger';
export default class Header extends React.Component{
constructor(props){
super(props);
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)
}
}
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)} />
}
renderOptions(){
if (!this.props.options && !this.props.handleContextMenuTrigger){
return null;
}
return (
<div className='options'>
{this.renderContextMenuTrigger()}
<span className="items">
<span className="liner">
{this.props.options ? this.props.options : null}
</span>
</span>
</div>
)
}
render(){
return (
<header className={(this.props.className ? this.props.className : null)}>
<h1>
{this.props.children ? this.props.children : null}
</h1>
{this.renderOptions()}
</header>
)
}
}