Files
planka/client/src/hooks/use-closable.js
T
2025-05-10 02:09:06 +02:00

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];
};