Fixing event propagation issues on components mixins

This commit is contained in:
Bruno Alves de Faria committed 2017-02-10 08:43:37 -02:00
1 parent 4107ed1dfa
commit 1582ba3ad0
3 files changed
+24 -29

No files matched your search

@@ -271,32 +271,22 @@ OHIF.mixins.formItem = new OHIF.Mixin({
focus(event, instance) {
const component = instance.component;
// Stop here if it is an group
if (component.isGroup || component.isCustomFocus) {
return;
const isGroupOrCustomFocus = component.isGroup || component.isCustomFocus;
const isSameTarget = event.target === event.currentTarget;
if (!isGroupOrCustomFocus && isSameTarget) {
// Check for state messages and show it
component.toggleMessage(true);
}
// Prevent event bubbling
event.stopPropagation();
// Check for state messages and show it
component.toggleMessage(true);
},
blur(event, instance) {
const component = instance.component;
// Stop here if it is an group
if (component.isGroup || component.isCustomFocus) {
return;
const isGroupOrCustomFocus = component.isGroup || component.isCustomFocus;
const isSameTarget = event.target === event.currentTarget;
if (!isGroupOrCustomFocus && isSameTarget) {
// Check for state messages and show it
component.toggleMessage(false);
}
// Prevent event bubbling
event.stopPropagation();
// Hide state messages
component.toggleMessage(false);
}
}
@@ -65,13 +65,15 @@ OHIF.mixins.select2 = new OHIF.Mixin({
// Attach focus and blur handlers to focusable elements
$(elements).on('focus', event => {
event.stopPropagation();
// Show the state message on elements focus
component.toggleMessage(true);
if (event.target === event.currentTarget) {
// Show the state message on elements focus
component.toggleMessage(true);
}
}).on('blur', event => {
event.stopPropagation();
// Hide the state message on elements blur
component.toggleMessage(false);
if (event.target === event.currentTarget) {
// Hide the state message on elements blur
component.toggleMessage(false);
}
});
},