/**
* Контейнер всплывающих уведомлений в хедере
* @module HeaderNavNotices
* @author Ihor Bielchenko
* @requires react
* @requires react#Component
* @requires react-redux
* @requires components/Header/HeaderNav/HeaderNavNotices/HeaderNavNoticeItem/HeaderNavNoticeItem.jsx
*/
import React, { Component } from 'react';
import { connect } from 'react-redux';
import HeaderNavNoticeItem from './HeaderNavNoticeItem/HeaderNavNoticeItem.jsx';
/**
* Контейнер всплывающих уведомлений в хедере
* @extends Component
*/
class HeaderNavNotices extends Component {
/**
* Render component
* @return {Object} jsx object
*/
render() {
var notices = [],
i, last, length;
for(i = 0; i < 12; i ++) {
if(typeof this.props.notices.items[i] !== 'undefined') {
length = this.props.notices.items[i].messages.length;
last = this.props.notices.items[i].messages[length - 1];
if(last.readed === 0) {
notices.push(<HeaderNavNoticeItem
key={i}
href={this.props.notices.items[i].href}
avatar={this.props.notices.items[i].avatar_32x32}
username={this.props.notices.items[i].username}
introtext={last.introtext} />);
}
}
else break;
}
return <div className="notice-popup">{notices}</div>
}
}
/**
* Init redux states
*
* @param {Object} state
* @return {Object}
*/
function mapStateToProps(state) {
return {
notices: state.notices
}
}
export default connect(mapStateToProps)(HeaderNavNotices);