@@ -66,7 +66,7 @@ export class CoreScreenService {
6666
6767 protected breakpointsSubject : BehaviorSubject < Record < Breakpoint , boolean > > ;
6868 private _layoutObservable : Observable < CoreScreenLayout > ;
69- private readonly _orientationSignal = signal < CoreScreenOrientation > ( this . orientation ) ;
69+ private readonly _orientationSignal = signal < CoreScreenOrientation > ( CoreScreenOrientation . PORTRAIT ) ;
7070
7171 constructor ( ) {
7272 this . breakpointsSubject = new BehaviorSubject ( BREAKPOINT_NAMES . reduce ( ( breakpoints , breakpoint ) => ( {
@@ -78,6 +78,8 @@ export class CoreScreenService {
7878 map ( breakpoints => this . calculateLayout ( breakpoints ) ) ,
7979 distinctUntilChanged < CoreScreenLayout > ( ) ,
8080 ) ;
81+
82+ this . initializeOrientation ( ) ;
8183 }
8284
8385 get breakpoints ( ) : Record < Breakpoint , boolean > {
@@ -105,7 +107,12 @@ export class CoreScreenService {
105107 }
106108
107109 get orientation ( ) : CoreScreenOrientation {
108- return screen . orientation . type . startsWith ( CoreScreenOrientation . LANDSCAPE )
110+ if ( ! this . orientationDataExists ( ) ) {
111+ // Not initialized yet, assume portrait.
112+ return CoreScreenOrientation . PORTRAIT ;
113+ }
114+
115+ return screen . orientation . type ?. startsWith ( CoreScreenOrientation . LANDSCAPE )
109116 ? CoreScreenOrientation . LANDSCAPE
110117 : CoreScreenOrientation . PORTRAIT ;
111118 }
@@ -203,6 +210,24 @@ export class CoreScreenService {
203210 return CoreScreenLayout . MOBILE ;
204211 }
205212
213+ /**
214+ * Initialize the orientation signal value.
215+ */
216+ protected async initializeOrientation ( ) : Promise < void > {
217+ await CorePlatform . ready ( ) ;
218+
219+ this . _orientationSignal . set ( this . orientation ) ;
220+ }
221+
222+ /**
223+ * Check if the orientation data exists.
224+ *
225+ * @returns Whether the orientation data exists.
226+ */
227+ protected orientationDataExists ( ) : boolean {
228+ return ! ! screen ?. orientation ;
229+ }
230+
206231}
207232
208233export const CoreScreen = makeSingleton ( CoreScreenService ) ;
0 commit comments