Fix Dimensions for ComponentScript

Summary: ComponentScript uses Dimensions, but doesn't support native modules, so we need to keep the `nativeExtensions` stuff that was dropped in D16525189.

Reviewed By: PeteTheHeat

Differential Revision: D16611233

fbshipit-source-id: c0add40529743e02ab7943814dc9f2188e8e0633
This commit is contained in:
Spencer Ahrens 2019-08-01 18:17:22 -07:00 коммит произвёл Facebook Github Bot
Родитель 0a68763743
Коммит 103ec2f770
1 изменённых файлов: 18 добавлений и 8 удалений

Просмотреть файл

@ -118,13 +118,23 @@ class Dimensions {
}
}
// Subscribe before calling getConstants to make sure we don't miss any updates in between.
RCTDeviceEventEmitter.addListener(
'didUpdateDimensions',
(update: DimensionsPayload) => {
Dimensions.set(update);
},
);
Dimensions.set(NativeDeviceInfo.getConstants().Dimensions);
let initialDims: ?$ReadOnly<{[key: string]: any}> =
global.nativeExtensions &&
global.nativeExtensions.DeviceInfo &&
global.nativeExtensions.DeviceInfo.Dimensions;
if (!initialDims) {
// Subscribe before calling getConstants to make sure we don't miss any updates in between.
RCTDeviceEventEmitter.addListener(
'didUpdateDimensions',
(update: DimensionsPayload) => {
Dimensions.set(update);
},
);
// Can't use NativeDeviceInfo in ComponentScript because it does not support NativeModules,
// but has nativeExtensions instead.
initialDims = NativeDeviceInfo.getConstants().Dimensions;
}
Dimensions.set(initialDims);
module.exports = Dimensions;