From df4d195ec7135c76f8f5de54c3939d2e74e80d4a Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Sat, 24 Nov 2018 20:20:31 +0100 Subject: Delay app based on featureAPI settings --- src/helpers/visibility-helper.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/helpers/visibility-helper.js (limited to 'src/helpers/visibility-helper.js') diff --git a/src/helpers/visibility-helper.js b/src/helpers/visibility-helper.js new file mode 100644 index 000000000..8456c4ecf --- /dev/null +++ b/src/helpers/visibility-helper.js @@ -0,0 +1,27 @@ +export function onVisibilityChange(cb) { + let isVisible = true; + + if (!cb) { + throw new Error('no callback given'); + } + + function focused() { + if (!isVisible) { + cb(isVisible = true); + } + } + + function unfocused() { + if (isVisible) { + cb(isVisible = false); + } + } + + document.addEventListener('visibilitychange', () => { (document.hidden ? unfocused : focused)(); }); + + window.onpageshow = focused; + window.onfocus = focused; + + window.onpagehid = unfocused; + window.onblur = unfocused; +} -- cgit v1.2.3-70-g09d2