NativeDeviceInfo.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * Copyright (c) Facebook, Inc. and its affiliates.
  3. *
  4. * This source code is licensed under the MIT license found in the
  5. * LICENSE file in the root directory of this source tree.
  6. *
  7. * @flow strict-local
  8. * @format
  9. */
  10. 'use strict';
  11. import type {TurboModule} from '../TurboModule/RCTExport';
  12. import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
  13. type DisplayMetricsAndroid = {|
  14. width: number,
  15. height: number,
  16. scale: number,
  17. fontScale: number,
  18. densityDpi: number,
  19. |};
  20. export type DisplayMetrics = {|
  21. width: number,
  22. height: number,
  23. scale: number,
  24. fontScale: number,
  25. |};
  26. export type DimensionsPayload = {|
  27. window?: DisplayMetrics,
  28. screen?: DisplayMetrics,
  29. windowPhysicalPixels?: DisplayMetricsAndroid,
  30. screenPhysicalPixels?: DisplayMetricsAndroid,
  31. |};
  32. export interface Spec extends TurboModule {
  33. +getConstants: () => {|
  34. +Dimensions: DimensionsPayload,
  35. +isIPhoneX_deprecated?: boolean,
  36. |};
  37. }
  38. const NativeModule: Spec = TurboModuleRegistry.getEnforcing<Spec>('DeviceInfo');
  39. const NativeDeviceInfo = NativeModule;
  40. export default NativeDeviceInfo;