isOrientationInLandscapeMode function

bool isOrientationInLandscapeMode()

Returns true if device orientation is in Landscape mode.

Implementation

bool isOrientationInLandscapeMode() {
  // `window.orientation` is only defined in mobile browsers (reading it as an
  // `int` throws when it's `undefined`):
  var orientation = window.getProperty<JSAny?>('orientation'.toJS);

  if (orientation.isA<JSNumber>()) {
    var angle = (orientation as JSNumber).toDartDouble;
    return angle == 90 || angle == -90;
  }

  // `screen.orientation` is missing in older browsers (e.g. desktop Safari
  // before 16.4):
  var screenOrientation = window.screen.getProperty<JSAny?>('orientation'.toJS);
  if (screenOrientation.isA<JSObject>()) {
    var type = (screenOrientation as JSObject).getProperty<JSAny?>('type'.toJS);
    if (type.isA<JSString>()) {
      return (type as JSString).toDart.startsWith('landscape');
    }
  }

  return window.innerWidth > window.innerHeight;
}