Integrate module with Companion example app

This commit is contained in:
Will Anderson
2015-06-26 10:18:27 -07:00
parent 0e4663f831
commit 3037634d0d
8 changed files with 300 additions and 111 deletions

View File

@@ -25,3 +25,6 @@ DerivedData
#
node_modules/
npm-debug.log
# Don't publish example apps
Examples/

View File

@@ -33,7 +33,7 @@
* on the same Wi-Fi network.
*/
//jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];
/**
* OPTION 2
@@ -45,7 +45,7 @@
* see http://facebook.github.io/react-native/docs/runningondevice.html
*/
jsCodeLocation = [HybridMobileDeploy appBundleUrl:@"HybridMobileDeployCompanion" nativeBundleName:@"main"];
//jsCodeLocation = [HybridMobileDeploy appBundleUrl:@"HybridMobileDeployCompanion" nativeBundleName:@"main"];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"HybridMobileDeployCompanion"

View File

@@ -1101,6 +1101,8 @@ var $__0=
React,AppRegistry=$__0.AppRegistry,StyleSheet=$__0.StyleSheet,Text=$__0.Text,View=$__0.View;
var HybridMobileDeploy = require('hybrid-mobile-deploy-react-native');
var HybridMobileDeployCompanion = React.createClass({displayName: "HybridMobileDeployCompanion",
render: function() {
return (
@@ -1141,7 +1143,7 @@ var styles = StyleSheet.create({
AppRegistry.registerComponent('HybridMobileDeployCompanion', function() {return HybridMobileDeployCompanion;});
});
__d('react-native/Libraries/react-native/react-native',["React","ActivityIndicatorIOS","DatePickerIOS","Image","ListView","MapView","NavigatorIOS","PickerIOS","Navigator","SegmentedControlIOS","ScrollView","SliderIOS","SwitchIOS","TabBarIOS","Text","TextInput","TouchableHighlight","TouchableOpacity","TouchableWithoutFeedback","View","WebView","AlertIOS","AppRegistry","AppStateIOS","AsyncStorage","CameraRoll","InteractionManager","LinkingIOS","LayoutAnimation","NetInfo","PixelRatio","PushNotificationIOS","PanResponder","StatusBarIOS","StyleSheet","VibrationIOS","RCTDeviceEventEmitter","NativeModules","requireNativeComponent","LinkedStateMixin","ReactComponentWithPureRenderMixin","NativeModules","ReactUpdates","cloneWithProps","ReactFragment","update","ReactDefaultPerf","ReactTestUtils"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('react-native/Libraries/react-native/react-native',["React","ActivityIndicatorIOS","DatePickerIOS","Image","ListView","MapView","NavigatorIOS","PickerIOS","Navigator","SegmentedControlIOS","ScrollView","SliderIOS","SwitchIOS","TabBarIOS","Text","TextInput","TouchableHighlight","TouchableOpacity","TouchableWithoutFeedback","View","WebView","AlertIOS","AppRegistry","AppStateIOS","AsyncStorage","CameraRoll","InteractionManager","LinkingIOS","LayoutAnimation","NetInfo","PixelRatio","PushNotificationIOS","PanResponder","StatusBarIOS","StyleSheet","VibrationIOS","RCTDeviceEventEmitter","RCTNativeAppEventEmitter","NativeModules","requireNativeComponent","LinkedStateMixin","ReactComponentWithPureRenderMixin","NativeModules","ReactUpdates","cloneWithProps","ReactFragment","update","ReactDefaultPerf","ReactTestUtils"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -1202,6 +1204,7 @@ var ReactNative = Object.assign(Object.create(require('React')), {
// Plugins
DeviceEventEmitter: require('RCTDeviceEventEmitter'),
NativeAppEventEmitter: require('RCTNativeAppEventEmitter'),
NativeModules: require('NativeModules'),
requireNativeComponent: require('requireNativeComponent'),
@@ -1236,8 +1239,7 @@ __d('React',["ReactNative"],function(global, require, requireDynamic, requireLaz
* @providesModule React
* @flow
*/
"use strict";
'use strict';
module.exports = require('ReactNative');
});
@@ -1252,7 +1254,7 @@ __d('ReactNative',["ReactChildren","ReactClass","ReactComponent","ReactContext",
* @providesModule ReactNative
* @flow
*/
"use strict";
'use strict';
var ReactChildren = require('ReactChildren');
var ReactClass = require('ReactClass');
@@ -6326,7 +6328,7 @@ var keyOf = function(oneKeyObj) {
module.exports = keyOf;
});
__d('ReactNativeDefaultInjection',["InitializeJavaScriptAppEngine","EventPluginHub","EventPluginUtils","IOSDefaultEventPluginOrder","IOSNativeBridgeEventPlugin","NodeHandle","ReactClass","ReactComponentEnvironment","ReactDefaultBatchingStrategy","ReactEmptyComponent","ReactInstanceHandles","ReactNativeComponentEnvironment","ReactNativeGlobalInteractionHandler","ReactNativeGlobalResponderHandler","ReactNativeMount","ReactNativeTextComponent","ReactNativeComponent","ReactUpdates","ResponderEventPlugin","UniversalWorkerNodeHandle","createReactNativeComponentClass","invariant","RCTEventEmitter","RCTLog","RCTJSTimers"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('ReactNativeDefaultInjection',["InitializeJavaScriptAppEngine","EventPluginHub","EventPluginUtils","IOSDefaultEventPluginOrder","IOSNativeBridgeEventPlugin","NodeHandle","ReactComponentEnvironment","ReactDefaultBatchingStrategy","ReactEmptyComponent","ReactInstanceHandles","ReactNativeComponentEnvironment","ReactNativeGlobalInteractionHandler","ReactNativeGlobalResponderHandler","ReactNativeMount","ReactNativeTextComponent","ReactNativeComponent","ReactUpdates","ResponderEventPlugin","UniversalWorkerNodeHandle","createReactNativeComponentClass","invariant","RCTEventEmitter","RCTLog","RCTJSTimers"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -6337,8 +6339,7 @@ __d('ReactNativeDefaultInjection',["InitializeJavaScriptAppEngine","EventPluginH
* @providesModule ReactNativeDefaultInjection
* @flow
*/
"use strict";
'use strict';
/**
* Make sure `setTimeout`/`setInterval` are patched correctly.
@@ -6349,7 +6350,6 @@ var EventPluginUtils = require('EventPluginUtils');
var IOSDefaultEventPluginOrder = require('IOSDefaultEventPluginOrder');
var IOSNativeBridgeEventPlugin = require('IOSNativeBridgeEventPlugin');
var NodeHandle = require('NodeHandle');
var ReactClass = require('ReactClass');
var ReactComponentEnvironment = require('ReactComponentEnvironment');
var ReactDefaultBatchingStrategy = require('ReactDefaultBatchingStrategy');
var ReactEmptyComponent = require('ReactEmptyComponent');
@@ -6870,6 +6870,7 @@ __d('ErrorUtils',[],function(global, require, requireDynamic, requireLazy, modul
*
* @providesModule ErrorUtils
*/
/* eslint-disable consistent-this, global-strict */
var GLOBAL = this;
@@ -8118,7 +8119,6 @@ var JSTimers = {
var newID = JSTimersExecution.GUID++;
var freeIndex = JSTimers._getFreeIndex();
JSTimersExecution.timerIDs[freeIndex] = newID;
JSTimersExecution.callbacks[freeIndex] = func;
JSTimersExecution.callbacks[freeIndex] = function() {
return func.apply(undefined, args);
};
@@ -8135,12 +8135,15 @@ var JSTimers = {
var newID = JSTimersExecution.GUID++;
var freeIndex = JSTimers._getFreeIndex();
JSTimersExecution.timerIDs[freeIndex] = newID;
JSTimersExecution.callbacks[freeIndex] = func;
JSTimersExecution.callbacks[freeIndex] = function() {
return func.apply(undefined, args);
var startTime = Date.now();
var ret = func.apply(undefined, args);
var endTime = Date.now();
RCTTiming.createTimer(newID, Math.max(0, duration - (endTime - startTime)), endTime, false);
return ret;
};
JSTimersExecution.types[freeIndex] = JSTimersExecution.Type.setInterval;
RCTTiming.createTimer(newID, duration, Date.now(), /** recurring */ true);
RCTTiming.createTimer(newID, duration, Date.now(), /** recurring */ false);
return newID;
},
@@ -8152,7 +8155,6 @@ var JSTimers = {
var newID = JSTimersExecution.GUID++;
var freeIndex = JSTimers._getFreeIndex();
JSTimersExecution.timerIDs[freeIndex] = newID;
JSTimersExecution.callbacks[freeIndex] = func;
JSTimersExecution.callbacks[freeIndex] = function() {
return func.apply(undefined, args);
};
@@ -8593,9 +8595,9 @@ var ZERO = valuePromise(0);
var EMPTYSTRING = valuePromise('');
function valuePromise(value) {
var p = new Promise(Promise._83);
p._32 = 1;
p._8 = value;
var p = new Promise(Promise._1);
p._41 = 1;
p._86 = value;
return p;
}
Promise.resolve = function (value) {
@@ -8632,11 +8634,11 @@ Promise.all = function (arr) {
function res(i, val) {
if (val && (typeof val === 'object' || typeof val === 'function')) {
if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._32 === 3) {
val = val._8;
while (val._41 === 3) {
val = val._86;
}
if (val._32 === 1) return res(i, val._8);
if (val._32 === 2) reject(val._8);
if (val._41 === 1) return res(i, val._86);
if (val._41 === 2) reject(val._86);
val.then(function (val) {
res(i, val);
}, reject);
@@ -8743,13 +8745,13 @@ function Promise(fn) {
if (typeof fn !== 'function') {
throw new TypeError('not a function');
}
this._32 = 0;
this._8 = null;
this._89 = [];
this._41 = 0;
this._86 = null;
this._17 = [];
if (fn === noop) return;
doResolve(fn, this);
}
Promise._83 = noop;
Promise._1 = noop;
Promise.prototype.then = function(onFulfilled, onRejected) {
if (this.constructor !== Promise) {
@@ -8768,24 +8770,24 @@ function safeThen(self, onFulfilled, onRejected) {
});
};
function handle(self, deferred) {
while (self._32 === 3) {
self = self._8;
while (self._41 === 3) {
self = self._86;
}
if (self._32 === 0) {
self._89.push(deferred);
if (self._41 === 0) {
self._17.push(deferred);
return;
}
setImmediate(function() {
var cb = self._32 === 1 ? deferred.onFulfilled : deferred.onRejected;
var cb = self._41 === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._32 === 1) {
resolve(deferred.promise, self._8);
if (self._41 === 1) {
resolve(deferred.promise, self._86);
} else {
reject(deferred.promise, self._8);
reject(deferred.promise, self._86);
}
return;
}
var ret = tryCallOne(cb, self._8);
var ret = tryCallOne(cb, self._86);
if (ret === IS_ERROR) {
reject(deferred.promise, LAST_ERROR);
} else {
@@ -8813,8 +8815,8 @@ function resolve(self, newValue) {
then === self.then &&
newValue instanceof Promise
) {
self._32 = 3;
self._8 = newValue;
self._41 = 3;
self._86 = newValue;
finale(self);
return;
} else if (typeof then === 'function') {
@@ -8822,21 +8824,21 @@ function resolve(self, newValue) {
return;
}
}
self._32 = 1;
self._8 = newValue;
self._41 = 1;
self._86 = newValue;
finale(self);
}
function reject(self, newValue) {
self._32 = 2;
self._8 = newValue;
self._41 = 2;
self._86 = newValue;
finale(self);
}
function finale(self) {
for (var i = 0; i < self._89.length; i++) {
handle(self, self._89[i]);
for (var i = 0; i < self._17.length; i++) {
handle(self, self._17[i]);
}
self._89 = null;
self._17 = null;
}
function Handler(onFulfilled, onRejected, promise){
@@ -8902,6 +8904,7 @@ __d('SourceMap',[],function(global, require, requireDynamic, requireLazy, module
* and wrapping resulting file into `wrapper` function.
*
*/
/*eslint-disable */
var scope = {};
wrapper.call(scope);
@@ -10859,6 +10862,7 @@ __d('react-native/Libraries/JavaScriptAppEngine/Initialization/source-map-url',[
*
* @nolint
*/
/* eslint-disable */
(function() {
var define = null; // Hack to make it work with our packager
@@ -11406,6 +11410,7 @@ __d('fetch',[],function(global, require, requireDynamic, requireLazy, module, ex
* @providesModule fetch
* @nolint
*/
/* eslint-disable */
'use strict';
var self = {};
@@ -11895,7 +11900,7 @@ var Geolocation = {
subscriptions = [];
}
}
}
};
module.exports = Geolocation;
});
@@ -13092,8 +13097,7 @@ __d('IOSNativeBridgeEventPlugin',["EventPropagators","NativeModules","SyntheticE
* @providesModule IOSNativeBridgeEventPlugin
* @flow
*/
"use strict";
'use strict';
var EventPropagators = require('EventPropagators');
var NativeModules = require('NativeModules');
@@ -13116,7 +13120,7 @@ for (var bubblingTypeName in customBubblingEventTypes) {
for (var directTypeName in customDirectEventTypes) {
warning(
!customBubblingEventTypes[directTypeName],
"Event cannot be both direct and bubbling: %s",
'Event cannot be both direct and bubbling: %s',
directTypeName
);
allTypesByEventName[directTypeName] = customDirectEventTypes[directTypeName];
@@ -13159,7 +13163,6 @@ var IOSNativeBridgeEventPlugin = {
};
module.exports = IOSNativeBridgeEventPlugin;
});
__d('EventPropagators',["EventConstants","EventPluginHub","accumulateInto","forEachAccumulated"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright 2013-2014 Facebook, Inc.
@@ -14152,8 +14155,7 @@ __d('ReactNativeDOMIDOperations',["ReactNativeTagHandles","ReactMultiChildUpdate
* @providesModule ReactNativeDOMIDOperations
* @flow
*/
"use strict";
'use strict';
var ReactNativeTagHandles = require('ReactNativeTagHandles');
var ReactMultiChildUpdateTypes = require('ReactMultiChildUpdateTypes');
@@ -14390,8 +14392,7 @@ __d('ReactNativeReconcileTransaction',["CallbackQueue","PooledClass","Transactio
* @providesModule ReactNativeReconcileTransaction
* @flow
*/
"use strict";
'use strict';
var CallbackQueue = require('CallbackQueue');
var PooledClass = require('PooledClass');
@@ -14539,6 +14540,13 @@ var invariant = require('invariant');
var keyMirror = require('keyMirror');
var setImmediate = require('setImmediate');
/**
* Maximum time a handle can be open before warning in DEV.
*/
var DEV_TIMEOUT = 2000;
var _emitter = new EventEmitter();
var _interactionSet = new Set();
var _addInteractionSet = new Set();
@@ -14607,6 +14615,14 @@ var InteractionManager = {
scheduleUpdate();
var handle = ++_inc;
_addInteractionSet.add(handle);
if (__DEV__) {
// Capture the stack trace of what created the handle.
var error = new Error(
'InteractionManager: interaction handle not cleared within ' +
DEV_TIMEOUT + ' ms.'
);
setDevTimeoutHandle(handle, error, DEV_TIMEOUT);
}
return handle;
},
@@ -14671,6 +14687,21 @@ function processUpdate() {
_deleteInteractionSet.clear();
}
/**
* Wait until `timeout` has passed and warn if the handle has not been cleared.
*/
function setDevTimeoutHandle(
handle ,
error ,
timeout
) {
setTimeout(function() {
if (_interactionSet.has(handle)) {
console.warn(error.message + '\n' + error.stack);
}
}, timeout);
}
module.exports = InteractionManager;
});
__d('Set',["Map","toIterator","_shouldPolyfillES6Collection"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
@@ -15851,7 +15882,7 @@ var ReactNativeGlobalResponderHandler = {
module.exports = ReactNativeGlobalResponderHandler;
});
__d('ReactNativeMount',["NativeModules","ReactNativeTagHandles","ReactPerf","ReactReconciler","ReactUpdateQueue","ReactUpdates","emptyObject","instantiateReactComponent","invariant","shouldUpdateReactComponent"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('ReactNativeMount',["NativeModules","ReactNativeTagHandles","ReactPerf","ReactReconciler","ReactUpdateQueue","ReactUpdates","emptyObject","instantiateReactComponent","shouldUpdateReactComponent"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -15874,7 +15905,6 @@ var ReactUpdates = require('ReactUpdates');
var emptyObject = require('emptyObject');
var instantiateReactComponent = require('instantiateReactComponent');
var invariant = require('invariant');
var shouldUpdateReactComponent = require('shouldUpdateReactComponent');
function instanceNumberToChildRootID(rootNodeID, instanceNumber) {
@@ -18185,7 +18215,7 @@ var UniversalWorkerNodeHandle = {
module.exports = UniversalWorkerNodeHandle;
});
__d('createReactNativeComponentClass',["ReactElement","ReactNativeBaseComponent"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('createReactNativeComponentClass',["ReactNativeBaseComponent"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -18197,9 +18227,8 @@ __d('createReactNativeComponentClass',["ReactElement","ReactNativeBaseComponent"
* @flow
*/
"use strict";
'use strict';
var ReactElement = require('ReactElement');
var ReactNativeBaseComponent = require('ReactNativeBaseComponent');
// See also ReactNativeBaseComponent
@@ -18295,7 +18324,8 @@ var cachedIndexArray = function(size) {
for (var i = 0; i < size; i++) {
arr[i] = i;
}
return cachedIndexArray._cache[size] = arr;
cachedIndexArray._cache[size] = arr;
return arr;
} else {
return cachedResult;
}
@@ -18460,7 +18490,7 @@ ReactNativeBaseComponent.Mixin = {
*/
_reconcileListenersUponUpdate: function(prevProps, nextProps) {
for (var key in nextProps) {
if (registrationNames[key] && (nextProps[key] != prevProps[key])) {
if (registrationNames[key] && (nextProps[key] !== prevProps[key])) {
putListener(this._rootNodeID, key, nextProps[key]);
}
}
@@ -19210,6 +19240,7 @@ __d('MatrixMath',["invariant"],function(global, require, requireDynamic, require
*
* @providesModule MatrixMath
*/
/* eslint-disable space-infix-ops */
'use strict';
var invariant = require('invariant');
@@ -19814,8 +19845,7 @@ __d('ReactNativeEventEmitter',["EventPluginHub","ReactEventEmitterMixin","ReactN
* @providesModule ReactNativeEventEmitter
* @flow
*/
"use strict";
'use strict';
var EventPluginHub = require('EventPluginHub');
var ReactEventEmitterMixin = require('ReactEventEmitterMixin');
@@ -21713,7 +21743,6 @@ __d('RCTLog',["invariant"],function(global, require, requireDynamic, requireLazy
* @providesModule RCTLog
* @flow
*/
/* globals nativeLoggingHook */
'use strict';
var invariant = require('invariant');
@@ -21856,7 +21885,7 @@ function onlyChild(children) {
module.exports = onlyChild;
});
__d('ActivityIndicatorIOS',["NativeMethodsMixin","NativeModules","ReactPropTypes","React","StyleSheet","View","requireNativeComponent","verifyPropTypes"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('ActivityIndicatorIOS',["NativeMethodsMixin","ReactPropTypes","React","StyleSheet","View","requireNativeComponent","verifyPropTypes"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -21870,7 +21899,6 @@ __d('ActivityIndicatorIOS',["NativeMethodsMixin","NativeModules","ReactPropTypes
'use strict';
var NativeMethodsMixin = require('NativeMethodsMixin');
var NativeModules = require('NativeModules');
var PropTypes = require('ReactPropTypes');
var React = require('React');
var StyleSheet = require('StyleSheet');
@@ -21911,6 +21939,12 @@ var ActivityIndicatorIOS = React.createClass({displayName: "ActivityIndicatorIOS
'small',
'large',
]),
/**
* Invoked on mount and layout changes with
*
* {nativeEvent: { layout: {x, y, width, height}}}.
*/
onLayout: PropTypes.func,
},
getDefaultProps: function() {
@@ -21923,10 +21957,12 @@ var ActivityIndicatorIOS = React.createClass({displayName: "ActivityIndicatorIOS
},
render: function() {
var $__0= this.props,style=$__0.style,props=(function(source, exclusion) {var rest = {};var hasOwn = Object.prototype.hasOwnProperty;if (source == null) {throw new TypeError();}for (var key in source) {if (hasOwn.call(source, key) && !hasOwn.call(exclusion, key)) {rest[key] = source[key];}}return rest;})($__0,{style:1});
var $__0= this.props,onLayout=$__0.onLayout,style=$__0.style,props=(function(source, exclusion) {var rest = {};var hasOwn = Object.prototype.hasOwnProperty;if (source == null) {throw new TypeError();}for (var key in source) {if (hasOwn.call(source, key) && !hasOwn.call(exclusion, key)) {rest[key] = source[key];}}return rest;})($__0,{onLayout:1,style:1});
var sizeStyle = (this.props.size === 'large') ? styles.sizeLarge : styles.sizeSmall;
return (
React.createElement(View, {style: [styles.container, sizeStyle, style]},
React.createElement(View, {
onLayout: onLayout,
style: [styles.container, sizeStyle, style]},
React.createElement(RCTActivityIndicatorView, React.__spread({}, props))
)
);
@@ -22139,6 +22175,26 @@ var createReactNativeComponentClass = require('createReactNativeComponentClass')
var stylePropType = StyleSheetPropType(ViewStylePropTypes);
var AccessibilityTraits = [
'none',
'button',
'link',
'header',
'search',
'image',
'selected',
'plays',
'key',
'text',
'summary',
'disabled',
'frequentUpdates',
'startsMedia',
'adjustable',
'allowsDirectInteraction',
'pageTurn',
];
/**
* The most fundamental component for building UI, `View` is a
* container that supports layout with flexbox, style, some touch handling, and
@@ -22185,6 +22241,27 @@ var View = React.createClass({displayName: "View",
*/
accessibilityLabel: PropTypes.string,
/**
* Provides additional traits to screen reader. By default no traits are
* provided unless specified otherwise in element
*/
accessibilityTraits: PropTypes.oneOfType([
PropTypes.oneOf(AccessibilityTraits),
PropTypes.arrayOf(PropTypes.oneOf(AccessibilityTraits)),
]),
/**
* When `accessible` is true, the system will try to invoke this function
* when the user performs accessibility tap gesture.
*/
onAcccessibilityTap: PropTypes.func,
/**
* When `accessible` is true, the system will invoke this function when the
* user performs the magic tap gesture.
*/
onMagicTap: PropTypes.func,
/**
* Used to locate this view in end-to-end tests.
*/
@@ -22206,7 +22283,9 @@ var View = React.createClass({displayName: "View",
onStartShouldSetResponderCapture: PropTypes.func,
/**
* Invoked on mount and layout changes with {x, y, width, height}.
* Invoked on mount and layout changes with
*
* {nativeEvent: { layout: {x, y, width, height}}}.
*/
onLayout: PropTypes.func,
@@ -22323,8 +22402,11 @@ ReactNativeViewAttributes.UIView = {
pointerEvents: true,
accessible: true,
accessibilityLabel: true,
accessibilityTraits: true,
testID: true,
onLayout: true,
onAccessibilityTap: true,
onMagicTap: true,
};
ReactNativeViewAttributes.RCTView = merge(
@@ -22665,6 +22747,13 @@ function verifyPropTypes(
if (!viewConfig) {
return; // This happens for UnimplementedView.
}
var componentName = component.name || component.displayName;
if (!component.propTypes) {
throw new Error(
'`' + componentName + '` has no propTypes defined`'
);
}
var nativeProps = viewConfig.nativeProps;
for (var prop in nativeProps) {
if (!component.propTypes[prop] &&
@@ -22672,9 +22761,9 @@ function verifyPropTypes(
!ReactNativeStyleAttributes[prop] &&
(!nativePropsToIgnore || !nativePropsToIgnore[prop])) {
throw new Error(
'`' + component.displayName + '` has no propType for native prop `' +
'`' + componentName + '` has no propType for native prop `' +
viewConfig.uiViewClassName + '.' + prop + '` of native type `' +
nativeProps[prop].type + '`'
nativeProps[prop] + '`'
);
}
}
@@ -22895,7 +22984,7 @@ var Image = React.createClass({displayName: "Image",
/**
* `uri` is a string representing the resource identifier for the image, which
* could be an http address, a local file path, or the name of a static image
* resource (which should be wrapped in the `required('image!name')` function).
* resource (which should be wrapped in the `require('image!name')` function).
*/
source: PropTypes.shape({
uri: PropTypes.string,
@@ -22934,6 +23023,12 @@ var Image = React.createClass({displayName: "Image",
* testing scripts.
*/
testID: PropTypes.string,
/**
* Invoked on mount and layout changes with
*
* {nativeEvent: { layout: {x, y, width, height}}}.
*/
onLayout: PropTypes.func,
},
statics: {
@@ -23025,7 +23120,7 @@ if (__DEV__) {
module.exports = Image;
});
__d('EdgeInsetsPropType',["ReactPropTypes","createStrictShapeTypeChecker","insetsDiffer"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('EdgeInsetsPropType',["ReactPropTypes","createStrictShapeTypeChecker"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -23036,12 +23131,11 @@ __d('EdgeInsetsPropType',["ReactPropTypes","createStrictShapeTypeChecker","inset
* @providesModule EdgeInsetsPropType
* @flow
*/
'use strict'
'use strict';
var PropTypes = require('ReactPropTypes');
var createStrictShapeTypeChecker = require('createStrictShapeTypeChecker');
var insetsDiffer = require('insetsDiffer');
var EdgeInsetsPropType = createStrictShapeTypeChecker({
top: PropTypes.number,
@@ -24683,7 +24777,7 @@ if (Platform.OS === 'android') {
module.exports = ScrollView;
});
__d('PointPropType',["ReactPropTypes","createStrictShapeTypeChecker","pointsDiffer"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('PointPropType',["ReactPropTypes","createStrictShapeTypeChecker"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -24694,12 +24788,11 @@ __d('PointPropType',["ReactPropTypes","createStrictShapeTypeChecker","pointsDiff
* @providesModule PointPropType
* @flow
*/
'use strict'
'use strict';
var PropTypes = require('ReactPropTypes');
var createStrictShapeTypeChecker = require('createStrictShapeTypeChecker');
var pointsDiffer = require('pointsDiffer');
var PointPropType = createStrictShapeTypeChecker({
x: PropTypes.number,
@@ -24893,7 +24986,7 @@ var ScrollResponderMixin = {
var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();
if (!this.props.keyboardShouldPersistTaps &&
currentlyFocusedTextInput != null &&
e.target != currentlyFocusedTextInput) {
e.target !== currentlyFocusedTextInput) {
return true;
}
return this.scrollResponderIsAnimating();
@@ -24954,7 +25047,7 @@ var ScrollResponderMixin = {
var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();
if (!this.props.keyboardShouldPersistTaps &&
currentlyFocusedTextInput != null &&
e.target != currentlyFocusedTextInput &&
e.target !== currentlyFocusedTextInput &&
!this.state.observedScrollSinceBecomingResponder &&
!this.state.becameResponderWhileAnimating) {
this.props.onScrollResponderKeyboardDismissed &&
@@ -25210,7 +25303,7 @@ __d('Subscribable',["EventEmitter"],function(global, require, requireDynamic, re
*/
'use strict';
var EventEmitter = require('EventEmitter');
/**
* Subscribable provides a mixin for safely subscribing a component to an
@@ -26411,7 +26504,7 @@ var RCTPickerIOS = createReactNativeComponentClass({
module.exports = PickerIOS;
});
__d('Navigator',["NativeModules","BackAndroid","Dimensions","InteractionMixin","NavigatorBreadcrumbNavigationBar","NavigatorInterceptor","NavigatorNavigationBar","NavigatorSceneConfigs","NavigatorStaticContextContainer","PanResponder","Platform","React","StaticContainer.react","StyleSheet","Subscribable","react-timer-mixin/TimerMixin","View","clamp","flattenStyle","getNavigatorContext","invariant","keyMirror","merge","rebound/rebound"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('Navigator',["NativeModules","BackAndroid","Dimensions","InteractionMixin","NavigatorBreadcrumbNavigationBar","NavigatorInterceptor","NavigatorNavigationBar","NavigatorSceneConfigs","NavigatorStaticContextContainer","PanResponder","Platform","React","StaticContainer.react","StyleSheet","Subscribable","react-timer-mixin/TimerMixin","View","clamp","flattenStyle","getNavigatorContext","invariant","rebound/rebound"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015, Facebook, Inc. All rights reserved.
*
* Facebook, Inc. (“Facebook”) owns all right, title and interest, including
@@ -26437,6 +26530,7 @@ __d('Navigator',["NativeModules","BackAndroid","Dimensions","InteractionMixin","
*
* @providesModule Navigator
*/
/* eslint-disable no-extra-boolean-cast*/
'use strict';
var AnimationsDebugModule = require('NativeModules').AnimationsDebugModule;
@@ -26461,8 +26555,6 @@ var clamp = require('clamp');
var flattenStyle = require('flattenStyle');
var getNavigatorContext = require('getNavigatorContext');
var invariant = require('invariant');
var keyMirror = require('keyMirror');
var merge = require('merge');
var rebound = require('rebound/rebound');
var PropTypes = React.PropTypes;
@@ -27102,7 +27194,7 @@ var Navigator = React.createClass({displayName: "Navigator",
*/
_enableScene: function(sceneIndex) {
// First, determine what the defined styles are for scenes in this navigator
var sceneStyle = flattenStyle(this.props.sceneStyle);
var sceneStyle = flattenStyle([styles.baseScene, this.props.sceneStyle]);
// Then restore the left value for this scene
var enabledSceneNativeProps = {
left: sceneStyle.left,
@@ -27158,7 +27250,6 @@ var Navigator = React.createClass({displayName: "Navigator",
},
_handleMoveShouldSetPanResponder: function(e, gestureState) {
var currentRoute = this.state.routeStack[this.state.presentedIndex];
var sceneConfig = this.state.sceneConfigStack[this.state.presentedIndex];
this._expectingGestureGrant = this._matchGestureAction(this._eligibleGestures, sceneConfig.gestures, gestureState);
return !! this._expectingGestureGrant;
@@ -27242,7 +27333,16 @@ var Navigator = React.createClass({displayName: "Navigator",
}
} else {
// The gesture has enough velocity to complete, so we transition to the gesture's destination
this._transitionTo(destIndex, transitionVelocity);
this._transitionTo(
destIndex,
transitionVelocity,
null,
function() {
if (releaseGestureAction === 'pop') {
this._cleanScenesPastIndex(destIndex);
}
}.bind(this)
);
}
this._detachGesture();
},
@@ -27704,6 +27804,14 @@ var Navigator = React.createClass({displayName: "Navigator",
if (i !== this.state.presentedIndex) {
disabledSceneStyle = styles.disabledScene;
}
var originalRef = child.ref;
if (originalRef != null && typeof originalRef !== 'function') {
console.warn(
'String refs are not supported for navigator scenes. Use a callback ' +
'ref instead. Ignoring ref: ' + originalRef
);
originalRef = null;
}
return (
React.createElement(View, {
key: this.state.idStack[i],
@@ -27713,7 +27821,12 @@ var Navigator = React.createClass({displayName: "Navigator",
}.bind(this),
style: [styles.baseScene, this.props.sceneStyle, disabledSceneStyle]},
React.cloneElement(child, {
ref: this._handleItemRef.bind(null, this.state.idStack[i], route),
ref: function(component) {
this._handleItemRef(this.state.idStack[i], route, component);
if (originalRef) {
originalRef(component);
}
}.bind(this)
})
)
);
@@ -28532,6 +28645,7 @@ __d('buildStyleInterpolator',["keyOf"],function(global, require, requireDynamic,
/**
* Cannot "use strict" because we must use eval in this file.
*/
/* eslint-disable global-strict */
var keyOf = require('keyOf');
@@ -28897,7 +29011,7 @@ var MatrixOpsInitial = {
var setNextValAndDetectChange = function(name, tmpVarName) {
return (
' if (!didChange) {\n' +
' var prevVal = result.' + name +';\n' +
' var prevVal = result.' + name + ';\n' +
' result.' + name + ' = ' + tmpVarName + ';\n' +
' didChange = didChange || (' + tmpVarName + ' !== prevVal);\n' +
' } else {\n' +
@@ -29635,7 +29749,7 @@ var FromTheLeft = Object.assign({},
translateX: {
from: -SCREEN_WIDTH,
to: 0,
min: 0,
min: 0,
max: 1,
type: 'linear',
extrapolate: true,
@@ -32245,6 +32359,12 @@ var Text = React.createClass({displayName: "Text",
* Used to locate this view in end-to-end tests.
*/
testID: React.PropTypes.string,
/**
* Invoked on mount and layout changes with
*
* {nativeEvent: { layout: {x, y, width, height}}}.
*/
onLayout: React.PropTypes.func,
},
viewConfig: viewConfig,
@@ -33184,7 +33304,6 @@ var queryLayoutByID = function(
};
module.exports = queryLayoutByID;
});
__d('TextInput',["DocumentSelectionState","EventEmitter","NativeMethodsMixin","NativeModules","Platform","ReactPropTypes","React","ReactChildren","ReactNativeViewAttributes","StyleSheet","Text","TextInputState","react-timer-mixin/TimerMixin","TouchableWithoutFeedback","createReactNativeComponentClass","emptyFunction","invariant","merge"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
@@ -33367,12 +33486,12 @@ var TextInput = React.createClass({displayName: "TextInput",
'number-pad',
'phone-pad',
'name-phone-pad',
'email-address',
'decimal-pad',
'twitter',
'web-search',
// Cross-platform
'numeric',
'email-address',
]),
/**
* Determines how the return key should look.
@@ -35764,7 +35883,7 @@ function getObjectValues(obj) {
module.exports = getObjectValues;
});
__d('WebView',["ActivityIndicatorIOS","EdgeInsetsPropType","React","ReactNativeViewAttributes","StyleSheet","Text","View","invariant","keyMirror","requireNativeComponent","NativeModules"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('WebView',["ActivityIndicatorIOS","EdgeInsetsPropType","React","StyleSheet","Text","View","invariant","keyMirror","requireNativeComponent","NativeModules"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -35780,7 +35899,6 @@ __d('WebView',["ActivityIndicatorIOS","EdgeInsetsPropType","React","ReactNativeV
var ActivityIndicatorIOS = require('ActivityIndicatorIOS');
var EdgeInsetsPropType = require('EdgeInsetsPropType');
var React = require('React');
var ReactNativeViewAttributes = require('ReactNativeViewAttributes');
var StyleSheet = require('StyleSheet');
var Text = require('Text');
var View = require('View');
@@ -35964,7 +36082,7 @@ var WebView = React.createClass({displayName: "WebView",
onLoadingError: function(event ) {
event.persist(); // persist this event because we need to store it
console.error("encountered an error loading page", event.nativeEvent);
console.error('Encountered an error loading page', event.nativeEvent);
this.setState({
lastErrorEvent: event.nativeEvent,
@@ -36942,7 +37060,7 @@ function convertError(error) {
module.exports = AsyncStorage;
});
__d('RCTRenderingPerf',["ReactDefaultPerf","ReactPerf","invariant"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('RCTRenderingPerf',["ReactDefaultPerf","invariant"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -36956,7 +37074,6 @@ __d('RCTRenderingPerf',["ReactDefaultPerf","ReactPerf","invariant"],function(glo
'use strict';
var ReactDefaultPerf = require('ReactDefaultPerf');
var ReactPerf = require('ReactPerf');
var invariant = require('invariant');
@@ -40114,7 +40231,7 @@ if (RCTReachability) {
module.exports = NetInfo;
});
__d('PushNotificationIOS',["NativeModules","RCTDeviceEventEmitter","NativeModules","invariant"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
__d('PushNotificationIOS',["RCTDeviceEventEmitter","NativeModules","invariant"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
@@ -40127,7 +40244,6 @@ __d('PushNotificationIOS',["NativeModules","RCTDeviceEventEmitter","NativeModule
*/
'use strict';
var NativeModules = require('NativeModules');
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
var RCTPushNotificationManager = require('NativeModules').PushNotificationManager;
var invariant = require('invariant');
@@ -40383,6 +40499,25 @@ var VibrationIOS = {
module.exports = VibrationIOS;
});
__d('RCTNativeAppEventEmitter',["EventEmitter"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* 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 RCTNativeAppEventEmitter
* @flow
*/
'use strict';
var EventEmitter = require('EventEmitter');
var RCTNativeAppEventEmitter = new EventEmitter();
module.exports = RCTNativeAppEventEmitter;
});
__d('LinkedStateMixin',["ReactLink","ReactStateSetters"],function(global, require, requireDynamic, requireLazy, module, exports) { /**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.

View File

@@ -12,6 +12,8 @@ var {
View,
} = React;
var HybridMobileDeploy = require('react-native-hybrid-mobile-deploy')('http://localhost:3000/', 'HybridMobileDeployCompanion');
var HybridMobileDeployCompanion = React.createClass({
render: function() {
return (

View File

@@ -6,6 +6,7 @@
"start": "node_modules/react-native/packager/packager.sh"
},
"dependencies": {
"react-native": "^0.4.4"
"react-native": "^0.4.4",
"react-native-hybrid-mobile-deploy": "file:../.."
}
}

View File

@@ -1,7 +1,7 @@
/**
* Stub of HybridMobileDeploy for Android.
* Stub of UpdateManager for Android.
*
* @providesModule HybridMobileDeploy
* @providesModule UpdateManager
* @flow
*/
'use strict';

View File

@@ -2,19 +2,65 @@
* @providesModule HybridMobileDeploy
* @flow
*/
'use strict';
var NativeHybridMobileDeploy = require('NativeModules').HybridMobileDeploy;
var invariant = require('invariant');
/**
* High-level docs for the HybridMobileDeploy iOS API can be written here.
*/
var semver = require('semver');
var serverUrl;
var appName;
var HybridMobileDeploy = {
test: function() {
NativeHybridMobileDeploy.test();
checkForUpdate: function(version, callback) {
var url = serverUrl + 'latest/' + appName;
fetch(url)
.then(response => response.json())
.done(latest => {
if (semver.gt(latest.version, version)) {
callback(undefined, latest);
} else {
callback(undefined, false);
}
}, err => {
callback(err);
});
},
pollForUpdate: function(version, intervalDelay, callback) {
var interval;
var checkUpdate = () => {
this.checkForUpdate(version, (err, update) => {
if (err) {
callback(err);
} else if (update) {
interval && clearInterval(interval);
callback(undefined, update);
}
});
};
interval = setInterval(checkUpdate, intervalDelay);
checkUpdate();
},
getAvailableUpdates: function(callback) {
var url = serverUrl + 'updates/' + appName;
console.log(url);
fetch(url)
.then((response) => {
console.log(response);
return response.json()
})
.then((value) => {
console.log(value);
return value;
})
.then(callback);
},
installUpdate: function(update) {
NativeHybridMobileDeploy.installUpdateFromUrl(update.updateUrl, update.bundleName, (err) => console.log(err), () => console.log("success"));
}
};
module.exports = HybridMobileDeploy;
module.exports = function(server, app) {
serverUrl = server;
appName = app;
return HybridMobileDeploy;
};

View File

@@ -1,8 +1,10 @@
{
"name": "HybridMobileDeploy",
"name": "react-native-hybrid-mobile-deploy",
"version": "0.0.1",
"main": "HybridMobileDeploy.ios.js",
"keywords": "react-native",
"dependencies": {
"react-native": "^0.5.0"
"react-native": "^0.5.0",
"semver": "^4.3.6"
}
}