UNPKG

@atlaskit/editor-common

Version:

A package that contains common classes and components for editor and renderer

19 lines 755 B
import React from 'react'; import ProviderFactory from './provider-factory'; const ProviderFactoryContext = /*#__PURE__*/React.createContext(new ProviderFactory()); export const ProviderFactoryProvider = ProviderFactoryContext.Provider; export const useProviderFactory = () => React.useContext(ProviderFactoryContext); export const useProvider = name => { const [provider, setProvider] = React.useState(); const providerFactory = useProviderFactory(); React.useEffect(() => { const providerHandler = (_, provider) => { setProvider(provider); }; providerFactory.subscribe(name, providerHandler); return () => { providerFactory.unsubscribe(name, providerHandler); }; }, [name, providerFactory]); return provider; };