'use strict'; import React from 'react'; import Router from 'react-router'; import DropdownButton from 'react-bootstrap/lib/DropdownButton'; import Glyphicon from 'react-bootstrap/lib/Glyphicon'; import MenuItem from 'react-bootstrap/lib/MenuItem'; import Nav from 'react-bootstrap/lib/Nav'; import PieceListStore from '../stores/piece_list_store'; import { mergeOptions } from '../utils/general_utils'; import { getLangText } from '../utils/lang_utils'; let Link = Router.Link; let HeaderNotifications = React.createClass({ getInitialState() { return mergeOptions( PieceListStore.getState() ); }, componentDidMount() { PieceListStore.listen(this.onChange); }, componentWillUnmount() { PieceListStore.unlisten(this.onChange); }, onChange(state) { this.setState(state); }, render() { if (this.state.requestActions && this.state.requestActions.length > 0) { return ( ); } return null; } }); let NotificationListItem = React.createClass({ propTypes: { pieceOrEdition: React.PropTypes.object }, getLinkData() { if(this.props.pieceOrEdition && this.props.pieceOrEdition.parent) { return { to: 'edition', params: { editionId: this.props.pieceOrEdition.bitcoin_id } }; } else { return { to: 'piece', params: { pieceId: this.props.pieceOrEdition.id } }; } }, render() { if (this.props.pieceOrEdition) { return (

{this.props.pieceOrEdition.title}

by {this.props.pieceOrEdition.artist_name}
{ this.props.pieceOrEdition.request_action.map((requestAction) => { return 'Pending ' + requestAction.action + ' request'; }) }
); } return null; } }); export default HeaderNotifications;