MDL-66890 forumreport_summary: Improved filter close keyboard response

This commit is contained in:
Michael Hawkins
2019-11-06 17:10:09 +08:00
parent b2aa354d30
commit 46fbfb98fe
3 changed files with 11 additions and 5 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+9 -3
View File
@@ -96,7 +96,7 @@ export const init = (root) => {
};
// Close the relevant filter.
var closeOpenFilters = (openFilterButton, openFilter) => {
const closeOpenFilters = (openFilterButton, openFilter) => {
openFilter.classList.add('hidden');
openFilter.setAttribute('data-openfilter', 'false');
@@ -145,14 +145,17 @@ export const init = (root) => {
// Add listeners to handle closing filter.
const closeListener = e => {
if (e.target.id !== referenceElement.id && popperContent !== e.target.closest('[data-openfilter="true"]')) {
if (e.target.id !== referenceElement.id && popperContent !== e.target.closest('[data-openfilter="true"]') &&
(typeof e.keyCode === 'undefined' || e.keyCode === KeyCodes.enter || e.keyCode === KeyCodes.space)) {
closeOpenFilters(referenceElement, popperContent);
document.removeEventListener('click', closeListener);
document.removeEventListener('keyup', closeListener);
document.removeEventListener('keyup', escCloseListener);
}
};
document.addEventListener('click', closeListener);
document.addEventListener('keyup', closeListener);
const escCloseListener = e => {
if (e.keyCode === KeyCodes.escape) {
@@ -205,14 +208,17 @@ export const init = (root) => {
// Add listener to handle closing filter.
const closeListener = e => {
if (e.target.id !== referenceElement.id && popperContent !== e.target.closest('[data-openfilter="true"]')) {
if (e.target.id !== referenceElement.id && popperContent !== e.target.closest('[data-openfilter="true"]') &&
(typeof e.keyCode === 'undefined' || e.keyCode === KeyCodes.enter || e.keyCode === KeyCodes.space)) {
closeOpenFilters(referenceElement, popperContent);
document.removeEventListener('click', closeListener);
document.removeEventListener('keyup', closeListener);
document.removeEventListener('keyup', escCloseListener);
}
};
document.addEventListener('click', closeListener);
document.addEventListener('keyup', closeListener);
const escCloseListener = e => {
if (e.keyCode === KeyCodes.escape) {