mirror of
https://github.com/status-im/react-native.git
synced 2025-01-09 17:15:54 +00:00
9d0242fdc3
Summary: public Due to the cross-platform polyfills we have added (and will add in future) to `UIManager.js`, accessing UIManager directly via NativeModules instead of importing the wrapper is discouraged. This diff fixes a few places where we were doing this inside our own modules. Note: As a general policy, we should avoid accessing modules via NativeModules anyway. Using wrapper classes allows us to provide static declarations for all the native methods and properties, which can be checked at build time by flow. If we access the modules directly, those interfaces are only known at runtime. Reviewed By: vjeux Differential Revision: D2881300 fb-gh-sync-id: 6737358ea8ea6d722cc1941a4b9fa0123a87fc29
63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
/**
|
|
* 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 SnapshotViewIOS
|
|
* @flow
|
|
*/
|
|
'use strict';
|
|
|
|
var React = require('React');
|
|
var StyleSheet = require('StyleSheet');
|
|
var { TestModule } = require('NativeModules');
|
|
var UIManager = require('UIManager');
|
|
var View = require('View');
|
|
|
|
var requireNativeComponent = require('requireNativeComponent');
|
|
|
|
var SnapshotViewIOS = React.createClass({
|
|
onDefaultAction: function(event: Object) {
|
|
TestModule.verifySnapshot(TestModule.markTestPassed);
|
|
},
|
|
|
|
render: function() {
|
|
var testIdentifier = this.props.testIdentifier || 'test';
|
|
var onSnapshotReady = this.props.onSnapshotReady || this.onDefaultAction;
|
|
return (
|
|
<RCTSnapshot
|
|
style={style.snapshot}
|
|
{...this.props}
|
|
onSnapshotReady={onSnapshotReady}
|
|
testIdentifier={testIdentifier}
|
|
/>
|
|
);
|
|
},
|
|
|
|
propTypes: {
|
|
...View.propTypes,
|
|
// A callback when the Snapshot view is ready to be compared
|
|
onSnapshotReady : React.PropTypes.func,
|
|
// A name to identify the individual instance to the SnapshotView
|
|
testIdentifier : React.PropTypes.string,
|
|
}
|
|
});
|
|
|
|
var style = StyleSheet.create({
|
|
snapshot: {
|
|
flex: 1,
|
|
},
|
|
});
|
|
|
|
// Verify that RCTSnapshot is part of the UIManager since it is only loaded
|
|
// if you have linked against RCTTest like in tests, otherwise we will have
|
|
// a warning printed out
|
|
var RCTSnapshot = UIManager.RCTSnapshot ?
|
|
requireNativeComponent('RCTSnapshot', SnapshotViewIOS) :
|
|
View;
|
|
|
|
module.exports = SnapshotViewIOS;
|