@ -1,4 +1,5 @@
import React , { PureComponent } from 'react' ;
import React , { PureComponent } from 'react' ;
import ReactDOM from 'react-dom' ;
import { Popover , Icon , Tabs , Badge , Spin } from 'antd' ;
import { Popover , Icon , Tabs , Badge , Spin } from 'antd' ;
import classNames from 'classnames' ;
import classNames from 'classnames' ;
import List from './NoticeList' ;
import List from './NoticeList' ;
@ -15,6 +16,7 @@ export default class NoticeIcon extends PureComponent {
onTabChange : ( ) => { } ,
onTabChange : ( ) => { } ,
onClear : ( ) => { } ,
onClear : ( ) => { } ,
loading : false ,
loading : false ,
clearClose : false ,
locale : {
locale : {
emptyText : 'No notifications' ,
emptyText : 'No notifications' ,
clear : 'Clear' ,
clear : 'Clear' ,
@ -24,16 +26,28 @@ export default class NoticeIcon extends PureComponent {
onItemClick = ( item , tabProps ) => {
onItemClick = ( item , tabProps ) => {
const { onItemClick } = this . props ;
const { onItemClick } = this . props ;
const { clickClose } = item ;
onItemClick ( item , tabProps ) ;
onItemClick ( item , tabProps ) ;
if ( clickClose ) {
this . popover . click ( ) ;
}
} ;
} ;
onClear = ( name ) => {
const { onClear , clearClose } = this . props ;
onClear ( name )
if ( clearClose ) {
this . popover . click ( ) ;
}
}
onTabChange = tabType => {
onTabChange = tabType => {
const { onTabChange } = this . props ;
const { onTabChange } = this . props ;
onTabChange ( tabType ) ;
onTabChange ( tabType ) ;
} ;
} ;
getNotificationBox ( ) {
getNotificationBox ( ) {
const { children , loading , locale , onClear } = this . props ;
const { children , loading , locale } = this . props ;
if ( ! children ) {
if ( ! children ) {
return null ;
return null ;
}
}
@ -48,7 +62,7 @@ export default class NoticeIcon extends PureComponent {
{ ... child . props }
{ ... child . props }
data = { child . props . list }
data = { child . props . list }
onClick = { item => this . onItemClick ( item , child . props ) }
onClick = { item => this . onItemClick ( item , child . props ) }
onClear = { ( ) => onClear ( child . props . name ) }
onClear = { ( ) => this . onClear ( child . props . name ) }
title = { child . props . title }
title = { child . props . title }
locale = { locale }
locale = { locale }
/ >
/ >
@ -93,6 +107,7 @@ export default class NoticeIcon extends PureComponent {
popupAlign = { popupAlign }
popupAlign = { popupAlign }
onVisibleChange = { onPopupVisibleChange }
onVisibleChange = { onPopupVisibleChange }
{ ... popoverProps }
{ ... popoverProps }
ref = { node => { this . popover = ReactDOM . findDOMNode ( node ) } } // eslint-disable-line
>
>
{ trigger }
{ trigger }
< / P o p o v e r >
< / P o p o v e r >