@devboldly/react-use-window-global
Advanced tools
Comparing version 0.0.6 to 0.0.7
@@ -21,16 +21,16 @@ "use strict"; | ||
React.useEffect(function () { | ||
var updateHandler = undefined; | ||
var changeHandler = undefined; | ||
if (typeof window !== 'undefined') { | ||
var windowObject_1 = getWindowObject(namespace); | ||
var emitter = getEmitter(); | ||
var emitter_1 = getEmitter(); | ||
var keyExists = keyName in windowObject_1; | ||
var retrievedWindowState = windowObject_1[keyName]; | ||
// Set up emitter. This keeps all window global hooks in sync. | ||
updateHandler = function () { | ||
// Set up emitter. This lets us subscribe to changes. | ||
changeHandler = function () { | ||
setVal(windowObject_1[keyName]); | ||
}; | ||
emitter.on(emitterEventName, updateHandler); | ||
emitter_1.on(emitterEventName, changeHandler); | ||
var setStateAndEmit = function (newState) { | ||
setVal(newState); | ||
getEmitter().emit(emitterEventName); | ||
emitter_1.emit(emitterEventName); | ||
}; | ||
@@ -45,17 +45,17 @@ // Pull value from window. This happens on first render. | ||
} | ||
setStateAndEmit(newVal); | ||
setVal(newVal); | ||
} | ||
// Push value to window | ||
else if (shouldPush) { | ||
setShouldPush(false); | ||
windowObject_1[keyName] = value; | ||
setStateAndEmit(value); | ||
setShouldPush(false); | ||
} | ||
} | ||
return function () { | ||
if (typeof window !== 'undefined' && typeof updateHandler !== 'undefined') { | ||
getEmitter().off(emitterEventName, updateHandler); | ||
if (typeof window !== 'undefined' && typeof changeHandler !== 'undefined') { | ||
getEmitter().off(emitterEventName, changeHandler); | ||
} | ||
}; | ||
}, [defaultValue, shouldPull, keyName, namespace, value, shouldPush, emitterEventName]); | ||
}, [namespace, keyName, emitterEventName, shouldPull, shouldPush, defaultValue, value]); | ||
var pull = function () { | ||
@@ -95,3 +95,3 @@ setShouldPull(true); | ||
var emitterKey = '__USE_WINDOW_GLOBAL_HOOK_EMITTER__'; | ||
// Set up emitter | ||
// Set up emitter if missing | ||
if (!win[emitterKey]) { | ||
@@ -98,0 +98,0 @@ win[emitterKey] = new events_1.EventEmitter(); |
{ | ||
"name": "@devboldly/react-use-window-global", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"author": "Dev Boldly <devboldly@gmail.com>", | ||
@@ -5,0 +5,0 @@ "description": "React hook for setting and getting globals via the Window Web API. Includes namespacing.", |
10874