diff options
Diffstat (limited to 'app/assets/javascripts/lib/utils/is_navigating_away.js')
-rw-r--r-- | app/assets/javascripts/lib/utils/is_navigating_away.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/assets/javascripts/lib/utils/is_navigating_away.js b/app/assets/javascripts/lib/utils/is_navigating_away.js new file mode 100644 index 00000000000..7df00b45379 --- /dev/null +++ b/app/assets/javascripts/lib/utils/is_navigating_away.js @@ -0,0 +1,23 @@ +let navigating = false; + +window.addEventListener('beforeunload', () => { + navigating = true; +}); + +/** + * To only be used for testing purposes. Allows the navigating state to be set + * to a given value. + * + * @param {boolean} value The value to set the navigating flag to. + */ +export const setNavigatingForTestsOnly = (value) => { + navigating = value; +}; + +/** + * Returns a boolean indicating whether the browser is in the process of + * navigating away from the current page. + * + * @returns {boolean} + */ +export const isNavigatingAway = () => navigating; |