import ErrorModal from "@components/modals/ErrorModal"; import LoadingModal from "@components/modals/LoadingModal"; import { createContext, useContext, useState } from "react"; import { View } from "react-native"; export interface ImodalsManagerContext { showLoadingModal(): void; closeLoadingModal(): void; showErrorModal(): void; closeErrorModal(): void; } export const ModalsManagerContext = createContext({ showLoadingModal: () => {}, closeLoadingModal: () => {}, showErrorModal: () => {}, closeErrorModal: () => {}, }); export const ModalsManagerProvider = ({ children }: { children: React.ReactNode }) => { const [showBackdrop, setShowBackdrop] = useState(false); const [loadingModalVisible, setLoadingModalVisible] = useState(false); const [errorModalVisible, setErrorModalVisible] = useState(false); const showLoadingModal = () => { setShowBackdrop(true); setLoadingModalVisible(true); }; const closeLoadingModal = () => { setShowBackdrop(false); setLoadingModalVisible(false); }; const showErrorModal = () => { setShowBackdrop(true); setErrorModalVisible(true); }; const closeErrorModal = () => { setShowBackdrop(false); setErrorModalVisible(false); }; return ( {children} {showBackdrop && } {loadingModalVisible && } {errorModalVisible && } ); }; export const useOverlayContext = () => { return useContext(ModalsManagerContext); }; const OverlayBackdrop = () => { return ( ); };