27 lines
649 B
JavaScript
27 lines
649 B
JavaScript
/*!
|
|
* Copyright (c) 2024 PLANKA Software GmbH
|
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
|
*/
|
|
|
|
import { useCallback, useRef } from 'react';
|
|
|
|
export default (initialValue = false) => {
|
|
const isActiveRef = useRef(initialValue);
|
|
|
|
const setIsActive = useCallback((isActive) => {
|
|
setTimeout(() => {
|
|
isActiveRef.current = isActive;
|
|
});
|
|
}, []);
|
|
|
|
const activate = useCallback(() => {
|
|
setIsActive(true);
|
|
}, [setIsActive]);
|
|
|
|
const deactivate = useCallback(() => {
|
|
setIsActive(false);
|
|
}, [setIsActive]);
|
|
|
|
return [isActiveRef, activate, deactivate, setIsActive];
|
|
};
|