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:
Родитель
0a68763743
Коммит
103ec2f770
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче