-
Notifications
You must be signed in to change notification settings - Fork 9
/
Viewport.ios.js
67 lines (59 loc) · 1.88 KB
/
Viewport.ios.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @providesModule Viewport
* @flow
*/
'use strict';
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
var ViewportManager = require('NativeModules').Viewport;
var invariant = require('invariant');
/**
* Viewport gives access to the viewport's height and width.
*
* This could be used if someone wanted an image which stretched the width of
* the device.
*
* Note: The values returned here are all ready in terms of the pixel ratio of
* the device. For example, the iPhone 6 renders 750x1334 pixels. However, it has
* a pixel ratio of two. Therefore the return values of these functions will
* already be modified by the pixel ratio. In the iPhone 6's case this means
* that the resolution that gets returned will be 375x667.
*/
var Viewport = {};
var _dimensionSubscriptions = {};
Viewport.events = {
DEVICE_DIMENSIONS_EVENT: 'dimensionsDidChange'
};
Viewport.addEventListener = function(
eventName: ChangeEventName,
handler: Function
): void {
invariant(eventName === Viewport.events.DEVICE_DIMENSIONS_EVENT,
'No event by name ' + eventName);
_dimensionSubscriptions[handler] = RCTDeviceEventEmitter.addListener(
Viewport.events.DEVICE_DIMENSIONS_EVENT,
handler
);
};
Viewport.removeEventListener = function(
eventName: ChangeEventName,
handler: Function
): void {
if (!_dimensionSubscriptions[handler]) {
return;
}
_dimensionSubscriptions[handler].remove();
_dimensionSubscriptions[handler] = null;
};
Viewport.getDimensions = function(
handler: Function
) {
ViewportManager.getCurrentDimensions(handler);
}
module.exports = Viewport;