@ -49,6 +49,10 @@ const mapStateToProps = state => ({
@ connect ( mapStateToProps )
@ connect ( mapStateToProps )
export default class UI extends React . PureComponent {
export default class UI extends React . PureComponent {
static contextTypes = {
router : PropTypes . object . isRequired ,
}
static propTypes = {
static propTypes = {
dispatch : PropTypes . func . isRequired ,
dispatch : PropTypes . func . isRequired ,
children : PropTypes . node ,
children : PropTypes . node ,
@ -123,6 +127,14 @@ export default class UI extends React.PureComponent {
this . setState ( { draggingOver : false } ) ;
this . setState ( { draggingOver : false } ) ;
}
}
handleServiceWorkerPostMessage = ( { data } ) => {
if ( data . type === 'navigate' ) {
this . context . router . history . push ( data . path ) ;
} else {
console . warn ( 'Unknown message type:' , data . type ) ; // eslint-disable-line no-console
}
}
componentWillMount ( ) {
componentWillMount ( ) {
window . addEventListener ( 'resize' , this . handleResize , { passive : true } ) ;
window . addEventListener ( 'resize' , this . handleResize , { passive : true } ) ;
document . addEventListener ( 'dragenter' , this . handleDragEnter , false ) ;
document . addEventListener ( 'dragenter' , this . handleDragEnter , false ) ;
@ -131,6 +143,10 @@ export default class UI extends React.PureComponent {
document . addEventListener ( 'dragleave' , this . handleDragLeave , false ) ;
document . addEventListener ( 'dragleave' , this . handleDragLeave , false ) ;
document . addEventListener ( 'dragend' , this . handleDragEnd , false ) ;
document . addEventListener ( 'dragend' , this . handleDragEnd , false ) ;
if ( 'serviceWorker' in navigator ) {
navigator . serviceWorker . addEventListener ( 'message' , this . handleServiceWorkerPostMessage ) ;
}
this . props . dispatch ( refreshHomeTimeline ( ) ) ;
this . props . dispatch ( refreshHomeTimeline ( ) ) ;
this . props . dispatch ( refreshNotifications ( ) ) ;
this . props . dispatch ( refreshNotifications ( ) ) ;
}
}