Files
nahodka-front/src/hooks/useModals.jsx
SlimusMinus 7f59ee1f38 fixed code
2026-08-11 00:24:07 +03:00

21 lines
718 B
JavaScript

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