@equinor/fusion-framework-react-module-context
React hooks for the Fusion context module. Provides hooks to read the current context, set context, and query available contexts from React components.
Import:
import { useCurrentContext, useQueryContext, enableContext } from '@equinor/fusion-framework-react-module-context';
Exports
| Export | Type | Description |
|---|---|---|
useCurrentContext |
Hook | Read and set the current context (requires a provider argument) |
useModuleCurrentContext |
Hook | Read and set the current context from the closest module scope |
useQueryContext |
Hook | Search available contexts with debounce (requires a provider) |
useModuleQueryContext |
Hook | Search available contexts from the closest module scope |
enableContext |
Function | Enable the context module in a configurator |
ContextModule |
Type | Context module type definition |
ContextItem |
Type | A single context entry (project, facility, etc.) |
ContextItemType |
Type | Context item type discriminator |
IContextProvider |
Type | Context provider interface |
IContextModuleConfigurator |
Type | Configurator interface for enabling the context module |
FusionContextSearchError |
Error | Error thrown when context search fails |
This Package vs react-app/context
| Scenario | Import from |
|---|---|
| Building a Fusion app (most common) | @equinor/fusion-framework-react-app/context |
| Building a reusable library or module | @equinor/fusion-framework-react-module-context |
| Building a portal or host application | @equinor/fusion-framework-react-module-context |
The react-app/context sub-path wraps these hooks with app-scoped convenience. Use this package directly when building framework-level code or shared libraries that need explicit provider injection.
useCurrentContext / useModuleCurrentContext
Returns the currently selected context and a setter function.
import { useModuleCurrentContext } from '@equinor/fusion-framework-react-module-context';
const ContextInfo = () => {
const { currentContext, setCurrentContext } = useModuleCurrentContext();
if (!currentContext) return <p>No context selected</p>;
return (
<div>
<p>{currentContext.title}</p>
<button onClick={() => setCurrentContext(null)}>Clear</button>
</div>
);
};
useQueryContext / useModuleQueryContext
Search for available contexts with built-in debounce (default 500ms).
import { useModuleQueryContext } from '@equinor/fusion-framework-react-module-context';
const ContextSearch = () => {
const { value: results, querying, query } = useModuleQueryContext();
return (
<div>
<input onChange={(e) => query(e.target.value)} placeholder="Search contexts…" />
{querying && <span>Searching…</span>}
<ul>{results?.map((ctx) => <li key={ctx.id}>{ctx.title}</li>)}</ul>
</div>
);
};
Related
@equinor/fusion-framework-module-context— the underlying context module@equinor/fusion-framework-react-app/context— app-developer-facing wrapper