mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-05-06 01:56:41 +07:00
18 lines
466 B
TypeScript
18 lines
466 B
TypeScript
import { useCallback, useState } from 'react';
|
|
|
|
export const useFocusEvent = (initialState = false, delay = 0) => {
|
|
const [focused, setFocused] = useState(initialState);
|
|
|
|
const onFocus = useCallback(
|
|
event => {
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
|
|
setFocused(true);
|
|
},
|
|
[setFocused]
|
|
);
|
|
const onBlur = useCallback(() => setTimeout(() => setFocused(false), delay), [delay]);
|
|
|
|
return { focused, onBlur, onFocus };
|
|
};
|