Skip to content

Commit

Permalink
Prompt before exiting tab with unsaved changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Benaiah committed Nov 13, 2017
1 parent 1acdb8d commit ba78589
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/containers/EntryPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,22 @@ class EntryPage extends React.Component {
loadEntry(collection, slug);
}

const unblock = history.block((location) => {

this.exitBlocker = (event) => {
if (this.props.entryDraft.get('hasChanged')) {
// This message is ignored in most browsers, but its presence
// triggers the confirmation dialog
event.returnValue = "Are you sure you want to leave this page?";
}
};
window.addEventListener('beforeunload', this.exitBlocker);

const navigationBlocker = () => {
if (this.props.entryDraft.get('hasChanged')) {
return "Are you sure you want to leave this page?";
}
});
};
const unblock = history.block(navigationBlocker);

// This will run as soon as the location actually changes.
// (The confirmation above will run first.)
Expand Down Expand Up @@ -93,6 +104,7 @@ class EntryPage extends React.Component {

componentWillUnmount() {
this.props.discardDraft();
window.removeEventListener('beforeunload', this.exitBlocker);
}

createDraft = (entry) => {
Expand Down

0 comments on commit ba78589

Please sign in to comment.