From f3fdd161e4d21f299ff0b22fd85e23018398064a Mon Sep 17 00:00:00 2001 From: michizhou <33012425+michizhou@users.noreply.github.com> Date: Thu, 24 Oct 2019 08:28:23 -0400 Subject: [PATCH] wip: removed code block that prevents event dispatch (#73) --- packages/core/src/getChildEventSubscriber.js | 50 +++++--------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/packages/core/src/getChildEventSubscriber.js b/packages/core/src/getChildEventSubscriber.js index fb04195b..e4005137 100644 --- a/packages/core/src/getChildEventSubscriber.js +++ b/packages/core/src/getChildEventSubscriber.js @@ -9,43 +9,16 @@ export default function getChildEventSubscriber( key, initialLastFocusEvent = 'didBlur' ) { - const actionSubscribers = new Set(); - const willFocusSubscribers = new Set(); - const didFocusSubscribers = new Set(); - const willBlurSubscribers = new Set(); - const didBlurSubscribers = new Set(); - const refocusSubscribers = new Set(); + const eventSubscribers = new Map(); const removeAll = () => { - [ - actionSubscribers, - willFocusSubscribers, - didFocusSubscribers, - willBlurSubscribers, - didBlurSubscribers, - refocusSubscribers, - ].forEach(set => set.clear()); + eventSubscribers.forEach(set => set.clear()); upstreamSubscribers.forEach(subs => subs && subs.remove()); }; const getChildSubscribers = evtName => { - switch (evtName) { - case 'action': - return actionSubscribers; - case 'willFocus': - return willFocusSubscribers; - case 'didFocus': - return didFocusSubscribers; - case 'willBlur': - return willBlurSubscribers; - case 'didBlur': - return didBlurSubscribers; - case 'refocus': - return refocusSubscribers; - default: - return null; - } + return eventSubscribers.get(evtName); }; const emit = (type, payload) => { @@ -70,11 +43,20 @@ export default function getChildEventSubscriber( 'didBlur', 'refocus', 'action', + 'drawerOpen', + 'drawerClose', ]; const upstreamSubscribers = upstreamEvents.map(eventName => addListener(eventName, payload => { - if (eventName === 'refocus') { + if (!eventSubscribers.has(eventName)) { + eventSubscribers.set(eventName, new Set()); + } + if ( + eventName === 'refocus' || + eventName === 'drawerOpen' || + eventName === 'drawerClose' + ) { emit(eventName, payload); return; } @@ -184,12 +166,6 @@ export default function getChildEventSubscriber( return { remove }; }, emit(eventName, payload) { - if (eventName !== 'refocus') { - console.error( - `navigation.emit only supports the 'refocus' event currently.` - ); - return; - } emit(eventName, payload); }, };