@fluent-windows/hooks
Version:
Fluent-Windows React hooks.
29 lines (27 loc) • 673 B
JavaScript
/**
* Subscribe to hover events based on `onMouseEnter`, `onMouseLeave`
*
* Demo
* import { useHover } from '@fluent-windows/hooks'
*
* function handleChange() {
* // ...
* }
* const [status, bind] = useHover(handleChange)
*
* <button {...bind}>{status}</button>
*/
import * as React from 'react';
function useHover(statusHandler) {
const [isHovered, setHovered] = React.useState(false);
const bind = {
onMouseEnter: () => {
statusHandler ? statusHandler(true) : setHovered(true);
},
onMouseLeave: () => {
statusHandler ? statusHandler(false) : setHovered(false);
}
};
return [isHovered, bind];
}
export default useHover;