import { useState, useCallback } from "react"; /** * Управляет всеми модалками MainFeed через единое состояние, * чтобы гарантировать что открыта максимум одна модалка сразу. * * Типы: "create" | "edit" | "profile" | "auth" | "rules" | "viewer" */ export function useModals() { const [modal, setModal] = useState(null); // { type, payload } const open = useCallback((type, payload = null) => { setModal({ type, payload }); }, []); const close = useCallback(() => setModal(null), []); const isOpen = useCallback((type) => modal?.type === type, [modal]); return { modal, open, close, isOpen }; }