Moved to useBlur helper
This commit is contained in:
parent
0bc572cec2
commit
cfdff1e549
@ -74,4 +74,21 @@ export function useKeyboard(onKeyDown, onKeyUp) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handler to handle a blur event. Useful when using a shortcut that uses the Alt or Cmd
|
||||||
|
* @param {FocusEvent} onBlur
|
||||||
|
*/
|
||||||
|
export function useBlur(onBlur) {
|
||||||
|
useEffect(() => {
|
||||||
|
if (onBlur) {
|
||||||
|
window.addEventListener("blur", onBlur);
|
||||||
|
}
|
||||||
|
return () => {
|
||||||
|
if (onBlur) {
|
||||||
|
window.removeEventListener("blur", onBlur);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export default KeyboardContext;
|
export default KeyboardContext;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useRef, useState, useEffect } from "react";
|
import React, { useRef, useState } from "react";
|
||||||
import { Button, Flex, Label } from "theme-ui";
|
import { Button, Flex, Label } from "theme-ui";
|
||||||
import shortid from "shortid";
|
import shortid from "shortid";
|
||||||
import Case from "case";
|
import Case from "case";
|
||||||
@ -26,7 +26,7 @@ import useResponsiveLayout from "../hooks/useResponsiveLayout";
|
|||||||
|
|
||||||
import { useMapData } from "../contexts/MapDataContext";
|
import { useMapData } from "../contexts/MapDataContext";
|
||||||
import { useAuth } from "../contexts/AuthContext";
|
import { useAuth } from "../contexts/AuthContext";
|
||||||
import { useKeyboard } from "../contexts/KeyboardContext";
|
import { useKeyboard, useBlur } from "../contexts/KeyboardContext";
|
||||||
|
|
||||||
const defaultMapProps = {
|
const defaultMapProps = {
|
||||||
showGrid: false,
|
showGrid: false,
|
||||||
@ -382,17 +382,12 @@ function SelectMapModal({
|
|||||||
|
|
||||||
useKeyboard(handleKeyDown, handleKeyUp);
|
useKeyboard(handleKeyDown, handleKeyUp);
|
||||||
|
|
||||||
// Set select mode to single when alt+tabing
|
// Set select mode to single when cmd+tabing
|
||||||
useEffect(() => {
|
|
||||||
function handleBlur() {
|
function handleBlur() {
|
||||||
setSelectMode("single");
|
setSelectMode("single");
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener("blur", handleBlur);
|
useBlur(handleBlur);
|
||||||
return () => {
|
|
||||||
window.removeEventListener("blur", handleBlur);
|
|
||||||
};
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const layout = useResponsiveLayout();
|
const layout = useResponsiveLayout();
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useRef, useState, useEffect } from "react";
|
import React, { useRef, useState } from "react";
|
||||||
import { Flex, Label, Button } from "theme-ui";
|
import { Flex, Label, Button } from "theme-ui";
|
||||||
import shortid from "shortid";
|
import shortid from "shortid";
|
||||||
import Case from "case";
|
import Case from "case";
|
||||||
@ -20,7 +20,7 @@ import useResponsiveLayout from "../hooks/useResponsiveLayout";
|
|||||||
|
|
||||||
import { useTokenData } from "../contexts/TokenDataContext";
|
import { useTokenData } from "../contexts/TokenDataContext";
|
||||||
import { useAuth } from "../contexts/AuthContext";
|
import { useAuth } from "../contexts/AuthContext";
|
||||||
import { useKeyboard } from "../contexts/KeyboardContext";
|
import { useKeyboard, useBlur } from "../contexts/KeyboardContext";
|
||||||
|
|
||||||
function SelectTokensModal({ isOpen, onRequestClose }) {
|
function SelectTokensModal({ isOpen, onRequestClose }) {
|
||||||
const { userId } = useAuth();
|
const { userId } = useAuth();
|
||||||
@ -224,17 +224,12 @@ function SelectTokensModal({ isOpen, onRequestClose }) {
|
|||||||
|
|
||||||
useKeyboard(handleKeyDown, handleKeyUp);
|
useKeyboard(handleKeyDown, handleKeyUp);
|
||||||
|
|
||||||
// Set select mode to single when alt+tabing
|
// Set select mode to single when cmd+tabing
|
||||||
useEffect(() => {
|
|
||||||
function handleBlur() {
|
function handleBlur() {
|
||||||
setSelectMode("single");
|
setSelectMode("single");
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener("blur", handleBlur);
|
useBlur(handleBlur);
|
||||||
return () => {
|
|
||||||
window.removeEventListener("blur", handleBlur);
|
|
||||||
};
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const layout = useResponsiveLayout();
|
const layout = useResponsiveLayout();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user