Completely updated React, fixed #11, (hopefully)
This commit is contained in:
31
goTorrentWebUI/node_modules/material-ui/es/utils/keyboardFocus.js
generated
vendored
31
goTorrentWebUI/node_modules/material-ui/es/utils/keyboardFocus.js
generated
vendored
@@ -3,10 +3,9 @@
|
||||
import keycode from 'keycode';
|
||||
import warning from 'warning';
|
||||
import contains from 'dom-helpers/query/contains';
|
||||
import addEventListener from '../utils/addEventListener';
|
||||
import ownerDocument from 'dom-helpers/ownerDocument';
|
||||
|
||||
const internal = {
|
||||
listening: false,
|
||||
focusKeyPressed: false
|
||||
};
|
||||
|
||||
@@ -19,11 +18,13 @@ export function focusKeyPressed(pressed) {
|
||||
}
|
||||
|
||||
export function detectKeyboardFocus(instance, element, callback, attempt = 1) {
|
||||
warning(instance.keyboardFocusCheckTime, 'Material-UI: missing instance.keyboardFocusCheckTime');
|
||||
warning(instance.keyboardFocusMaxCheckTimes, 'Material-UI: missing instance.keyboardFocusMaxCheckTimes');
|
||||
process.env.NODE_ENV !== "production" ? warning(instance.keyboardFocusCheckTime, 'Material-UI: missing instance.keyboardFocusCheckTime') : void 0;
|
||||
process.env.NODE_ENV !== "production" ? warning(instance.keyboardFocusMaxCheckTimes, 'Material-UI: missing instance.keyboardFocusMaxCheckTimes') : void 0;
|
||||
|
||||
instance.keyboardFocusTimeout = setTimeout(() => {
|
||||
if (focusKeyPressed() && (document.activeElement === element || contains(element, document.activeElement))) {
|
||||
const doc = ownerDocument(element);
|
||||
|
||||
if (focusKeyPressed() && (doc.activeElement === element || contains(element, doc.activeElement))) {
|
||||
callback();
|
||||
} else if (attempt < instance.keyboardFocusMaxCheckTimes) {
|
||||
detectKeyboardFocus(instance, element, callback, attempt + 1);
|
||||
@@ -37,15 +38,15 @@ function isFocusKey(event) {
|
||||
return FOCUS_KEYS.indexOf(keycode(event)) !== -1;
|
||||
}
|
||||
|
||||
export function listenForFocusKeys() {
|
||||
// It's a singleton, we only need to listen once.
|
||||
// Also, this logic is client side only, we don't need a teardown.
|
||||
if (!internal.listening) {
|
||||
addEventListener(window, 'keyup', event => {
|
||||
if (isFocusKey(event)) {
|
||||
internal.focusKeyPressed = true;
|
||||
}
|
||||
});
|
||||
internal.listening = true;
|
||||
const handleKeyUpEvent = event => {
|
||||
if (isFocusKey(event)) {
|
||||
internal.focusKeyPressed = true;
|
||||
}
|
||||
};
|
||||
|
||||
export function listenForFocusKeys(win) {
|
||||
// The event listener will only be added once per window.
|
||||
// Duplicate event listeners will be ignored by addEventListener.
|
||||
// Also, this logic is client side only, we don't need a teardown.
|
||||
win.addEventListener('keyup', handleKeyUpEvent);
|
||||
}
|
Reference in New Issue
Block a user