UNPKG

@itwin/presentation-components

Version:

React components based on iTwin.js Presentation library

37 lines 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SchemaMetadataContextProvider = SchemaMetadataContextProvider; exports.useSchemaMetadataContext = useSchemaMetadataContext; const jsx_runtime_1 = require("react/jsx-runtime"); /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ /** @packageDocumentation * @module Core */ const react_1 = require("react"); const schemaMetadataContext = (0, react_1.createContext)(undefined); /** * Provides schema metadata to components that work with schemas. * @public */ function SchemaMetadataContextProvider({ schemaContextProvider, imodel, children }) { const [state, setState] = (0, react_1.useState)(() => ({ schemaContext: schemaContextProvider(imodel), })); (0, react_1.useEffect)(() => { setState({ schemaContext: schemaContextProvider(imodel), }); }, [imodel, schemaContextProvider]); return (0, jsx_runtime_1.jsx)(schemaMetadataContext.Provider, { value: state, children: children }); } /** * Returns context provided by [[SchemaMetadataContextProvider]]. * @public */ function useSchemaMetadataContext() { return (0, react_1.useContext)(schemaMetadataContext); } //# sourceMappingURL=SchemaMetadataContext.js.map