Skip to main content

useAvailableDesignEngine

The useAvailableDesignEngine hook is used to get the DesignEngine provided by the DesignEngine context. It will return the DesignEngine if it exists, or undefined if it has not yet been provided. This capability can be used to asynchronously initialize the design engine while showing loading state on your child components.

import { DesignEngineProvider, useAvailableDesignEngine } from '@design-stack-ct/design-engine-react-components'

export function CustomDesignPanels() {
const designEngine = useAvailableDesignEngine();

if (!designEngine) {
return <div>Loading...</div>;
}

return (
{designEngine.panels.map((panel) => /* Some custom component consuming panels */)}
);
}

export function CustomDesignExperience() {
const [designEngine, setDesignEngine] = useState(undefined);

useEffect(() => {
someAsyncCall().then((result) => {
setDesignEngine(new DesignEngine(...));
});
}, []);

return (
<DesignEngineProvider designEngine={designEngine}>
<CustomDesignPanels />
</DesignEngineProvider>
);
}