@@ -13,6 +13,7 @@ import {
1313import {
1414 FitViewTool ,
1515 IModelApp ,
16+ IModelConnection ,
1617 type ScreenViewport ,
1718 StandardViewId ,
1819} from "@itwin/core-frontend" ;
@@ -25,8 +26,11 @@ import {
2526 MeasureToolsUiItemsProvider ,
2627} from "@itwin/measure-tools-react" ;
2728import { selectionStorage } from "../selectionStorage" ;
28- import { propertyGridUiProvider , treeWidgetUiProvider } from "./UiProviders" ;
29+ import { propertyGridUiProvider } from "./UiProviders" ;
2930import { useAuthorizationContext } from "./Authorization" ;
31+ import { ScenesWidgetProvider } from "./ScenesWidget" ;
32+ import { ScenesClient } from "./ScenesClient" ;
33+ import { ScenesCache } from "./ScenesCache" ;
3034
3135interface AppProps {
3236 iTwinId : string ;
@@ -45,6 +49,15 @@ export function App({ iTwinId, iModelId, changesetId }: AppProps) {
4549 MeasurementActionToolbar . setDefaultActionProvider ( ) ;
4650 } , [ ] ) ;
4751
52+ const onIModelReady = useCallback (
53+ async ( iModelConnection : IModelConnection ) => {
54+ // Populate the information needed for this app.
55+ await ScenesClient . populateContext ( iModelConnection ) ;
56+ await ScenesCache . populateRealityModels ( iModelConnection ) ;
57+ } ,
58+ [ ] ,
59+ ) ;
60+
4861 return (
4962 < Viewer
5063 iTwinId = { iTwinId }
@@ -54,13 +67,15 @@ export function App({ iTwinId, iModelId, changesetId }: AppProps) {
5467 viewCreatorOptions = { viewCreatorOptions }
5568 enablePerformanceMonitors = { true } // see description in the README (https://www.npmjs.com/package/@itwin/web-viewer-react)
5669 onIModelAppInit = { onIModelAppInit }
70+ onIModelConnected = { onIModelReady }
5771 mapLayerOptions = { {
5872 BingMaps : {
5973 key : "key" ,
6074 value : import . meta. env . IMJS_BING_MAPS_KEY ?? "" ,
6175 } ,
6276 } }
6377 uiProviders = { [
78+ new ScenesWidgetProvider ( ) ,
6479 new ViewerNavigationToolsProvider ( ) ,
6580 new ViewerContentToolsProvider ( {
6681 vertical : {
@@ -69,7 +84,6 @@ export function App({ iTwinId, iModelId, changesetId }: AppProps) {
6984 } ) ,
7085 new ViewerStatusbarItemsProvider ( ) ,
7186 new MeasureToolsUiItemsProvider ( ) ,
72- treeWidgetUiProvider ,
7387 propertyGridUiProvider ,
7488 ] }
7589 selectionStorage = { selectionStorage }
@@ -96,7 +110,7 @@ function viewConfiguration(viewPort: ScreenViewport) {
96110 ViewerPerformance . addMeasure (
97111 "TileTreesLoaded" ,
98112 "ViewerStarting" ,
99- "TilesLoaded"
113+ "TilesLoaded" ,
100114 ) ;
101115 clearInterval ( intvl ) ;
102116 resolve ( true ) ;
0 commit comments