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

remotes/1727458204337373841/tmp_refs/heads/signup-info-prompt
Ondřej Hruška 2017-07-07 08:27:52 +02:00 committed by beatrix
parent 3464bb30f8
commit 7859e6ad45
4 changed files with 23 additions and 6 deletions

View File

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

View File

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

View File

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

View File

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