import { useEffect, useRef, useState } from 'react';
import { backdropStackManager } from '../../services/BackdropStackManager';
/**
 * хук предназначен для быстрого использования backdropStackManager в реакт компонентах, хранит неуправляемый стейт, если вам нужно управлять этим стейтом, воспользуйтесь backdropStackManager в своем компоненте напрямую.
 */
export const useBackdropStackToggle = ({ id: parentId, } = {}) => {
    const { pop, push, remove, generateID } = backdropStackManager;
    const id = useRef(parentId || generateID());
    const [isOpened, setOpened] = useState(false);
    const handleOpen = () => {
        if (!isOpened) {
            push(id.current);
            setOpened(true);
        }
    };
    const handleClose = (_, reason) => {
        if (isOpened) {
            setOpened(!pop(id.current, reason));
        }
    };
    useEffect(() => () => remove(id.current), []);
    return { isOpened, handleOpen, handleClose };
};
