@@ -90,29 +90,34 @@ function onIModelConnected(imodel: IModelConnection) {
90
90
setTimeout ( ( ) => {
91
91
IModelConnection . onOpen . raiseEvent ( imodel ) ;
92
92
} , 1000 ) ;
93
-
94
- imodel . schemaContext . getSchema ( new SchemaKey ( "AecUnits" , SchemaMatchType . Latest ) ) . then ( ( schema ) => {
95
- if ( schema ) {
96
- const schemaFormatsProvider = new SchemaFormatsProvider ( imodel . schemaContext , IModelApp . quantityFormatter . activeUnitSystem ) ;
97
- const removeListener = IModelApp . quantityFormatter . onActiveFormattingUnitSystemChanged . addListener ( ( args ) => {
98
- schemaFormatsProvider . unitSystem = args . system ;
99
- } ) ;
100
-
101
- const schemaUnitsProvider = new SchemaUnitProvider ( imodel . schemaContext ) ;
102
- IModelApp . quantityFormatter . unitsProvider = schemaUnitsProvider ;
103
- IModelApp . formatsProvider = schemaFormatsProvider ;
104
- console . log ( "Registered SchemaFormatsProvider, SchemaUnitProvider" ) ;
105
-
106
- IModelConnection . onClose . addOnce ( ( ) => {
107
- removeListener ( ) ;
108
- IModelApp . resetFormatsProvider ( ) ;
109
- void IModelApp . quantityFormatter . resetToUseInternalUnitsProvider ( ) ;
110
- console . log ( "Unregistered SchemaFormatsProvider, SchemaUnitProvider" ) ;
111
- } ) ;
93
+ const setupFormatsProvider = async ( ) => {
94
+ try {
95
+ const schema = await imodel . schemaContext . getSchema ( new SchemaKey ( "AecUnits" , SchemaMatchType . Latest ) ) ;
96
+ if ( schema ) {
97
+ const schemaFormatsProvider = new SchemaFormatsProvider ( imodel . schemaContext , IModelApp . quantityFormatter . activeUnitSystem ) ;
98
+ const removeListener = IModelApp . quantityFormatter . onActiveFormattingUnitSystemChanged . addListener ( ( args ) => {
99
+ schemaFormatsProvider . unitSystem = args . system ;
100
+ } ) ;
101
+
102
+ const schemaUnitsProvider = new SchemaUnitProvider ( imodel . schemaContext ) ;
103
+ IModelApp . quantityFormatter . unitsProvider = schemaUnitsProvider ;
104
+ IModelApp . formatsProvider = schemaFormatsProvider ;
105
+ console . log ( "Registered SchemaFormatsProvider, SchemaUnitProvider" ) ;
106
+
107
+ IModelConnection . onClose . addOnce ( ( ) => {
108
+ removeListener ( ) ;
109
+ IModelApp . resetFormatsProvider ( ) ;
110
+ void IModelApp . quantityFormatter . resetToUseInternalUnitsProvider ( ) ;
111
+ console . log ( "Unregistered SchemaFormatsProvider, SchemaUnitProvider" ) ;
112
+ } ) ;
113
+ }
114
+ } catch {
115
+ console . error ( "No common AecUnits schema found in iModel, not registering a SchemaFormatsProvider" ) ;
112
116
}
113
- } ) . catch ( ( _ ) => {
114
- console . error ( "No common AecUnits schema found in iModel, not registering a SchemaFormatsProvider" ) ;
115
- } ) ;
117
+ }
118
+
119
+ // Only load a schema formats provider if the iModel has the AecUnits schema
120
+ void setupFormatsProvider ( ) ;
116
121
}
117
122
118
123
function useIModelInfo ( ) {
0 commit comments