Browse Source

fix: color picker keyboard handling not working (#6464)

David Luzar 2 years ago
parent
commit
034113772d
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/components/Popover.tsx

+ 7 - 1
src/components/Popover.tsx

@@ -36,7 +36,13 @@ export const Popover = ({
       return;
     }
 
-    container.focus();
+    // focus popover only if the caller didn't focus on something else nested
+    // within the popover, which should take precedence. Fixes cases
+    // like color picker listening to keydown events on containers nested
+    // in the popover.
+    if (!container.contains(document.activeElement)) {
+      container.focus();
+    }
 
     const handleKeyDown = (event: KeyboardEvent) => {
       if (event.key === KEYS.TAB) {