matrix-react-sdk
Version:
SDK for matrix.org using React
26 lines (20 loc) • 767 B
text/typescript
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
import { useState } from "react";
export default function useHover(
ignoreHover: (ev: React.MouseEvent) => boolean,
): [boolean, { onMouseOver: () => void; onMouseLeave: () => void; onMouseMove: (ev: React.MouseEvent) => void }] {
const [hovered, setHoverState] = useState(false);
const props = {
onMouseOver: () => setHoverState(true),
onMouseLeave: () => setHoverState(false),
onMouseMove: (ev: React.MouseEvent): void => {
setHoverState(!ignoreHover(ev));
},
};
return [hovered, props];
}