metamaps--metamaps/frontend/src/components/App/NotificationIcon.js

37 lines
912 B
JavaScript
Raw Normal View History

import React, { Component } from 'react'
import PropTypes from 'prop-types'
2016-12-04 20:02:24 +00:00
class NotificationIcon extends Component {
react-router and rebuild app structure in react (#1091) * initial restructuring * stuff * lock version number * just keep using current mapinfobox * fix map upperRightUI layout * make mapsWidth work and add mobile * remove filterBoxOpen for now * redo the mobile menu in react * get account menu and invite lightbox working * fixed maps scrolling * make other routes work * fix signed out home page * fix accountbox toggling * add metacode edit routes * lots of fixes * fix map chat layout and tab bug * improve topic card readability and fix dragging bug * fixup mapchat stuff * fix up navigation to use react-router * jquery no longer handling access requests * handle case where user hasn't loaded yet * this shouldn't have been removed * add frame for topic view * rewrite map instructions * fix toast (and sign out bug) * fix apps pages and missing routes * made our request invite page look nice * filter box in react * forgot to add one proptype * remove extra comments * handle page title and mobile title updates * reenable google analytics * make filterbox use onclickoutside * reenable topic view in react * fix csrf auth token * fix little homepage styling issue * try putting preparevizdata in a timeout * installing render log to count * little fixes * fixup filters * make filter map function names more readable * eslint helps * renaming for clarity * use onclickoutside for account/sign in box * add some logging to see whether this is source of many renders * turns out chatview was heavily hogging memory * tiimeout not needed
2017-03-16 21:58:56 +00:00
static propTypes = {
unreadNotificationsCount: PropTypes.number,
toggleNotificationsBox: PropTypes.func
2016-12-04 20:02:24 +00:00
}
render = () => {
const { toggleNotificationsBox } = this.props
2016-12-11 22:29:48 +00:00
let linkClasses = 'notificationsIcon upperRightEl upperRightIcon '
linkClasses += 'ignore-react-onclickoutside '
2016-12-11 22:29:48 +00:00
2016-12-04 20:02:24 +00:00
if (this.props.unreadNotificationsCount > 0) {
2016-12-11 22:29:48 +00:00
linkClasses += 'unread'
2016-12-04 20:02:24 +00:00
} else {
2016-12-11 22:29:48 +00:00
linkClasses += 'read'
2016-12-04 20:02:24 +00:00
}
2016-12-11 22:29:48 +00:00
2016-12-04 20:02:24 +00:00
return (
<div className={linkClasses} onClick={toggleNotificationsBox}>
2016-12-04 20:02:24 +00:00
<div className="tooltipsUnder">
Notifications
2016-12-04 20:02:24 +00:00
</div>
{this.props.unreadNotificationsCount === 0 ? null : (
<div className="unread-notifications-dot"></div>
)}
</div>
2016-12-11 22:29:48 +00:00
2016-12-04 20:02:24 +00:00
)
}
}
export default NotificationIcon