@ -47,6 +47,15 @@ export default class ColumnHeader extends React.PureComponent {
animatingNCD : false ,
animatingNCD : false ,
} ;
} ;
historyBack = ( ) => {
// if history is exhausted, or we would leave mastodon, just go to root.
if ( window . history . state ) {
this . context . router . history . goBack ( ) ;
} else {
this . context . router . history . push ( '/' ) ;
}
}
handleToggleClick = ( e ) => {
handleToggleClick = ( e ) => {
e . stopPropagation ( ) ;
e . stopPropagation ( ) ;
this . setState ( { collapsed : ! this . state . collapsed , animating : true } ) ;
this . setState ( { collapsed : ! this . state . collapsed , animating : true } ) ;
@ -65,12 +74,7 @@ export default class ColumnHeader extends React.PureComponent {
}
}
handleBackClick = ( ) => {
handleBackClick = ( ) => {
// if history is exhausted, or we would leave mastodon, just go to root.
this . historyBack ( ) ;
if ( window . history . state ) {
this . context . router . history . goBack ( ) ;
} else {
this . context . router . history . push ( '/' ) ;
}
}
}
handleTransitionEnd = ( ) => {
handleTransitionEnd = ( ) => {
@ -81,13 +85,20 @@ export default class ColumnHeader extends React.PureComponent {
this . setState ( { animatingNCD : false } ) ;
this . setState ( { animatingNCD : false } ) ;
}
}
handlePin = ( ) => {
if ( ! this . props . pinned ) {
this . historyBack ( ) ;
}
this . props . onPin ( ) ;
}
onEnterCleaningMode = ( ) => {
onEnterCleaningMode = ( ) => {
this . setState ( { animatingNCD : true } ) ;
this . setState ( { animatingNCD : true } ) ;
this . props . onEnterCleaningMode ( ! this . props . notifCleaningActive ) ;
this . props . onEnterCleaningMode ( ! this . props . notifCleaningActive ) ;
}
}
render ( ) {
render ( ) {
const { intl , icon , active , children , pinned , onPin , multiColumn , extraButton , showBackButton , intl : { formatMessage } , notifCleaning , notifCleaningActive } = this . props ;
const { intl , icon , active , children , pinned , multiColumn, extraButton , showBackButton , intl : { formatMessage } , notifCleaning , notifCleaningActive } = this . props ;
const { collapsed , animating , animatingNCD } = this . state ;
const { collapsed , animating , animatingNCD } = this . state ;
let title = this . props . title ;
let title = this . props . title ;
@ -132,7 +143,7 @@ export default class ColumnHeader extends React.PureComponent {
}
}
if ( multiColumn && pinned ) {
if ( multiColumn && pinned ) {
pinButton = < button key = 'pin-button' className = 'text-btn column-header__setting-btn' onClick = { on Pin} > < i className = 'fa fa fa-times' / > < FormattedMessage id = 'column_header.unpin' defaultMessage = 'Unpin' / > < / b u t t o n > ;
pinButton = < button key = 'pin-button' className = 'text-btn column-header__setting-btn' onClick = { this . handle Pin} > < i className = 'fa fa fa-times' / > < FormattedMessage id = 'column_header.unpin' defaultMessage = 'Unpin' / > < / b u t t o n > ;
moveButtons = (
moveButtons = (
< div key = 'move-buttons' className = 'column-header__setting-arrows' >
< div key = 'move-buttons' className = 'column-header__setting-arrows' >
@ -141,7 +152,7 @@ export default class ColumnHeader extends React.PureComponent {
< / d i v >
< / d i v >
) ;
) ;
} else if ( multiColumn ) {
} else if ( multiColumn ) {
pinButton = < button key = 'pin-button' className = 'text-btn column-header__setting-btn' onClick = { on Pin} > < i className = 'fa fa fa-plus' / > < FormattedMessage id = 'column_header.pin' defaultMessage = 'Pin' / > < / b u t t o n > ;
pinButton = < button key = 'pin-button' className = 'text-btn column-header__setting-btn' onClick = { this . handle Pin} > < i className = 'fa fa fa-plus' / > < FormattedMessage id = 'column_header.pin' defaultMessage = 'Pin' / > < / b u t t o n > ;
}
}
if ( ! pinned && ( multiColumn || showBackButton ) ) {
if ( ! pinned && ( multiColumn || showBackButton ) ) {