UNPKG

@equinor/fusion-framework-react-module

Version:

Utils for initializing and consuming fusion framework modules

18 lines (13 loc) 623 B
import type { AnyModule, ModuleKey, Modules, ModuleType } from '@equinor/fusion-framework-module'; import { useContext } from 'react'; import { moduleContext } from './context'; /** Hook for using modules in current context scope */ export const useModules = <T>(): T => useContext(moduleContext) as T; /** Hook for use a single module in current context scope */ export const useModule = < T extends AnyModule = Modules[keyof Modules], TKey extends string = ModuleKey<T>, >( key: TKey, ): ModuleType<TKey extends keyof Modules ? Modules[TKey] : T> => useModules<ModuleType<T>>()[key]; export default useModules;