Fix back button to never go to a different website using history len check

master
Ondřej Hruška 8 years ago committed by beatrix
parent 3464bb30f8
commit 7859e6ad45
  1. 8
      app/javascript/mastodon/components/column_back_button.js
  2. 8
      app/javascript/mastodon/components/column_back_button_slim.js
  3. 8
      app/javascript/mastodon/components/column_header.js
  4. 5
      app/javascript/mastodon/main.js

@ -9,8 +9,12 @@ export default class ColumnBackButton extends React.PureComponent {
};
handleClick = () => {
if (window.history && window.history.length === 1) this.context.router.history.push('/');
else this.context.router.history.goBack();
// if history is exhausted, or we would leave mastodon, just go to root.
if (window.history && (window.history.length === 1 || window.history.length === window._mastoInitialHistoryLen)) {
this.context.router.history.push('/');
} else {
this.context.router.history.goBack();
}
}
render () {

@ -9,8 +9,12 @@ export default class ColumnBackButtonSlim extends React.PureComponent {
};
handleClick = () => {
if (window.history && window.history.length === 1) this.context.router.history.push('/');
else this.context.router.history.goBack();
// if history is exhausted, or we would leave mastodon, just go to root.
if (window.history && (window.history.length === 1 || window.history.length === window._mastoInitialHistoryLen)) {
this.context.router.history.push('/');
} else {
this.context.router.history.goBack();
}
}
render () {

@ -45,8 +45,12 @@ export default class ColumnHeader extends React.PureComponent {
}
handleBackClick = () => {
if (window.history && window.history.length === 1) this.context.router.history.push('/');
else this.context.router.history.goBack();
// if history is exhausted, or we would leave mastodon, just go to root.
if (window.history && (window.history.length === 1 || window.history.length === window._mastoInitialHistoryLen)) {
this.context.router.history.push('/');
} else {
this.context.router.history.goBack();
}
}
handleTransitionEnd = () => {

@ -26,6 +26,11 @@ function main() {
ReactDOM.render(<Mastodon {...props} />, mountNode);
perf.stop('main()');
// remember the initial URL
if (window.history && typeof window._mastoInitialHistoryLen === 'undefined') {
window._mastoInitialHistoryLen = window.history.length;
}
});
}

Loading…
Cancel
Save