Symbol Menu: Fix auto-closing in one-tab view
This commit is contained in:
parent
7b12244302
commit
356ff28041
@ -49,7 +49,7 @@ const SymbolMenu: FC<OwnProps> = ({
|
|||||||
const [activeTab, setActiveTab] = useState<number>(0);
|
const [activeTab, setActiveTab] = useState<number>(0);
|
||||||
const [recentEmojis, setRecentEmojis] = useState<string[]>([]);
|
const [recentEmojis, setRecentEmojis] = useState<string[]>([]);
|
||||||
|
|
||||||
const [handleMouseEnter, handleMouseLeave] = useMouseInside(isOpen, onClose);
|
const [handleMouseEnter, handleMouseLeave] = useMouseInside(isOpen, onClose, undefined, IS_MOBILE_SCREEN);
|
||||||
const { shouldRender, transitionClassNames } = useShowTransition(isOpen, onClose, false, false);
|
const { shouldRender, transitionClassNames } = useShowTransition(isOpen, onClose, false, false);
|
||||||
|
|
||||||
if (!isActivated && isOpen) {
|
if (!isActivated && isOpen) {
|
||||||
|
|||||||
@ -6,7 +6,7 @@ const MENU_CLOSE_TIMEOUT = 250;
|
|||||||
let closeTimeout: number | undefined;
|
let closeTimeout: number | undefined;
|
||||||
|
|
||||||
export default function useMouseInside(
|
export default function useMouseInside(
|
||||||
isOpen: boolean, onClose: NoneToVoidFunction, menuCloseTimeout = MENU_CLOSE_TIMEOUT,
|
isOpen: boolean, onClose: NoneToVoidFunction, menuCloseTimeout = MENU_CLOSE_TIMEOUT, isDisabled = false,
|
||||||
) {
|
) {
|
||||||
const isMouseInside = useRef(false);
|
const isMouseInside = useRef(false);
|
||||||
|
|
||||||
@ -16,14 +16,14 @@ export default function useMouseInside(
|
|||||||
closeTimeout = undefined;
|
closeTimeout = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isOpen && !IS_TOUCH_ENV) {
|
if (isOpen && !IS_TOUCH_ENV && !isDisabled) {
|
||||||
closeTimeout = window.setTimeout(() => {
|
closeTimeout = window.setTimeout(() => {
|
||||||
if (!isMouseInside.current) {
|
if (!isMouseInside.current) {
|
||||||
onClose();
|
onClose();
|
||||||
}
|
}
|
||||||
}, menuCloseTimeout * 2);
|
}, menuCloseTimeout * 2);
|
||||||
}
|
}
|
||||||
}, [isOpen, menuCloseTimeout, onClose]);
|
}, [isDisabled, isOpen, menuCloseTimeout, onClose]);
|
||||||
|
|
||||||
const handleMouseEnter = useCallback(() => {
|
const handleMouseEnter = useCallback(() => {
|
||||||
isMouseInside.current = true;
|
isMouseInside.current = true;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user