1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-21 14:19:44 +02:00
planka/client/src/hooks/use-closable-form.js

30 lines
663 B
JavaScript
Raw Normal View History

2019-08-31 04:07:25 +05:00
import { useCallback, useEffect, useRef } from 'react';
export default (close, isOpened = true) => {
2019-08-31 04:07:25 +05:00
const isClosable = useRef(null);
const handleFieldBlur = useCallback(() => {
if (isClosable.current) {
close();
}
}, [close]);
const handleControlMouseOver = useCallback(() => {
isClosable.current = false;
}, []);
const handleControlMouseOut = useCallback(() => {
isClosable.current = true;
}, []);
useEffect(() => {
if (isOpened) {
isClosable.current = true;
} else {
isClosable.current = null;
}
}, [isOpened]);
return [handleFieldBlur, handleControlMouseOver, handleControlMouseOut];
};