UNPKG

plopfile-generate

Version:

Installation:

105 lines (97 loc) 2.71 kB
import React, { Component } from 'react'; import { Popover } from 'antd'; import PropTypes from 'prop-types'; import IntlMessages from '../../utility/intlMessages'; import TopbarDropdownWrapper from './topbarDropdown.style'; const demoNotifications = [ { id: 1, name: 'David Doe', notification: 'A National Book Award Finalist An Edgar Award Finalist A California Book Award Gold Medal Winner', }, { id: 2, name: 'Navis Doe', notification: 'A National Book Award Finalist An Edgar Award Finalist A California Book Award Gold Medal Winner', }, { id: 3, name: 'Emanual Doe', notification: 'A National Book Award Finalist An Edgar Award Finalist A California Book Award Gold Medal Winner', }, { id: 4, name: 'Dowain Doe', notification: 'A National Book Award Finalist An Edgar Award Finalist A California Book Award Gold Medal Winner', }, ]; class TopbarNotification extends Component { constructor(props) { super(props); this.handleVisibleChange = this.handleVisibleChange.bind(this); this.hide = this.hide.bind(this); this.state = { visible: false, }; } hide() { this.setState({ visible: false }); } handleVisibleChange() { this.setState({ visible: !this.state.visible }); } render() { const { customizedTheme } = this.props; const content = ( <TopbarDropdownWrapper className="topbarNotification"> <div className="isoDropdownHeader"> <h3> <IntlMessages id="sidebar.notification" /> </h3> </div> <div className="isoDropdownBody"> {demoNotifications.map(notification => ( <a className="isoDropdownListItem" key={notification.id}> <h5> {notification.name} </h5> <p> {notification.notification} </p> </a> ))} </div> <a className="isoViewAllBtn"> <IntlMessages id="topbar.viewAll" /> </a> </TopbarDropdownWrapper> ); return ( <Popover content={content} trigger="click" visible={this.state.visible} onVisibleChange={this.handleVisibleChange} placement="bottomLeft" > <div className="isoIconWrapper"> <i className="ion-android-notifications" style={{ color: customizedTheme.textColor }} /> <span> {demoNotifications.length} </span> </div> </Popover> ); } } TopbarNotification.propTypes = { customizedTheme: PropTypes.object, }; export default TopbarNotification;