Compare commits

...
2393 Commits
Author SHA1 Message Date
Konstantin Raev b22ba82a97 fixing circle ci for docs build 2016-02-15 10:48:44 +00:00
Konstantin Raev 280e866cfd fixing circle ci for docs build 2016-02-15 10:47:05 +00:00
Konstantin Raev 9760b0d1e7 fixed a link to android setup docs 2016-02-15 10:40:32 +00:00
Konstantin Raev 85299dcf1d Added ability to switch version in documentation website
Website header now contains version number which is a link.
Clicking the link redirects you to a page that lists all the previous versions of the website.

Considering that we do a branch cut every 2 weeks a solution with dropdown did not feel right because it would grow fast.
As an improvement for the future - we could link change docs in the versions.html
2016-02-15 10:40:24 +00:00
Konstantin Raev 07375f26d5 CI now builds docs website and deploys it to /%version% path
Summary:
Copy of #5760 reverted merge.

We need to preserve history of docs changes on the webserver.
The goal is to allow users to browse outdated versions of docs.
To make things simple all websites will be released to https://facebook.github.io/react-native/releases/version/XX folder when there is a branch cut.

I switched from Travis CI to Cirle CI because it works faster and I am more familiar with it.

How it works:

1. If code is pushed to `master` branch then CI will build a fresh version of docs and put it in https://github.com/facebook/react-native/tree/gh-pages/releases/next folder.
Github will serve this website from https://facebook.github.io/react-native/releases/version/next URL.
All relative URLs will work within that website

2. If code is pushed to `0.20-stable` branch then CI will build a fresh version of docs and put it in https://github.com/facebook/react-native/tree/gh-pages/releases/0.20 folder.
Github will serve this website from https://facebook.github.io/react-native/releases/v
Closes https://github.com/facebook/react-native/pull/5873

Reviewed By: svcscm

Differential Revision: D2926901

Pulled By: androidtrunkagent

fb-gh-sync-id: 16aea430bac815933d9c603f03921cc6353906f1
shipit-source-id: 16aea430bac815933d9c603f03921cc6353906f1

Conflicts:
	Libraries/Utilities/AlertIOS.js
	circle.yml
	website/layout/AutodocsLayout.js

Conflicts:
	Libraries/Components/ScrollView/ScrollView.js
	Libraries/PushNotificationIOS/PushNotificationIOS.js
	docs/GettingStarted.md
	website/publish.sh
2016-02-15 10:40:10 +00:00
Martin Konicek 1668e6f5a3 [0.18.1] Bump version numbers 2016-01-20 13:42:34 +00:00
Pieter De Baets 1d6f5aa6e3 Invalidate JS executor when loading fails
Summary:
This solves https://github.com/facebook/react-native/issues/5090. Since https://github.com/facebook/react-native/commit/5b4e873c68be9a788ac8cc3f67199fbaacb58921 we had better reporting for when calls from native to JS fail. When trying to load an invalid bundle, this would now cause a stackoverflow, since RCTFatal would schedule a JS call to log, which would RCTFatal, which would ...

By invalidating the jsExecutor immediately after loading fails, we prevent any more attempts to log. We can't invalidate the whole bridge at this point since we still need the redbox module to actually display the error.

public

Reviewed By: majak

Differential Revision: D2834251

fb-gh-sync-id: a3e2ad425e40560beae4d3eacb93f66ace5341bf
2016-01-20 13:40:25 +00:00
Martin Konicek aee11c00ba Revert "Dont call npm before node is available"
This reverts commit 7ecb6936bc.

This breaks Xcode build, see discussion on https://github.com/facebook/react-native/pull/5156
2016-01-18 18:30:07 +00:00
Martin Konicek c56976a783 [0.18.0] Bump version numbers 2016-01-18 16:14:21 +00:00
Adam Miskiewicz 90def15f0a Fixing CLI to pass "sourcemap-output" option to bundler.
Summary:
Currently, the CLI is not passing the sourceMapURL option to the bundler, so source maps are output as "null".
Closes https://github.com/facebook/react-native/pull/5288

Reviewed By: svcscm

Differential Revision: D2828092

Pulled By: androidtrunkagent

fb-gh-sync-id: 2e464ddf65f0d4fcbff3c50281391cb30b5c799c
2016-01-18 15:23:06 +00:00
Nick Lockwood ccd8f99f0c Fixed iOS 7 support for URL query functions
Summary:
public
Unfortunately, it turns out that NSURLComponents.queryItems only works on iOS 8 and above. This diff re-implements the RCTGetURLQueryParam and RCTURLByReplacingQueryParam functions using functionality available in iOS 7.

Reviewed By: javache

Differential Revision: D2803679

fb-gh-sync-id: 56f10bef4894d16197975b6023b7aa5ab106d8cb
2016-01-18 15:22:56 +00:00
Lukas Benes 1d4fa71a94 Fix missing Alert in react-native.js.flow
Summary: Closes https://github.com/facebook/react-native/pull/5192

Reviewed By: svcscm

Differential Revision: D2815060

Pulled By: androidtrunkagent

fb-gh-sync-id: cbf9058e4e6b36584d8487fc132faa2a5c52bbe0
2016-01-18 15:22:27 +00:00
Henrik Kok Jørgensen a7596140e0 Dont call npm before node is available
Summary:
This fixes an error introduced in `0.18.0-rc`

`node` and `npm` isn't available if the developer is using `nvm` or `nodeenv`. XCode throws an error because of the call to `npm`. Simple move the line to after `node` and `npm` has been setup.
Closes https://github.com/facebook/react-native/pull/5156

Reviewed By: svcscm

Differential Revision: D2807589

Pulled By: androidtrunkagent

fb-gh-sync-id: 30c33145b2cb6f30ff67f6648153d5aa67fb74ed
2016-01-18 15:22:16 +00:00
Gaëtan Renaudeau 0b63571a9f Fixes error when navigationBar is set back to null
Summary:
This fixes a regression introduced in https://github.com/facebook/react-native/commit/df70005c12e3be14bfbdf0b32f9ea0a5c052deba

If you set navigationBar props (on Navigator) and then later set it back to null, it will crashes.
(N.B. this should be possible as navigationBar is optional)

cc satya164
Closes https://github.com/facebook/react-native/pull/4941

Reviewed By: svcscm

Differential Revision: D2788889

Pulled By: bestander

fb-gh-sync-id: f8f1cd6cc2ce13b1b1b86fa76d3b22c26a8adb5b
2016-01-18 15:22:09 +00:00
Martin Konicek d623fda41f Don't enable Proguard by default just yet
Want to gather some feedback from a few people first.
2016-01-18 14:29:18 +00:00
Martin Konicek 10a17c6673 Add support for split build per architecture
Summary:
This allows everyone to deploy significantly smaller APKs to they Play Store by building separate APKs for ARM, x86 architectures.

For a simple app, a release APK minified with Produard:
- Universal APK is **7MB**
- x86 APK is **4.6MB** (34% reduction)
- ARM APK is **3.7MB** (47% reduction)

Created a sample project, uncommented `// include "armeabi-v7a", 'x86'`:

    cd android
    ./gradlew assembleDebug

Three APKs were created, unzipped each: one has only x86 binaries,
one has ARM binaries, one has both.

    ./gradlew assembleRelease

Three APKs were created, JS bundle is correcly added to assets.

    react-native run-android

The correct APK is installed on the emulator and the app runs fine
(Gradle output: "Installing APK 'app-x86-debug.apk'").

With the line commented out the behavior is exactly the same as before,
only one universal APK is built.

Checked that version codes are set correctly as described in
http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
http://developer.android.com/intl/ru/google/play/publishing/multiple-apks.html

Closes https://github.com/facebook/react-native/pull/5160

Reviewed By: svcscm

Differential Revision: D2811443

Pulled By: mkonicek

fb-gh-sync-id: 97b22b9cd567e53b8adac36669b90768458b7a55
2016-01-18 14:28:17 +00:00
tdzl2003 239eb4bceb Fix build error and runtime error after proguard enabled.
Summary:
Fix:
1. :app:packageRelease FAILED caused by proguard exception: `java.io.IOException: Please correct the above warnings first.`
2. Fix runtime exception
```
java.lang.ExceptionInInitializerError
   at com.facebook.react.ReactInstanceManagerImpl.recreateReactContextInBackgroundFromBundleFile(ReactInstanceManagerImpl.java:308)
```
Closes https://github.com/facebook/react-native/pull/5146

Reviewed By: svcscm

Differential Revision: D2807252

Pulled By: mkonicek

fb-gh-sync-id: 03d004405c7cca14a71230086b95351cfacbc055
2016-01-18 14:27:08 +00:00
Martin Konicek 9bf7c71751 Add support for global alert() on Android
Summary:
Use the new cross-platform [`Alert`](https://github.com/facebook/react-native/blob/master/Libraries/Utilities/Alert.js) API to implement global `alert()`.

public

Reviewed By: vjeux

Differential Revision: D2773589

fb-gh-sync-id: 4297c5dce6a55391af89d2675f2b9ac4dc715bb6
2016-01-18 14:26:55 +00:00
Martín Bigio 3ef6f9f8a7 Pipe transforms errors through transformation pipelines
Summary:
public

Fixes an issue on the transforms pipeline which caused not to pipe errors that occured on the external transformer to JSTransformer.

Reviewed By: yungsters

Differential Revision: D2806498

fb-gh-sync-id: c9347d1957a3a9320b3f177ff9b19bf3802087a0
2016-01-18 14:26:47 +00:00
Martin Konicek d6ffc2fd6d [0.18.0-rc] Bump version numbers 2016-01-05 18:38:38 +00:00
Nick Lockwood af24619592 Increased RCTInlineValueThreshold for asynclocalstorage
Reviewed By: tadeuzagallo

Differential Revision: D2641694

fb-gh-sync-id: e35df5408730ce9ec267cbeeb556f8eba154df1f
2016-01-05 10:01:32 -08:00
Satyajit Sahoo 80bf431f98 Add warnings while upgrading RN with react-native upgrade
Summary: Closes https://github.com/facebook/react-native/pull/4854

Reviewed By: svcscm

Differential Revision: D2803252

Pulled By: foghina

fb-gh-sync-id: e6b05b19cf45773d7683ae8ae35643f400e51692
2016-01-05 09:58:28 -08:00
Alexander Blom 6d9096fb3f Fix deadlock when recreating websocket connection
Summary:
When you reload code while using the Chrome debugger we used to create a new websocket connection before closing
the old one. This sometimes would cause a in-flight call to not get a response. This in turn would deadlock the JS thread
because we try to shut it down before killing the websocket connection.

This change instead makes sure to close the old connection before creating a new one. This is done by using a factory for
creating the JavascriptExecutor so we can defer the creation until after the old Bridge has been torn down.

public

Reviewed By: astreet

Differential Revision: D2735011

fb-gh-sync-id: 0ce0f35abaeef5457bad8d6b8d10122281192af4
2016-01-05 09:27:42 -08:00
Nick Lockwood fc98956b65 Fix race conditions in RCTModuleData
Summary:
public
The logic inside RCTBatchedBridge contained some race conditions that would occasionally cause an error if modules were loaded in the wrong order. This improves that logic and makes it safer by adding a lock to prevent concurrency.

Reviewed By: jspahrsummers

Differential Revision: D2802930

fb-gh-sync-id: d1ad25fa578649363dcaac029cb24dc3a453ae67
2016-01-05 09:04:31 -08:00
Satyajit Sahoo 1b766ddd2c Add a script for making releases easier 2016-01-05 16:59:43 +00:00
Martin Konicek 6af7ae55b1 [global-cli] react-native init [--debug|verbose]
`npm install` prints a lot of junk like gyp warnings
and the rest of the output is not super useful for
tracking progress.

Supress the output by default, show the output with
--debug, and show verbose output with --verbose.
2016-01-05 16:51:28 +00:00
Justin Spahr-Summers a5d82c2823 Add context executor API for sync hooks
Summary:
public

This exposes a proper API for adding synchronous callbacks to JS, as an optional feature of the executor.

This is based on nicklockwood's work in D2764492, but avoids refactoring bridge/executor interactions for the time being, since we agree on this API and can move the actual callsites around later.

Reviewed By: nicklockwood

Differential Revision: D2799506

fb-gh-sync-id: af209d9a0be927f3404205feb16e59745cc37aec
2016-01-05 08:00:38 -08:00
Andy Street 1c1d7006c2 Remove extra JSUnprotect call
Summary:
public
Value doesn't protect it's value, so it shouldn't be unprotecting them in its destructor.

I'm also pretty sure we don't need to Protect the exception while it's on the stack according to the JSValueProtect docs: https://developer.apple.com/library/mac/documentation/JavaScriptCore/Reference/JSValueRef_header_reference/index.html#//apple_ref/c/func/JSValueProtect

Reviewed By: lexs

Differential Revision: D2779255

fb-gh-sync-id: 7d5df34639c8e7c41e92d3b8d652b93443d194a1
2016-01-05 04:58:29 -08:00
Konstantin Raev 3507bc61a5 added branch to ignore for CI tests
Summary:
every push to gh-pages renders an error in tests https://circleci.com/gh/facebook/react-native/995?utm_campaign=build-failed&utm_medium=email&utm_source=notification
Closes https://github.com/facebook/react-native/pull/5109

Reviewed By: svcscm

Differential Revision: D2802873

Pulled By: androidtrunkagent

fb-gh-sync-id: 8043f47ccfce322ae26ac5e85604bcc2c79d9cb4
2016-01-05 03:45:28 -08:00
Michelle Todd 1dc5dca604 Rename methods in RCTPushNotificationManager so app store doesn't warn
Summary:
Including RCTPushNotificationManager is required for local notifications, which don't require a Push Notifications entitlement on your provisioning profile. However, if you don't have the entitlement, the app store warns you when you push an app build that contains `application:didRegisterForRemoteNotificationsWithDeviceToken:`, even if it isn't being called. This renames the methods so they have different names from the ones on UIApplication so the app store doesn't warn about them.
Closes https://github.com/facebook/react-native/pull/4897

Reviewed By: spicyj

Differential Revision: D2780533

Pulled By: nicklockwood

fb-gh-sync-id: 1a688f1ebd3cc9f86ba340ce453fdbfb46949839
2016-01-05 02:43:29 -08:00
Fada Chen ee82bad3f7 revert D2779079
Reviewed By: zjj010104

Differential Revision: D2802728

fb-gh-sync-id: 9e09f00d1d7facd2091fe60eee8565c4bf599b1d
2016-01-05 00:41:31 -08:00
Fada Chen 18cdead76b revert D2773664
Reviewed By: dwitte

Differential Revision: D2802582

fb-gh-sync-id: 39d59be297f0f23e6a4e40175ad30284766349cb
2016-01-04 23:52:51 -08:00
Ben Alpert 27ac04742a Open-source ART for Android
Summary:
This is already open-source on iOS, albeit badly documented. Now Android too!

Tested in open source by adding a `import com.facebook.react.ARTPackage;` and `.addPackage(new ARTPackage())` to UIExplorerActivity.java, running

```
./gradlew :Examples:UIExplorer:android:app:installDebug
```

and copying VectorWidget into the UIExplorer JS code as described in http://browniefed.com/blog/2015/05/03/getting-react-art-running-on-react-native/.

public

Reviewed By: foghina

Differential Revision: D2700481

fb-gh-sync-id: 2a5308b022869ecc1868a46dbecf397581ddbe04
2016-01-04 18:59:58 -08:00
James Ide 27d102258b Merge pull request #3802 from exponentjs/node-5
[Node 5] Run Travis CI tests with Node 5 and npm 3
2016-01-04 16:53:50 -08:00
James Ide 84adb6c8cc [Node 5] Run Travis CI tests with Node 5 and npm 3
Updates the Travis CI environment to install Node 5.
2016-01-04 15:57:38 -08:00
Martin Konicek d87d127402 [global-cli] Fix npm start
Before releasing new react-native-cli, need to look into
suppressing output from 'npm install', added in
https://github.com/facebook/react-native/commit/5da0e135b6224a2ec9677da3494b8c1e90b06908
2016-01-04 23:37:44 +00:00
James Ide 7100df0062 Move react-transform-hmr dep to "dependencies"
Summary:
It is required from the RN app JS, so it needs to be in prod dependencies.

cc martinbigio
Closes https://github.com/facebook/react-native/pull/5091

Reviewed By: svcscm

Differential Revision: D2798891

Pulled By: martinbigio

fb-gh-sync-id: 976ccf4d96338c8e3d7e457710559be51c4f7405
2016-01-04 15:15:43 -08:00
James Zhang a6bca4041b Fix AlertIOS Examples
Summary:
This fixes the examples that are out of date.
Closes https://github.com/facebook/react-native/pull/5116

Reviewed By: svcscm

Differential Revision: D2800319

Pulled By: androidtrunkagent

fb-gh-sync-id: da1810c6146950be4be670fc69b9da32fb266303
2016-01-04 13:38:33 -08:00
Felix Oghina 4866ec2767 crash gracefully on fatal js errors (take two)
Reviewed By: AaaChiuuu

Differential Revision: D2773513

fb-gh-sync-id: f8e50ad12e808caf1d85c6c7859c04fcabdaaeae
2016-01-04 13:18:54 -08:00
Martín Bigio f2bdb79782 Make HMR server send full list modules that changed
Summary:
public

Before this diff we were only accepting the module that was modified but the user. This works fine as long as the user doesn't modify the dependencies a module has but once he starts doing so the HMR runtime may fail when updating modules' code because they might might a few dependencies. For instance, if the user changes the `src` a `Image` has to reference an image (using the new asset system) that wasn't on the original bundle the user will get a red box. This diff addresses this by diffing the modules the app currently has with the new ones it should have and including all of them on the HMR update. Note this diffing is only done when the we realize the module that was modified changed it's dependencies so there's no additional overhead on this change.

Reviewed By: vjeux

Differential Revision: D2796325

fb-gh-sync-id: cac95f2e995310634c221bbbb09d9f3e7bc03e8d
2016-01-04 13:02:27 -08:00
Andy Street ba2fcd39d1 WebWorkers: Add JSLoader API for loading script from assets with AssetLoader reference
Summary:
public

Adds the ability to load files from assets without threading through an AssetManager. After the bridge is unforked, we should move to passing through an Environment object instead.

Reviewed By: lexs

Differential Revision: D2779079

fb-gh-sync-id: 82b47ecdf48b724076d87f4879ec40601e21e6bc
2016-01-04 12:08:29 -08:00
Andy Street 42e5b2a5bc WebWorkers: Add MessageQueueThreadRegistry
Summary:
public

It is helpful to be able to access the current MessageQueueThread like you would the current Looper. I would do this exactly as Looper does it, but we have forked implementations of MQT for the native bridge and MQT is an interface that can't hold private members.

Reviewed By: lexs

Differential Revision: D2779072

fb-gh-sync-id: 0ff841d8c490b971697c8e5d45f9c0a57668376b
2016-01-04 12:01:33 -08:00
Martín Bigio 8c9c7e6286 Introduce transforms pipeline
Summary:
public

This diff introduces an internal transforms pipeline that integrates with the external one. This has been a feature we've been looking to implement for a long time to use babel instead of `replace` with regexps on many parts of the packager.

Also, to split the bundle we'll need to run one transform. Internally for Facebook we can run the system-import transform altogether withe the other ones. For OSS we offer `transformer.js` which people can use out of the box if they're writing ES6 code. For those people, `transformer.js` will also run the internal transforms`. However they might want to tune the transforms, or even write the code on another language that compiles to Javascript and use a complete different transformer. On those cases we'll need to run the external transforms first and pipe the output through the internal transforms. Note that the order it's important as the internal transforms assume the code is written in JS, though the original code could be on other scripting languages (CoffeeScript, TypeScript, etc).

Reviewed By: davidaurelio

Differential Revision: D2725109

fb-gh-sync-id: d764e209c78743419c4cb97068495c771372ab90
2016-01-04 11:32:42 -08:00
Tadeu Zagallo 89ae0e040d Expose flow events to JS + add JS -> Native flows
Summary:
public

Expose JS hooks to create flow events in systrace (the nice arrows to show async work flow) +
add support to the showing all the work enqueued from the JS thread as added in D2743733

Depends on D2743733

Reviewed By: jspahrsummers

Differential Revision: D2773664

fb-gh-sync-id: 4a8854b17b4741b882f5f2cc425e4237a5e4b3eb
2016-01-04 11:11:48 -08:00
Nick Lockwood ed4478a4ff Refactor hot loading implementation on iOS
Reviewed By: milend

Differential Revision: D2795580

fb-gh-sync-id: ad33ba152e40b622b10bfa0122afd6edc28a11bf
2016-01-04 10:40:32 -08:00
Martín Bigio 54f2586735 Improve error message when devserver is not running
Summary:
public

If Hot Loading is enabled bu the packager server is not running, as the user updates files he'll see red boxes caused by the HMR runtime. The error those red boxes show is pretty weird for the end user. Lets improve the feedback we give!.

Reviewed By: vjeux

Differential Revision: D2795534

fb-gh-sync-id: dcc39e6682e0603bf10d0f5e623433262b745660
2016-01-04 09:56:30 -08:00
Janic Duplessis 44f7a00e95 Cross platform PullToRefreshView component
Summary:
Both iOS and Android currently support some sort of native pull to refresh control but the API was very different. I tried implementing a component based on PullToRefreshViewAndroid but that works on both platforms.

I liked the idea of wrapping the ListView or ScrollView with the PullToRefreshView component and allow styling the refresh view with platform specific props if needed. I also like the fact that 'refreshing' is a controlled prop so there is no need to keep a ref to the component or to the stopRefreshing function.

It is a pretty rough start so I'm looking for feedback and ideas to improve on the API before cleaning up everything.

On iOS we could probably deprecate the onRefreshStart property of the ScrollView and implement the native stuff in a PullToRefreshViewManager. We could then add props to customize the look of the UIRefreshControl (tintColor). We could also deprecate the Android only component and remove it later.
Closes https://github.com/facebook/react-native/pull/4915

Reviewed By: svcscm

Differential Revision: D2799246

Pulled By: nicklockwood

fb-gh-sync-id: 75872c12143ddbc05cc91900ab4612e477ca5765
2016-01-04 08:00:29 -08:00
Katrina Nova 86af597c2e Update NavigatorIOS.ios.js
Summary:
Allow props passed to the route object to overwrite props passed to the navigator.
Closes https://github.com/facebook/react-native/pull/5101

Reviewed By: svcscm

Differential Revision: D2799379

Pulled By: androidtrunkagent

fb-gh-sync-id: 147b6ba4b309657f03d7bda38f8958c4599c38c3
2016-01-04 07:42:31 -08:00
Satyajit Sahoo 68147cf39c Update references to image! to use require syntax
Summary: Closes https://github.com/facebook/react-native/pull/5089

Reviewed By: svcscm

Differential Revision: D2798548

Pulled By: androidtrunkagent

fb-gh-sync-id: 9e561fcfc103102d4c4bfbebc463eadb2fdd561a
2016-01-04 07:41:27 -08:00
Jason Brown b8aac8b77a Implement draggable annotations on MapView. Closes #2512
Summary: Closes https://github.com/facebook/react-native/pull/4441

Reviewed By: svcscm

Differential Revision: D2707897

Pulled By: nicklockwood

fb-gh-sync-id: 6f67f711c1ec1f821d03b9b1ea5cc39859d28fd1
2016-01-04 06:38:30 -08:00
Nick Lockwood 64edddadcc Fixed race condition in RCTModuleData.methodQueue
Summary:
public
The implementation of the `methodQueue` lazy initializer in `RCTModuleData` could result in the queue being set twice, because calling `methodQueue` for a module that hasn't been instantiated would call `RCTModuleData.instance` to create the module, which itself calls `methodQueue`.

It's not clear if this was causing a bug, but it may be related to an occasional bug where the `RCTViewManager.methodQueue` returns nil.

Reviewed By: majak

Differential Revision: D2783320

fb-gh-sync-id: 9194da0fd7392f63825da1f5c450363dd300b635
2016-01-04 06:24:28 -08:00
Adam Miskiewicz 46609cf7f0 Merge pull request #5108 from le0pard/patch-1
Add RWpodPlayer as showcase for React Native apps
2016-01-04 09:20:29 -05:00
Satyajit Sahoo 6e6de56957 Merge pull request #5104 from lvwang2002/master
Update showcase.js
2016-01-04 19:22:15 +05:30
Alexey Vasiliev c91f9ce576 Add RWpodPlayer as showcase for React Native apps 2016-01-04 15:13:13 +02:00
Mike Armstrong 40d9918f5d Fix systrace use in OSS
Reviewed By: bestander

Differential Revision: D2799222

fb-gh-sync-id: 8002c7f94eedffdf05bb134ced14809a78757bb0
2016-01-04 05:12:28 -08:00
Jed Lau 52220a96f9 Export method to get current status bar height
Summary:
Addresses #2515 .
Closes https://github.com/facebook/react-native/pull/5039

Reviewed By: svcscm

Differential Revision: D2799224

Pulled By: nicklockwood

fb-gh-sync-id: 8f0a0f229a1588b1033b0121868c1f82e4dc6684
2016-01-04 04:31:26 -08:00
Mike Armstrong e42c6d4446 Flows between RN Threads
Reviewed By: tadeuzagallo

Differential Revision: D2743733

fb-gh-sync-id: df4ae69a3501a37e08286857a8d4be3cd27c0ac3
2016-01-04 02:16:31 -08:00
lvwang2002 2af06b3c08 Update showcase.js
all the function of android version made by react native
the function of search of iOS version made by react native.
2016-01-04 12:34:57 +08:00
Satyajit Sahoo cdad5c047a Merge pull request #5087 from qbig/add-doc-new-contributor-task
added easy tasks to README for new contributors
2016-01-03 12:27:32 +05:30
Jay Salvat e62471b7c3 Fix pop method to properly refresh the navigatorBar
Summary:
When using nativator.pop() the navigatorBar doesn't refresh properly if we change navigationBarHidden.

When navigator.pop() is called, the navbar doesn't show up, even avec navigationBarHidden set back to true. See between Statusbar and Movie poster in the example below.

![bad](https://cloud.githubusercontent.com/assets/55496/8683849/77effa30-2a75-11e5-9f32-9be6fa87efac.gif)

    // Not actually updating the indices yet until we get the native
    // `onNavigationComplete`.
    updatingAllIndicesAtOrBeyond: null,

https://github.com/facebook/react-native/blob/master/Libraries/Components/Navigation/NavigatorIOS.ios.js#L510-L512

The View need to be refreshed in pop method anyway.

    updatingAllIndicesAtOrBeyond: this.state.requestedTopOfStack - n,

Now, navbar appears properly.

![good](https://cloud.githubusercontent.com/assets/55496/8683907/be9d2714-2a75-11e5-8fda-653e68869076.gif)
Closes https://github.com/facebook/react-native/pull/1989

Reviewed By: svcscm

Differential Revision: D2798515

Pulled By: androidtrunkagent

fb-gh-sync-id: 9d554c9d88b87628488a8cebb7e3bbe4dd9c017d
2016-01-02 22:52:30 -08:00
Qiao Liang d8e138770f added easy tasks to README 2016-01-03 14:48:07 +08:00
Brent Vatne 2c39515557 Merge pull request #5086 from sharathprabhal/patch-1
Add 'Eat or Not' play store link
2016-01-02 21:34:34 -08:00
Sharath Prabhal 4d403efab3 Add 'Eat or Not' play store link 2016-01-03 00:13:17 -05:00
Christopher Chedeau f39d45e61c Merge pull request #5080 from janicduplessis/website-windows
Fix issues running the website locally on windows with npm3
2016-01-02 07:56:16 -08:00
Chirag 710568ef6c Merge pull request #5082 from yuanyan/yuanyan-patch-1
[Doc] Fix the 404 status url.
2016-01-02 07:16:50 -05:00
yuanyan 5fa33f3d07 Fix the 404 status url. 2016-01-02 19:33:50 +08:00
Janic Duplessis 2d50ac359c Fix issues running the website locally on windows with npm3 2016-01-02 03:56:32 -05:00
Kudo Chien 4972cabaa5 Add <Text> shadow support
Summary:
Add three new TextStylePropTypes for \<Text>
- textShadowOffset
- textShadowRadius
- textShadowColor
Closes https://github.com/facebook/react-native/pull/4975

Reviewed By: svcscm

Differential Revision: D2796278

Pulled By: nicklockwood

fb-gh-sync-id: f8c3fa210e664428b029b9fba8eca4a8eb81c08d
2016-01-01 09:33:31 -08:00
Nick Lockwood 718cd7953f Added getImageSize method
Summary:
public

This diff adds a `getSize()` method to `Image` to retrieve the width and height of an image prior to displaying it. This is useful when working with images from uncontrolled sources, and has been a much-requested feature.

In order to retrieve the image dimensions, the image may first need to be loaded or downloaded, after which it will be cached. This means that in principle you could use this method to preload images, however it is not optimized for that purpose, and may in future be implemented in a way that does not fully load/download the image data.

A fully supported way to preload images will be provided in a future diff.

The API (separate success and failure callbacks) is far from ideal, but until we agree on a unified standard, this was the most conventional way I could think of to implement it. If it returned a promise or something similar, it would be unique among all such APIS in the framework.

Please note that this has been a long time coming, in part due to much bikeshedding about what the API should look like, so while it's not unlikely that the API may change in future, I think having *some* way to do this is better than waiting until we can define the "perfect" way.

Reviewed By: vjeux

Differential Revision: D2797365

fb-gh-sync-id: 11eb1b8547773b1f8be0bc55ddf6dfedebf7fc0a
2015-12-31 18:51:30 -08:00
Brent Vatne 24b942faeb Merge pull request #5066 from sunnylqm/patch-8
remove Precomputing style
2015-12-31 18:36:39 -08:00
odino 6793128435 Allowing turning on / off DOM storage on android webviews
Summary:
Was developing on a WebView and couldnt get it to run. Turns out its JS code mostly depends on `localStorage` and I realized it wasnt turned on in RN. This PR adds a prop, similar to `javascriptEnabledAndroid` to be able to turn DOM storage on / off.

TBH I dont really know how it works on IOS, so I created an android specific thingy. I assume DOM storage is enabled by default on IOS.
Closes https://github.com/facebook/react-native/pull/5065

Reviewed By: svcscm

Differential Revision: D2797735

Pulled By: androidtrunkagent

fb-gh-sync-id: cd60cfa4d24d80fb82e4f54f387a4517a99e75ab
2015-12-31 18:04:29 -08:00
Nick Lockwood 55fe7ac9ae Fix flow errors
Reviewed By: gabelevi

Differential Revision: D2796260

fb-gh-sync-id: 8425e57a313326afb6f6ae5bb8b86a569f462b06
2015-12-31 07:48:29 -08:00
sunnylqm e09378d92d remove Precomputing style 2015-12-31 21:11:47 +08:00
James Ide e033898761 Merge pull request #5058 from odino/patch-1
Fixed typo
2015-12-31 01:23:17 -08:00
Alessandro Nadalin dcc01b04f1 Fixed typo 2015-12-31 12:26:10 +04:00
Ben Alpert bec91104f8 Re-shrinkwrap to get react-proxy 1.1.2
Reviewed By: vjeux

Differential Revision: D2796203

fb-gh-sync-id: 8c0538a0270feb51e9b14ffdbe8243ea4ed62845
2015-12-30 19:12:51 -08:00
Satvik Jagannath 596109fa0a Fix THUMBNAILS to follow the require Syntax
Summary:
The THUMB_URLS is following the older syntax.
Fixed THUMBNAILS to follows require Syntax. And now you see the thumbnails appearing in the Sample app.
Closes https://github.com/facebook/react-native/pull/4995

Reviewed By: svcscm

Differential Revision: D2796019

Pulled By: nicklockwood

fb-gh-sync-id: c7be50d4dea73fc383db1c6b5a6afa7444505889
2015-12-30 14:50:29 -08:00
Nick Lockwood d7ad393f22 Fix unused argument warnings
Reviewed By: milend

Differential Revision: D2795407

fb-gh-sync-id: 83f5cc10b115eef3becb4ebab56b366f1a12a3ad
2015-12-30 14:16:29 -08:00
Satyajit Sahoo 81dc490ab3 Merge pull request #4828 from DougBanksPersonal/patch-1
Update EmbeddedAppIOS.md
2015-12-31 03:39:30 +05:30
DougBanksPersonal 3955bebb74 Update EmbeddedAppIOS.md 2015-12-30 14:06:54 -08:00
Satyajit Sahoo f93cf6ca19 Fix android activity template. Fixes #5030
Summary: Closes https://github.com/facebook/react-native/pull/5033

Reviewed By: svcscm

Differential Revision: D2794157

Pulled By: androidtrunkagent

fb-gh-sync-id: 9d30b3a661b18be31d246dc3f55c429cc4b51a8a
2015-12-30 13:23:31 -08:00
Ben Alpert 71723ec3ec Fix path to react in shrinkwrap
Summary:
Oops. This breaks npm install in OSS.

public

Reviewed By: bestander

Differential Revision: D2795946

fb-gh-sync-id: 949755feafdd00482ba58b9553d07886e21625f0
2015-12-30 13:08:31 -08:00
Ben Alpert 6a838a4201 Consume react, fbjs from npm
Summary:
We don't (yet) treat these the same as any other modules because we still have special resolution rules for them in the packager allowing the use of `providesModule`, but I believe this allows people to use npm react in their RN projects and not have duplicate copies of React. Fixes facebook/react-native#2985.

This relies on fbjs 0.6, which includes `.flow` files alongside the `.js` files to allow them to be typechecked without additional configuration. This also uses react 0.14.5, which shims a couple of files (as `.native.js`) to avoid DOM-specific bits. Once we fix these in React, we will use the same code on web and native. Hopefully we can also remove the packager support I'm adding here for `.native.js`.

This diff is not the desired end state for us – ideally the packager would know nothing of react or fbjs, and we'll get there eventually by not relying on `providesModule` in order to load react and fbjs modules. (fbjs change posted here but not merged yet: https://github.com/facebook/fbjs/pull/84.)

This should also allow relay to work seamlessly with RN, but I haven't verified this.

public

Reviewed By: sebmarkbage

Differential Revision: D2786197

fb-gh-sync-id: ff50f28445e949edc9501f4b599df7970813870d
2015-12-30 11:41:09 -08:00
Ben Alpert 5bf1f4c05e Install fbjs@0.6.0, react@0.14.4
Reviewed By: zpao

Differential Revision: D2794354

fb-gh-sync-id: 57f5bc4ded5cc7eee17debdac76dc2934071dd54
2015-12-30 11:41:01 -08:00
Konstantin Raev 88baaa1239 increased stability of circleCI e2e tests
Summary:
Out of 57 builds in the 5 days during Christmas only 15 were successful.
15 of the failed ones were caused by `com.android.ddmlib.ShellCommandUnresponsiveException` when running unstrumentation tests.
Another 10 were because of crashes probably related to memory usage.

This PR follows ideas from https://github.com/Originate/guide/blob/master/android/guide/Continuous%20Integration.md

So far I've made 6 successful builds with this setup.
Need to run it for a few more days to get accurate stats.
Closes https://github.com/facebook/react-native/pull/5021

Reviewed By: svcscm

Differential Revision: D2795713

Pulled By: androidtrunkagent

fb-gh-sync-id: 33373fed7ca7c5fb83b35cf551f8501286e33d7b
2015-12-30 11:39:32 -08:00
Nick Lockwood f9ad70bd81 Fix UIExplorer list
Summary:
public
On fresh install, UIExplorer produces a blank list due to the search text being null. This fixes that by replacing the null with an empty string.

Reviewed By: milend

Differential Revision: D2795411

fb-gh-sync-id: 4bdde5d4f9e88dd933c7946dcbfb8b591a54baf6
2015-12-30 10:43:36 -08:00
Martín Bigio e798817e5a Yellow boxes for HMR errors
Reviewed By: vjeux

Differential Revision: D2795143

fb-gh-sync-id: fd5c92af511258bb1252d991e994a8c37657644e
2015-12-30 10:08:29 -08:00
wvengen 494d607e28 Improve watcher timeout error message (fixes #5005)
Summary: Closes https://github.com/facebook/react-native/pull/5022

Reviewed By: svcscm

Differential Revision: D2793185

Pulled By: milend

fb-gh-sync-id: ec49d27d6e405924269a48f32cce401b1ce380f6
2015-12-30 08:19:32 -08:00
olivier notteghem 5bc45f1881 improve navigation and tail fetch logging
Reviewed By: nspaun

Differential Revision: D2791366

fb-gh-sync-id: 5cacc34ef29630437e82b1fab18c928c8794d551
2015-12-30 05:08:25 -08:00
Mike Armstrong 8cabdbae1e Report jsc memory information to fbsystrace
Reviewed By: jspahrsummers

Differential Revision: D2789593

fb-gh-sync-id: e31d5f174b9cf896ce3be6431d81264d1d240fdb
2015-12-29 23:37:39 -08:00
Ben Alpert fe07a9c576 Update Object.assign non-object error message
Summary:
These are the sources, not the target. Copy pasta from above.
Closes https://github.com/facebook/react-native/pull/4989

Reviewed By: svcscm

Differential Revision: D2795198

Pulled By: spicyj

fb-gh-sync-id: 61c52add02cb877284fbf62a4344361b5bf44515
2015-12-29 23:09:29 -08:00
Mike Armstrong dfcc4f8ad5 Log Memory tags using LegacyProfiler
Reviewed By: jspahrsummers

Differential Revision: D2789647

fb-gh-sync-id: 220a0fc4eccccd92a6b8f45b07b32735a7054614
2015-12-29 22:12:30 -08:00
Andy Street 322a77340c WebWorkers: Add APIs for working with JSObjectRef
Reviewed By: lexs

Differential Revision: D2779267

fb-gh-sync-id: 8aee2aee3ca4d1119576494caa39010e854b92a6
2015-12-29 19:51:36 -08:00
Andy Street 690eb08e63 WebWorkers: Extract evaluateScript logic to JSCHelpers
Reviewed By: lexs

Differential Revision: D2779277

fb-gh-sync-id: ab9a040193f36f40a4a34229a4a90199537253aa
2015-12-29 19:48:35 -08:00
Andy Street a68f8f4224 WebWorkers: Add APIs for working with JSObjectRef
Reviewed By: lexs

Differential Revision: D2779267

fb-gh-sync-id: 5c5a49988a1d501f15e5033b2dd5b528d97d96ed
2015-12-29 19:48:29 -08:00
Martín Bigio e75e861116 Make Hot Loading faster
Summary:
public

Before this this when a file was changed besides sending the HMR update we rebuild every single bundle that the packager had build (to serve it faster when the user hit cmd+r). Since when hot loading is enabled we don't do cmd+r all this work was pointless (except for when you're developing multiple apps using the same packager instance at the same time, which we can assume is very uncommon). As a consequence, the HMR update was competing with the rebundling job making HMR quite slow (i.e.: on one huge internal app it took up to 6s for the HMR changes to get applied).

So, this diff tweaks the file change listener so that we don't rebundle nor invoke the fileWatchers (use for live reload which is also useless when hot load is enabled) when hot loading is enabled. Also, it makes the HMR listener more high pri than the other listeners so that the HMR dev experience is as good as it can get.

Reviewed By: vjeux

Differential Revision: D2793827

fb-gh-sync-id: 724930db9f44974c15ad3f562910b0885e44efde
2015-12-29 18:25:40 -08:00
Martín Bigio b5081abae3 Send HMR updates only for files on the bundle
Summary:
public

Compute the dependencies of the bundle entry file just before sending HMR updates. In case the file that was changed doesn't belong to the bundle bail.

Reviewed By: vjeux

Differential Revision: D2793736

fb-gh-sync-id: f858e71b0dd5fe4f5b2307a22c6cef627eb66a22
2015-12-29 18:25:35 -08:00
Martín Bigio 5f850fbede Pipe platform and bundleEntry through WebSocket connection
Reviewed By: vjeux

Differential Revision: D2793572

fb-gh-sync-id: 6ce2467b8d528d1a91c1b4fc51741f2502674022
2015-12-29 18:25:28 -08:00
Satyajit Sahoo dd8e1f91d8 Merge pull request #4994 from genki/patch-2
Update showcase.js
2015-12-30 04:29:23 +05:30
Brent Vatne fef01ed394 ScrollWithouth => ScrollWithout
Summary:
Oops!
Closes https://github.com/facebook/react-native/pull/5029

Reviewed By: svcscm

Differential Revision: D2793490

Pulled By: vjeux

fb-gh-sync-id: 0115d3ef38cad3e838241937263308827e56f25f
2015-12-29 12:42:26 -08:00
Martín Bigio d1864fa436 Improve error wording
Reviewed By: frantic

Differential Revision: D2793300

fb-gh-sync-id: f3f9403ee332d193b8a6c4a6dfb89d636dc48875
2015-12-29 11:36:32 -08:00
Martin Bigio 041b1c5e52 Add RCTBundleURLProcessor files to Xcode project
Summary: Closes https://github.com/facebook/react-native/pull/5028

Reviewed By: svcscm

Differential Revision: D2793266

Pulled By: martinbigio

fb-gh-sync-id: 6d9ca5bf0391a47d25948ce29282f21c0930db3a
2015-12-29 11:05:42 -08:00
Christopher Chedeau 93f3aa8a82 Merge pull request #5027 from skevy/algolia
[Website] Adding Algolia Doc Search
2015-12-29 09:46:47 -08:00
Adam Miskiewicz cc1bad54ea [Website] First pass at Algolia Doc Search
It’s not yet responsive :(
2015-12-29 12:45:33 -05:00
Adam Miskiewicz 4963225295 [Website] Fixing JS error 2015-12-29 12:45:29 -05:00
Martín Bigio 52b248426e Fix Shrinkwrap & package.json
Reviewed By: vjeux

Differential Revision: D2791699

fb-gh-sync-id: 180687718ded0f4c4078ccf56ca0eb114966c8bf
2015-12-29 09:11:29 -08:00
Brent Vatne c9ccf1fe4c Merge pull request #4984 from sunnylqm/patch-1
add community translation links
2015-12-28 21:06:08 -08:00
Brent Vatne 33d6293c60 Update KnownIssues.md 2015-12-28 17:51:30 -08:00
Martín Bigio e43e2146d9 Gate Hot Loading
Summary:
public

Until we support this fature on OSS, don't show the menu option.

Reviewed By: vjeux

Differential Revision: D2791198

fb-gh-sync-id: 11b66d467c1ab784bbf549b893d0a3abd69e2741
2015-12-28 16:45:07 -08:00
Martín Bigio 4ffb241647 Hot Loading E2E basic flow
Summary:
public

Implement all the necessary glue code for several diffs submitted before to get Hot Loading work end to end:

- Simplify `HMRClient`: we don't need to make it stateful allowing to enable and disable it because both when we enable and disable the interface we need to reload the bundle.
- On the native side we introduced a singleton to process the bundle URL. This new class might alter the url to include the `hot` attribute. I'm not 100% sure this is the best way to implement this but we cannot use `CTLSettings` for this as it's are not available on oss and I didn't want to contaminate `RCTBridge` with something specific to hot loading. Also, we could potentially use this processor for other things in the future. Please let me know if you don't like this approach or you have a better idea :).
- Use this processor to alter the default bundle URL and request a `hot` bundle when hot loading is enabled. Also make sure to enable the HMR interface when the client activates it on the dev menu.
- Add packager `hot` option.
- Include gaeron's `react-transform` on Facebook's JS transformer.

The current implementation couples a bit React Native to this feature because `react-transform-hmr` is required on `InitializeJavaScriptAppEngine`. Ideally, the packager should accept an additional list of requires and include them on the bundle among all their dependencies. Note this is not the same as the option `runBeforeMainModule` as that one only adds a require to the provided module but doesn't include all the dependencies that module amy have that the entry point doesn't. I'll address this in a follow up task to enable asap hot loading (9536142)

I had to remove 2 `.babelrc` files from `react-proxy` and `react-deep-force-update`. There's an internal task for fixing the underlaying issue to avoid doing this horrible hack (t9515889).

Reviewed By: vjeux

Differential Revision: D2790806

fb-gh-sync-id: d4b78a2acfa071d6b3accc2e6716ef5611ad4fda
2015-12-28 16:44:59 -08:00
Martín Bigio 24c908e794 Dependencies for Hot Loading
Reviewed By: vjeux

Differential Revision: D2789683

fb-gh-sync-id: 6c8f5a601040505eb597db3d6f50ec6abaa6cd6e
2015-12-28 16:44:52 -08:00
Martín Bigio 245065be87 Introduce HMR runtime
Summary:
public

Add a very simple runtime for self-accepting modules. The API is the same one as Webpacks's one for now.
The new infra will be end-to-end tested on a follow up diff.

Reviewed By: vjeux

Differential Revision: D2789428

fb-gh-sync-id: c39524814d53c6e4ec9d9d011081ea81089b00b6
2015-12-28 16:44:45 -08:00
Martín Bigio ac9c3c548d Make Packager send fresh modules through HMR interface
Reviewed By: frantic

Differential Revision: D2787951

fb-gh-sync-id: 63c04710b60d99b5161ef9a40b116ba2f72df745
2015-12-28 16:44:38 -08:00
Martín Bigio 90781d3067 Introduce Packager and App HMR WebSocket connection
Summary:
public

This diff adds infra to both the Packager and the running app to have a WebSocket based connection between them. This connection is toggled by a new dev menu item, namely `Enable/Disable Hot Loading`.

Reviewed By: vjeux

Differential Revision: D2787621

fb-gh-sync-id: d1dee769348e4830c28782e7b650d025f2b3a786
2015-12-28 16:44:32 -08:00
Christopher Chedeau f72cfdd9fa Merge pull request #5009 from magus/website-docs
Docs for website setup
2015-12-28 12:58:01 -08:00
Noah Jorgenson dfa541a050 Docs for website setup
- always start website/setup.sh in website
- use setup.sh in website README
2015-12-28 12:47:09 -08:00
sunnylqm 8080583f52 update description about removeClippedSubviews
Summary: Closes https://github.com/facebook/react-native/pull/4998

Reviewed By: svcscm

Differential Revision: D2790689

Pulled By: androidtrunkagent

fb-gh-sync-id: 2db476eabe067fd770b6acce47b62607df348052
2015-12-28 07:56:28 -08:00
sunnylqm 58bbd7bc5b Hint for passing navigator in renderScene
Summary: Closes https://github.com/facebook/react-native/pull/4999

Reviewed By: svcscm

Differential Revision: D2790687

Pulled By: androidtrunkagent

fb-gh-sync-id: af055123b351e37081a37d6153333666a878113c
2015-12-28 06:39:32 -08:00
Genki Takiuchi 315180dd90 Update showcase.js
Added a link to android app of DockMan.
2015-12-28 16:39:50 +09:00
Satyajit Sahoo 23de42ba3f Merge pull request #4206 from mrcasals/fix_docs
Add Switch docs
2015-12-27 21:03:43 +05:30
Tadeu Zagallo f546dc3790 Move WPO to the minify step
Summary:
public

The Whole Program Optimisation (WPO) pass is quite slow, and can make it painful
to iterate when having `dev=false`. Move it to happen only when both `dev=false` and `minify=true`.

Reviewed By: davidaurelio

Differential Revision: D2773941

fb-gh-sync-id: ac5ca4e1286e233c2d175eecdbf7494d5d3497b2
2015-12-27 06:01:30 -08:00
Satyajit Sahoo 739a6d6be1 Merge pull request #4957 from sunnylqm/patch-5
Use a better way to update react-native package
2015-12-26 23:39:55 +05:30
sunnylqm 1eb12b2fbf add community translation links
add community translation links to help spreading react-native!
2015-12-26 23:52:18 +08:00
sunnylqm 019c564941 use a better way to update react-native package 2015-12-26 23:09:14 +08:00
Satyajit Sahoo 28dc5263eb Merge pull request #4983 from sunnylqm/master
Add react-native version output for -v/--version
2015-12-26 20:30:15 +05:30
sunnylqm 1dea58c7df add react-native version output for -v/--version 2015-12-26 22:59:31 +08:00
Satyajit Sahoo 65a9e505bd Merge pull request #4976 from hosainnet/patch-1
Update incorrect WebSocket example in Network.md
2015-12-26 17:12:17 +05:30
Hosain 70c89fa0d2 Update incorrect WebSocket example in Network.md
Using the provided WebSocket example under react-native 0.17, the sample code throws the following error:

"TypeError: ws.on is not a function(…)"

It's listening on ".on" which does not exist, rather than assigning a function to onopen, onmessage, onerror and onclose.

See: https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
2015-12-26 11:18:51 +00:00
Patrick Puritscher bde2f30474 Update templates to ES2015
Summary:
I don't know the reasons, why the templates are written with the `react.createClass`method. Today I see lot's of examples using the **ES6 way**. In my own projects I'm using this way, too.

I removed `use strict`, since *Module code is always strict mode code*, according to the [spec](http://www.ecma-international.org/ecma-262/6.0/#sec-strict-mode-code).

Maybe we should **discuss** the usage of ES6 in the templates.
Closes https://github.com/facebook/react-native/pull/4891

Reviewed By: svcscm

Differential Revision: D2789493

Pulled By: androidtrunkagent

fb-gh-sync-id: 90e70f787017c61dc64cbc9f0beb02331fa749ec
2015-12-25 02:17:30 -08:00
sunnylqm a47fcd44f9 Confusing description about task queue
Summary:
Just can't get the point. What does `the next task that might have been queued up earlier` mean? Earlier than what? `The first task`? Please correct me if I missed something.
Closes https://github.com/facebook/react-native/pull/4970

Reviewed By: svcscm

Differential Revision: D2789390

Pulled By: sahrens

fb-gh-sync-id: 3078fb6cbc7940d26d2dc393ba9448f132721ea2
2015-12-24 19:35:29 -08:00
SangYeob Bono Yu e4272b456e Set encoding to UTF-8 in Android. Fixes #4873
Summary: Closes https://github.com/facebook/react-native/pull/4938

Reviewed By: svcscm

Differential Revision: D2789328

Pulled By: androidtrunkagent

fb-gh-sync-id: c0a0b385be0d832cd052b2495def431cf2c51c8c
2015-12-24 17:18:44 -08:00
Wesley Ellis 36d26c7d3b Don't set height to avoid clipping textinput for XHRExample on android
Summary:
When adding fields to the multipart/form-data Upload section the two `TextInput` fields have a height set that is causing them to be clipped on my Nexus 5 (5.1.1) like so:

![screenshot_2015-09-15-16-50-41](https://cloud.githubusercontent.com/assets/362769/9889808/485a080c-5bca-11e5-9858-6aa51823928b.png)

I've removed the height property, so now it looks like:

![screenshot_2015-09-15-16-50-22](https://cloud.githubusercontent.com/assets/362769/9889806/484f416a-5bca-11e5-9a54-255f0cfc1051.png)
Closes https://github.com/facebook/react-native/pull/2730

Reviewed By: svcscm

Differential Revision: D2789188

Pulled By: androidtrunkagent

fb-gh-sync-id: 4a9ec9bc88d6af8f1db1a6208f138ff05f4eb392
2015-12-24 13:13:36 -08:00
Konstantin Raev 308612314e added emulator support to circle.ci
Summary: Closes https://github.com/facebook/react-native/pull/4911

Reviewed By: svcscm

Differential Revision: D2789142

Pulled By: androidtrunkagent

fb-gh-sync-id: 9fd9520c27fc9acb7b139de6843a71ca3f918249
2015-12-24 10:40:28 -08:00
Adam Miskiewicz c972cce405 Fix InteractionManager-test.js
Summary:
Rather than specifying what not to mock, turn off autoMock for this test suite, and only mock BatchedBridge.

Fixes #4965
Closes https://github.com/facebook/react-native/pull/4967

Reviewed By: svcscm

Differential Revision: D2789079

Pulled By: androidtrunkagent

fb-gh-sync-id: 0d7024f92b630a3c0643ea2e1fde8d673fcdf6e1
2015-12-24 09:25:19 -08:00
Adam Miskiewicz 6cec263ca3 Fix @providesModule not being ignored properly
Summary:
There's quite a bit of code scattered around the packager regarding ignoring the `providesModule` Haste pragma in any file that isn't in `react-native`, `react-tools` or `parse`. There is even a (passing) test case.

However, there's an edge case.

Take, for example, `fbjs`. It has a module inside of it called `ErrorUtils`. `react-relay` requires this file normally, in Common.JS style, by doing `require('fbjs/libs/ErrorUtils')`. But when `react-native` attempts to require `ErrorUtils` using the HasteModule format (in it's JavaScript initialization), it resolves the `fbjs` `ErrorUtils` module, instead of RN's `ErrorUtils`.

This happens, it turns out, because when a module is read (in `Module._read`), it's not caring about whether or not it should pay attention to `providesModule`, and is just assigning the `providesModule` value as the id of the module no matter what. Then when `Module.getName` is called, it will always use that `data.id` that was set, thus creating the wrong dependency tree.

This
Closes https://github.com/facebook/react-native/pull/3625

Reviewed By: svcscm

Differential Revision: D2632317

Pulled By: vjeux

fb-gh-sync-id: efd8066eaf6f18fcf79698beab36cab90bf5cd6d
2015-12-24 08:32:31 -08:00
Satyajit Sahoo 59885911e3 Merge pull request #4958 from mxstbr/update-contributing-docs
Add mention of the license comment in CONTRIBUTING.md
2015-12-24 14:59:31 +05:30
Max 3a76f83f7b Add mention of the license comment in CONTRIBUTING.md
See this comment of PR #4866: https://github.com/facebook/react-native/pull/4866#issuecomment-166612075
2015-12-24 10:27:29 +01:00
Bhuwan Khattar 7035fbc58d getTransformOptionsModulePath
Summary:
Passing around a `getTransformOptions` function doesn't really work with the CLI utils, so I'm changing this to `getTransformOptionsModulePath` instead, which can easily be injected in through `rn-cli.config.js`.

public

Reviewed By: martinbigio

Differential Revision: D2785789

fb-gh-sync-id: c9fdc358cb5d0db27e0d02496e44c013c77f3d5f
2015-12-24 01:02:30 -08:00
Spencer Ahrens 893a54d0cd Add yieldy, chained async task support to InteractionManager
Summary:
Default behavior should be unchanged.

If we queue up a bunch of expensive tasks during an interaction, the default
`InteractionManager` behavior would execute them all in one synchronous loop at
the end the JS event loop via one `setImmediate` call, blocking the JS thread
the entire time.

The `setDeadline` addition in this diff enables an option to only execute tasks
until the `eventLoopRunningTime` is hit (added to MessageQueue/BatchedBridge),
allowing the queue execution to be paused if an interaction starts in between
tasks, making the app more responsive.

Additionally, if a task ends up generating a bunch of additional tasks
asynchronously, the previous implementation would execute these new tasks after
already scheduled tasks. This is often fine, but I want it to fully resolve
async tasks and all their dependencies before making progress in the rest of the
queue, so I added support for `type PromiseTask = {gen: () => Promise}` to do
just this. It works by building a stack of queues each time a `PromiseTask` is
started, and pops them off the stack once they are resolved and the queues are
processed.

I also pulled all of the actual queue logic out of `InteractionManager` and into
a new `TaskQueue` class to isolate concerns a bit.

public

Reviewed By: josephsavona

Differential Revision: D2754311

fb-gh-sync-id: bfd6d0c54e6410cb261aa1d2c5024dd91a3959e6
2015-12-23 16:12:30 -08:00
Martin Konicek f7de9678d4 Update NewIssueGreeting.md 2015-12-24 01:10:21 +01:00
Martin Konicek 09702478f1 Update NewIssueGreeting.md 2015-12-24 01:08:13 +01:00
James Ide e981732dca Merge pull request #4954 from toomass/patch-1
Added CBS Sports Franchise Football to Showcase
2015-12-23 15:36:44 -08:00
toomass 176d45633a Added CBS Sports Franchise Football to Showcase
Adding CBS Sports Franchise Football to the React Native showcase,
2015-12-23 15:35:14 -08:00
Pieter De Baets 4fde511f5c Remove warnings in RCTBridgeTests
Reviewed By: majak

Differential Revision: D2771228

fb-gh-sync-id: dd935094ceeff196c272565bf7efea5112059a1a
2015-12-23 14:42:31 -08:00
Pieter De Baets 0cfe76399c Improve red boxes coming from RCTWebSocketExecutor
Reviewed By: tadeuzagallo

Differential Revision: D2775452

fb-gh-sync-id: b709e0e725ab76468700466b804237eed9158bfd
2015-12-23 13:32:28 -08:00
Pieter De Baets ae2f556c71 Fix scroll-to-top in MarketPlace
Reviewed By: weicool

Differential Revision: D2779979

fb-gh-sync-id: 72982a8f3142fa2cfd60fe4f68bbe1a42fc793c2
2015-12-23 12:40:33 -08:00
Janic Duplessis 3872e5fd93 Use //# instead of //@ for sourceMappingURL comment
Summary:
I had an issue debugging in chrome 48 on windows where source maps didn't work. I tried changing the sourceMappingURL comment to use the //# syntax instead and it fixed the problem.

According to https://developers.google.com/web/updates/2013/06/sourceMappingURL-and-sourceURL-syntax-changed?hl=en the //@ syntax was deprecated for //#.
Closes https://github.com/facebook/react-native/pull/4892

Reviewed By: martinbigio

Differential Revision: D2781046

Pulled By: davidaurelio

fb-gh-sync-id: 3b85f6153692a2e23509029ecf18dc51d35ba921
2015-12-23 11:39:07 -08:00
Christopher Chedeau d1e5fb8144 Update .travis.yml 2015-12-23 10:29:43 -08:00
StefanT a162f72655 Added ColorPropType
Summary:
Problem: https://github.com/facebook/react-native/issues/4708

Solution: Added a ColorPropType that validates the color used by the dev

Notes:
1) I'm working a Win8.1 machine and couldn't build the react-native using the github repo. As soon as I figure that out, I'll probably figure how to run the tests and how to add some for this feature.
2) It's my first pull request. Be gentle :)
Closes https://github.com/facebook/react-native/pull/4866

Reviewed By: bestander, svcscm

Differential Revision: D2783672

Pulled By: nicklockwood

fb-gh-sync-id: ca22aa3c0999188075681b5d20fff0631496e238
2015-12-23 10:08:38 -08:00
Andreas Stütz 7164c755cb Add props for content insets
Summary:
This PR adds a contentInsetStart and a contentInsetEnd property to ToolbarAndroid, allowing offsetting Toolbar contents to different keylines
Closes https://github.com/facebook/react-native/pull/4699

Reviewed By: svcscm

Differential Revision: D2759294

Pulled By: mkonicek

fb-gh-sync-id: f22aa255f07929ad7a99ac7568981d35e848065b
2015-12-23 10:08:33 -08:00
Mike Fowler 134dd57cd6 Update ToolbarAndroid.android.js
Summary:
Updates the documentation for `ToolbarAndroid.android.js` with proper asset system syntax.
Closes https://github.com/facebook/react-native/pull/4908

Reviewed By: svcscm

Differential Revision: D2783113

Pulled By: mkonicek

fb-gh-sync-id: 321d79cb80025d7a065ccf012678ecebccb35bae
2015-12-23 10:08:28 -08:00
Philipp von Weitershausen 1b80007236 Improvements to the packager for very large projects
Summary:
Here are some small fixes for issues we've encountered with very large RN projects (mostly huge dependency trees in `node_modules`).

cc amasad martinbigio
Closes https://github.com/facebook/react-native/pull/4880

Reviewed By: svcscm

Differential Revision: D2782834

Pulled By: mkonicek

fb-gh-sync-id: e316a62b84ba796b80ac819431414ebf27f7b566
2015-12-23 10:08:24 -08:00
Christopher Dro c74d6403f5 Update dev menu to keep track of element inspector.
Summary:
This PR makes the android dev menu consistent with iOS where toggling the inspector will update the button label accordingly.
Closes https://github.com/facebook/react-native/pull/4628

Reviewed By: svcscm

Differential Revision: D2740549

Pulled By: mkonicek

fb-gh-sync-id: 02458d09b84e1592dcf245290ee2bbfb2863060d
2015-12-23 10:08:18 -08:00
Denis Koroskin d0de0767e3 Implement touch intercepting in RCTView
Summary:
public React allows excluding certain elements from touch handling by assigning `PointerEvents` filter to them, such as BOX_NONE - this element will not receive touch but its children will, BOX_ONLY - only this element will receive pointer event and not children, NONE - neither this element nor its children will receive pointer events, and AUTO - pointer events are allowed for both this element and its children.

This diff adds PointerEvents support to flat RCTView. Most of the implementation is copied from ReactViewManager/ReactViewGroup. One small change is made to TouchTargetHelper to ensure that it works correctly with virtual nodes when their parent has PointerEvents set to PointerEvents.BOX_NONE.

Reviewed By: ahmedre

Differential Revision: D2784208

fb-gh-sync-id: 4b831f9b1bfb8014a99d7b33534ae7ff7b4ab498
2015-12-23 10:08:13 -08:00
Nick Lockwood 83c2e0303b Added JS wrappers for ImageStore and ImageEditor
Summary:
public
Added JS wrappers for ImageStore(Manager) and ImageEditor(Manager) so they can be required in the normal way instead of accessed directly via NativeModules.

Reviewed By: dmmiller

Differential Revision: D2773822

fb-gh-sync-id: 6eeafd3f80a87b1b91a04a2aebad6e2fd31b0e98
2015-12-23 10:08:07 -08:00
Christoph Pojer b7e939b38d Update all tests to use Jasmine 2
Reviewed By: vjeux

Differential Revision: D2782581

fb-gh-sync-id: 1d938a2bbdd8670c917c1793234dfdcb29fd4511
2015-12-23 10:08:01 -08:00
Brent Vatne 43ca8a0da4 Add TransformExample to UIExplorerList.ios.js
Summary:
It wasn't in UIExplorerList.ios.js (only in UIExplorerList.js) so it was not being pulled in on the iOS UIExplorer.
Closes https://github.com/facebook/react-native/pull/2196

Reviewed By: majak

Differential Revision: D2780150

Pulled By: nicklockwood

fb-gh-sync-id: f111ec6e29465c4c7f22ca8faec8fc17a96a80cb
2015-12-23 10:07:56 -08:00
John Ku c34ef25ec5 fix incorrect count for layoutAnimation callback
Summary:
fixes #3106
Having -1 would trigger callback one frame early causing it to be ignored on the next frame.
Closes https://github.com/facebook/react-native/pull/3190

Reviewed By: svcscm

Differential Revision: D2783700

Pulled By: mkonicek

fb-gh-sync-id: 02070f70915055aec3b1543a8d553f2680438611
2015-12-23 10:07:51 -08:00
David Aurelio c866a0a6d0 use a filename for the magic unbundle file that will end up in the apk
Reviewed By: martinbigio

Differential Revision: D2774022

fb-gh-sync-id: 5ccafe606e586c55213a10e00013c6feecc9dbcd
2015-12-23 10:07:47 -08:00
Satyajit Sahoo 935cbb76c0 Add a base activity for React Native apps. Fixes #4043
Summary:
Having a base activity allows us to add new features and fixes without having to change the generated `MainActivity` file.

cc mkonicek arbesfeld
Closes https://github.com/facebook/react-native/pull/4827

Reviewed By: bestander

Differential Revision: D2783527

Pulled By: mkonicek

fb-gh-sync-id: 707b82839809ca2e1775f5d3ac022a6d00bcac5a
2015-12-23 10:07:42 -08:00
Johan Lindskogen afbff9bf88 Add support for binary type data (ArrayBuffer)
Summary:
Entirely based on https://github.com/facebook/react-native/pull/1829
I just updated the diff to be compatible with the current master branch.
Closes https://github.com/facebook/react-native/pull/4483

Reviewed By: svcscm

Differential Revision: D2783425

Pulled By: nicklockwood

fb-gh-sync-id: 1cc67c0741cff3b071530877d688f6b8c1061e3f
2015-12-23 10:07:37 -08:00
Brent Vatne 6df737d1e7 Expose in public interface
Summary:
Allows you to do:
```
var { RecyclerViewBackedScrollView } = require('react-native')
```

Rather than:
```
var RecyclerViewBackedScrollView = require('react-native/Libraries/Components/ScrollView/RecyclerViewBackedScrollView')
```

Also...

- Export `ScrollView` by default rather than `UnimplementedView` for `RecyclerViewBackedScrollView` on iOS -- this makes it easier on the user, so you don't have to always do a conditional for: `if IOS then use ScrollView else use RecyclerViewBackedScrollView`. I can't think of a case where this would lead to undesirable behaviour.
- Add `RecyclerViewBackedScrollView` to `MainReactPackage`
- Fix an issue with `MapView` that threw a red-screen when trying to access constants on Android because there is no `MapView` in open source and MapView.js doesn't have a platform extension.
Closes https://github.com/facebook/react-native/pull/4514

Reviewed By: svcscm

Differential Revision: D2753466

Pulled By: mkonicek

fb-gh-sync-id: 0b6e2133975c911d5117e7531cb9093faf314c52
2015-12-23 10:07:34 -08:00
Milen Dzhumerov 15aa146255 Support dashed and dotted border styles on iOS
Summary:
Support dashed and dotted border styles on iOS

public

Reviewed By: nicklockwood

Differential Revision: D2773579

fb-gh-sync-id: f4b99943f38e849602295a86bdb1780c0abbc8e8
2015-12-23 10:07:28 -08:00
Ryan Gomba 4472bb54c9 Use font name for weight if no weight property available
Summary:
Some custom fonts don't return a UIFontWeightTrait that is representative of their actual weight. For example, "AktivGrotesk-Light" and "AktivGrotesk-Medium" both return UIFontWeightTrait 0. While this is of course an issue with the font files themselves, licensing issues can make it difficult to modify them directly. When using these fonts, specifying weights in JS has no effect. I propose that if no weight information is available, we inspect the name of the font for weighting.
Closes https://github.com/facebook/react-native/pull/2113

Reviewed By: svcscm

Differential Revision: D2783383

Pulled By: nicklockwood

fb-gh-sync-id: 2a9caf99b6af74b7013ecc85417322b56c2dea20
2015-12-23 10:07:17 -08:00
Calvin Freitas 7b62dc22ad Add example of getting window dimensions to Dimensions docs.
Summary:
This pull request adds an example to the Dimensions documentations.  Specifically, it gives an example of how to get the height and width from the window.

I'm submitting this documentation because discovering this information cost me some time and my hope is to save other folks time by having this info right in the docs generated from the comments in this file.

Let me know if you need anything else.
Closes https://github.com/facebook/react-native/pull/4211

Reviewed By: svcscm

Differential Revision: D2719953

Pulled By: androidtrunkagent

fb-gh-sync-id: 86d18e3847066211a013a50ce2f2a3e2032f5052
2015-12-23 10:07:12 -08:00
Christoph Pojer 699d748bb3 Upgrade jest to 0.8.2
Reviewed By: vjeux

Differential Revision: D2781488

fb-gh-sync-id: f70c2cab9533ae64a98fc39b6aa9f7c2127d6fde
2015-12-23 10:07:09 -08:00
Christopher Chedeau d9c582ed64 Revert dimensions.js change
To unbreak the sync
2015-12-23 10:06:50 -08:00
Satyajit Sahoo cdb86a6589 Merge pull request #3313 from QuantumInformation/master
Create .editorconfig
2015-12-23 05:58:42 +05:30
Satyajit Sahoo d5f238638a Ask to specify the platform in new issue greeting 2015-12-23 05:34:56 +05:30
Martin Konicek 2d72687c25 Merge pull request #4835 from udnisap/feature-npm-progress-on-init
npm progress shown on react init
2015-12-22 23:18:30 +01:00
Christopher Chedeau 5384c47d9a Revert package.json change 2015-12-22 10:32:20 -08:00
Martin Konicek ae9d2ce35c Add example of getting window dimensions to Dimensions docs
By @calvinf

Closes https://github.com/facebook/react-native/pull/4211
2015-12-22 17:34:17 +01:00
Satyajit Sahoo 1e086605b6 Merge pull request #4913 from genki/patch_dockman
DockMan app added to showcase
2015-12-22 15:11:34 +05:30
Genki Takiuchi 8dab7f46e5 DockMan app added to showcase 2015-12-22 18:36:35 +09:00
James Ide d2fc083e57 Merge pull request #4921 from ravirdv/master
Add 'Koza Gujarati Dictionary' to showcase
2015-12-22 01:09:11 -08:00
Ravi Vagadia fef686fb46 Add 'Koza Gujarati Dictionary' to showcase
Added 'Koza Gujarati Dictionary' to showcase
2015-12-22 14:12:17 +05:30
Christoph Pojer 3ff39870ce Update open source env
Summary:
We weren't exposing a mock for the batched bridge, which resulted in the WebSocket test failure but only in the open source copy of react-native.

public

Reviewed By: voideanvalue, vjeux

Differential Revision: D2782151

fb-gh-sync-id: e896097dd6060bc26963bc4c23db87b7277b3eba
2015-12-21 17:53:31 -08:00
Bhuwan Khattar 6c02d5b14b getTransformOptions based on bundle and module
Summary:
Currently, the app server accepts `transformModulePath` which allows us to use different transformation variants. However, these options persist through the lifetime of the server. So we cannot conditionally transform a module differently for two bundles without restarting the server with different options.

`getTransformOptions` basically allows us to change the options to the transformer at runtime based on the bundle and module being transformed.

These options are also used as a cache key for the transformedSource to ensure that if a file is transformed with different options, caching doesn't cause any inconsistencies.

public

Reviewed By: martinbigio

Differential Revision: D2776399

fb-gh-sync-id: 1e0f34d8fa7f0377fcf81f23eb6f3236bd397d56
2015-12-21 12:15:31 -08:00
Christopher Dro 4cb775286c Add option for both min/max track image.
Summary:
This is a followup to PR #3850 but now separates min/max track images into different properties.
Closes #4476

Add examples for `minimumTrackTintColor`, `maximumTrackTintColor`, `minimumTrackImage`, `maximumTrackImage` to UIExplorer.
Closes https://github.com/facebook/react-native/pull/4586

Reviewed By: svcscm

Differential Revision: D2779193

Pulled By: nicklockwood

fb-gh-sync-id: 0510a0f496816baacdd0d4be0f3cd3a63a5a9865
2015-12-21 10:30:39 -08:00
Andrei Coman 41875eec47 Add cold start events dashboard ctscan test
Reviewed By: AaaChiuuu

Differential Revision: D2765609

fb-gh-sync-id: 1ac6b76dfad2cd01e52908c31e5391897aa2d99f
2015-12-21 10:24:37 -08:00
Martin Kralik 45e0423b4e removed viewWithProps: from RCTViewManager
Summary:
public

An option to create a different view based on passed in props is no longer necessary.
I'm removing it, since the idea of creating a view based on set of initial properies is a bit flawed, since we cannot change it to another view later when props are changed.
(This API really made sense mostly in case where some of the props on component were not meant to be changed later, which is a bit weird limitation on a prop.)

Reviewed By: nicklockwood

Differential Revision: D2769206

fb-gh-sync-id: 190a4f5f31ee84085b1ec945b5d99746f39e8e4b
2015-12-21 10:18:47 -08:00
Martin Kralik d359c01f53 updated css-layout and fixed callsites
Reviewed By: mmahoney, nicklockwood

Differential Revision: D2759669

fb-gh-sync-id: 0b099f9c7d68bbcb62a38d2a3e355dfb6c61eb4e
2015-12-21 10:18:41 -08:00
Gaëtan Renaudeau f940e7c4a6 iOS: Fix Image source={{ uri: null }} to crash
Summary:
this is a recent regression because the error appeared in my app (from 0.16 to 0.17).

```
<Image source={{ uri: null }} />
```

will make an error:

```
[RCTConvert.m:55] Error setting property 'source' of RCTImageView with tag #317: JSON value '<null>' of type NSNull cannot be converted to NSString
```

The solution attached is to check that uri is a NSString and return nil if not (the same way nil is returned in case of invalid url).
Closes https://github.com/facebook/react-native/pull/4902

Reviewed By: svcscm

Differential Revision: D2779789

Pulled By: nicklockwood

fb-gh-sync-id: cfe429ec5e53e63b7b368c06e693424ca8aaa11e
2015-12-21 10:04:31 -08:00
Konstantin Raev a99c5160ee Android Instrumentations tests are ready to be run in github/CI open source environment
Reviewed By: mkonicek

Differential Revision: D2769217

fb-gh-sync-id: 7469af816241d8b642753cca21f6542b971e9572
2015-12-21 09:39:57 -08:00
olivier notteghem 040909904c fix listview inefficiency for tail-fetching scenarios (part1)
Reviewed By: sahrens

Differential Revision: D2775226

fb-gh-sync-id: 13cc895d8cde4ab1baf527ab468d6c7b47158aef
2015-12-21 08:41:31 -08:00
Satyajit Sahoo bfb4ef9ec8 Merge pull request #4889 from qbig/minor-doc-know-issue
[Doc] Alert is now Open Sourced
2015-12-21 13:00:37 +05:30
Qiao Liang cec45957ac remove outdated info 2015-12-21 01:56:07 +08:00
Satyajit Sahoo dabc5fdaa3 Merge pull request #4883 from bdougie/master
adds sample library distinction
2015-12-20 18:17:56 +05:30
Satyajit Sahoo f293958be0 Merge pull request #4872 from qbig/minor-panresponder-doc
[Doc][Android][Minor][PanResponder]add doc for native event in doc
2015-12-20 16:39:37 +05:30
Qiao Liang da850be6f0 add doc for native event in doc 2015-12-20 16:20:56 +08:00
Brian Douglas 574a5851e6 adds sample library distinction 2015-12-19 23:40:09 -08:00
olivier notteghem 174d37c1d9 fix listview inefficiency for tail-fetching scenarios (part2)
Reviewed By: sahrens

Differential Revision: D2775293

fb-gh-sync-id: a18a2fd6f64b5c979267a21ecdac8c3d97d9e007
2015-12-19 17:13:28 -08:00
Nick Lockwood 97fe0eae6b Fix map annotation view layout bug
Summary:
public
When using the custom view option for MapView annotations, the view would sometimes be top-left-aligned on the coordinate instead of centered on it. This fixes that.

Reviewed By: fredliu

Differential Revision: D2776380

fb-gh-sync-id: 793bfd1c3f5b1c923caf031e01b1f6c90e544472
2015-12-19 09:16:26 -08:00
Martin Konicek 04f38d381a Update KnownIssues.md 2015-12-19 02:13:20 +01:00
Martin Konicek 73b2c529ca Add alert docs 2015-12-19 02:05:50 +01:00
Gabe Levi ca17ed3b50 Deploy v0.20.1
Reviewed By: mroch

Differential Revision: D2775901

fb-gh-sync-id: ef4fa402a930e4b5c82513dc5cc05553fa539116
2015-12-18 17:04:29 -08:00
Christoph Pojer b201aeb9f7 Move Cache into DependencyGraph
Reviewed By: martinbigio

Differential Revision: D2758776

fb-gh-sync-id: 15fb232e00267698e386d5422cb70e2091dabcdd
2015-12-18 16:17:42 -08:00
Nick Lockwood ae9aaf81fb Switched over to OSS RCTTextView by default
Reviewed By: javache

Differential Revision: D2697267

fb-gh-sync-id: 275dded8425e2a81598a6055d830bc80b28177ad
2015-12-18 15:52:32 -08:00
glevi@fb.com dc6ca95c3a Fixed Flow errors
Reviewed By: nicklockwood

Differential Revision: D2773940

fb-gh-sync-id: 3d632c57c411ddaf428c1d96d145da62dd115a14
2015-12-18 11:17:29 -08:00
Tadeu Zagallo 57a76c0c01 Fix the sourceMap url on minified bundles
Summary:
public

The minified bundle was always being generated with the `bundle.js` as the source map url.

Reviewed By: martinbigio

Differential Revision: D2773725

fb-gh-sync-id: 02cda95eb172fc373ce4e605418cbfcec22f433d
2015-12-18 11:01:30 -08:00
Jan Kassens 4769bdc013 disable debugging of web views
Reviewed By: andreicoman11

Differential Revision: D2773171

fb-gh-sync-id: 41b1313c2ec3d3a22cf56ee15e452b978adf5a78
2015-12-18 10:52:44 -08:00
Satyajit Sahoo ebfbfd58b7 Merge pull request #4865 from sunnylqm/patch-2
fix a typo of a prop name
2015-12-18 21:50:56 +05:30
sunnylqm 7567a92ca7 fix a typo of a prop name 2015-12-18 23:50:43 +08:00
David Aurelio dfdafdb733 Add magic indicator file to FS unbundles
Reviewed By: tadeuzagallo

Differential Revision: D2773427

fb-gh-sync-id: 8724f5c6e300f456e5a9c434c14e8e74b2792cf9
2015-12-18 06:37:16 -08:00
Martin Konicek 920f71da57 Alert docs
Reviewed By: bestander

Differential Revision: D2773540

fb-gh-sync-id: 8baf08aa6a50955c5c9c806e8b93230086b504af
2015-12-18 06:10:31 -08:00
Martin Konicek b436943a27 Pass the correct URL to Android WebView events
Summary:
`WebView.getUrl()` doesn't return the correct value in WebView callbacks
(e.g. `onPageFinished`).
For example, when navigating to a URL, we report that loading finished,
but still with the old URL. This diff fixes that.

public

Reviewed By: andreicoman11

Differential Revision: D2769597

fb-gh-sync-id: f14bdd405290469ac0a20d0fb89aa2a27d33e758
2015-12-18 03:41:31 -08:00
Martin Konicek 85e8a463f2 Fix typo 2015-12-18 11:37:46 +00:00
Martin Konicek a3d16c0178 Fix gitignore
build/ is too generic, ignores valid paths.

Test plan:
- Built Android UI explorer, ReactAndroid, iOS UIExplorer, iOS React
- Git still ignores build output files correctly
2015-12-18 11:35:30 +00:00
Satyajit Sahoo 657ffba434 Merge pull request #4860 from LukeAvery92/master
added WEARVR android version to showcase
2015-12-18 16:18:08 +05:30
Justin Spahr-Summers f47c79c113 Disable RCTAllocationTests:testUnderlyingBridgeIsDeallocated by hand
fb-gh-sync-id: e584ac013468763b2844112f27af9ef82065bd66
2015-12-18 02:04:27 -08:00
luke.avery 98b57f8fd2 added WEARVR android version to showcase 2015-12-18 09:45:06 +00:00
Nick Lockwood 9901bf20e1 Fixed image source for MapView annotations
Summary:
public
resolveAssetSource was not being called on MapView image any more, resulting in an error when using `require(./imagename.png)` syntax.

Reviewed By: fredliu

Differential Revision: D2772560

fb-gh-sync-id: 0a50a9c3ba727406343a0f47c84941e95df9cadd
2015-12-18 00:50:30 -08:00
Denis Koroskin 56fd138fd3 Dispatch OnLayoutEvent when node gets re-laid out
Reviewed By: ahmedre

Differential Revision: D2768625

fb-gh-sync-id: 4a9862e4c7ada218565fcd87cae25414a0bd5181
2015-12-17 18:46:27 -08:00
Pieter De Baets 5b4e873c68 Guard against invalid JS bundle
Reviewed By: tadeuzagallo

Differential Revision: D2767961

fb-gh-sync-id: 4e9162ddbb2986a56dd129743e316d6e83bb8cb3
2015-12-17 17:26:33 -08:00
Nick Lockwood ba3a5f0eec Removed overly-strict typing in MapViewExample
Summary:
public

While it's nice to see such a masterclass in strict typing with Flow, having it an example serves no useful purpose, and makes the example unnecessarily fragile with respect to API changes.

Reviewed By: gabelevi

Differential Revision: D2769981

fb-gh-sync-id: db5550d5674bf32ef8d331861751a4e6aa1f6536
2015-12-17 16:34:09 -08:00
Denis Koroskin 18d2177989 Implement @ReactProp nativeBackgroundAndroid in RCTView
Reviewed By: ahmedre

Differential Revision: D2768671

fb-gh-sync-id: cb3ae29f1cecfaec103708cbc82cf4b57dc80d1a
2015-12-17 15:05:45 -08:00
Louis Pilfold c9410d0673 Add support for nodenv with xcode
Summary:
Hello!

I'm a fan of the *env family of version managers over the *vm family as I find them simpler and less obtrusive, but it seems that they don't currently work so well with react-native on OSX. See #4645

I've made a small addition to the xcode script that resolves the issue for me. Hopefully others will find this useful too :)

If I've not made the right move here, what is the correct way to get react-native projects building in xcode when the binary is not in the $PATH used by the script?

Cheers,
Louis
Closes https://github.com/facebook/react-native/pull/4801

Reviewed By: svcscm

Differential Revision: D2770726

Pulled By: androidtrunkagent

fb-gh-sync-id: 3b0f9e466549b3012a68c94738d2556173f4c21e
2015-12-17 14:10:36 -08:00
Denis Koroskin ad74dabb68 Turn FlatViewManager into ViewGroupManager
Reviewed By: ahmedre

Differential Revision: D2768667

fb-gh-sync-id: 39298e4033aab5ca8230516f98da252790811f14
2015-12-17 13:31:31 -08:00
Jing Chen 022eac9bd8 Revert D2739392 to fix events dash loading on android
Reviewed By: andreicoman11

Differential Revision: D2770201

fb-gh-sync-id: 6391936f41ba18606637c801645c3177ed1da9ea
2015-12-17 12:54:37 -08:00
Martin Konicek 8cd7730080 Open source Android WebView
Summary:
Keep `WebView.android.js` and `WebView.ios.js`, there are
some small differences. Use the same example on both platforms.

public

Reviewed By: bestander

Differential Revision: D2769446

fb-gh-sync-id: be3d0afcbfd6ddcbaa49f70555063b3081ba03cb
2015-12-17 12:47:39 -08:00
Adam Miskiewicz 8b03b9654d Merge pull request #4846 from qbig/minor-doc-animation
[Doc][Minor] updated deprecated sample code in animation doc
2015-12-17 15:07:10 -05:00
Martin Konicek 3a3af8a385 Open souce the Android Dialog module
Summary:
public

The `DialogModule` requires `android.support.v4.app.FragmentManager` which means
every app that wants to use Dialogs would need to have its Activity extend the legacy
`android.support.v4.app.FragmentActivity`.

This diff makes the `DialogModule` work with both the Support `FragmentManager`
(for AdsManager & potentially other fb apps) and the `android.app.FragmentManager`
(for new apps with no legacy dependencies).

Also wrap the native module in the same `Alert` API that we have on iOS and provide
a cross-platform example. In my opinion the iOS Alert API is quite nice and easy to use.

We still keep `AlertIOS` around because of its `prompt` function which is iOS-specific
and also for backwards compatibility.

Reviewed By: foghina

Differential Revision: D2647000

fb-gh-sync-id: e2280451890bff58bd9c933ab53cd99055403858
2015-12-17 11:11:13 -08:00
Andrew Crowell fe86771a22 Maintain cursor position when TextInput value is changed programmatically
Summary:
This is useful for applying input masks in the onChange handler that you then need to propagate down to the native component. In our case, we add commas as the user enters a price. Without this change, the cursor will end up in the wrong place when the text is transformed in our onChange handler.
Closes https://github.com/facebook/react-native/pull/4716

Reviewed By: svcscm

Differential Revision: D2766236

Pulled By: nicklockwood

fb-gh-sync-id: c4057d77d62507ec9e09eb0242888bf2858d822f
2015-12-17 10:23:26 -08:00
Christopher Chedeau 7f2940e160 Merge pull request #4847 from dabit3/showcase-work-well-on-mobile
fixed showcase to display well on mobile
2015-12-17 09:14:41 -08:00
Nader Dabit 606b914209 fixed showcase to display well on mobile 2015-12-17 10:35:16 -06:00
Qiao Liang 521983480a updated deprecated sample code in animation doc 2015-12-18 00:11:00 +08:00
Nick Lockwood f9dfb90a35 Added ability to use a custom view for MapView annotations
Summary:
public
This diff adds the ability to specify a custom React component (aka view) to be displayed as a MapView pin.

This makes it possible to use remote images (using an <Image/> component), or text (using a <Text/> component), or anything else.

One consequence of this is that MapView can no longer support arbitrary subviews. To place views in front the map, add them to a separate container view.

Reviewed By: tadeuzagallo

Differential Revision: D2764790

fb-gh-sync-id: e16b44e866c2d76c76b0cb35ef9eefbfc68d6719
2015-12-17 06:46:33 -08:00
Satyajit Sahoo 97c75cf5a4 Merge pull request #4839 from LukeAvery92/master
added WEARVR app to showcase
2015-12-17 18:40:06 +05:30
luke.avery f58f3913c0 added WEARVR app to showcase 2015-12-17 11:30:17 +00:00
Pasindu Perera 5da0e135b6 npm progress shown on react init
fixes #3771 for npm 5 and upwards
2015-12-17 14:04:18 +05:30
Pieter De Baets b40631b3cc Remove unused RKAnalyticsCPULogger
Reviewed By: bryceredd

Differential Revision: D2766801

fb-gh-sync-id: c5088c01bbae6a10b17317cc5ec2adcf157f415e
2015-12-16 16:16:28 -08:00
Jorge Maroto 2a241a242b Move Image.resizeMode to component
Summary:
Using resizeMode on Image component returns a warning, it needs to be passed by param
Closes https://github.com/facebook/react-native/pull/4791

Reviewed By: svcscm

Differential Revision: D2767093

Pulled By: spicyj

fb-gh-sync-id: 5ab6a2e949d4c68244b5e890a429aaf1f15118a9
2015-12-16 16:00:36 -08:00
Sameer Rahmani f48961388e FloatFromLeft scene configuration fixed. HorizontalSwipeJumpFromRight…
Summary:
`FloatFromLeft` configuration was wrong. its animation was ok but the swipe back was wrong. for example you had to swipe from left to right for a `back` action which should be swipe from right to left.

`HorizontalSwipeJumpFromRight` is the same as `HorizontalSwipeJump` but for RTL layouts.
Closes https://github.com/facebook/react-native/pull/4815

Reviewed By: svcscm

Differential Revision: D2766720

Pulled By: androidtrunkagent

fb-gh-sync-id: 2b60f2d238a8f8e5b27dbfb307887934be477c81
2015-12-16 15:08:44 -08:00
James Ide d52723efec [README] Add Circle CI status to the README 2015-12-16 14:24:22 -08:00
David Aurelio 12778f3bc6 fork unbundle output format per platform
Summary:
We decided to use different storage formats for android and ios. This diff changes the output format to asset files if the platform is `'android'`.

public

Reviewed By: martinbigio

Differential Revision: D2764739

fb-gh-sync-id: 4a5ac13ba7978112e9424573643e90cef2a1b75f
2015-12-16 12:01:17 -08:00
Mike Armstrong 1be5777265 define out the memory heap jsc functions
Reviewed By: mkonicek

Differential Revision: D2764964

fb-gh-sync-id: 26eff3e29762287f3527de84b146cee90eccd580
2015-12-16 10:45:52 -08:00
Denis Koroskin 42a1620b1e Remove referenced to dropped views
Reviewed By: ahmedre

Differential Revision: D2757310

fb-gh-sync-id: 2ac97476823879d60dac63920f5e7f086872888a
2015-12-16 10:06:31 -08:00
Adam Miskiewicz e5e846ab0a Merge pull request #4826 from Intellicode/master
Add 'Pimmr' to Showcase page
2015-12-16 11:47:36 -05:00
Marc Shilling f48dbbecd6 Fix getCurrentPosition
Summary:
Instantiates the _pendingRequests array before trying to add to it. As it currently stands, we try to add the pending request before the array is created. getCurrentPosition always fails on the first try.
Closes https://github.com/facebook/react-native/pull/4764

Reviewed By: svcscm

Differential Revision: D2764751

Pulled By: androidtrunkagent

fb-gh-sync-id: 411a03ff16d40725d8cc0909607632045eb5a27b
2015-12-16 08:37:33 -08:00
Tom Hastjarjanto a38cd48737 Remove part of query string 2015-12-16 17:32:27 +01:00
Tom Hastjarjanto d131fa0962 Add Pimmr to showcase 2015-12-16 17:30:43 +01:00
Christopher Chedeau 92fb0c44d0 Merge pull request #4825 from qbig/add-more-videos-to-doc
[Doc][Minor] embed more videos
2015-12-16 08:21:38 -08:00
Qiao Liang 0c09f38aa1 embed more videos 2015-12-17 00:09:49 +08:00
Martin Konicek 7e146fac37 Merge pull request #4809 from isair/patch-2
[packager][README] "find can more" -> "can find more"
2015-12-16 14:06:50 +00:00
Martin Konicek f6e6cae2ed Merge pull request #4806 from morenoh149/wrapJS
[docs] Wrap javascript at 80 columns
2015-12-16 14:06:13 +00:00
Elliot Hesp 6ddcef8a23 Update to PullToRefreshViewAndroid docs
Summary:
As mentioned in https://github.com/facebook/react-native/issues/4793 it is not initially clear that the PullToRefreshViewAndroid component needs the `{flex: 1}` style in order for it's child component to function correctly (without examining the example). This will hopefully clear that up.
Closes https://github.com/facebook/react-native/pull/4814

Reviewed By: svcscm

Differential Revision: D2764534

Pulled By: androidtrunkagent

fb-gh-sync-id: ae1c529342e85f8348b4f683e42bf25df5dbea09
2015-12-16 05:17:30 -08:00
Milen Dzhumerov 1304e78136 Inline require ExceptionsManager dependencies
Summary:
Inline require `ExceptionsManager` dependencies which are eagerly loaded on app startup (via `setUpConsole()` which is called from `InitializeJavaScriptAppEngine.js`) even though it's necessary until an exception needs to be reported.

This can save about 30-40ms on an iOS device.

public

Reviewed By: nicklockwood, tadeuzagallo, jspahrsummers

Differential Revision: D2755161

fb-gh-sync-id: d4cbfebf04d861b3a70558346a395d3d3ee87cc6
2015-12-16 04:02:30 -08:00
Tadeu Zagallo 809627379b Rename RCTContextExecutor to RCTJSCExecutor
Summary:
public

Rename the executor to so it actually says something about the implementation.

Reviewed By: jspahrsummers, nicklockwood

Differential Revision: D2759688

fb-gh-sync-id: 5b1ac447e75109fbbc2ee71c804710d9926785aa
2015-12-16 02:51:28 -08:00
Tadeu Zagallo f8c125c64b Remove redundant profile events
Summary:
public

Remove some of the manual markers from the bridge since they will already be added dinamically.

Reviewed By: jspahrsummers

Differential Revision: D2761748

fb-gh-sync-id: 0c726373f9105258feb8230d30453559ed1e6a65
2015-12-16 02:31:29 -08:00
Tadeu Zagallo f5673026f4 Remove expensive args from profile markers
Summary:
public

We were adding all the arguments passed to all the JS functions and callbacks
called over the bridge to marker names, and this args can be huge, meaning a lot
of time spent stringifying arguments and therefore less accurate profile results

Reviewed By: nicklockwood

Differential Revision: D2761809

fb-gh-sync-id: 2d0b5b90cc9e59fe491c108b0360b84ab5fee5b7
2015-12-16 02:13:28 -08:00
Tim Yung 8457a46e43 RN: Install Updated fbjs Downstream
Reviewed By: cpojer

Differential Revision: D2754195

fb-gh-sync-id: 67b628fdfa34da379ab5fdad03b1baaf767c7f21
2015-12-16 01:49:15 -08:00
Dave Miller fcf0431d25 Add support for more Scroll Events to Android
Summary:
public
This adds support for
onScrollBeginDrag/End
onMomentumScrolBegin/End

Reviewed By: astreet

Differential Revision: D2739035

fb-gh-sync-id: 2a49d1df54e5f5cd82008bdb0ffde0881ba39aff
2015-12-16 00:48:28 -08:00
Denis Koroskin 1fabd86048 Add support for custom AndroidViews
Reviewed By: ahmedre

Differential Revision: D2751716

fb-gh-sync-id: 3007cc1eb0303bb2e9eab84836b486e1c2e21021
2015-12-15 20:08:34 -08:00
Baris Sencan 75d81cfb10 [README] "find can more" -> "can find more" 2015-12-15 18:34:19 -08:00
Qiao Liang edc318fcb9 added doc for image resizeMode
Summary:
based on https://github.com/facebook/react-native/blob/62e8ddc20561a39c3c839ab9f83c95493df117c0/ReactAndroid/src/main/java/com/facebook/react/views/image/ImageResizeMode.java  and http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
Closes https://github.com/facebook/react-native/pull/4799

Reviewed By: svcscm

Differential Revision: D2762795

Pulled By: androidtrunkagent

fb-gh-sync-id: 2906c9f334f0afd4d58d4864a2b8472a5a871fc0
2015-12-15 17:34:29 -08:00
Hedger Wang 53d18c83c8 Fix app crash caused by TextInput.
Reviewed By: zjj010104

Differential Revision: D2761644

fb-gh-sync-id: 89241de2f8c84d569ec452871f740a0d655cc95e
2015-12-15 17:32:27 -08:00
Harry Moreno ca263ac8a1 wrap javascript at 80 columns 2015-12-15 19:33:18 -05:00
James Ide 4e2a31685c Merge pull request #4800 from pedro/lugg
showcase Lugg's android app
2015-12-15 16:27:06 -08:00
James Ide 558b00653c Merge pull request #4804 from morenoh149/noteReadableMap
Add link to more info for ReadableMap and ReadableArray
2015-12-15 16:25:37 -08:00
Hedger Wang 67c6afd14b immediatelyResetRouteStack does not update Navigator's title
Summary:
re-render the whole navigation bar while calling immediatelyResetRouteStack
from navigator.

Reviewed By: zjj010104

Differential Revision: D2751922

fb-gh-sync-id: 79bcd1457a96eaf3ca94b81da9bfecbec7f8af46
2015-12-15 15:40:27 -08:00
Tadeu Zagallo e39657aaae RCTPerformanceNow -> nativePerformanceNow
Summary:
public

Rename `RCTPerformanceNow` to `nativePerformanceNow` to be consistent with Android
and the pattern we've been following where the native functions exposed to JSC
are prefixed with `native`.

Also change it to return fractional milliseconds, as the web (`performance.now`)
does: https://developer.mozilla.org/en-US/docs/Web/API/Performance/now

Reviewed By: mikearmstrong001

Differential Revision: D2755287

fb-gh-sync-id: 2acada5673633858ae0bbcdcfae554183e36cb24
2015-12-15 14:52:30 -08:00
Harry Moreno 055d4e29ee Add link to more info for ReadableMap and ReadableArray 2015-12-15 17:37:58 -05:00
Tadeu Zagallo f43e864ff6 Add RCTJSCProfiler to React.xcodeproj
Summary:
public

The `RCTJSCProfiler` was created but hadn't been added to the OSS xcodeproj, add it now.

Reviewed By: mgd

Differential Revision: D2761259

fb-gh-sync-id: 3287bb48c39cd2ff1a73fd03f53f67fe95aaac4b
2015-12-15 13:39:33 -08:00
Felix Oghina 3d4889b5cf return packager URL instead of proxy URL when debugging
Summary:
JS relies on the URL returned by SourceCodeModule to load packager assets. Because we currently return localhost when debugging (because that's the URL Chrome uses), assets don't load when debugging. This makes it so SourceCodeModule still returns the package URL relative to the emulator / device even when debugging.

public

Reviewed By: astreet

Differential Revision: D2759710

fb-gh-sync-id: bab6a88ef044b8b4d971381e3b23c59fa9aa2ed0
2015-12-15 12:17:28 -08:00
Oleg Lokhvitsky 7377fb8baf Fix Navigator.NavigationBar Title interactivity
Reviewed By: hedgerwang

Differential Revision: D2755832

fb-gh-sync-id: 22f937ba271703d49f54acf2e3cdbf1994fad878
2015-12-15 12:02:27 -08:00
Pedro Belo adaadadde8 showcase Lugg's android app 2015-12-15 11:32:56 -08:00
Gaëtan Renaudeau db69004300 Fix events to go through the navigation bar layers
Summary:
Here is a showcase of 2 bugs that are fixed with this PR: touchability of title, touchability of overlapped top-right positionned (under the navbar).

(i'm using the inspector)

![bug](https://cloud.githubusercontent.com/assets/211411/11809475/7b6ba71a-a327-11e5-90cf-cbe58637c447.gif)

I have a navbar with a back button, a Title area with a **Green Circle**, a Right area with nothing inside.
In my Screen View, I've positioned in absolute a **Red Rectangle** just on the top-right corner under the navbar.

I want my **Green Circle** and **Red Rectangle** to be touchable but in current React Native version, this is not possible: as shown in the gif, the 3 LeftButton/Title/RightButton wrapper View are **catching the touch events**. My PR allows events to go through these wrapper View.

**After the fix:**

![nobug](https://cloud.githubusercontent.com/assets/211411/11809590/3b803994-a328-11e5-81f7-c1a3bab45e1b.gif)

Complementary Notes:
- in the case of the Red Rectangle, only the lower part of it i
Closes https://github.com/facebook/react-native/pull/4786

Reviewed By: svcscm

Differential Revision: D2760205

Pulled By: androidtrunkagent

fb-gh-sync-id: 55bb141c8f61ab537ff9e832b65b04cb904dfeb9
2015-12-15 11:04:43 -08:00
Mike Armstrong 7f92aea371 JSC Heap snapshot and capture
Reviewed By: astreet

Differential Revision: D2699681

fb-gh-sync-id: 81617187abec6d9bc1ffe3da02513c6875d0b93b
2015-12-15 10:53:31 -08:00
Nick Lockwood d03d28684a Simplified session management
Reviewed By: javache

Differential Revision: D2355911

fb-gh-sync-id: 57748dd6e5fe2ab6954c23526c2f5e8b46fd526b
2015-12-15 10:51:33 -08:00
Alexander Blom 12bec39da1 Fix cxxbridge usage of SettableFuture
Reviewed By: mhorowitz

Differential Revision: D2759591

fb-gh-sync-id: 920b4a5c934c1bd9d196ccbeec0799a54001b85d
2015-12-15 10:43:36 -08:00
Dave Miller e6d498b99b Fix case where measure is called with a view that is now off screen (and removed from clipping)
Reviewed By: astreet

Differential Revision: D2760119

fb-gh-sync-id: cf2723ddc94de64bba961e9390ce54f39ca4651f
2015-12-15 10:43:29 -08:00
Adam Miskiewicz 5ebef01e9b Merge pull request #4795 from satya164/intent-docs
Add docs for 'IntentAndroid'
2015-12-15 13:01:56 -05:00
Adam Miskiewicz 81ff8996cd Merge pull request #4797 from Kureev/chore/add-docs-linking-automation-section
Add a section about linking process automation using rnpm
2015-12-15 13:01:42 -05:00
Satyajit Sahoo 958b86c729 Merge pull request #4796 from jutaz/bugfix/typos-in-docs
Bugfix - Typos in ./docs
2015-12-15 23:31:17 +05:30
Kureev Alexey 79799af418 Reword section description 2015-12-15 18:45:08 +01:00
Justas Brazauskas 0e8b207cc3 Bugfix - Typos
Summary:
Fixed few typos in `./Examples` and `./Libraries` folders.
Closes https://github.com/facebook/react-native/pull/4788

Reviewed By: svcscm

Differential Revision: D2759918

Pulled By: androidtrunkagent

fb-gh-sync-id: d692b5c7f561822353e522f9d4dfde7e60b491cf
2015-12-15 09:09:32 -08:00
Kureev Alexey 7927f1eee5 Add a section about linking process automation using rnpm 2015-12-15 17:55:38 +01:00
Felix Oghina 7871abf907 crash gracefully on fatal js errors
Reviewed By: AaaChiuuu

Differential Revision: D2739392

fb-gh-sync-id: bcc1171c076a4f6425184e7b9ffed204f5ce6f0e
2015-12-15 08:20:32 -08:00
Justas Brazauskas 264ece1f72 Fix typos in ./docs 2015-12-15 18:13:25 +02:00
Satyajit Sahoo 2f32cccce7 Add docs for 'IntentAndroid' 2015-12-15 21:20:40 +05:30
David Aurelio 4cb04315e7 Unbreak console reassignment on iOS7
Summary:
public
Unbreaks console assignment on iOS7 introduced in #3322

Reviewed By: alexeylang

Differential Revision: D2759689

fb-gh-sync-id: 28cccfdf1123245732fa5ba0337ee8d7bb43c822
2015-12-15 07:46:31 -08:00
Nick Lockwood 9f48c004ba Added setChildren() function
Summary:
public
Most of the time - especially during app startup - when we call UIManager.manageChildren(), we are actually just adding the first set of children to a newly created view.

This case is already optimized for in the JS code, by memoizing index arrays at various sizes, but this is not especially efficient since it is still sending an array of indices with each call that could be easily inferred on the native side instead.

I've added a hybrid native/JS optimization that improves the performance for this case. It's not a huge win in terms of time saved, but benchmarks show improvements in the ~1% range for several of the app startup metrics.

Reviewed By: tadeuzagallo

Differential Revision: D2757388

fb-gh-sync-id: 74f0cdbba93af2c04d69b192a8c2cc5cf429fa09
2015-12-15 06:56:31 -08:00
Satyajit Sahoo eb188c8d98 Add deep linking support to IntentAndroid
Summary:
Add a method to handle URLs registered to the app,

```js
IntentAndroid.getInitialURL(url => {
    if (url) {
        // do stuff
    }
});
```

Refer - http://developer.android.com/training/app-indexing/deep-linking.html#adding-filters

The API cannot be same as the iOS API (i.e. as a constant), as the activity is not availble at the time of module initialization. Moreover, multiple activties can share the same bridge instance, and the activity itself is not a constant. Hence the initialURL can change.
Closes https://github.com/facebook/react-native/pull/4320

Reviewed By: svcscm

Differential Revision: D2759667

Pulled By: foghina

fb-gh-sync-id: b725231ae1401fa5565d444eee5a30d303e263ae
2015-12-15 06:27:27 -08:00
David Aurelio cf94a9ea95 Avoid copying the JS bundle unnecessarily
Summary:
public
When forwarding the unbundle code to the bridge, we’re passing the code by value.
This changes the affected method to take it by reference.

Reviewed By: astreet

Differential Revision: D2759569

fb-gh-sync-id: 508d4f4d56bcbdd5a7df5610cf9040121f8878ef
2015-12-15 05:47:31 -08:00
Nick Lockwood f7edcda5d7 Deprecated RCTDidCreateNativeModules notification
Summary:
public

Thanks to the new lazy initialization system for modules, `RCTDidCreateNativeModules` no longer does what the name implies.

Previously, `RCTDidCreateNativeModules` was fired after all native modules had been initialized. Now, it simply fires each time the bridge is reloaded. Modules are created on demand when they are needed, so most of the assumptions about when `RCTDidCreateNativeModules` will fire are now incorrect.

This diff deprecates `RCTDidCreateNativeModules`, and adds a new notification, `RCTDidInitializeModuleNotification`, which fires each time a module a new module is instantiated.

If you need to access a module at any time you can just call `-[bridge moduleForClass:]` and the module will be instantiated on demand. If you want to access a module *only* after it has already been instantiated, you can use the `RCTDidInitializeModuleNotification` notification.

Reviewed By: tadeuzagallo

Differential Revision: D2755036

fb-gh-sync-id: 25bab6d5eb6fcd35d43125ac45908035eea01487
2015-12-15 05:43:33 -08:00
Tadeu Zagallo 2d61dfd9c1 Replace private bridge categories with private header
Summary:
public

A lot of the core modules have to use private methods in the bridge, specially
since the `RCTBatchedBridge` interface is never exposed. That was leading to a
lot of different private bridge categories spread across different modules,
which makes harder to identify which modules are affected by private API changes.

Replace all the categories with a single private header.

Reviewed By: nicklockwood

Differential Revision: D2757564

fb-gh-sync-id: 793158b9082d542b74a6094ed0db4d5dc3a88f78
2015-12-15 05:40:27 -08:00
Tadeu Zagallo 03a0e4ee2b Use JSC block API
Summary:
public

Clean up the `RCTContextExecutor` a little bit by converting the exposed hooks to use the ObjC API.

Reviewed By: nicklockwood

Differential Revision: D2757363

fb-gh-sync-id: c6f5f53c5c1adb78af1cdb449268b6b3cc9740e8
2015-12-15 05:33:29 -08:00
Martin Kralik c46936a00d updated css-layout and fixed callsites
Reviewed By: foghina

Differential Revision: D2757965

fb-gh-sync-id: 061ff38ae59783edb36ff66516866e4a22fd6e25
2015-12-15 04:49:29 -08:00
Milen Dzhumerov 2ac0157a24 Improve error message when profiler data cannot be uploaded
Summary:
Improve error message when profiling data cannot be sent to the packager

public

Reviewed By: tadeuzagallo

Differential Revision: D2749489

fb-gh-sync-id: 26bd56d05be5f3579e45c2407974dd2b885460fc
2015-12-15 03:58:28 -08:00
Milen Dzhumerov 0fe50055c4 Introduce JSC profiler API
Summary:
Extract JSC profiler API which can now be used even if profiler is unavailable.

public

Reviewed By: tadeuzagallo

Differential Revision: D2749217

fb-gh-sync-id: 1ffa6f37323ea0ddbda3fdacfdf8a9b360185b2e
2015-12-15 03:12:32 -08:00
Huang Yu f946d14fcc clean four MapView lint warnings
Summary:
clean four MapView lint warnings.
Closes https://github.com/facebook/react-native/pull/4778

Reviewed By: svcscm

Differential Revision: D2759161

Pulled By: androidtrunkagent

fb-gh-sync-id: c5b028d0400c5084436d636d3bf9a0072fa09571
2015-12-14 22:47:29 -08:00
Christopher Chedeau a539f137b3 Merge pull request #4776 from sunnylqm/patch-14
geolocation is now opensourced on android
2015-12-14 19:43:34 -08:00
zjlovezj 484fe9155b add backfaceVisibility to ImageStylePropTypes
Summary:
to eliminate to yellow box.
ViewStylePropTypes also has this prop.
https://github.com/facebook/react-native/blob/0a3694ce48be8991839c42aab2586202a12d43aa/Libraries/Components/View/ViewStylePropTypes.js
Closes https://github.com/facebook/react-native/pull/4765

Reviewed By: svcscm

Differential Revision: D2754433

Pulled By: androidtrunkagent

fb-gh-sync-id: 4bb53213aea6f7d629b31e0e4d4a46ae980ff219
2015-12-14 18:57:31 -08:00
sunnylqm 934f4de16e geolocation is now opensourced on android 2015-12-15 10:10:20 +08:00
Brent Vatne 7af12a1c5c [Showcase] Promote MovieLaLa to featured 2015-12-14 17:19:33 -08:00
James Ide 43be6e14f5 Merge pull request #4774 from isair/patch-1
[Showcase] Add `Movie Trailers by MovieLaLa`
2015-12-14 15:39:26 -08:00
Baris Sencan 328bb59076 [Showcase] Add Movie Trailers by MovieLaLa 2015-12-14 14:14:36 -08:00
James Ide eb9a03e47a Merge pull request #4772 from dabit3/native-modules-docs-fix
fixed documentation error for native modules docs page
2015-12-14 13:26:01 -08:00
Nader Dabit e2b035acf2 fixed documentation error for native modules docs page 2015-12-14 15:10:46 -06:00
Tadeu Zagallo 230c180a12 Add profiler hooks to views
Summary:
public

The profiler currently only hooks into bridge modules, extend it so we also
log method calls on views.

Reviewed By: jspahrsummers

Differential Revision: D2755213

fb-gh-sync-id: e8ff224eec08898340d05e104772ff1626538bd5
2015-12-14 13:08:29 -08:00
Jack Hsu acf977a481 Exposes setNativeProps method for PullToRefreshViewAndroid
Summary:
Keep `PullToRefreshViewAndroid` consistent with other components that allow optimization through `setNativeProps`.

Also updates the example to make sure it is working.
Closes https://github.com/facebook/react-native/pull/4771

Reviewed By: svcscm

Differential Revision: D2756033

Pulled By: androidtrunkagent

fb-gh-sync-id: a1f483a3809f01bca06a6a09498f9a89fd65f572
2015-12-14 12:58:31 -08:00
James Ide 7028206b97 Keep the original console as global.originalConsole
Summary:
If a console exists, keep the original as `global.originalConsole` before overwriting `global.console` with a polyfill. This matches what we do for XHR, fetch, and some other libraries.
Closes https://github.com/facebook/react-native/pull/3322

Reviewed By: svcscm

Differential Revision: D2755873

Pulled By: androidtrunkagent

fb-gh-sync-id: 4c23f807b73b79cfa9fbbd4e2814d76eecabd596
2015-12-14 12:30:31 -08:00
Andrei Coman dbc35b69fa Make it possible to set DB size
Reviewed By: oli

Differential Revision: D2749219

fb-gh-sync-id: 2165ed8a89c48687ad82cd1facf2b875d31ca997
2015-12-14 12:10:32 -08:00
James Ide bfab7cdcd9 Merge pull request #4318 from sunnylqm/patch-10
Give more details about js require.
2015-12-14 11:29:55 -08:00
Christoph Pojer 537598d705 Move FileWatcher into node-haste
Reviewed By: davidaurelio

Differential Revision: D2752711

fb-gh-sync-id: e656a3019b95c7677d5b27e74dc921ef62ba5c83
2015-12-14 11:29:31 -08:00
Martin Konicek e35469e1db Upgrade fbjs-haste to 0.3.4
Summary:
public

Attempt to fix https://travis-ci.org/facebook/react-native/builds

Steps:

    cd .../react-native-github
    npm install fbjs-haste@0.3.4
    # manually update npm-shrinkwrap.json (normally done using npm shrinkwrap --dev but the shrinkwrap file is out of date)

Reviewed By: zpao

Differential Revision: D2755259

fb-gh-sync-id: c5237adcc14e9e21cc09dfad765eff16ddf28484
2015-12-14 11:16:32 -08:00
Martin Konicek 4626de9ba3 Update fbjs-haste
Reviewed By: bestander

Differential Revision: D2754889

fb-gh-sync-id: 5484fbd1079b1434b2853179e663eff30d03b82d
2015-12-14 09:06:33 -08:00
Tadeu Zagallo b6fce4ad52 Prevent the profiler from hooking into stret methods
Summary:
public

In order to handle methods that returns struct in i386 and x86_64 we'd need to implement special methods (like objc_msgSend_stret),
but we'll just bail out for now, since there's very few usages.

Reviewed By: jspahrsummers

Differential Revision: D2754732

fb-gh-sync-id: d3585d244633d918770ef79a52dee9cdf87a53da
2015-12-14 07:12:32 -08:00
Brent Vatne c8108bdbe1 Fixed controlled component on iOS and remove unnecessary code
Summary:
Closes #4290

`mostRecentEventCount` was always being set after `text` on iOS, so let's be really explicit about the order here as we were doing on Android: always call `setNativeProps` providing the `mostRecentEventCount` before we call `onChange` or `onChangeText`.

I also ripped out storing `mostRecentEventCount` in the state, which isn't necessary since we're always doing it through `setNativeProps`.
Closes https://github.com/facebook/react-native/pull/4588

Reviewed By: svcscm

Differential Revision: D2754565

Pulled By: nicklockwood

fb-gh-sync-id: a1401f39b4e19248095517c2a3503cd2af59fa47
2015-12-14 06:46:31 -08:00
Krzysztof Magiera 2f56c0c90a Upgrade gradle to 2.9
Summary:
public

New version of gradle has a better support for zipTree copy task. Since we have a few of those including one for boost library which used to take very long, after upgrading we no longer need 6a656a1.

Also seems like many improvements made to gradle since 2.2 made it perform better on incremental builds (around 10% improvement on my laptop).

Command used to upgrade gradle version:

    gradle wrapper --gradle-version 2.9

Some of the plugins require updating as well since the previous versions were incompatible with gradle 2.9.

Closes https://github.com/facebook/react-native/pull/4462

Reviewed By: mkonicek

Differential Revision: D2754786

Pulled By: mkonicek

fb-gh-sync-id: 92c07d29aec6d5b4b2c55205b42b135c4d9479a9
2015-12-14 06:37:34 -08:00
Martin Konicek 1d71457934 Update AndroidBuildingFromSource.md 2015-12-14 14:32:25 +00:00
Martin Konicek 73e9bc27d4 Merge pull request #4745 from aknuds1/typo
Fix message when react-native init encounters existing directory.
2015-12-14 13:39:25 +00:00
Martin Konicek b33e091765 Update Releases.md 2015-12-14 12:55:09 +00:00
Satyajit Sahoo c6dbff6ae5 Merge pull request #4769 from jondot/master
Adding Due to showcase (Apps)
2015-12-14 17:49:13 +05:30
Dotan Nahum ff58629640 Alphabetical ordering 2015-12-14 14:13:58 +02:00
Dotan Nahum b8f3730d8d Adding Due to showcase (Apps) 2015-12-14 13:22:21 +02:00
sunnylqm a1077ba6e9 remove the undocumented @provideModules
Using relative file path
2015-12-14 15:10:00 +08:00
Huang Yu 4373aa6822 fix animated lint warnings
Summary:
fix lint warnings under 'Libraries/Animated' directory
Closes https://github.com/facebook/react-native/pull/4448

Reviewed By: svcscm

Differential Revision: D2753880

Pulled By: androidtrunkagent

fb-gh-sync-id: c6619c636ff67a74e6f063f70526327d756271db
2015-12-13 11:45:28 -08:00
Satyajit Sahoo 90be04610c Merge pull request #2973 from corbt/fix_docs
change native-modules link to work on gh-pages
2015-12-14 00:35:42 +05:30
Martin Konicek 1280df0464 Update Releases.md 2015-12-13 14:34:57 +00:00
Martin Konicek 2f30acb5bc Update Releases.md 2015-12-13 14:33:52 +00:00
Martin Konicek 476b0af510 Update NewIssueGreeting.md 2015-12-13 14:14:09 +00:00
Martin Konicek a5c0fd3272 Update Releases.md 2015-12-13 12:06:43 +00:00
Martin Konicek 9cf2edb458 Update Releases.md 2015-12-13 11:57:28 +00:00
James Ide a70be679f6 Merge pull request #4752 from sunnylqm/patch-12
update the way of using module Dimensions
2015-12-13 01:35:35 -08:00
sunnylqm 331fb61376 update the way of using module Dimensions 2015-12-13 17:29:18 +08:00
James Ide de677205ec [Website] Add PullToRefreshViewAndroid to the web docs 2015-12-12 20:30:39 -08:00
WanderWang 2c7409b9ee improve exception message when we can't find a file
Summary:
in ```fastfs.js ``` when ```getFile()``` got a exception it will print ``` Unable to find file with path: null ``` in terminal .

It's  confused
Closes https://github.com/facebook/react-native/pull/4737

Reviewed By: svcscm

Differential Revision: D2752888

Pulled By: androidtrunkagent

fb-gh-sync-id: a366da1eea27c691248dcb17019f4462a639ea70
2015-12-12 17:28:33 -08:00
Alexander Blom 01e291751a Use callOnQueue() instead of latch
Reviewed By: astreet

Differential Revision: D2717989

fb-gh-sync-id: 9770e773015838301f6e9520a1ca7a283f647de7
2015-12-12 14:33:17 -08:00
Alexander Blom 8de172e92d Refactor so that mBridge can not be null and can be final
Reviewed By: astreet

Differential Revision: D2717983

fb-gh-sync-id: 969499eb062d54e0271f910c06c4539e2cb20030
2015-12-12 14:33:12 -08:00
Christopher Chedeau f2d84456e5 Merge pull request #4687 from vjeux/code_analysis_bot
Code Analysis Bot
2015-12-12 13:56:15 -08:00
Billy Lamberta d290723845 Add the npm global prefix to PATH.
Summary:
Related to issue https://github.com/facebook/react-native/issues/4034#issuecomment-164134543.
The npm global install path may be set to a non-standard location. `react-native` is assumed to be in `PATH` but doesn't take into account the user's environment so building in Xcode fails:
~~~
react-native bundle --entry-file index.ios.js --platform ios --dev true --bundle-output [...]

../node_modules/react-native/packager/react-native-xcode.sh: line 48: react-native: command not found
Command /bin/sh failed with exit code 127
~~~
This fix uses `npm prefix -g` to get the bin location and adds it to `PATH`.
Closes https://github.com/facebook/react-native/pull/4749

Reviewed By: svcscm

Differential Revision: D2753215

Pulled By: androidtrunkagent

fb-gh-sync-id: 964d1a71ac1bf204545a594a9fa433a7bc367f35
2015-12-12 13:08:31 -08:00
Qiao Liang c60b581327 fix POST/PUT/PATCH has no body redbox, when xhr is used without body
Summary:
… by passing a empty body
fix #3371
referring to https://github.com/square/okhttp/pull/1559/files
Closes https://github.com/facebook/react-native/pull/4518

Reviewed By: svcscm

Differential Revision: D2753086

Pulled By: lexs

fb-gh-sync-id: 5c486b127b194b29cd0f8a2cb9a1ef19449109e3
2015-12-12 09:11:30 -08:00
Arve Knudsen 70b695922e Fix typo 2015-12-12 13:10:36 +01:00
James Ide c2b38c9113 Merge pull request #4744 from zjlovezj/patch-2
fix sample code error by removing the extra chars
2015-12-12 04:06:06 -08:00
zjlovezj e6c8848c07 fix sample code error by removing the extra chars
fix sample code error by removing the extra ',' and ')'
2015-12-12 19:21:31 +08:00
James Ide 23e0945c93 Merge pull request #4742 from aljs/patch-1
Add 'Thai Tone' to showcase
2015-12-12 02:39:29 -08:00
Alex Ledak 0ad6f5ebf1 Add 'Thai Tone' to showcase 2015-12-12 17:10:43 +07:00
Huang Yu e0c724a4c3 fix lint warnings from DrawerLayoutAndroid
Summary:
fix 3 lint warnings from DrawerLayoutAndroid.android.js
Closes https://github.com/facebook/react-native/pull/4451

Reviewed By: svcscm

Differential Revision: D2715067

Pulled By: mkonicek

fb-gh-sync-id: 9cd0158087c8533950cdab85fdbfb137fcca20e4
2015-12-11 23:05:27 -08:00
Christopher Dro e4fe557089 Fix all warnings for missing keys.
Summary:
I had to go through each component while debugging for another issue and decided to clean these warnings up along the way.
Closes https://github.com/facebook/react-native/pull/4653

Reviewed By: svcscm

Differential Revision: D2752740

Pulled By: androidtrunkagent

fb-gh-sync-id: 94da8ad693cae04e353f33f540c15214f6f3e7d8
2015-12-11 21:23:29 -08:00
Mark Oswald bd3cb3ae1d add quotes to handle pathnames with spaces in it
Summary:
fixes #3135
Closes https://github.com/facebook/react-native/pull/4369

Reviewed By: svcscm

Differential Revision: D2752708

Pulled By: androidtrunkagent

fb-gh-sync-id: ada11eecb6bd5b8519e30636d18aa6b8962198aa
2015-12-11 20:33:28 -08:00
Sebastian Markbage 2696f9440e enqueueJSCall instead of global dynamic require
Summary:
BridgeProfiling.setEnabled used a one off eval. Let's use the bridge to do this like everything else. This is already what the Android equivalent is doing.

public

Reviewed By: tadeuzagallo

Differential Revision: D2745059

fb-gh-sync-id: 5b633365b8cfc8abc6b80255e82ef3053ead9b50
2015-12-11 16:41:33 -08:00
Jan Kassens 836ba8fb38 BridgeProfiler: add sync Relay methods
Reviewed By: sahrens

Differential Revision: D2721549

fb-gh-sync-id: af6a83f8505a83e323af3992d9552654ea644324
2015-12-11 11:50:30 -08:00
Martin Konicek f168fc335e Don't insta-crash when network permission is missing
Summary:
public

Rename the `ConnectivityModule` to `NetInfoModule` (there's
no need to name things differently in two places). Add exception
handling to the module in case the network permission is missing.

When the permission is missing, throw an actionable error from
all calls to `NetInfo`: http://imgur.com/zVIMxOV

Without this change, the app immediately crashes on startup:
`getCurrentConnectionType` is called from `Activity.onResume`.

Reviewed By: andreicoman11, bestander

Differential Revision: D2749230

fb-gh-sync-id: 1b752d21a8f28ffeaf60a3322cb76f869dc70a14
2015-12-11 10:29:23 -08:00
Christopher Chedeau 402fd06725 Introduce code-analysis bot 2015-12-11 08:44:12 -08:00
Satyajit Sahoo 4b800e6ce1 Merge pull request #4732 from sharathprabhal/patch-1
Add 'Eat or Not' to showcase
2015-12-11 21:58:41 +05:30
Martin Konicek 339c114b96 Update Releases.md 2015-12-11 16:15:14 +00:00
Martin Konicek 9443a4e65f Update Releases.md 2015-12-11 16:14:31 +00:00
Martin Konicek eb3152a397 Update Releases.md 2015-12-11 15:44:13 +00:00
Mike Armstrong 1a94698658 expose systemclock time to JS
Reviewed By: tadeuzagallo

Differential Revision: D2748749

fb-gh-sync-id: 4d1dbae61f69a07b7106cb57caff03cadfb85776
2015-12-11 07:32:30 -08:00
Sharath Prabhal 7003f8dbeb Add 'Eat or Not' to showcase 2015-12-11 10:09:31 -05:00
Martin Kralik a86171a482 exposed a way to trigger layout on the uimanager
Summary:
A component can be backed by native "node" that can change its internal state, which would result in a new UI after the next layout. Since js has no way of knowing that this has happened it wouldn't trigger a layout if nothing in js world has changed. Therefore we need a way how to trigger layout from native code.

This diff does it by adding methods `layoutIfNeeded` on the uimanager and `isBatchActive` on the bridge.
When `layoutIfNeeded` is called it checks whether a batch is in progress. If it is we do nothing, since at it's end layout happens. If a batch is not in progress we immidiately do layout.

I went with the easiest way how to implement this - `isBatchActive` is a public method on the bridge. It's not ideal, but consistent with other methods for modules.
public

Reviewed By: jspahrsummers, nicklockwood

Differential Revision: D2748896

fb-gh-sync-id: f3664c4af980d40a463b538e069b26c9ebad6300
2015-12-11 06:59:30 -08:00
Adam Miskiewicz 302317c250 Merge pull request #4731 from tp/testing-typo
Fix typo in Testing.md
2015-12-11 09:41:11 -05:00
Timm Preetz 73daa9595b Fix typo in Testing.md 2015-12-11 15:22:57 +01:00
Tadeu Zagallo 3549ff049c Rename BridgeProfiling to Systrace for consistency
Summary:
public

Rename the `BridgeProfiling` JS module to `Systrace`, since it's actually just
an API to Systrace markers.

This should make it clearer as we add more perf tooling.

Reviewed By: jspahrsummers

Differential Revision: D2734001

fb-gh-sync-id: 642848fa7340c545067f2a7cf5cef8af1c8a69a2
2015-12-11 03:53:19 -08:00
Justin Spahr-Summers 44cbec28bd Work around race condition in bridge deallocation
Reviewed By: tadeuzagallo, nicklockwood

Differential Revision: D2748820

fb-gh-sync-id: 40084ab4bcc606ccbde8b71c2389e602c4dd8e22
2015-12-11 01:45:29 -08:00
Sebastian Markbage ae912a83d7 Codemod Internal Unit Tests and Remove Require Fallback
Summary:
MessageQueue no longer falls back to require. To do this we need to register all the modules in our internal unit tests. I did this codemod manually.

This is a bit unfortunate boilerplate but there are very few of these modules outside of unit tests. This boilerplate is only a hassle for these test files.

public

Reviewed By: spicyj

Differential Revision: D2736397

fb-gh-sync-id: 59fa4c4e75c538f3577bc9693b93e1b7c4d4d233
2015-12-10 23:24:29 -08:00
Dave Sibiski b78b8f6cab Fixes grammar in comment
Summary: Closes https://github.com/facebook/react-native/pull/4726

Reviewed By: svcscm

Differential Revision: D2748499

Pulled By: androidtrunkagent

fb-gh-sync-id: cbc6bc7b6692191bc68b8e1782897d17bc01bfa3
2015-12-10 22:52:32 -08:00
Christoph Pojer a04e2bed54 Update node-haste from upstream
Reviewed By: zpao

Differential Revision: D2747183

fb-gh-sync-id: f1b963b19cb6ea16945b16370d1bee26110bb329
2015-12-10 18:13:28 -08:00
James Ide f1e32aee6f Merge pull request #4722 from cbinners/master
Added Accio app to website showcase.
2015-12-10 16:02:55 -08:00
Cory Binnersley 6e6a92eeee Added Accio Delivery App to website showcase. 2015-12-10 15:36:52 -08:00
James Ide d3cbe8ff03 Merge pull request #4721 from dabit3/spelling-corrections
fixed various spelling errors
2015-12-10 15:31:28 -08:00
Nader Dabit 201a3d010a fixed various spelling errors 2015-12-10 17:27:46 -06:00
glevi@fb.com 53825f5206 Fix errors in fbobjc
Reviewed By: nicklockwood

Differential Revision: D2745907

fb-gh-sync-id: f4687313ad817bb1d5a56bb766d8efa4a2926da7
2015-12-10 13:56:44 -08:00
Brent Vatne c5c41d9d4c Update Animations.md - LayoutAnimation is no longer iOS only 2015-12-10 13:55:32 -08:00
Leland Richardson 3eb32cbb0e Animated.multiply and Animated.add to combine animated values
Summary:
This PR was created in response to feedback from an older PR: https://github.com/facebook/react-native/pull/2045

The `.interpolate()` API of Animated values is quite effective to accomplish transformations based on a single animated value, but currently there is a class of animations that is impossible: animations being driven by more than one value.

Usage would be like the following:

```js
getInitialState: function() {
  return {
    panY: new Animated.Value(0),
    offset: new Animated.Value(0),
  };
}
```

```js
var scale = Animated.add(panY, offset).interpolate({
  inputRange: [...],
  outputRange: [...],
});
```

I have a real use case for this, and I cannot think of any way to accomplish what I need without an API like this.

The animation I am trying to accomplish is I have a PanResponder being used to detect both x and y panning. The y-axis panning drives a 3d sroll-like animation (which we can call `panY`), and the x-axis panning is driving a "swipe-to-remove" animation (
Closes https://github.com/facebook/react-native/pull/4395

Reviewed By: svcscm

Differential Revision: D2731305

Pulled By: vjeux

fb-gh-sync-id: 3b9422f10c7e7f3b3ecd270aeed8ea92315a89e9
2015-12-10 13:30:27 -08:00
Thomas Parslow 3cfcd401c1 Support onLayout and onContentSizeChange attributes on ListView
Summary:
Docs say they're supported and presumably they should work exactly as for ScrollView but currently they are intercepted by the ListView
Closes https://github.com/facebook/react-native/pull/4712

Reviewed By: svcscm

Differential Revision: D2745080

Pulled By: vjeux

fb-gh-sync-id: 531907f03ae46d5200003cdb335c10b40c7d3bed
2015-12-10 12:46:31 -08:00
Nick Lockwood ac783a8a1b Fix retain cycle
Summary:
public

This fixes the following circular reference:

RCTComponentData
-> _bridge -> RCTBatchedBridge
-> _moduleDataByName -> __NSDictionaryI
-> RCTModuleData
-> _instance -> RCTUIManager
-> _componentDataByName -> __NSDictionaryI
-> RCTComponentData

Reviewed By: javache

Differential Revision: D2744742

fb-gh-sync-id: c282786f4dfb550185bc03d3e5e3d03048664c21
2015-12-10 12:14:34 -08:00
Nick Lockwood 88ac40666c Replaced RegExp method parser with recursive descent
Summary:
public

This diff replaces the RegEx module method parser with a handwritten recursive descent parser that's faster and easier to maintain.

The new parser is ~8 times faster when tested on the UIManager.managerChildren() method, and uses ~1/10 as much RAM.

The new parser also supports lightweight generics, and is more tolerant of white space.

(This means that you now can – and should – use types like `NSArray<NSString *> *` for your exported properties and method arguments, instead of `NSStringArray`).

Reviewed By: jspahrsummers

Differential Revision: D2736636

fb-gh-sync-id: f6a11431935fa8acc8ac36f3471032ec9a1c8490
2015-12-10 10:12:29 -08:00
Nick Lockwood ce7c0b735f Fixed image tinting
Summary:
public

A previous refactor introduced a bug where setting the tintColor of an <Image> to null no longer cleared the tint. This fixes it again.

Reviewed By: javache

Differential Revision: D2744279

fb-gh-sync-id: 1b5e0d546bf456d7b93e2ceee73c568c185c305c
2015-12-10 09:09:30 -08:00
Martin Konicek 6355011d17 Update Releases.md 2015-12-10 16:30:51 +00:00
Martin Konicek e56efc7df8 Update Releases.md 2015-12-10 16:29:19 +00:00
Martin Konicek f4e3512076 Add a guide for doing releases 2015-12-10 15:37:44 +00:00
Martin Konicek 651664b4ce Update breaking-changes.md 2015-12-10 15:25:49 +00:00
Nick Lockwood da153d3928 Fixed bug where module with moduleID of zero wouldn't be loaded
Reviewed By: jspahrsummers

Differential Revision: D2744167

fb-gh-sync-id: b442af60618703ab19290d042b3614984cd9a3ae
2015-12-10 07:12:29 -08:00
Nick Lockwood ec5ca67044 Fixed JS crash on Android when requiring a native module that doesn't exist
Summary:
public

NativeModule getters call the nativeRequireModuleConfig function to lazily load a module if it's not already available, but this crashes on Android since the nativeRequireModuleConfig hook hasn't been implemented yet. This diff checks that the hook exists before calling it.

Reviewed By: gsaraf

Differential Revision: D2744080

fb-gh-sync-id: cae9c8c45a4d3c80ceb8c10f3d4d59a8d9d3c7f8
2015-12-10 06:00:31 -08:00
Mike Armstrong 7f710f9050 Add fbsystrace markers using the legacyprofiler
Reviewed By: astreet

Differential Revision: D2728033

fb-gh-sync-id: 264d40930b8fec0262cbea36529bd8b11efcc58e
2015-12-10 04:39:31 -08:00
Nick Lockwood d138403c2e Added deferred module loading feature
Reviewed By: javache

Differential Revision: D2717687

fb-gh-sync-id: 4c03c721c794a2e7ac67a0b20474129fde7f0a0d
2015-12-10 04:31:30 -08:00
Dave Miller 5775d9e1d0 Update touch/measure/hotspot to all use same coordinate space
Reviewed By: astreet

Differential Revision: D2731165

fb-gh-sync-id: 729943233af66f139907cac2002fed4038b3fa6a
2015-12-10 03:01:37 -08:00
Qiao Liang 423202072c fix android movie example by adding missing permission
Summary:
```log
12-10 04:15:40.321 1482-1482/com.facebook.react.movies E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         Process: com.facebook.react.movies, PID: 1482
                                                                         java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in com.facebook.react.modules.netinfo.ConnectivityModule$ConnectivityBroadcastReceiver@529210a0
                                                                             at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:778)
                                                                             at android.os.Handler.handleCallback(Handler.java:733)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                             at
Closes https://github.com/facebook/react-native/pull/4694

Reviewed By: svcscm

Differential Revision: D2743536

Pulled By: androidtrunkagent

fb-gh-sync-id: 7d93ca701c3d6b17add370ab13a68b150910e6a6
2015-12-09 22:40:28 -08:00
Spencer Ahrens 96c9ce811a Fix Text + TouchableWithoutFeedback
Summary:
Arrow functions don't have `arguments`...whoops :(

public

Reviewed By: vjeux, ericvicenti

Differential Revision: D2741448

fb-gh-sync-id: 15e9fb0446909e4cbbbb5e30024dde58d872e725
2015-12-09 17:18:26 -08:00
Felipe Martim 96553cf553 Add rotateX and rotateY transforms to Android Views .
Summary:
Setting rotateX and rotateY for Android Views.
Closes https://github.com/facebook/react-native/pull/4413

Reviewed By: svcscm

Differential Revision: D2741328

Pulled By: mkonicek

fb-gh-sync-id: 931027c006bc571ef374a7b82cc7074b8a34bc8d
2015-12-09 16:09:30 -08:00
Siddu Duddikunta 64a78ed74b Fix bug in Android elevation implementation
Summary:
If border radius is not set or is zero, then elevation will not
work properly. This bug seems to have been introduced when the
style in facebook/react-native#4180 was modified slightly to
produce commit b65f1f2234.
Closes https://github.com/facebook/react-native/pull/4555

Reviewed By: svcscm

Differential Revision: D2741203

Pulled By: mkonicek

fb-gh-sync-id: f4ee9ccdfc64374d58824a6e988409ac2b7532a4
2015-12-09 15:52:29 -08:00
Martin Konicek 2aa3e0dd1a Use the new Android Clipboard module
Summary:
public

- Open source the unit test for `ClipboardModule`, start using the `ReactTestHelper` in two unit tests
- Fixes a few references to "pasteboard" in strings

Reviewed By: bestander

Differential Revision: D2739614

fb-gh-sync-id: e076940a3ae5c22314e181a37fe2c3f77a18cf85
2015-12-09 15:21:30 -08:00
Martin Konicek 139f9945df Don't use arrow functions with Flow types to fix website generation
Summary:
Our custom jsdocs parser doesn't support the syntax yet.

public

Reviewed By: bestander

Differential Revision: D2739861

fb-gh-sync-id: eefc3c54b98e06597ca7d93396aa4fe3a92d4a58
2015-12-09 14:56:40 -08:00
Martin Konicek f9f123ba96 Sync internal shrinkwrap file to github 2015-12-09 22:32:20 +00:00
Martin Konicek a98c9eae52 Merge pull request #4151 from sunnylqm/patch-7
update the way of starting packager on windows
2015-12-09 22:24:25 +00:00
David Anderson fe3686e126 Fix asset httpServerLocation on Windows.
Summary:
Functions from the path module return paths with the native file system path separator. generateAssetModule is using path.join and path.dirname to generate httpServerLocation.  That means that on Windows systems, the generated URL path has backslashes rather than forward slashes which breaks the app's ability to retrieve image assets using require('./image.png').  This change fixes this by checking path.sep and replacing backslashes with slashes on systems that require it.
Closes https://github.com/facebook/react-native/pull/4416

Reviewed By: svcscm

Differential Revision: D2740529

Pulled By: mkonicek

fb-gh-sync-id: edae0f6762c7dc1db7af078209e38a2feab1e0a1
2015-12-09 14:08:28 -08:00
Thomas Parslow 053a2294b8 Add taggedTemplateLiteral to babelHelpers
Summary:
Needed to support tagged template literals (which are already enabled in babel). Not having this helper means we get a runtime crash.
Closes https://github.com/facebook/react-native/pull/4680

Reviewed By: svcscm

Differential Revision: D2740233

Pulled By: spicyj

fb-gh-sync-id: 12729f670b7942ad7a04bd50ae1eca35d2b1e410
2015-12-09 13:01:24 -08:00
Denis Koroskin c0c8e7cfdf Add support for double type in ReactPropGroup
Reviewed By: astreet

Differential Revision: D2735362

fb-gh-sync-id: a8eab400248fc4c8ad5d43e6a34cfd350dfb1d26
2015-12-09 12:39:38 -08:00
Martin Konicek e8659b3602 Remove all BUCK files 2015-12-09 20:25:19 +00:00
tantan 90c7ad112f add Clipboard component for ios and android
Summary:
add Clipboard component for ios and android
 ```javascript
    import Clipboard from 'react-native'

    Clipboard.get((content)=>{
          console.log('here is content in clipboard:%s',content)
    });
    var content = 'here is a string';
    Clipboard.set(content);
```
Closes https://github.com/facebook/react-native/pull/4384

Reviewed By: svcscm

Differential Revision: D2738881

Pulled By: mkonicek

fb-gh-sync-id: a06df32d1eb2824cc9ca3de9d45e4e67fd2edbc9
2015-12-09 10:04:21 -08:00
Tadeu Zagallo cd4574498d Use actual CADisplayLink timestamp for VSYNC
Summary:
public

Use the actual timestamp provided through `CADisplayLink` instead of the time
the handler is called.

Reviewed By: jspahrsummers

Differential Revision: D2739121

fb-gh-sync-id: 1da28190bb25351dc3dd94efaff21d49279a570f
2015-12-09 09:56:27 -08:00
Christopher Dro 86bb656e6f Add tintColor for buttons.
Summary:
Closes #3374
Closes https://github.com/facebook/react-native/pull/4590

Reviewed By: javache

Differential Revision: D2729616

Pulled By: mkonicek

fb-gh-sync-id: 4a3b6de10a09cad73dbd9d5d552adc3f6ba054e0
2015-12-09 05:19:25 -08:00
Tadeu Zagallo f8be783798 Document intentional retain cycle on RCTJavaScriptContext
Summary:
public

More people wanted to understand the motivation behind the intentional retain
cycle in `RCTJavaScriptContext`, add a small comment with some context.

Reviewed By: jspahrsummers

Differential Revision: D2738930

fb-gh-sync-id: d8c950778eb6bf3eaca627aabb6c98335d25d1fc
2015-12-09 04:43:29 -08:00
Brian Leonard 0ce2bce201 Allow other Xcode configurations with DEV=false
Summary:
Updates build script to fix https://github.com/facebook/react-native/issues/4362
Closes https://github.com/facebook/react-native/pull/4520

Reviewed By: svcscm

Differential Revision: D2730607

Pulled By: mkonicek

fb-gh-sync-id: 2fc4a9815f19ab867a6a3dc77cf1b6eac8a25616
2015-12-09 04:41:28 -08:00
Harry Moreno 54ec6e7cab Docs warn navigator ios
Summary:
ping https://github.com/facebook/react-native/issues/795#issuecomment-139895307
Closes https://github.com/facebook/react-native/pull/3087

Reviewed By: svcscm

Differential Revision: D2738947

Pulled By: mkonicek

fb-gh-sync-id: e29dfd933a8da42551576bdb1fb5c270039722ee
2015-12-09 04:34:30 -08:00
Martin Kralik 14478f6701 better error message for propTypes check
Summary:
When you did a typo in declaring a prop type (like using `boolean` insteal of `bool`) you'd got a bit misleading error message:
{F27113768}
The truth is that the prop type is defined, but not correctly. So I've changed the message in this case to be more accurate:
{F27113627}

public

Reviewed By: sahrens

Differential Revision: D2729340

fb-gh-sync-id: dd12c10a4f3a1c9825293f86481a082908127a76
2015-12-09 04:06:31 -08:00
Sebastian Markbage 8d397b4cbc Decouple Module System from Native Calls
Summary:
The JavaScript ecosystem doesn't have the notion of a built-in native module loader. Even Node is decoupled from its module loader. The module loader system is just JS that runs on top of the global `process` object which has all the built-in goodies.

Additionally there is no such thing as a global require. That is something unique to our providesModule system. In other module systems such as node, every require is contextual. Even registered npm names are localized by version.

The only global namespace that is accessible to the host environment is the global object. Normally module systems attaches itself onto the hooks provided by the host environment on the global object.

Currently, we have two forms of dispatch that reaches directly into the module system. executeJSCall which reaches directly into require. Everything now calls through the BatchedBridge module (except one RCTLog edge case that I will fix). I propose that the executors calls directly onto `BatchedBridge` through an instance on the global so that everything is guaranteed to go through it. It becomes the main communication hub.

I also propose that we drop the dynamic requires inside of MessageQueue/BatchBridge and instead have the modules register themselves with the bridge.

executeJSCall was originally modeled after the XHP equivalent. The XHP equivalent was designed that way because the act of doing the call was the thing that defined a dependency on the module from the page. However, that is not how React Native works.

The JS side is driving the dependencies by virtue of requiring new modules and frameworks and the existence of dependencies is driven by the JS side, so this design doesn't make as much sense.

The main driver for this is to be able to introduce a new module system like Prepack's module system. However, it also unlocks the possibility to do dead module elimination even in our current module system. It is currently not possible because we don't know which module might be called from native.

Since the module system now becomes decoupled we could publish all our providesModule modules as npm/CommonJS modules using a rewrite script. That's what React Core does.

That way people could use any CommonJS bundler such as Webpack, Closure Compiler, Rollup or some new innovation to create a JS bundle.

This diff expands the executeJSCalls to the BatchedBridge's three individual pieces to make them first class instead of being dynamic. This removes one layer of abstraction. Hopefully we can also remove more of the things that register themselves with the BatchedBridge (various EventEmitters) and instead have everything go through the public protocol. ReactMethod/RCT_EXPORT_METHOD.

public

Reviewed By: vjeux

Differential Revision: D2717535

fb-gh-sync-id: 70114f05483124f5ac5c4570422bb91a60a727f6
2015-12-08 16:03:37 -08:00
Gabe Levi 99bba8ca4e Use .flow files to tell Flow about react-native module
Reviewed By: jeffmo

Differential Revision: D2735788

fb-gh-sync-id: 7a15caa5effb89b902bba7e0031822f534813c52
2015-12-08 14:51:31 -08:00
James Ide fe69ac95bd Merge pull request #4654 from tyiu/master
Fix EmbeddedAppIOS documentation
2015-12-08 14:32:58 -08:00
Terry Yiu 16a29b0b87 Fix EmbeddedAppIOS documentation
Fix with correct init call on RCTRootView due to change in method signature from commit 261f9434e5
2015-12-08 14:30:07 -08:00
glevi@fb.com 066ebc021f Fix PickerIOSExample
Reviewed By: nicklockwood

Differential Revision: D2735834

fb-gh-sync-id: 8f2777ec2afe007523ea85cca27f40497910d2d1
2015-12-08 13:48:28 -08:00
Martín Bigio 202222504e Introduce loadBundles
Summary:
public

Introduce a new Polyfill module to load bundles. This polyfill contains the function to which System.import gets transformed into. It works similarly to require in the way it's registered. It keeps track of the bundles that have ever been requested using promises, either fulfilled or not. The use of promises makes the implementation quite easy as we don't need to differenciate whether the request has been started or not.

There're a couple of follow up steps that still need to get done:

- Included this polyfill on the ones we automatically include on the bundle.
- Modify the transform to include the modules the user is actually requesting and pipe that through loadBundles so that the promise, once resolved, has the ordered list of modules the user requested.
- Implement the actual native code that loads a bundle. This shouldn't be that taught  as native will be able to assume it will never receive the same request twice.

Reviewed By: davidaurelio

Differential Revision: D2727241

fb-gh-sync-id: 317d80754783caf43f10c71a34a4558a4d298d45
2015-12-08 12:31:36 -08:00
Konstantin Raev 56793e3f8d Fixed Flow error
Reviewed By: gabelevi

Differential Revision: D2734738

fb-gh-sync-id: 5ba3d4285185cd220a5bf6a26cb3818311822e52
2015-12-08 12:08:27 -08:00
Nick Lockwood 7b13ce30f2 Fix flow
Reviewed By: gabelevi

Differential Revision: D2734936

fb-gh-sync-id: 0c085c4968e52907a60bbd1d8af30dac6f449e46
2015-12-08 12:03:34 -08:00
David Aurelio d013554083 Prepend magic number to unbundle files
Summary:
In order to be able to reliable identify unbundles when loading files, prepend a magic number (0xFB0BD1E5)
public

Reviewed By: martinbigio

Differential Revision: D2734359

fb-gh-sync-id: b469e26459234e7f6270fffa0b872a93d137381d
2015-12-08 11:03:25 -08:00
Edvin Erikson c489660f26 Inspecting stateless components.
Summary:
Fixes #4602

Fixes a bug where the app crashes when you try to inspect a stateless
component.
Fixed by replacing all occurrences of the getPublicInstance method in
Libraries/Inspector/Inspector.js with the _instance property instead.
Defaults to an empty object if _instance is falsy.
Closes https://github.com/facebook/react-native/pull/4642

Reviewed By: svcscm

Differential Revision: D2734491

Pulled By: androidtrunkagent

fb-gh-sync-id: 4ea753b7e0ef3fd05af2d80abadc365c5c787f98
2015-12-08 10:13:25 -08:00
Konstantin Raev c9d796fc6a NetInfo: Cleaned up code and examples
Reviewed By: andreicoman11

Differential Revision: D2723578

fb-gh-sync-id: b7bb9ce69f24ff5dcf38409de92d57f53da003fa
2015-12-08 09:35:22 -08:00
Emilio Rodriguez e2c35dddba Added support for styling the PickerIOS
Summary:
 - PickerIOS accepts now a new prop: style
 - this prop modifies the native style of the RCTPicker allowing to modify the font size of the items (fontSize), color of the items (color, only 6 char HEX values for now) and alignment of the items (textAlign)
Closes https://github.com/facebook/react-native/pull/4490

Reviewed By: svcscm

Differential Revision: D2723190

Pulled By: nicklockwood

fb-gh-sync-id: ab9188192f1d0d087787dfed8c128073bfaa3235
2015-12-08 07:48:26 -08:00
Mike Armstrong e7a4b20d75 exceptions generated from incorrect arg usage on JSC trace and LegacyProfile functions
Reviewed By: astreet

Differential Revision: D2729015

fb-gh-sync-id: a3f56554ff6e77170e07aaf93934f93522b3a81b
2015-12-08 06:14:34 -08:00
Andrei Coman 5aef380609 Refactor NetInfo
Reviewed By: foghina

Differential Revision: D2718059

fb-gh-sync-id: 5c4e946991be27c5ae2bcc3eec32b5bc596545bd
2015-12-08 04:56:26 -08:00
Nick Lockwood b672294858 Added RCTImageSource
Summary:
public

The +[RCTConvert UIImage:] function, while convenient, is inherently limited by being synchronous, which means that it cannot be used to load remote images, and may not be efficient for local images either. It's also unable to access the bridge, which means that it cannot take advantage of the modular image-loading pipeline.

This diff introduces a new RCTImageSource class which can be used to pass image source objects over the bridge and defer loading until later.

I've also added automatic application of the `resolveAssetSource()` function based on prop type, and fixed up the image logic in NavigatorIOS and TabBarIOS.

Reviewed By: javache

Differential Revision: D2631541

fb-gh-sync-id: 6604635e8bb5394425102487f1ee7cd729321877
2015-12-08 03:32:30 -08:00
Mike Armstrong dcebe8cd37 Use ascii characters to construct JSStringRef
Reviewed By: astreet

Differential Revision: D2700781

fb-gh-sync-id: be790600ea3d4c0238553efe69a0979c177ddb2d
2015-12-08 01:39:28 -08:00
James Ide a659c9346c [Docs] Fix up small typo in code style docs 2015-12-07 23:24:23 -08:00
James Ide c031ccdc57 JSX style
Wrote some notes on the standard JSX / XHP style
2015-12-07 23:23:26 -08:00
Spencer Ahrens 4ce03582a0 Improve Text perf
Summary:
public

Most apps create tons of text components but they are actually quite heavy because of the the Touchable mixin which requires binding tons of functions for every instance created.

This diff makes the binding lazy, so that the main handlers are only bound if there is a valid touch action configured (e.g. onPress), and the Touchable mixin functions are only bound the first time the node is actually touched and becomes the responder.

ScanLab testing shows 5-10% win on render time and memory for various products.

Reviewed By: sebmarkbage

Differential Revision: D2716823

fb-gh-sync-id: 30adb2ed2231c5635c9336369616cf31c776b930
2015-12-07 23:12:28 -08:00
Christopher Dro e25d5c2f37 Merge pull request #4634 from christopherdro/debugging-docs
[Docs] Typo fix for adb reverse command in Debugging.md
2015-12-07 23:11:33 -08:00
Christopher Dro 17428982eb [Docs] Typo fix for adb reverse command in Debugging.md 2015-12-07 23:06:04 -08:00
Sam Swarr 61272e69e9 Fix race condition in packager list dependencies
Reviewed By: martinbigio

Differential Revision: D2732655

fb-gh-sync-id: 6d3d730b499c183d3f6977a30ec37a799cc17c33
2015-12-07 19:26:28 -08:00
Nick Lockwood f9b744d501 Use lazy getters to reduce require('react-native') overhead
Summary:
public

In the open source React Native implementation, the recommended approach for importing modules is by importing a the `ReactNative` object, which includes all available modules.

This is rather inefficient because it ends up initializing all the JS modules, even if you don't use them.

This diff switches the properties of the `ReactNative ` object to lazy getter functions, which defers the `require` until the module is actually requested.

This doesn't prevent unused modules from being included in the JS bundle, but it will prevent them from being initialized unless/until they are used.

Reviewed By: vjeux

Differential Revision: D2722993

fb-gh-sync-id: 0e9a2beb3aa6cd087a0592bd59a8f9242040be0c
2015-12-07 17:00:42 -08:00
Mike Armstrong 0f98dedefe More markers for view operations
Reviewed By: astreet

Differential Revision: D2679126

fb-gh-sync-id: 882e815a7551d23b4594fdc2dd257b4f1cdbbab7
2015-12-07 15:25:27 -08:00
Brent Vatne 27f2e08a6c Merge pull request #4522 from niftylettuce/master
Switched recommendation from superagent to frisbee
2015-12-07 12:23:47 -08:00
Satyajit Sahoo 93f9a4a7ee Fix for flow (https://github.com/facebook/flow/tree/v0.19.0)
Summary:
From flow release notes (https://github.com/facebook/flow/releases),
> import type * as Foo is now disallowed in favor of import type Foo
Closes https://github.com/facebook/react-native/pull/4565

Reviewed By: svcscm

Differential Revision: D2723280

Pulled By: mkonicek

fb-gh-sync-id: 57074ab893c3e2eae3cefc3002853bfdfed91734
2015-12-07 11:29:24 -08:00
Nick Baugh 7605d2d8cd Switched recommendation from superagent to frisbee, Moved XMLHTTPRequest to bottom of doc page
Resolves issues per recommendations by @ide

Added axios reference
2015-12-07 13:53:01 -05:00
sathis abea6c30b4 Make style property available in Image.android.js like Image.ios.js
Summary:
Thanks ahanriat for pointing out  :)
Closes https://github.com/facebook/react-native/pull/4618

Reviewed By: svcscm

Differential Revision: D2729582

Pulled By: androidtrunkagent

fb-gh-sync-id: df7b9af24cc035c7a9618a7850d628961fcd776b
2015-12-07 10:47:28 -08:00
Brent Vatne ec11e6abff Merge pull request #4626 from pagrawl3/patch-1
Added Hubhopper to the showcase.
2015-12-07 10:07:47 -08:00
Pratham Agrawal 7600909caf Added Hubhopper to the showcase. 2015-12-07 23:03:12 +05:30
Alexander Blom 510d50fc17 Trigger GC and drop compiled code on low memory
Reviewed By: astreet

Differential Revision: D2658693

fb-gh-sync-id: 8cba49b67ac45a2dbf8b4c9c404d6fb9c97693f6
2015-12-07 08:46:25 -08:00
Martin Konicek 611e0619ca Rename PullToRefreshLayoutAndroid -> PullToRefreshViewAndroid
Summary:
The naming "Layout" is an Android-specific thing and not useful in JS. Let's stay consistent with naming like "ScrollView", "MapView" etc.

public

Reviewed By: bestander

Differential Revision: D2723163

fb-gh-sync-id: 6b86e5a649254c41e9d6b0ef6f1fe2ff4b9f3e9a
2015-12-07 08:33:25 -08:00
Tadeu Zagallo 02ded6d0bb Preserve all return registers on x86_64 trampoline
Summary:
public

Only the first quad-word and floating point return registers were being preserved,
make sure to preserve the 2nd ones as well (`%rdx` and `%xmm1`)

Reviewed By: jspahrsummers

Differential Revision: D2727523

fb-gh-sync-id: d8176512d2dfb5f664f634ecaaf34510515506ea
2015-12-07 06:43:28 -08:00
Mike Armstrong 69ce5ab5b8 JSC bindings for flow events
Reviewed By: astreet

Differential Revision: D2717887

fb-gh-sync-id: 40d03ac140669b8ebeb096917f2aba32fe260a1a
2015-12-07 03:51:29 -08:00
Olivier Notteghem a38ce5c570 match RN attachment images Feed experience with Native with spinner/fade in
Reviewed By: astreet

Differential Revision: D2722917

fb-gh-sync-id: a09b9a1a4b9a19b94471d8e93ec5bde53af7da06
2015-12-06 15:48:34 -08:00
Brent Vatne f1a575eb30 Update KnownIssues.md 2015-12-06 15:39:37 -08:00
Brent Vatne fb4f05ed7b Update KnownIssues.md 2015-12-06 15:09:22 -08:00
Atticus White ca9f0adee2 Improve Modal docs describing iOS only support
Summary:
Adds a note that the `Modal` component is only available in iOS.

I hit a bit of a pickle this weekend after realizing a handful of components I built will have to be rewritten. Unfortunately there's no notes in the documentation that the support is limited. Hopefully this can contribute towards avoiding those situations
Closes https://github.com/facebook/react-native/pull/4592

Reviewed By: svcscm

Differential Revision: D2727634

Pulled By: androidtrunkagent

fb-gh-sync-id: 2d0efcca8e17d16cf63d592e235261cea63e59ea
2015-12-05 18:48:28 -08:00
James Ide 795b5b5c00 Merge pull request #4585 from jato/docs-jato
[Docs] fixes minor typo by adding space
2015-12-05 17:41:27 -08:00
James Ide 0f0ed39d2e Merge pull request #4584 from christopherdro/fix-4582
[Docs] Fix broken links for Testing.md - Closes #4582.
2015-12-05 17:39:36 -08:00
Mihai Giurgeanu 31125b2ed7 Android - Fixing #4392
Summary:
This is just an workaround for making UIExplorer work in Android.
Closes https://github.com/facebook/react-native/pull/4405

Reviewed By: svcscm

Differential Revision: D2727452

Pulled By: tadeuzagallo

fb-gh-sync-id: af48fb8c462ab04874cfdb96c0fd4409bf6d92c3
2015-12-05 14:59:29 -08:00
jato ba81517150 fixes minor typo 2015-12-05 13:29:07 -08:00
Christopher Dro 55d1db6768 [Docs] Fix broken links for Testing.md - Closes #4582. 2015-12-05 12:19:58 -08:00
James Ide 4c531d220a Merge pull request #4575 from satya164/docsfix
Improve docs for Building from source
2015-12-04 21:22:03 -08:00
Satyajit Sahoo b89e14ab95 Improve docs for Building from source 2015-12-05 10:46:08 +05:30
Dave Miller fa884ee5e6 Fix Y-coord on touches
Summary:
public

D2670028 updated the x/y positions of touch events to be relative to the window, but measure still uses the location on the screen. Therefore, in Touchable.js, we were seeing taps get inproperly invalidated because they were erroneously considered outside of the touch rect. This diff moves back to the old version of pageX/Y on touch events that's compatible with the current version of measure.

Reviewed By: nicklockwood

Differential Revision: D2724917

fb-gh-sync-id: 978ae26fcaa23c47a4f619e2b7ff2d078388ae95
2015-12-04 20:54:39 -08:00
glevi@fb.com 383d991c40 Fix flow errors in fbobjc
Reviewed By: jeffmo

Differential Revision: D2724169

fb-gh-sync-id: d2736ce2550fe8bf45c18bce7d89a9cb5c98cb87
2015-12-04 11:56:29 -08:00
SangYeob Bono Yu f4c286f7ac Add support for Universal Links
Summary:
Adds support for [Universal Links](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html).
Closes https://github.com/facebook/react-native/pull/4109

Reviewed By: svcscm

Differential Revision: D2658105

Pulled By: nicklockwood

fb-gh-sync-id: 7d94564f64cda7d31c79cf8f4c450ed2387057be
2015-12-04 09:05:31 -08:00
Konstantin Raev c71811e491 Added Circle CI integration to run Android unit tests
Summary:
A few caveats before accepting:
- Do I need to squash commits?
- Need to set up new Circle CI account connected to FB react-native repo
- After that replace tokens and links to the new ones

Setting up Integration tests should be straight forward next week https://circleci.com/docs/android
Closes https://github.com/facebook/react-native/pull/4566

Reviewed By: svcscm

Differential Revision: D2723119

Pulled By: androidtrunkagent

fb-gh-sync-id: 2c4a46b206f15f36d94d1b10ff9e339f5182782b
2015-12-04 08:10:28 -08:00
Nick Lockwood dde55c30ea This Fixes scroll to top and resigning first responder
Reviewed By: tadeuzagallo

Differential Revision: D2713488

fb-gh-sync-id: 99b2646f7bf8a3ee889bbb856c298beed6817321
2015-12-04 07:56:29 -08:00
James Ide dff8f53664 Support plugins that conform to ES6 modules
Summary:
ES6 modules export an object with a property called `default`. See Babel itself for how this is handled: https://github.com/babel/babel/commit/b5b7e346a04c99da8793e2c65cc3b3c7c720253d
Closes https://github.com/facebook/react-native/pull/4513

Reviewed By: svcscm

Differential Revision: D2715512

Pulled By: mkonicek

fb-gh-sync-id: 40e5ea35adcdb66806a4895578d637cd72538619
2015-12-04 07:45:29 -08:00
Matt Revell c1849e7f4b Fix an issue with unsafe picker access to setNativeProps.
Summary:
Fixing an issue where PickerIOS and DatePicker are being accessed unsafely, As a side effect we are also using ref callbacks as oppose to strings.

Fixed after spotting an issue in our app where the picker is closed and the callback attempts to update native props for an item that no longer exists.
Closes https://github.com/facebook/react-native/pull/3920

Reviewed By: svcscm

Differential Revision: D2663634

Pulled By: nicklockwood

fb-gh-sync-id: 813b32a038f59864401d5d3985c7ea32f5e13301
2015-12-04 07:41:30 -08:00
Dave Miller 4661e59d1a For clippedSubViews, pass down the opportunity for children views to update their clipping if they intersect at all
Reviewed By: astreet

Differential Revision: D2717903

fb-gh-sync-id: 8852a6d3ac3a329c4cad663e7f9f7093f9b6ae16
2015-12-04 04:16:28 -08:00
Dan Witte 70f0dfc0e6 revert D2707930
Reviewed By: fkgozali

Differential Revision: D2720828

fb-gh-sync-id: 53113fb33150b42a7b597a7dfd04bb9885def029
2015-12-03 18:29:28 -08:00
moschan d1029d1b9d fixed mardown formatting of ListView
Summary:
about renderRow and renderSeparator.
insert a new line before description.
Closes https://github.com/facebook/react-native/pull/4532

Reviewed By: svcscm

Differential Revision: D2718764

Pulled By: androidtrunkagent

fb-gh-sync-id: eeefd16617fcb5e5ca21f6fd0cf29d63cb3b1f1c
2015-12-03 11:56:29 -08:00
Nick Lockwood 9a47ca1cc9 Added addChildren() function as a more-optimal replacement for manageChildren for common use cases.
Reviewed By: jspahrsummers

Differential Revision: D2707930

fb-gh-sync-id: c44219bf9af943cad5b57f370656c1bcac732cd9
2015-12-03 11:34:27 -08:00
Andy Street ecdc3429cd Fork v4 support library NestedScrollView to fix fling bug
Reviewed By: oli, lexs

Differential Revision: D2707733

fb-gh-sync-id: c9b375a6aa1010d60d21ca7500e862a6ff91a49b
2015-12-03 11:15:51 -08:00
Christopher Dro dd9c1e16ee Add string as possible propType for 'systemIcon'
Summary:
Fixes #2361
Closes https://github.com/facebook/react-native/pull/4523

Reviewed By: svcscm

Differential Revision: D2718568

Pulled By: androidtrunkagent

fb-gh-sync-id: a15c94acaac899dfdaeb397c8c764053d1430854
2015-12-03 11:10:40 -08:00
Christopher Chedeau a2f1be097e Merge pull request #4545 from christopherdro/website-readme
[Docs] Website - Change port from 8080 to 8079
2015-12-03 11:06:09 -08:00
Christopher Dro 200e69e39f [Docs] Website - Change port from 8080 to 8079 2015-12-03 10:48:03 -08:00
Milen Dzhumerov a64ee7d8c5 Batch AsyncStorage.multiGet calls
Reviewed By: javache

Differential Revision: D2636553

fb-gh-sync-id: d6351b67c615d8c01c11c10e32321a9764c54c67
2015-12-03 09:10:29 -08:00
Nick Lockwood 3313f769f5 Use console.error() for the Touchable.js bug so we can capture it in production logs
Reviewed By: javache

Differential Revision: D2717874

fb-gh-sync-id: 7c2cac61fe4fbd2c6de6cf1d9059df9ac119f543
2015-12-03 09:02:25 -08:00
Mike Armstrong 87253ca722 Append JS_require_ to require profile names
Reviewed By: tadeuzagallo

Differential Revision: D2717939

fb-gh-sync-id: 4648e240eebfb3a7bc1c5041d4f1fba8761264a9
2015-12-03 08:20:25 -08:00
Konstantin Raev 10c8a1c417 fixed mardown formatting in NetInfo code to allow proper JS Docs
Summary:
Current docs look bad https://facebook.github.io/react-native/docs/netinfo.html#content
Closes https://github.com/facebook/react-native/pull/4531

Reviewed By: svcscm

Differential Revision: D2717974

Pulled By: androidtrunkagent

fb-gh-sync-id: cd2cadfb782f8ce6a418ca7af5fcefb54504059b
2015-12-03 07:53:28 -08:00
mkonicek-pr-test 752a86786f Test PR 12
Summary:
Testing the shipit bot
Closes https://github.com/facebook/react-native/pull/4536

Reviewed By: svcscm

Differential Revision: D2717972

Pulled By: mkonicek

fb-gh-sync-id: 6cb1fe6a054d050d4bc9d693adda44381d6ad6e2
2015-12-03 07:49:27 -08:00
Satyajit Sahoo 33c73d444a Merge pull request #4535 from msathis/master
Fix typos
2015-12-03 20:06:33 +05:30
Qiao Liang 5030cae757 add permission for android geolocation example
Summary:
<img width="860" alt="screen shot 2015-12-03 at 3 38 02 pm" src="https://cloud.githubusercontent.com/assets/5563225/11554542/e7a33554-99d3-11e5-8d3a-e9ea47952a28.png">
Closes https://github.com/facebook/react-native/pull/4524

Reviewed By: svcscm

Differential Revision: D2717843

Pulled By: mkonicek

fb-gh-sync-id: 7828a7f28bb95be3d292d0ae3351c9d9678bb964
2015-12-03 06:27:24 -08:00
sathis ff808fa4e0 Fix typos 2015-12-03 19:52:02 +05:30
Pieter De Baets 67bf0f1a70 Avoid interrupting scrolling in nested scrollviews
Summary:
When we nest scrollviews, the hack in handleCustomPan: will cause the scroll to stall and break.

There's still some weird behaviour inside ScrollResponder.js but this does not seem the affect the scrollview's scrolling.

public

Reviewed By: fionaf, jingc, majak

Differential Revision: D2713639

fb-gh-sync-id: ad898ead62415bc14c91bc84fdfdb8c0fbb32b06
2015-12-03 06:19:30 -08:00
Mike Armstrong 5ad7dd3cac pre add new systrace TRACE_TAG_REACT_VIEW
Reviewed By: foghina

Differential Revision: D2717692

fb-gh-sync-id: 572b9286bd5be9f15ba3295e29770c4d33ee7590
2015-12-03 06:17:27 -08:00
Sameer Rahmani c8eed6a361 RTL support added for ToolbarAndroid via "rtl" property
Summary: Closes https://github.com/facebook/react-native/pull/4378

Reviewed By: svcscm

Differential Revision: D2715052

Pulled By: mkonicek

fb-gh-sync-id: e24f5db230cd7329911797794e5ef150f6195c4a
2015-12-03 05:18:26 -08:00
David Aurelio a68c731aca Android: Accept Throwables in Promise.reject()
Summary:
public

Fixes #4309

This adds the possibility to reject `Promise` instances with `Throwable`s in java, instead of strings.
For now, it only reads the message, but we can add more features on top of this, e.g. forwarding the error stack.

Reviewed By: andreicoman11

Differential Revision: D2708192

fb-gh-sync-id: ca5ff584eca29370a9f9b780fa9825b17863a7e9
2015-12-03 04:52:26 -08:00
Pieter De Baets 1a748f5ed6 Fix profile build
Reviewed By: jspahrsummers

Differential Revision: D2717604

fb-gh-sync-id: 9817bf743de0d6b5bd22f12ae50a8e1f99c1c0c3
2015-12-03 04:25:28 -08:00
Justin Spahr-Summers 8e55858397 Precompute whether modules respond to batch notification methods
Summary:
public

Looping through every `RCTModuleData` to check whether the module responds to `-batchDidComplete` or `-partialBatchDidFlush` is unnecessarily expensive. We can cache the answer at the time that the module instance is actually initialized.

Reviewed By: tadeuzagallo

Differential Revision: D2717594

fb-gh-sync-id: 274a59ec2d6014ce18c93404ce6b9940c1dc9c32
2015-12-03 04:20:27 -08:00
Tim Yung 1c57291faa RN: Support Multiple Packager Servers
Summary:
Adds support for multiple packager servers, which could be used to hot-reload dependencies in response to a change in the `cacheVersion`.

Currently, there is no way to:

- Create multiple `ReactPackager` servers.
- Instantiate more than one `FileWatcher` constructor (due to the "single instance" invariant).

public

Reviewed By: martinbigio

Differential Revision: D2713455

fb-gh-sync-id: 9be0f0cb2b846baf088d0cf14650cc8b9e950815
2015-12-02 19:03:27 -08:00
Satyajit Sahoo d691091530 Fix typo in permalink 2015-12-03 07:47:11 +05:30
sunnylqm 2b7d65fdc9 remove packager.js way 2015-12-03 08:27:19 +08:00
Martin Konicek 63cff1abcb Merge pull request #4403 from satya164/docs
[Android] Add docs on building from source
2015-12-02 23:11:41 +00:00
Wenjing Wang 0058b0806b propTypes could be undefined
Summary:
public
This causes a warning since propType not exist

Reviewed By: vjeux

Differential Revision: D2713358

fb-gh-sync-id: 58406d1dc969e6f1d40bee958c28cc87036b30c2
2015-12-02 12:33:30 -08:00
Konstantin Raev 0779dd1e87 Open source the Android NetInfo module
Reviewed By: mkonicek

Differential Revision: D2703432

fb-gh-sync-id: 4a85844f1734ec433df543c89f0fdd56fe5db13c
2015-12-02 11:52:22 -08:00
James Ide 06f2c33f0d Merge pull request #4492 from sunnylqm/patch-11
add git requirement and note for environment variables
2015-12-02 10:40:52 -08:00
Nick Lockwood 6d29f710e1 Fixed TextInput on iOS 8 and earlier
Summary:
public

The scrolling fix I added to RCTTextView doesn't work on iOS 8 because the underlying UITextField doesn't resize correctly, which breaks text input functionality. This diff fixes it.

Reviewed By: tadeuzagallo

Differential Revision: D2712618

fb-gh-sync-id: 1d0282df3a16f1cb6ddf9d005d640738bb1b5659
2015-12-02 10:37:26 -08:00
Felix Oghina c06efc0831 remove activities from module constructors
Summary:
Refactor modules that take activities (or activities that implement some interface) as constructor args to not do that. Expose `getCurrentActivity()` in `ReactContext` and use that wherever the activity is needed.

public

Reviewed By: astreet

Differential Revision: D2680462

fb-gh-sync-id: f263b3fe5b422b7aab9fdadd051cef4e82797b0a
2015-12-02 10:05:28 -08:00
Nick Lockwood 7ab17e5ef3 Fix for long press state transition error in Touchable.js
Summary:
public

This diff fixes an occasional JS exception thrown by Touchable.js when it attempts to transitions to the RESPONDER_ACTIVE_LONG_PRESS_IN state from the RESPONDER_INACTIVE_PRESS_IN state.

Although I wasn't able to reproduce the error while testing, I was able to identify the likely cause: the LONG_PRESS_DETECTED state transition is triggered by a timer that is started on touch-down. This timer should be cancelled if the gesture is interrupted, however I identified a code path where the state can be changed to RESPONDER_INACTIVE_PRESS_IN without the longPressDelayTimeout being cancelled.

To fix this, I've added some logic to cancel the timer in that case. I've also added a test for the error scenario that will display a redbox in __DEV__ mode, but will fail gracefully in production mode.

Reviewed By: jingc

Differential Revision: D2709750

fb-gh-sync-id: aeea1a31de5e92eb394c2ea177f556b131d50790
2015-12-02 09:54:29 -08:00
mkonicek-pr-test 7424af6078 Test PR 6: Tweak colors in 2048 example
Summary:
Just testing the shipit bot
Closes https://github.com/facebook/react-native/pull/4503

Reviewed By: svcscm

Differential Revision: D2712738

Pulled By: androidtrunkagent

fb-gh-sync-id: 267f55991ca8267cb651734093bc62fb9c77a056
2015-12-02 09:04:28 -08:00
Nick Lockwood 37042573b8 Added blurOnSubmit support to multine TextInput (aka RCTTextView)
Summary:
public

Setting `blurOnSubmit=true` on a multiline `<TextInput>` now causes it to behave like a single-line input with respect to the return key:

With the default value of `false`, pressing return will enter a newline character into the field. If you set the value to `true`, pressing return will now blur the field and trigger the onSubmitEditing event. The newline character will *not* be added to the text.

(See associated github task for dicussion: https://github.com/facebook/react-native/pull/2149)

Reviewed By: javache

Differential Revision: D2710448

fb-gh-sync-id: c9706ae11f8b399932d3400ceb4c7558e455570d
2015-12-02 08:16:27 -08:00
Nick Lockwood 807e0d9310 Fixed Xcode warnings
Summary:
public

Fixed some Xcode warnings, and added some missing UIResponder methods to make the behavior of RCTTextView more self-consistent.

Reviewed By: javache

Differential Revision: D2712250

fb-gh-sync-id: d30038500194d7a5262d9e77d516c65d836a4420
2015-12-02 08:03:26 -08:00
Chirag a32ff54e70 Merge pull request #4491 from sercanov/patch-2
added Mobabuild app
2015-12-02 09:51:41 -05:00
Alon Schwarz f69ac1eaef Revert D2679408 (Only send layout update operation to nativehierarchymanager when layout actually changes)
Reviewed By: andreicoman11

Differential Revision: D2712224

fb-gh-sync-id: e6aebe6fcf54e9f36cac092cab801bb97a65dbfd
2015-12-02 06:46:28 -08:00
Alexander Blom 30a5eb51f8 Generate module definition on demand
Reviewed By: astreet

Differential Revision: D2707977

fb-gh-sync-id: fb2baa464a23df82e8b48a91a84c98370517d311
2015-12-02 06:25:28 -08:00
Justin Spahr-Summers c25c98c00c Flush UI blocks as soon as they're accumulated
Summary:
public

Currently, we wait to invoke `-flushUIBlocks` until the JavaScript batch to native has completed. This means we may be waiting an unnecessarily long time to perform view hierarchy changes and prop changes.

By instead invoking this after each chunk of enqueued UI blocks, we can perform some updates more eagerly, increasing our utilization of the main thread while splitting up the amount of time we spend running upon it.

This shouldn't affect layout, which is still tied to `-batchDidComplete`, so any visual inconsistencies should be limited to prop changes, which seems acceptable for the dramatic improvement in performance.

Reviewed By: javache

Differential Revision: D2658552

fb-gh-sync-id: 6d4560e21d7da1b02d2f30d1860d60735f11c4b5
2015-12-02 06:03:27 -08:00
Christopher Dro 802aef9509 Update argument passed for assetRoots.
Summary:
Fixes #4388
Closes https://github.com/facebook/react-native/pull/4431

Reviewed By: svcscm

Differential Revision: D2704076

Pulled By: mkonicek

fb-gh-sync-id: 2b788eb15787334bf7309fde730566092ff63832
2015-12-02 05:55:26 -08:00
sercanov 7e4c8b2d2d sorted alphabetically 2015-12-02 14:43:01 +02:00
sunnylqm edb26072c3 add git requirement and note for environment variables 2015-12-02 20:31:05 +08:00
sercanov 873efa2e97 added Mobabuild app 2015-12-02 14:27:18 +02:00
David Aurelio 5dc40afbf6 Add for-of transform to babel configurations
Summary:
Adds babel-plugin-transform-es2015-for-of to babel configuration.

public

Reviewed By: tadeuzagallo

Differential Revision: D2712220

fb-gh-sync-id: cc6dd9e6e70946607ef9bb9f659eb628cf2eb555
2015-12-02 04:14:30 -08:00
Nick Lockwood 04187536d1 Fixed threading bug in RCTNetworking
Summary:
public

When uploading images, RCTHTTPFormDataHelper was sometimes accessed on the wrong thread.

Reviewed By: helouree

Differential Revision: D2709186

fb-gh-sync-id: d0a14926927d1d41f602f78a9f6892dfbdfc6ff9
2015-12-02 02:24:27 -08:00
Wenjing Wang 0571250521 8/n Fix warnings at startup
Summary:
public
- Add missing required `key` prop for array of child components

Reviewed By: zjj010104

Differential Revision: D2711271

fb-gh-sync-id: b9848abffd3c458cf45b1231be5eff0a5de805f1
2015-12-01 22:53:30 -08:00
Gabe Levi c11dce36e6 Deploy 0.19.0
Reviewed By: mroch

Differential Revision: D2711202

fb-gh-sync-id: b889cc9fe13f676aa4e7a5672556174792ece365
2015-12-01 20:11:38 -08:00
Gabe Levi 892dd5b86a Fix errors uncovered by v0.19.0
Reviewed By: mroch

Differential Revision: D2706663

fb-gh-sync-id: 017c91bab849bf18767cacd2ebe32d1a1b10c715
2015-12-01 20:11:26 -08:00
Satyajit Sahoo d4d41f9523 Merge pull request #4454 from plrthink/master
add mockingbot to showcase
2015-12-02 09:18:17 +05:30
Olivier Notteghem 098fcb3a27 LayoutAnimation support for Android RN
Reviewed By: dernienl

Differential Revision: D2710141

fb-gh-sync-id: 28d6af84441b7c2dbc423b73eb05e71f62f7cdea
2015-12-01 19:06:32 -08:00
Nathan Spaun cf892a96d6 Fix NetInfo for Android
Reviewed By: oli

Differential Revision: D2708102

fb-gh-sync-id: f6a12c49c89c46d31114fefaf3e2b1ba72dabdee
2015-12-01 15:14:30 -08:00
Denis Koroskin b828ae4200 Initial FlatUIImplemenatation
Summary: public This patch adds an alternative UIImplementation based on an idea of creating UI hierarchy off-the-main-thread (everything but Views), flattening ReactShadowNode hierarchy and displaying it within a single View when possible. While NativeViewHierarchyOptimizer allows removing layout-only RCTViews, this allows removing RCTView, RCTText and RCTImage.

This is an initial bare-bones implementation that doesn't really draw anything, only lays out the shadow nodes. Followup diffs will add missing features.

Reviewed By: astreet

Differential Revision: D2564309

fb-gh-sync-id: 2dda4c8cfc2bac3eb39c5c15e97bd23a57550a1d
2015-12-01 13:11:27 -08:00
Daniel Hugenroth b0e39d26ae implemented tracing async flow events (s, t and f)
Reviewed By: jkeljo

Differential Revision: D2699625

fb-gh-sync-id: 1d1b41fac157650e98a49307b701b6da63589c4b
2015-12-01 10:36:27 -08:00
Aaron Chiu b6f662d6b6 init Timing.java in a paused state
Summary: It hasn't been resumed yet when first constructed.

public

Reviewed By: astreet

Differential Revision: D2705635

fb-gh-sync-id: fa90a89524d56fd5e349ebad2820b42deba7f26f
2015-12-01 10:06:27 -08:00
David Aurelio a26b89f8bd Add property mapping for borderStyle from JS to RCTView (iOS)
Reviewed By: nicklockwood

Differential Revision: D2540321

fb-gh-sync-id: 57316f7b8dc734ee784179dbfde83e6034827819
2015-12-01 09:00:28 -08:00
Satish Sampath 765801dfc2 Improve JSC GC implementation on android
Reviewed By: astreet

Differential Revision: D2657643

fb-gh-sync-id: a049ee745de9a066a4a2da2762ec6a2f1517c78b
2015-12-01 08:50:32 -08:00
David Aurelio cc4a5d39db Add unbundling to packager
Reviewed By: tadeuzagallo

Differential Revision: D2707409

fb-gh-sync-id: 30216c36066dae68d83622dba2d598e9dc0a29db
2015-12-01 08:48:30 -08:00
Mike Armstrong b6f5c7fa04 Fix systrace profile handling for relay async calls
Reviewed By: astreet

Differential Revision: D2700239

fb-gh-sync-id: eaa29d63ee4f7688dd70b0cdc12564a9d479f9ef
2015-12-01 08:42:24 -08:00
Huang Yu 0a3694ce48 fix several lint warnings
Summary: fix some ling warnings from several files
Closes https://github.com/facebook/react-native/pull/4450

Reviewed By: svcscm

Differential Revision: D2707606

Pulled By: mkonicek

fb-gh-sync-id: 410ccacf061ac7b0f6e44d1a5e4621a9d1d606fc
2015-12-01 07:26:29 -08:00
Perry Poon 16b9c7d6f6 change order in showcase 2015-12-01 23:01:48 +08:00
Tadeu Zagallo 8ec052a727 Expose JS hooks to profile async events
Summary: public

Expose JS hooks to add async events to Systrace from JS.

Reviewed By: mikearmstrong001

Differential Revision: D2702739

fb-gh-sync-id: 906849d3819a914c521b9315e396c75946c9211d
2015-12-01 05:58:31 -08:00
Dave Miller 7377fdcc70 Fix XY coords to be XY instead of YX
Summary: public

This fixes the ordering of methods in touch handling to take their arguments as X,Y instead of Y,X.

This is really just internal cleanup of native touch handling.

Reviewed By: andreicoman11

Differential Revision: D2703003

fb-gh-sync-id: d169436d21fd11c1a9cb251e7e0b57b2094699e4
2015-12-01 05:35:34 -08:00
Aleksei Androsov d08727d99f RCTImagePickerManager crash on image from CameraRoll
Summary: Image from CameraRoll haven't UIImagePickerControllerReferenceURL. So we need to save it to PhotoAlbums first.

To save image I've used the same method from RCTCameraRollManager.
Closes https://github.com/facebook/react-native/pull/4412

Reviewed By: svcscm

Differential Revision: D2707249

Pulled By: nicklockwood

fb-gh-sync-id: eee683bd4179700bed46ebf45e569197f3ad2077
2015-12-01 02:13:28 -08:00
Krzysztof Magiera aad40b8b1d Update Android Setup with recommendation to use gradle daemon 2015-12-01 09:55:57 +01:00
Christopher Dro f025049b6c Add secure and login-password types to AlertIOS.
Summary: Request from issue #3893

* Added support for `secure-text` and `login-password` types to AlertIOS.
* Fixed and extended the cancel button highlighting functionality, which was broken at some point
* Added localization for default `OK` and `Cancel` labels when using UIAlertController

Closes https://github.com/facebook/react-native/pull/4401

Reviewed By: javache

Differential Revision: D2702052

Pulled By: nicklockwood

fb-gh-sync-id: cce312d7fec949f5fd2a7c656e65c657c4832c8f
2015-11-30 19:51:41 -08:00
Huang Yu 7242efde0a fix navigator lint warnings
Summary: fix some lint warnings under `Libraries/CustomComponents/Navigator/` directory
Closes https://github.com/facebook/react-native/pull/4447

Reviewed By: svcscm

Differential Revision: D2706390

Pulled By: ericvicenti

fb-gh-sync-id: 5bfed687265e07a162ffc528a41fa5b0d384f635
2015-11-30 19:31:30 -08:00
Denis Koroskin baa97b2e9f Make ViewManagerRegistry class public
Summary: public I need to construct this class outside of the uimanager package, and this requires the class (and its constructor) to be public.

Reviewed By: astreet

Differential Revision: D2554847

fb-gh-sync-id: a73c3236b91a1ed7074521e19b72e1994804cced
2015-11-30 19:13:25 -08:00
Denis Koroskin 00046bc832 Allow extending NativeViewHierarchyManager
Summary: public This diff makes a few small changes to NativeViewHierarchyManager to allow extending it:
a) makes the class public so it can be constructed from outside of the package
b) adds resolveView and resolveViewManager to access mTagsToViews and mTagsToViewManagers
c) changes addRootView signature to make root view a ViewGroup instead of SizeMonitoringFrameLayout

The reason behind change c) is that in FlatUIImplementation I want to use a root view that does not extend SizeMonitoringFrameLayout. NativeViewHierarchyManager doesn't really use any of the root view properties, so it could be even a View, but ViewGroup seems more fitting.

This diff should contain no functional changes or other side-effects.

Reviewed By: astreet

Differential Revision: D2554841

fb-gh-sync-id: cce748707cf7485d456e4a057dae1db87aa17160
2015-11-30 18:59:26 -08:00
Perry Poon da9e9e709b add mockingbot to showcase 2015-12-01 10:50:35 +08:00
Denis Koroskin fe28118a48 When creating a View using NativeViewHierarchyManager, pass ThemedReactContext instead of root view tag
Summary: public NativeViewHierarchyManager.createView() takes int rootViewTag which is only used to resolve ThemedReactContext, but we already have it resolved before we enqueueCreateView, so we can just pass it directly. This makes mRootViewsContext tag -> to ThemedReactContext mapping unnecessary in NativeViewHierarchyManager. Makes the class simpler.

Reviewed By: kmagiera, astreet

Differential Revision: D2460280

fb-gh-sync-id: 68c503f4fb37ca0b1dcb2abc9e0c33a5225d1f6a
2015-11-30 18:21:40 -08:00
Denis Koroskin c4c74215fa Allow extending UIViewOperationQueue
Summary: public I need to extend NativeViewHierarchyManager to support a richer set of operations on Views, and those operations needs to be ran in UI thread.
Existing UIViewOperationQueue doesn't know about those operations, so I need to extend it too to allow them. This patch is making the class constructor protected to allow subclassing it from another package. Should not have any functional changes.

Reviewed By: astreet

Differential Revision: D2554826

fb-gh-sync-id: ad2d44a61beb216d940e20cd1489d3b5da1b398b
2015-11-30 17:43:27 -08:00
Huang Yu 8f2023d961 fix Libraries/Components/Touchable lint warnings
Summary: fix 4 lint warnings under Libraries/Components/Touchable directory
Closes https://github.com/facebook/react-native/pull/4449

Reviewed By: svcscm

Differential Revision: D2705537

Pulled By: spicyj

fb-gh-sync-id: 0c573d846a2263819c2a0bffe0a178eee1fe3fca
2015-11-30 17:16:26 -08:00
Huang Yu da0744892c fix Library/ReactNative lint warnings
Summary: fix 2 lint warnings under `Libraries/ReactNative` directory
Closes https://github.com/facebook/react-native/pull/4446

Reviewed By: svcscm

Differential Revision: D2705429

Pulled By: nicklockwood

fb-gh-sync-id: a7318ef9d1d194f077b0879fd041c42da5b2dec3
2015-11-30 16:25:46 -08:00
Huang Yu 9f92e91608 fix camera roll lint warnings
Summary: fix lint warnings under `Libraries/CameraRoll` directory
Closes https://github.com/facebook/react-native/pull/4445

Reviewed By: svcscm

Differential Revision: D2705430

Pulled By: nicklockwood

fb-gh-sync-id: b5a179750a6696836cf458bc8e646e6b8a23fd98
2015-11-30 16:25:41 -08:00
Huang Yu 0c8bafe84a fix library/utility lint warnings
Summary: I have disected lint warnings fixes to several PRs. This one fixes lint warnings under Libraries/Utility path.
Closes https://github.com/facebook/react-native/pull/4444

Reviewed By: svcscm

Differential Revision: D2705303

Pulled By: spicyj

fb-gh-sync-id: c745ac62cbff30d6bb9478a1d2465fe56b305f0c
2015-11-30 16:15:30 -08:00
Nick Lockwood 94f126ddbf Fixed TextInput.blur()
Reviewed By: helouree

Differential Revision: D2704065

fb-gh-sync-id: a4f5aa9c9b4fcb7980eb85289d16982840a980bd
2015-11-30 14:32:06 -08:00
Denis Koroskin dd5bb96e44 Provide getters for CallerContext and DraweeControllerBuilder in ReactViewManager
Summary: public Right now there is no centralized place to initialize CallerContext for Fresco. It should probably go through FrescoModule, but currently it's going through ReactImageManager, and thus unavailable to FlatUIImplementation, that doesn't use ReactImageManager. So this diff provides public getters for CallerContext (and DraweeControllerBuilder) in ReactViewManager. This is hacky and generally should not be needed, but without it groups don't have correct CallerContext set.

Reviewed By: kmagiera, astreet

Differential Revision: D2569372

fb-gh-sync-id: 2622e69c64bfebfc575deb330ee77e0139efb7ec
2015-11-30 13:58:29 -08:00
James Ide bb62d0b5d6 Merge pull request #4440 from 99gamers/revert-4439-master
Revert "Add TYDY to the Showcase" (Taking TYDY off)
2015-11-30 11:55:14 -08:00
Tsung Han (Jake) Yang 4e04e3bc28 Revert "Add TYDY to the Showcase" 2015-11-30 11:50:56 -08:00
Chirag aaaf7c3747 Merge pull request #4439 from 99gamers/master
Add TYDY to the Showcase
2015-11-30 14:46:06 -05:00
Jake Yang b86b5af1e8 Add TYDY to the Showcase 2015-11-30 11:30:02 -08:00
mkonicek-pr-test 8f50ace8b3 Remove newline in TicTacToe example
Summary: Really just for testing the shipit bot :)
Closes https://github.com/facebook/react-native/pull/4434

Reviewed By: svcscm

Differential Revision: D2703503

Pulled By: mkonicek

fb-gh-sync-id: 4b93638e01eaf86d63c429e6797d08095c4824ee
2015-11-30 11:11:24 -08:00
Aleksei Androsov 015c6b3be2 ImagePicker always called with cancelCallback
Summary: We should pick 2 callbacks from pickerCallbacks and pickerCancelCallbacks arrays and call them depens on args.
Closes https://github.com/facebook/react-native/pull/4411

Reviewed By: svcscm

Differential Revision: D2703209

Pulled By: javache

fb-gh-sync-id: 7d2d7c63b933a66a1ff600663c3a7fcc821c750b
2015-11-30 10:33:59 -08:00
David Aurelio 32fa0b7fa1 Move bundle output formats to their own files
Reviewed By: tadeuzagallo

Differential Revision: D2702834

fb-gh-sync-id: fca308c5078a11924e071077822fb77d762bd564
2015-11-30 09:31:27 -08:00
Pieter De Baets 3c382a7619 Merge pull request #4261 from sienkowski/master
[docs] A guide covering communication between native and RN on IOS.
2015-11-30 16:46:14 +00:00
Danny Arnold df70005c12 calling navigationBar's overridden ref function
Summary: Before that it was not possible to get a ref to a navigation bar (unless using Navigator's internal `_navBar` prop)
Closes https://github.com/facebook/react-native/pull/3755

Reviewed By: svcscm

Differential Revision: D2674315

Pulled By: nicklockwood

fb-gh-sync-id: 26120f7bcbb675e8217b8bd963dcc6ed314d4ba3
2015-11-30 08:32:23 -08:00
Andreas Amsenius 0f0b57880f ActionSheetIOS sharing exclude activity types
Summary: Closes https://github.com/facebook/react-native/pull/4427

Reviewed By: svcscm

Differential Revision: D2702825

Pulled By: nicklockwood

fb-gh-sync-id: f12e83332f2083cee2c04625b5113774c8a907e0
2015-11-30 06:20:30 -08:00
Dave Miller c929e15523 Update touch handling to properly handle transformed Views
Summary: public

Our view handling for determining if a touch was in a view was not transform aware.  This updates it to be
transform aware (by borrowing the code from ViewGroup).

Now, touches will be correctly translated to the view if the view is transformed.  They will also have the correct
local touch point.

This fixes https://github.com/facebook/react-native/issues/3557

Reviewed By: andreicoman11

Differential Revision: D2696063

fb-gh-sync-id: 291f6b9884c610c29f8f8b9992c98d59863ab481
2015-11-30 06:12:24 -08:00
Pawel Sienkowski c852e73f5a [docs] A guide coverin communication between native and RN on IOS.
WARNING: I was not able to run the website locally because of a bug, so please test it before merging
2015-11-30 14:38:01 +01:00
Nick Lockwood c63de5e2a5 Fixed MapView crash on iOS 8 and earlier
Summary: public

[MKPinAnnotationView redPinColor] is only supported on iOS 9 and later. This caused React Native to crash on iOS 8 and earlier.

This fixes the crash by providing a forked implementation for different OS versions.

Reviewed By: tadeuzagallo, javache

Differential Revision: D2702737

fb-gh-sync-id: cd8984f1f3d42989001f3c571e325f1b4ba09ac8
2015-11-30 05:10:26 -08:00
mkonicek pr tester c9dd4015f1 Better error handling in Android Geolocation module (PR 2)
Summary: Just a testing PR for the shipit bot (please don't close :))
Closes https://github.com/facebook/react-native/pull/4355

Reviewed By: svcscm

Differential Revision: D2702784

Pulled By: mkonicek

fb-gh-sync-id: 867c65dcea486750ca65a8437b37a0f658538111
2015-11-30 04:27:28 -08:00
Denis Koroskin 3dca8cf9fd Add UIImplementationProvider and allow overriding it in AbstractReactActivity
Summary: public UIImplementationProvider allows plugging in an alternative UIImplementation. A follow up diff adds a toggle under FB Dev Settings and uses this class to control an implementation. This allows us experimenting with other ways of generating UI hierarchy from JavaScript components.

Reviewed By: astreet

Differential Revision: D2554774

fb-gh-sync-id: 6574a893020e3519bd2ab00b9620a6dbdfaed595
2015-11-29 23:27:30 -08:00
Der-Nien Lee e8e7a2db57 @build-break revert of D2217731
Differential Revision: D2702368

fb-gh-sync-id: 64f53168610c5bf5f3dc22cd7e4dd6b4bb620b4c
2015-11-29 17:41:28 -08:00
olivier notteghem 593a45e319 LayoutAnimation support for Android RN
Reviewed By: astreet

Differential Revision: D2217731

fb-gh-sync-id: d990af4b630995f95433690d5dcf510382dc34d2
2015-11-29 16:33:26 -08:00
Alexander Blom 4890424562 Allow to pass in ImagePipelineConfig to FrescoModule
Summary: This allows an app to configure much more options in Fresco. public

Reviewed By: astreet

Differential Revision: D2700598

fb-gh-sync-id: e1ffff18bff270e14ef82c14f7bfeef984605738
2015-11-29 04:49:28 -08:00
James Ide 4c7378cf8d Merge pull request #4404 from satya164/docsfix
[Docs] Syntax highlight gradle code
2015-11-28 22:30:52 -08:00
Satyajit Sahoo c4f882a59f [Docs] Syntax highlight gradle code 2015-11-29 10:13:06 +05:30
Satyajit Sahoo 3c3495739d Add docs on building from source 2015-11-29 10:04:07 +05:30
Denis Koroskin fd0d987768 ShadowNodeHierarchyManager should be supplied externally to UIManagerModule
Summary: public UIManagerModule should not be creating UIImplementation. Instead, UIImplementation instance should be supplied to it to allow plugging in different implementations. No functional changes.

Reviewed By: astreet

Differential Revision: D2464632

fb-gh-sync-id: e7372977c93ceb7ef5e8658e5ee7e8e87f52d851
2015-11-28 11:59:28 -08:00
Frédéric Sagnes 599a130c9a Add perf tests to avoid decoding the bundle completely
Reviewed By: jspahrsummers

Differential Revision: D2574965

fb-gh-sync-id: 7bea6b3af04ba7e15471cc94a324a6c4a1d3614d
2015-11-27 09:21:29 -08:00
Bram 710b443af1 bugfix #3997: react-native bundle not working on windows 10
Summary: fixes https://github.com/facebook/react-native/issues/3997

the root cause is in

Mon, 09 Nov 2015 13:22:47 GMT ReactNativePackager:SocketServer uncaught error Error: listen EACCES C:\Users\donald\AppData\Local\Temp\react-packager-9248a9803ac72b509b389b456696850d

This means that the socket server cannot create the socket.

cfr https://gist.github.com/domenic/2790533 the socket name is not a valid windows socket name.
Closes https://github.com/facebook/react-native/pull/4071

Reviewed By: mkonicek

Differential Revision: D2699546

Pulled By: davidaurelio

fb-gh-sync-id: 6c6494c14c42bb17506b8559001419c9f85e91e3
2015-11-27 08:22:29 -08:00
Nick Lockwood 01a0facf33 Fixed onFocus/onBlur events for multiline TextInput
Summary: public

onFocus and onBlur were not firing for multiline TextInputs.

Reviewed By: tadeuzagallo

Differential Revision: D2699846

fb-gh-sync-id: 7e64309bc631a42a99f989f615fef927dc50217c
2015-11-27 07:47:28 -08:00
Nick Lockwood 60db876f66 Wrapped UIManager native module for better abstraction
Summary: public

RCTUIManager is a public module with several useful methods, however, unlike most such modules, it does not have a JS wrapper that would allow it to be required directly.

Besides making it more cumbersome to use, this also makes it impossible to modify the UIManager API, or smooth over differences between platforms in the JS layer without breaking all of the call sites.

This diff adds a simple JS wrapper file for the UIManager module to make it easier to work with.

Reviewed By: tadeuzagallo

Differential Revision: D2700348

fb-gh-sync-id: dd9030eface100b1baf756da11bae355dc0f266f
2015-11-27 07:00:32 -08:00
Felix Oghină 9e30c3b218 add native module overriding
Differential Revision: D2700638

fb-gh-sync-id: a88ffaf864be848e1bba22e443d301e4623f04ec
2015-11-27 06:31:12 -08:00
Mike Armstrong af753a8a4d Add NativeProfiling module that uses RN nativeProfiler or console.profile
Reviewed By: jspahrsummers

Differential Revision: D2696072

fb-gh-sync-id: 6a2b9793424cf9a82b9472e6d468cbd81dd6780a
2015-11-27 04:44:25 -08:00
Oleksandr Stashuk af1475fc4c revert of D2699721
Reviewed By: lexs

Differential Revision: D2700660

fb-gh-sync-id: c59fc46e03146af9a1a6ce836070924d6bcfaba6
2015-11-27 04:28:28 -08:00
Konstantin Raev 01983c2f0a Ability to run unit tests in react-android-github via gradle
Reviewed By: mkonicek

Differential Revision: D2699804

fb-gh-sync-id: 7b31287407bacf2e8e3de6ee1c723a11bb2a0f27
2015-11-27 04:20:19 -08:00
Martin Kralik be285c43d1 use didSetProps instead of updateLayout
Summary: There is no point in using `updateLayout` when we have `didSetProps`.
The only a bit risky part is calling `dirtyLayout` in `setFrame:forView:` instead of `updateLayout`,
but since setting frame shouldn't really change border/margin/padding it should be ok.

Depends on D2699512.

public

Reviewed By: nicklockwood

Differential Revision: D2700012

fb-gh-sync-id: a7c33b3b4e3ddc195bebebb8b03934131af016fb
2015-11-27 04:03:48 -08:00
Martin Kralik f86691a449 added didSetProps for views and shadow views
Summary: Views and shadow views might want to configure themself once all of their props were set.
So far there was no way to do it without writing some synchronization code.

This diff adds a `didSetProps` call on both uiviews and shadow views, passing names of all props that were set for convenience.

public

Reviewed By: nicklockwood

Differential Revision: D2699512

fb-gh-sync-id: 65f76e7bcbf5751d5b550261a953c463ed2f4e8a
2015-11-27 04:03:42 -08:00
Alexander Blom 2c0679bed1 Reuse DraweeControllerBuilder instead of allocating one for every image
Reviewed By: astreet

Differential Revision: D2699801

fb-gh-sync-id: 883e788f0a5c7231bf26f1ba4149115a15487366
2015-11-27 03:03:33 -08:00
Alexander Blom 699a75b01f Clear Fresco caches when going low on memory
Reviewed By: astreet

Differential Revision: D2699721

fb-gh-sync-id: 2d4685885ee254546496b0517633e5fe2de840d6
2015-11-27 03:03:28 -08:00
Mike Armstrong e1adea86c6 add timestamps to determine string convert time
Reviewed By: astreet

Differential Revision: D2684174

fb-gh-sync-id: feed759025e131fd913c6188f783d6920ad1839c
2015-11-27 02:53:26 -08:00
Mike Armstrong e1533fdff6 Move BridgeProfile call to give better systrace info
Reviewed By: tadeuzagallo, sahrens

Differential Revision: D2697510

fb-gh-sync-id: 00ec4d5835331b78c554c904dd29661dad9f6f97
2015-11-27 01:19:25 -08:00
David Aurelio 9c322df7b8 Don’t do manual connection counting
Reviewed By: tadeuzagallo

Differential Revision: D2696017

fb-gh-sync-id: 039abf9b7ed1570590e96e7077bb48a5493e8471
2015-11-26 11:04:28 -08:00
Martin Konicek c4636beaeb Merge pull request #4375 from mkonicek-tester/master
Alpha-sort modules in Known Issues
2015-11-26 18:12:09 +00:00
mkonicek-tester 8ebe136f61 Alpha-sort modules 2015-11-26 18:07:58 +00:00
mkonicek-tester ab68d8e8d1 Alpha-sort modules in Known Issues 2015-11-26 18:07:17 +00:00
Martin Konicek 5a002a2987 Merge pull request #4374 from mkonicek-tester/master
Update KnownIssues.md
2015-11-26 18:02:59 +00:00
mkonicek-tester fd6ec34cdc Update KnownIssues.md 2015-11-26 18:01:53 +00:00
Martin Konicek 0f89696f76 Update KnownIssues.md 2015-11-26 17:39:15 +00:00
Tim Park 8911b72d9e Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.

Briefly, if you have a MapView declared as:

    <MapView
      annotations={this.state.annotations}
      overlays={this.state.overlays}
      style={styles.map}
      region={this.state.region}
      ref="mapView"
    />

then setting

    this.state.overlays = [{
      coordinates: [
        { latitude: 35.5, longitude: -5.5 },
        { latitude: 35.6, longitude: -5.6 },
        ...
      ],
      strokeColor: 'rgba(255, 0, 0, 0.5)',
      lineWidth: 3,
    }];

will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153

Reviewed By: svcscm

Differential Revision: D2697347

Pulled By: nicklockwood

fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 08:54:16 -08:00
Andy Street a636ddd9f0 Backout D2677289 [react_native] View recycling in JS
Summary: public

We're seeing related crashes. The diff has no tests, the perf tests weren't conclusive, and the person who'd be supporting it no longer is available to work on it. We can try this again later in a less rushed manner with proper perf testing.

Reviewed By: davidaurelio

Differential Revision: D2696615

fb-gh-sync-id: 3b6814ac12af19516146d5c42d2add8321b10db5
2015-11-26 08:41:27 -08:00
Pieter De Baets bb11e05c33 Default empty view to RCTView with position: absolute
Reviewed By: spicyj, davidaurelio

Differential Revision: D2693494

fb-gh-sync-id: fc00b995d7d4fdaaedf4c3e5382354f0a1f4ac23
2015-11-26 08:12:28 -08:00
Konstantin Raev c0f60d2018 Moved React Native Android unit tests to open source
Reviewed By: mkonicek

Differential Revision: D2685799

fb-gh-sync-id: 56f061df58641c8cb13fc16bad5f87039f0c49fb
2015-11-26 08:05:15 -08:00
Tadeu Zagallo a7e2059c15 Fix class pair register on reload
Summary: public

It was possible after reload to detach from the new instance, removing the markers.

Reviewed By: jspahrsummers

Differential Revision: D2696208

fb-gh-sync-id: ad8f5d449f51c7c74a20ae7c0cafc4fc786ea390
2015-11-26 07:27:27 -08:00
David Aurelio 977a40ed04 Don’t error for known files that are reported as “added” by watchman
Reviewed By: tadeuzagallo

Differential Revision: D2696636

fb-gh-sync-id: 89f90aba2a22d9c3e93632df4c4bc01791525833
2015-11-26 07:06:24 -08:00
Nick Lockwood 4b6b71664e Fix buck error
Reviewed By: idevelop

Differential Revision: D2699529

fb-gh-sync-id: d71a5abf04b767a58dd6f054a88a8bf0c561aa8d
2015-11-26 05:42:25 -08:00
Pieter De Baets bf0934a531 Delete RCTRootView's deprecated 'initialProperties' property
Reviewed By: majak

Differential Revision: D2597411

fb-gh-sync-id: 547837cac8e22e7fe78db6213741634b87bcf571
2015-11-26 05:10:28 -08:00
Tadeu Zagallo ea96a7edb8 Avoid dispatch_async on RCTProfile when not profiling
Summary: public

Fixes #3953

Bail out soon when the profiler is not running + move string formating into the macro so that it happens in a background queue.

Reviewed By: jspahrsummers

Differential Revision: D2696167

fb-gh-sync-id: a1b91ee4459078ab9a4c0be62bd23362ec05e208
2015-11-26 04:11:28 -08:00
SungHyun Park 9365414559 added TRACE_TAG_REACT_APPS constants
Summary: added required constants
Closes https://github.com/facebook/react-native/pull/4366

Reviewed By: svcscm

Differential Revision: D2699433

Pulled By: astreet

fb-gh-sync-id: 33c69b248f682e1b31bb2ef79cb0253ddd8d8817
2015-11-26 03:35:32 -08:00
Nick Lockwood 5b5b55027b Added support for custom color and image for map annotations
Summary: public

This diff extends RCTMap annotations with an `image` and `tintColor` property, which can be used to render completely custom pin graphics.

The tintColor applies to both regular pins and custom pin images, allowing you to provide varied pin colors without needing multiple graphic assets.

Reviewed By: fredliu

Differential Revision: D2685581

fb-gh-sync-id: c7cf0af5c90fd8d1e9b3fec4b89206440b47ba8f
2015-11-26 03:07:28 -08:00
James Ide 63ef826d44 Merge pull request #4368 from FormationsFactory/showcase-add-blog-link-formations-factory-company-name-search-app
[Showcase] Add blog post link to Formations Factory Company name search app
2015-11-26 02:45:16 -08:00
Julius Jurgelenas e379536c11 Showcase: add blog post link to Formations Factory Company name search app 2015-11-26 12:43:39 +02:00
James Ide 8167c9e313 Merge pull request #4363 from spicyj/nav-abc
Fix ABC order of docs nav
2015-11-26 00:19:24 -08:00
Denis Koroskin 76e033ead9 Extract shadow hierarchy logic from UIManagerModule into UIImplementation
Summary: public This diff extracts all shadow hierarchy-specific logic from UIManagerModule into a UIImplementation class. This will later allow using in alternative UIImplementations in future.

Reviewed By: astreet

Differential Revision: D2457849

fb-gh-sync-id: 532128ce1d67b525cdf03794a5a29d7e9ed0ab90
2015-11-25 22:15:37 -08:00
Denis Koroskin aeda31428d When addRootView() is called in a background thread, execute it as a generic UIOperation command in UIViewOperationQueue
Summary: public There is really no reason NativeViewHierarchyManager.addRootView() should be performed synchroniously when called from background thread, as long as it is executed before every other command in UIViewOperationQueue, and we can ensure that by putting add view command at the front of the queue. When that happpens, the queue should always be empty anyway, but it's best to be safe.

This eliminates an unnecessary blocking call and should overall make the code simpler and safer (Semaphores can timeout).

Reviewed By: astreet

Differential Revision: D2462680

fb-gh-sync-id: 784ac6573a455019b93628c70992f3830b9d6f1f
2015-11-25 22:15:32 -08:00
Denis Koroskin 16350ae09b Remove AnimationRegistry from UIManageModule
Summary: public UIManageModule creates AnimationRegistry but never uses it, this diff moves it to NativeViewHierarchyManager who owns it. UIViewOperationQueue depends on AnimationRegistry to perform some of the enqueued operations, so it accessed it through a getting in NativeViewHierarchyManager. This will also make sure NativeViewHierarchyManager. and UIViewOperationQueue operate on the same AnimationManager (previously, that wasn't really enforced). This is needed so I can move away UIViewOperationQueue creation off the UIManagerModule. This diff should have no functional changes whatsoever.

Reviewed By: astreet

Differential Revision: D2462605

fb-gh-sync-id: 1e3cd64908f51126362f2b5fb39b1efa6521854e
2015-11-25 22:15:26 -08:00
Ben Alpert fab8e38759 Fix ABC order of docs nav 2015-11-25 21:26:32 -08:00
Sebastian Markbage 0e11379dbb Extract the Require polyfill from the default list of polyfills
Summary: Extracts the module system from the list of dependencies and adds it back to the bundling process.

Unbundling and Prepack has their own module systems. jest does as well. This is not normally part of the resolver, nor polyfills.

In fact, I think we'll eventually start treating polyfills as normal modules just like core-js.

The prelude is the weird part right now but I think that we'll eventually move the DEV flag to be module level instead of global and we can just get rid of this prelude.

public

Reviewed By: davidaurelio

Differential Revision: D2693701

fb-gh-sync-id: a59ccda0fa15fcfcda52897e8290805eed1b92b3
2015-11-25 18:46:28 -08:00
Brent Vatne ae09a10c95 Add onLoadX support on Android
Summary: ~~This is a WIP, just finished the first bit and wanted to get some feedback to see if this approach seems appropriate, as I haven't done a lot of Android development.~~

Looks ready for review now.
Closes https://github.com/facebook/react-native/pull/3791

Reviewed By: svcscm

Differential Revision: D2672262

Pulled By: mkonicek

fb-gh-sync-id: 1e8f1cc6658fb719a68f7da455f30a7c9b1db730
2015-11-25 18:30:31 -08:00
Kyle Corbitt b65f1f2234 Use elevation to implement shadows on Android
Summary: This PR includes a working interface to Android's `elevation` property implemented as an RN style. Elevation is the only (easy) [platform-supported way to create shadows](http://developer.android.com/training/material/shadows-clipping.html). For it to work note that you must be running on Android 5.0+, and add `elevation` to a view with a `backgroundColor` set. These are platform limitations.

This PR is not intended to be merged in its current state, but rather to inform the discussion from #2768. At a minimum, before merging we would need to add the elevation style to the docs and rebase this to master (**EDIT** I have now rebased on master because from v0.14.2 too many commits were being pulled in -- haven't tested it since the rebase though). Additionally, it might be good to add tests, although I couldn't find any for the Android code. I'm happy to get that done if this feature gets signed off by the React Native team.

Finally, as I argued in #2768 I think that `elevation` is a useful abstraction ov
Closes https://github.com/facebook/react-native/pull/4180

Reviewed By: svcscm

Differential Revision: D2684746

Pulled By: mkonicek

fb-gh-sync-id: 825f3ccd20c4b0eea9d11b5f0e3a6b018b7e4378
2015-11-25 18:28:29 -08:00
Brent Vatne c11d861807 [Docs] Update style of paragraphs within showcase 2015-11-25 14:15:47 -08:00
Brent Vatne 0d2eb748f7 [Docs] Re-imagining the showcase 😇 2015-11-25 14:10:03 -08:00
Brent Vatne a00bd33295 Merge pull request #4256 from rreusser/note-on-known-issue-for-3198
[Docs] Additional note for Android borderRadius clipping #3198
2015-11-25 12:47:13 -08:00
Chester Wood e966cd1041 Set navigator.product to ReactNative
Summary: Fix for [Issue 1331](https://github.com/facebook/react-native/issues/1331). Sets navigator.product to ReactNative and navigator.productSub to the version string in package.json.

Note that the code requires package.json, which works fine in the RN packager, but webpack users will probably a need to configure a json loader in their config file.

Tested using UIExplorer and console.log printout of the product variables in xcode and Chrome debugger.
Closes https://github.com/facebook/react-native/pull/4083

Reviewed By: svcscm

Differential Revision: D2696881

Pulled By: vjeux

fb-gh-sync-id: 511446432dcd0ec658100715129c77153e743423
2015-11-25 12:45:28 -08:00
Milen Dzhumerov a663d4d8d5 Use for-loop instead of forEach() in a hot path
Summary: public

Replaces the usage of forEach() with a for loop on a hot code path

Reviewed By: tadeuzagallo

Differential Revision: D2690727

fb-gh-sync-id: b7cbcda5cf80a0e31753f49c01e145abb789f3e5
2015-11-25 07:24:31 -08:00
Andy Street ca016e4eb3 Add perf markers for cold start
Summary: public

Adds useful systrace perf markers for cold start analysis

Reviewed By: mikearmstrong001

Differential Revision: D2695629

fb-gh-sync-id: d964f28a1f3e10a13c441a17b0300c980d4914e8
2015-11-25 05:58:31 -08:00
Martin Konicek 388d8c8f9b Update breaking-changes.md 2015-11-25 13:41:40 +00:00
Milen Dzhumerov 638fd11c5c Revert 3770f061c832 for further investigation
Reviewed By: idevelop

Differential Revision: D2695659

fb-gh-sync-id: b1ba529c648681faef5d4f07273722764722fbe1
2015-11-25 05:24:28 -08:00
Nick Lockwood 060664fd3d Refactored module access to allow for lazy loading
Summary: public

The `bridge.modules` dictionary provides access to all native modules, but this API requires that every module is initialized in advance so that any module can be accessed.

This diff introduces a better API that will allow modules to be initialized lazily as they are needed, and deprecates `bridge.modules` (modules that use it will still work, but should be rewritten to use `bridge.moduleClasses` or `-[bridge moduleForName/Class:` instead.

The rules are now as follows:

* Any module that overrides `init` or `setBridge:` will be initialized on the main thread when the bridge is created
* Any module that implements `constantsToExport:` will be initialized later when the config is exported (the module itself will be initialized on a background queue, but  `constantsToExport:` will still be called on the main thread.
* All other modules will be initialized lazily when a method is first called on them.

These rules may seem slightly arcane, but they have the advantage of not violating any assumptions that may have been made by existing code - any module written under the original assumption that it would be initialized synchronously on the main thread when the bridge is created should still function exactly the same, but modules that avoid overriding `init` or `setBridge:` will now be loaded lazily.

I've rewritten most of the standard modules to take advantage of this new lazy loading, with the following results:

Out of the 65 modules included in UIExplorer:

* 16 are initialized on the main thread when the bridge is created
* A further 8 are initialized when the config is exported to JS
* The remaining 41 will be initialized lazily on-demand

Reviewed By: jspahrsummers

Differential Revision: D2677695

fb-gh-sync-id: 507ae7e9fd6b563e89292c7371767c978e928f33
2015-11-25 04:49:45 -08:00
Pieter De Baets bba71f146d Defer rendering events popover until required
Reviewed By: davidaurelio

Differential Revision: D2690835

fb-gh-sync-id: 1d17c20b308e364c49f868d8861c6ad93957bffe
2015-11-25 04:15:27 -08:00
Pieter De Baets 38db6fa465 Remove scrollview support from UIManager, remove mainScrollView(delegate)
Reviewed By: nicklockwood

Differential Revision: D2692749

fb-gh-sync-id: 48975d2f09f3b2902dfa2e56ff9d34257b2395bc
2015-11-25 04:12:34 -08:00
Milen Dzhumerov fc5a8678d3 Implement efficient DiskCache.clear()
Summary: public

Ability to efficiently remove all keys with a particular prefix

Reviewed By: tadeuzagallo

Differential Revision: D2658741

fb-gh-sync-id: 3770f061c83288efe645162ae84a9fd9194d2fd6
2015-11-25 03:23:36 -08:00
Mike Armstrong aaffb239ca Allow the output of the JSC profile to be specified in JS
Reviewed By: astreet

Differential Revision: D2674869

fb-gh-sync-id: 15e192015ecc9291359d6c988e793849eac97513
2015-11-25 01:35:23 -08:00
Satyajit Sahoo e6897dd9b3 Merge pull request #4338 from cvrajeesh/master
Add Nalathe Kerala to showcase
2015-11-25 14:36:31 +05:30
Rajeesh C V bd99f31358 Add Nalathe Kerala to showcase 2015-11-25 12:36:36 +05:30
Manuel Nakamurakare 9fc3991615 added method to set thumb image
Summary: this change will allow the slider to have different thumb images .

Sets an image for the thumb. It only supports static images
Closes https://github.com/facebook/react-native/pull/3849

Reviewed By: svcscm

Differential Revision: D2665699

Pulled By: nicklockwood

fb-gh-sync-id: 3a767e43170074e2419067d5c8eae61668ebb5e9
2015-11-24 16:10:04 -08:00
Nick Lockwood b5be05d82b Fix flaky scrolling for TextInput when using rich text
Summary: public

This diff fixes the jumpy scrolling for multiline `<TextInput>` when using nested `<Text>` components to implement rich text highlighting.

The fix is to disable scrolling on the underlying UITextView, and nest it inside another UIScrollView that we control.

Reviewed By: ericvicenti, tadeuzagallo

Differential Revision: D2674670

fb-gh-sync-id: bacee3ae485523cc26ca8102b714e081df230629
2015-11-24 15:38:27 -08:00
Krzysztof Magiera 469a65217c Add note in View.js render method that wrapper component is not used.
Summary: Got bitten lately by View.js returning different component based on `__DEV__`

Adding a warning in the render method that should make it cleaner in the future that this method is not actually being used in prod mode.
Closes https://github.com/facebook/react-native/pull/4322

Reviewed By: svcscm

Differential Revision: D2691880

Pulled By: vjeux

fb-gh-sync-id: 119672740969a857ab6288b7914d52e8d40a1d95
2015-11-24 13:08:25 -08:00
Martin Kralik 510f001390 put exception message in front of error log
Summary: Exception message was the last part of the whole shown error. This is not optimal in case where there are deeply nested objects as parameters, which used to be displayed before the message.
This diff moves the exception message to the front.

public

Reviewed By: javache

Differential Revision: D2691426

fb-gh-sync-id: c6c9ad3ac4681a8102ea2c580f24382640b7246c
2015-11-24 12:12:26 -08:00
Tim Yung 2c14ab582a RN: Add "Dismiss All" to YellowBox
Summary: Adds a "Dismiss All" button to YellowBox for people who see litter on the ground and continue walking. (Just kidding).

public

Reviewed By: vjeux

Differential Revision: D2691764

fb-gh-sync-id: 9746b42bc1e5dc51f2320880f47f8cb17b952570
2015-11-24 11:37:31 -08:00
Mark Vayngrib b86f14738e support react-native field with fallback to browser field
Summary: React Native is a lot more powerful an environment than the browser, so we need an alternate mapping, as specified [here](https://github.com/defunctzombie/node-browser-resolve#browser-field)

An example:
```js
{
  "browser": {
     "./lib/server": false
   },
   "react-native": {
     "dgram": "react-native-udp",
     "fs": "react-native-level-fs"
   },
   "chromeapp": {
     "dgram": "chrome-dgram",
     "fs": "level-filesystem"
   }
}
```

on the other hand, if "react-native" is not present in package.json, you should fall back to "browser"

other than the one (nesting) test added, the tests are unchanged, just done for both "react-native" and "browser"

(I've implemented [react-native-udp](https://npmjs.org/package/react-native-udp) and [react-native-level-fs](https://npmjs.org/package/react-native-level-fs), but they obviously don't belong in the traditional "browser" field as they won't run anywhere except in React Native.)
Closes https://github.com/facebook/react-native/pull/2208

Reviewed By: svcscm

Differential Revision: D2691236

Pulled By: vjeux

fb-gh-sync-id: 34041ed50bda4ec07f31d1dc50dcdfa428af2512
2015-11-24 11:10:41 -08:00
Alexander Blom 2b22d22a83 Clear static arg arrays after use
Reviewed By: astreet

Differential Revision: D2690812

fb-gh-sync-id: b00291c57e294eece5772531e9f16e0c60b8b8f4
2015-11-24 10:58:45 -08:00
Alexander Blom 69c8dd50fe Avoid leaking FrescoModule when setting SoLoaderShim handler
Summary: The anonymous class had an implicit reference back to FrescoModule that would in turn retain the context.

public

Reviewed By: astreet

Differential Revision: D2690747

fb-gh-sync-id: 8a97c102e461b903c6adf7c65956baf364fa5faf
2015-11-24 10:58:38 -08:00
Alexander Blom 5387df8dc5 Make ReactDatabaseSupplier use application context
Summary: public
We pass in a `ReactContext` but we really only need a context. Make sure we're using the application one.

Reviewed By: astreet

Differential Revision: D2690692

fb-gh-sync-id: 857d6571c9c01d35e12f09be4c8733cca007306f
2015-11-24 10:58:32 -08:00
Alexander Blom 3a00545bc7 Remove cookie handler on destroy
Reviewed By: andreicoman11, astreet

Differential Revision: D2690634

fb-gh-sync-id: a2ab8ce52dd501eed88f166b4c218886ea229744
2015-11-24 10:58:25 -08:00
James Ide 9d333e6411 Update NewIssueGreeting.md 2015-11-24 10:29:40 -08:00
Alexey Lang b4beba5217 Fix logging JSAppRequireTime
Reviewed By: andreicoman11

Differential Revision: D2690760

fb-gh-sync-id: 41e88c48deec05539e7681862d794ed650b81bfa
2015-11-24 10:20:28 -08:00
Konstantin Raev 37f81341a0 Open source SwipeRefreshLayoutAndroid
Reviewed By: mkonicek

Differential Revision: D2679605

fb-gh-sync-id: 7f3e7384b37f29002ddd8cb7a4567fa96c76f047
2015-11-24 10:15:14 -08:00
Martin Konicek e55d70789c Update breaking-changes.md 2015-11-24 17:19:46 +00:00
David Aurelio ffea7793af Add babel helpers necessary for es2015 imports
Summary: public

Adding the babel helpers that are necessary to support ES2015 imports.

Fixes: https://gist.github.com/ehd/49cb2465df9da6b39710

Reviewed By: mkonicek

Differential Revision: D2690772

fb-gh-sync-id: b1b6c0c048bad809a5c58cdd0a2cbeaa11c72ea7
2015-11-24 09:17:29 -08:00
Martin Konicek 55f72c4c8f Update question-bookmarklet.js 2015-11-24 16:55:29 +00:00
Christopher Dro 9dc774877e Merge pull request #4324 from rtelicak/patch-1
Update removeClippedSubviews prop default value
2015-11-24 17:14:23 +01:00
Dave Miller 7bfbc5dd00 Add support for providing AbstractDraweeControllerBuilder to TextInlineImageSpan similar to ImageView
Reviewed By: andreicoman11

Differential Revision: D2690762

fb-gh-sync-id: 80596575d3fa577f8eb05d9f44f72337a640a3db
2015-11-24 08:04:30 -08:00
Martin Konicek 918ef31e10 Update NewIssueGreeting.md 2015-11-24 15:47:29 +00:00
Martin Konicek bf26965968 Update breaking-changes.md 2015-11-24 15:30:29 +00:00
Martin Konicek 9a484757dd Update breaking-changes.md 2015-11-24 15:29:14 +00:00
Martin Konicek 40e15e15bc Update KnownIssues.md 2015-11-24 15:19:25 +00:00
Roman Telicak 3622e44426 Update removeClippedSubviews prop default value 2015-11-24 16:04:35 +01:00
Tadeu Zagallo 789b5708ec Fix arch macro on profiler
Summary: public

Bad typo in `RCTProfile.m`, was using `__x86__` instead of the right one `__i386__`.

Reviewed By: jspahrsummers

Differential Revision: D2690557

fb-gh-sync-id: 537eb0502f5df22cd93665cabfddeead12cad9db
2015-11-24 06:50:10 -08:00
Martin Kralik c324286fb7 truncate redbox error
Summary: If a redbox error is too long it's not shown at all:
{F24443416}
This diff truncates it to its first 10000 chars, which should be good enough:
{F24443417}

The reason is a limitation of UILabel which backs text property on the used UITableViewCell.
Ideally we would use a custom cell with UITextView, but I don't feel there is any value in displaying super long error messages in a redbox.

public

Reviewed By: jspahrsummers, nicklockwood

Differential Revision: D2690638

fb-gh-sync-id: d9b3fcecd2602e8c2618afe1bb97221c2e506605
2015-11-24 06:29:29 -08:00
Felix Oghină cb3c5c8447 Merge pull request #4313 from sunnylqm/patch-8
Update removeClippedSubviews default value
2015-11-24 13:59:15 +00:00
Andy Street 05c79059ae Reduce logcat spew when checking packager status
Summary: public

The common case is to hit an error when the server isn't running. We shouldn't spew a stack trace for it.

Reviewed By: foghina

Differential Revision: D2685706

fb-gh-sync-id: d230af170b92a05452f04a90f23172f15e62dce6
2015-11-24 04:53:27 -08:00
James Ide c3963fdacd Merge pull request #4203 from emilioicai/master
[Docs] Document Platform in the docs #3701
2015-11-24 02:42:10 -08:00
sunnylqm e919567323 Give more details about js require.
Native developers may get confused by require statement.
2015-11-24 17:30:36 +08:00
Emilio Rodriguez 87302ac74b style and typos 2015-11-24 08:44:34 +01:00
Sebastian Markbage 64675dc078 Move RelayProfiler Decoupled Initialization to use Double Dispatch
Reviewed By: josephsavona

Differential Revision: D2689433

fb-gh-sync-id: 966b3d855a5a0a755fd55fb583e31ba648de2a7a
2015-11-23 19:24:27 -08:00
sunnylqm bb3123353f Update Performance.md 2015-11-24 10:31:35 +08:00
sunnylqm d5678e95e1 Update removeClippedSubviews default value
Update removeClippedSubviews default value
2015-11-24 10:29:38 +08:00
Martin Konicek 26946e07f1 Update KnownIssues.md 2015-11-24 01:20:33 +00:00
Pieter De Baets b40631d0db Add exception description to exception name
Reviewed By: fkgozali

Differential Revision: D2687906

fb-gh-sync-id: f1bbc7c3deb9068877add37619faee730cdec743
2015-11-23 16:19:29 -08:00
James Ide e49c70026a [Issues] Solicit high quality issues and PRs 2015-11-23 16:18:16 -08:00
Martin Konicek 5d9b8d9c15 Update NewIssueGreeting.md 2015-11-24 00:07:40 +00:00
Christopher Chedeau 8ccd13b9b6 Update NewIssueGreeting.md 2015-11-23 16:05:51 -08:00
Martin Konicek 6b8f3da955 Update NewIssueGreeting.md 2015-11-23 23:57:54 +00:00
Denis Koroskin ac0134322f Remove UIManagerModule dependency in UIViewOperationQueue
Reviewed By: astreet

Differential Revision: D2463226

fb-gh-sync-id: eafc876ca750a08406917d8bbbfe87c27a4649fd
2015-11-23 14:29:31 -08:00
Sebastian Markbage f624d01cac Make Style Interpolator Function Generation Lazy
Summary: This code generation executes eagerly and these functions are fairly large and takes time to compile.

However, I'm mostly doing this change because it significantly increases the Prepack binary file size.

In theory, there might be a slight impact on the first use of these interpolators but I couldn't really tell.

An alternative would be to create a factory that is called by the components at an appropriate time, or to just refactor the whole thing to use Animated.

I didn't want to dig too deeply for a single component though.

public

Reviewed By: vjeux

Differential Revision: D2687296

fb-gh-sync-id: 6fc8cdf54dfb6f0b50c11db973d67d114bbc7400
2015-11-23 14:20:29 -08:00
Spencer Ahrens 598d37f6d5 Quick fix to require cycle in UnimplementedView
Reviewed By: vjeux

Differential Revision: D2686884

fb-gh-sync-id: 99afd8b389d5849d708654a4967dbd403ac24a9b
2015-11-23 14:14:32 -08:00
Kevin Gozali db617e56a3 send fatal error for js exception in eventEmitter
Summary: public

Any uncaught exception inside an event emitter handler was reported as softError, which didn't crash the app, but left the app running in an unknown state. Since there's no way for the app to catch these softerror (to provide a fallback error view, etc), let's change it to report fatal error for uncaught exception for the time being.

Reviewed By: javache

Differential Revision: D2685322

fb-gh-sync-id: 52956d3db20809cc90448bd080795754b899435e
2015-11-23 13:52:27 -08:00
James Ide aad4bc9231 Merge pull request #4306 from satya164/docs-promise
Add docs for using Promise in Native Modules. Fixes #4301
2015-11-23 13:23:01 -08:00
Satyajit Sahoo fdca4224bc Added docs on using Promisesin Native Modules 2015-11-24 02:51:51 +05:30
Christopher Dro cfd9f65cfe Add space after url. Fixes #4292
Summary: Closes https://github.com/facebook/react-native/pull/4297

Reviewed By: svcscm

Differential Revision: D2686725

Pulled By: foghina

fb-gh-sync-id: 3679c7e8d9b3e4c12ef42628e348c6a6d5cc32d7
2015-11-23 12:31:30 -08:00
Christopher Chedeau 5f226cf4c5 Update breaking-changes.md 2015-11-23 11:10:36 -08:00
Martin Konicek b9580511a6 Codemod IntentAndroid.{openURI -> openURL}
Reviewed By: olegbl

Differential Revision: D2680128

fb-gh-sync-id: d9786b6c20d4d6f62cc79fb21ab6861afe30bb54
2015-11-23 11:04:29 -08:00
Peter Lai 56a56f33d1 add method to determine if current activity is null
Reviewed By: andreicoman11

Differential Revision: D2680281

fb-gh-sync-id: ac158fb55dd60d05b7e3444d68e06a010e04eef4
2015-11-23 10:49:34 -08:00
dmmiller 90de853cc1 Update GestureResponderSystem.md
Update to reflect the reality of what pageX and pageY are on both platforms.
2015-11-23 18:19:58 +00:00
Alexander Kotliarskyi 0f3ed2cdb7 Merge pull request #4299 from andrewsardone/bundle-dev-clarification
[Docs] Clarify --dev flag for react-native-bundle
2015-11-23 10:14:25 -08:00
Tadeu Zagallo 659cc005ad Restore VSYNC markers on RCTProfile
Summary: public

The VSYNC markers got lost at some point when refactoring RCTBatchedBridge, restore it, but keep it in RCTProfile.

Reviewed By: jspahrsummers

Differential Revision: D2685805

fb-gh-sync-id: 1acad330de7baf004a83b41f90ba4b6532605de6
2015-11-23 09:50:30 -08:00
Martin Konicek 3afa8b6c5f Update breaking-changes.md 2015-11-23 17:32:59 +00:00
Dave Miller 0c2ee5d480 Update Android Touch events
Summary: public

This moves Android touch events to parity with iOS.  The locationX,Y value passed to js now is view relative to the view that is handling the touch.
The pageX,Y is now relative to the root view.

Reviewed By: andreicoman11

Differential Revision: D2670028

fb-gh-sync-id: 5438640d6c78633629b9a308a59cc306bb07815e
2015-11-23 09:30:37 -08:00
Hedger Wang e0d53e1c48 Fix move gesture handling.
Summary: public

The gesture that moves scene around should only be attached when the
move starts at the moment that the first move is granted.

No move would ever be granted if the move event is prevented by the
decendent children (e.g. a slider component).

For now, the move gesture is attached at `onPanResponderGrant`
instead of `onPanResponderMove` thus we'd create "ghost-move-gesture"
when no actual moves is received my the navigator.

Reviewed By: fkgozali

Differential Revision: D2683802

fb-gh-sync-id: 50ae877787167511df48378304bd2ad665c73300
2015-11-23 09:20:28 -08:00
Milen Dzhumerov e4dca7a1fa Add JSON methods to systrace
Summary: public Add JSON methods to systraces

Reviewed By: jspahrsummers

Differential Revision: D2679719

fb-gh-sync-id: d8bbdc9577264b1de01d7bb52656f4f1a86a5982
2015-11-23 07:03:39 -08:00
Milen Dzhumerov 02b67d9d40 BridgeProfiling measure methods
Summary: public Add measure() family of methods which allow to easily swizzle methods for profiling

Reviewed By: tadeuzagallo

Differential Revision: D2679904

fb-gh-sync-id: 3724440e1bdaca9e854f4d4124a897a204966dc7
2015-11-23 07:03:32 -08:00
David Aurelio 6b3a6e5958 Unbreak open source release due to import of internal module
Reviewed By: majak

Differential Revision: D2685592

fb-gh-sync-id: eb5e9baf15d08ff1ec2c29e0ca1fe94df079d79e
2015-11-23 06:37:29 -08:00
Andrew Sardone d92b3b3e9b Clarify --dev flag for react-native-bundle
Given some [confusion around `react-native bundle`'s `--dev` flag][1],
this hopes to clear somet things up int he docs by…

- Removing mentions of the `__DEV__` environment variable
    - I think it confuses the user on how to work with the command-line
      flag, and frankly it seems like an internal implementation detail
      from the perspective of react-native-cli. We should focus on what
      the `--dev` flag does (e.g., toggles dev warnings, performance
      optimizations).
- Adding a minimal note about native-land's build configurations and how
  that should be checked for production builds

[1]: https://github.com/facebook/react-native/issues/4181
2015-11-23 08:21:45 -05:00
Nick Lockwood f827a513a1 Fixed double-callback for cached images
Summary: public

A missing return statement in RCTImageLoader meant that cached images would be loaded twice - once from cache and again from the source.

This was mostly innocuous, causing only a slight perf regression due to the image cache being effectively disabled, however in some cases (such as RCTImageEditingManager.cropImage) it caused the success callback to fire twice, resulting in a crash.

Reviewed By: fkgozali

Differential Revision: D2684956

fb-gh-sync-id: 7580a6fbfe00a30807951803e04bfcdbee3bb80a
2015-11-23 04:20:28 -08:00
Alexander Blom 274c5c78c4 Support cookies on Android
Summary: This adds a persistent cookie store that shares cookies with WebView.

Add a `ForwardingCookieHandler` to OkHttp that uses the underlying Android webkit `CookieManager`.
Use a `LazyCookieHandler` to defer initialization of `CookieManager` as this will in turn trigger initialization of the Chromium stack in KitKat+ which takes some time. This was we will incur this cost on a background network thread instead of during startup.
Also add a `clearCookies()` method to the network module.

Add a cookies example to the XHR example. This example should also work for iOS (except for the clear cookies part). They are for now just scoped to Android.

Closes #2792.

public

Reviewed By: andreicoman11

Differential Revision: D2615550

fb-gh-sync-id: ff726a35f0fc3c7124d2f755448fe24c9d1caf21
2015-11-23 03:21:31 -08:00
Alexander Blom f57c2a9140 Add GuardedResultAsyncTask
Reviewed By: andreicoman11

Differential Revision: D2679459

fb-gh-sync-id: 8a9ec170ce76bbc3340c9e8872e19b78ae5a5c2d
2015-11-23 03:21:25 -08:00
panjianjun 54470021ca remove prepare_command in podspec file
Summary: since 0.13.2 , prepare_command in podspec would download the dependencies of react-native again when you install react-native via cocoapods with local path.
Closes https://github.com/facebook/react-native/pull/4291

Reviewed By: svcscm

Differential Revision: D2685452

Pulled By: nicklockwood

fb-gh-sync-id: b1c1a0f45897d3eb45be99db3633c899c35feb8e
2015-11-23 01:20:29 -08:00
James Ide a97dbe0394 Merge pull request #4278 from darkrishabh/showcase
Adding DareU to the Showcase
2015-11-22 00:49:01 -08:00
Rishabh Mehan 156b5ad79e Adding DareU to the Showcase 2015-11-22 00:14:20 -08:00
Tadeu Zagallo 16dd5d664b Add systrace markers to module require
Summary: public

Show modules' dependencies and time to load.

Reviewed By: davidaurelio

Differential Revision: D2603245

fb-gh-sync-id: a1d5067a8522b908b87fdfdd51ff4c4fdbc2edfc
2015-11-21 11:11:26 -08:00
Sebastian Markbage 43f18ffd08 Add infra for Prepack build option
Summary: This adds a build option for using Prepack (an experimental packager) to
build a bundle. It doesn't actually take on the npm package dependency
because it's not published/open source (yet).

This will be used while we experiment and should be maintained as the
build system changes so that we can continue getting fresh builds.

I found that saveBundleAndMap and processBundle were over abstracted and
got in my way so I inlined it and removed the unit tests because the unit
test was testing trivial code that is likely to change interface.

I went with a separate build phase and a separate Bundle class even though
there are a lot of commonalities. I imagine that the requirements for
Prepack will continue to diverge. Especially for source maps but a larger
refactor could try to unify these a bit more. The fact that modules are
wrapped before the write phase seems to be an unfortunate architecture
that makes this difficult.
Closes https://github.com/facebook/react-native/pull/4226

Reviewed By: amasad

Differential Revision: D2673760

Pulled By: sebmarkbage

fb-gh-sync-id: 299ccc42e4be1d9dee19ade443ea3388db2e39a8
2015-11-20 20:19:25 -08:00
James Ide aa399f0fd9 Merge pull request #4258 from mikefowler/master
Update Animations.md
2015-11-20 15:58:10 -08:00
Tim Yung 8ab51828ff RN: Revamp YellowBox for Warnings
Reviewed By: vjeux

Differential Revision: D2667624

fb-gh-sync-id: f3c6ed63f3138edd13e7fe283cf877d598018813
2015-11-20 13:09:16 -08:00
James Ide b641d3de37 Merge pull request #4262 from rreusser/note-on-geolocation-docs
[Docs] Note that Android geolocation not yet open sourced
2015-11-20 12:57:34 -08:00
Ricky Reusser 945a1c72db Note in docs that Android geolocation not yet open sourced 2015-11-20 15:43:07 -05:00
Marc Horowitz 9a61628f13 Clean up the interface to the bridge
Summary: Change the following classes into interfaces, with a separate
Impl file:  CatalystInstance, ReactInstanceManager,
CatalystQueueConfiguration, MessageQueueThread.  This is done to help
isolate the interface between React Native and applications which use it.
This will also help some intrusive development work on a branch
such as porting parts of the bridge to common C++ code, without affecting
app reliability while this work is ongoing.
public

Reviewed By: astreet

Differential Revision: D2651277

fb-gh-sync-id: f04dc04a6e68df7acbc2bbf8b2529287d7b5b2ae
2015-11-20 12:30:30 -08:00
Marc Horowitz facf8a56d2 minor build cleanups
Summary: make DevSupportManager PUBLIC visibility, instead of adding
to it more; put private parts of OnLoad into an anonymous namespace,
and move NativeRunnable into it; don't make NativeArray depend on
MethodCall which it does not use.
public

Reviewed By: astreet

Differential Revision: D2651270

fb-gh-sync-id: d5262da79cbd60c4eb490d43d13cc625fa163cdf
2015-11-20 12:29:33 -08:00
Marc Horowitz c8f3b43984 Don't use the Bridge from CatalystInstance.
Summary: getBridge() is annotated VisibleForTesting, but still used
in DevSupportManager.  Instead, add the necessary methods to the
CatalystInstance interface.
public

Reviewed By: astreet

Differential Revision: D2651265

fb-gh-sync-id: 395893a961c32843871de4451eeccb33135b7ede
2015-11-20 12:29:27 -08:00
Marc Horowitz 5b6b5a64d1 Split JavaSJExecutor and ProxyExecutorException into their own file
Summary: This makes the exception a nested class of the interface,
which eliminates the dependency of DevSupportManager on
ProxyJavaScriptExecutor.
public

Reviewed By: astreet

Differential Revision: D2651252

fb-gh-sync-id: 99de1c308b9bce717ab749c4e239d2773a920e1f
2015-11-20 12:29:20 -08:00
Ricky Reusser f2a10d1f16 Additional note for Android borderRadius clipping #3198 2015-11-20 14:59:33 -05:00
Mike Fowler 60b67a447d Update Animations.md
Add a better explanation of the extrapolation options.
2015-11-20 11:38:04 -08:00
Marc Horowitz 67209e6396 If fbsystrace is running when catalyst starts, it asserts
Summary: registering with systrace checks if the bridge is
initialized, which it's not yet in the ctor.  Defer registration until
after the bridge is created, and only unregister in that case.
public

Reviewed By: astreet, dreiss

Differential Revision: D2651244

fb-gh-sync-id: 8da1108e9d15fddde48d06f4ed61ee0f787016ad
2015-11-20 10:10:29 -08:00
Milen Dzhumerov 7febd13676 Attach to all RelayProfiler events
Summary: public

Dynamically profile events from RelayProfiler if available. This will expose time spent in Relay in the systraces.

Reviewed By: tadeuzagallo

Differential Revision: D2674215

fb-gh-sync-id: d5f9d529b86d267a80b0cda2223f6a28a08ac385
2015-11-20 10:06:28 -08:00
Martin Konicek 155a609781 Unbreak tests
Summary: The recent commits for RecyclerViewBackedScrollView introduced a bunch of Flow errors.

Disable Flow for now in `ReactNativeViewPool` as it looks like that file doesn't use Flow :)

public

Reviewed By: gabelevi

Differential Revision: D2679974

fb-gh-sync-id: 71512f403e3fa271f6c0fa1a64e877ca1750f675
2015-11-20 09:53:28 -08:00
Saurabh Aggarwal a7c4ed106b Adds stetho interceptor to the OSS react native networking module
Reviewed By: mkonicek

Differential Revision: D2669416

fb-gh-sync-id: d061711a412348b16ffb877e0178a05460fd95f2
2015-11-20 09:44:27 -08:00
Krzysztof Magiera 205a35ad37 View recycling in JS.
Summary: public
Native view recycling implementation based on limited pools of views.

In this diff I introduced new UIManager method: dropViews. Instead of removing views from tag->view maps when they are detached we keep them there until we get a call to dropViews with the appropriate tag. JS may keep a pool of object and selectively decide not to enqueue drop for certain views. Then instead of removing those views it may decide to reuse tag that has been previously allocated for a view that is no longer in use.

Special handling is required for layout-only nodes as they only can transition from layout-only to non-layout-only (reverse transition hasn't been implemented). Because of that we'd loose benefits of view flattening if we decide to recycle existing non-layout-only view as a layout-only one.

This diff provides only a simple and manual method for configuring pools by calling `ReactNativeViewPool.configure` with a dict from native view name to the view count. Note that we may not want recycle all the views (e.g. when we render mapview we don't want to keep it in memory after it's detached)

Reviewed By: davidaurelio

Differential Revision: D2677289

fb-gh-sync-id: 29f44ce5b01db3ec353522af051b6a50924614a2
2015-11-20 08:11:36 -08:00
Krzysztof Magiera 0c8850f3a7 Only send layout update operation to nativehierarchymanager when layout actually changes.
Reviewed By: andreicoman11

Differential Revision: D2679408

fb-gh-sync-id: 7f0a972e9e12f70402e2d285edef458a61ca1c39
2015-11-20 08:04:29 -08:00
Sebastian McKenzie 06e514076b Ensure correct Babel plugin locations in packager transform
Summary: Manually resolve all default Babel plugins. `babel.transform` will attempt to resolve all base plugins relative to the file it's compiling. This makes sure that we're using the plugins installed in the react-native package.

**NOTE:** Haven't tested this. Please don't merge until Travis has done CI.
Closes https://github.com/facebook/react-native/pull/4248

Reviewed By: svcscm

Differential Revision: D2679651

Pulled By: davidaurelio

fb-gh-sync-id: 0cdef1e738ba28c09c811432a71047f80540ed7b
2015-11-20 07:54:29 -08:00
Krzysztof Magiera 1195f9c8e8 Further improvements in RecyclerViewBackedScrollView.
Summary: public
Changed ListView to use onLayout and onContentSizeChange (new) events instead of measure. Updated ScrollView implementation to support contentSizeChange event with an implementation based on onLayout attached to the content view. For RecyclerViewBackedScrollView we need to generate that event directly as it doesn't have a concept of content view.
This greatly improves performance of ListView that uses RecyclerViewBackedScrollView

Reviewed By: mkonicek

Differential Revision: D2679460

fb-gh-sync-id: ba26462d9d3b071965cbe46314f89f0dcfd9db9f
2015-11-20 07:44:31 -08:00
Martin Konicek 848a151ff8 Add a bookmarklet to comment on questions
For higher accuraccy (and less clowniness) it might be better
to have the question bot only label issues that are potentially
questions and then have people quickly go through those issues
and use this bookmarklet to comment on them.
2015-11-20 14:26:59 +00:00
Nick Lockwood 0fe074acbd Removed all calls to [UIImage imageWithData:] on a background thread
Summary: public

I had previously assumed (based on past experience and common wisdom) that `[UIImage imageWithData:]` was safe to call concurrently and/or off the main thread, but it seems that may not be the case (see https://github.com/AFNetworking/AFNetworking/pull/2815).

This diff replaces `[UIImage imageWithData:]` with ImageIO-based decoding wherever possible, and ensures that it is called on the main thread wherever that's not possible/convenient.

I've also serialized access to the `NSURLCache` inside `RCTImageLoader`, which was causing a separate-but-similar crash when loading images.

Reviewed By: fkgozali

Differential Revision: D2678369

fb-gh-sync-id: 74d033dafcf6c412556e4c96f5ac5d3432298b18
2015-11-20 05:17:33 -08:00
Pieter De Baets 1a1c3f76a2 Port CatalystLoggingTestCase to iOS
Reviewed By: nicklockwood

Differential Revision: D2658485

fb-gh-sync-id: e6803aefee69ee058651fc4c8c202619543f0cd2
2015-11-20 04:41:24 -08:00
Krzysztof Magiera 7cd7591f04 Use requireNativeComponent in View.js.
Summary: public
In a previous diff I've removed a need for using View attributes in requireNativeComponent. Thanks to that we can now use requireNativeComponent in View module. In a follow up diff I'll be getting rid of ReactNativeViewAttributes.

Reviewed By: sahrens

Differential Revision: D2676088

fb-gh-sync-id: d5d6e50f4629bd7982b90f3496e1fd22078e96a8
2015-11-20 02:09:38 -08:00
Pawel Sienkowski 0d17d6a8c0 RCTRootView integration tests
Reviewed By: javache

Differential Revision: D2631527

fb-gh-sync-id: 377471d9e8546d7c05a045286a6ef7c5277ded16
2015-11-19 13:34:31 -08:00
EwanThomas 2faf8632d3 UIRefreshControl added to scroll view
Summary: **What:**

adds `onRefreshStart` property to `ScrollView.js` for displaying and activating pull to refresh.

**Why:**

Javascript implementations seemed a little flakey and inconsistent.  As you can see in the issues below:

https://github.com/facebook/react-native/issues/2356
https://github.com/facebook/react-native/issues/745

So this is an attempt a completely native implementation.

What do you think?

![Image of dog](http://i.imgur.com/HcTQnzJ.gif)
Closes https://github.com/facebook/react-native/pull/4205

Reviewed By: svcscm

Differential Revision: D2674945

Pulled By: nicklockwood

fb-gh-sync-id: 65113a5db9785df5a95c68323c2cdf19f3b217b1
2015-11-19 11:15:48 -08:00
Martin Konicek 5950f8cf15 Update KnownIssues.md 2015-11-19 18:10:40 +00:00
dajomu 0bf7928ebe Added Subject to ActionSheetIOS share options and updated example
Summary: I've added a subject property to the ActionSheetIOS.showShareActionSheetWithOptions options object. This will allow users to set a subject for things like emails when they are sharing to them through the ActionSheetIOS.
Options are now as follows:
```
{
   url: 'https://code.facebook.com',
   message: 'message to go with the shared url',
   subject: 'a subject to go in the email heading',
}
```
Closes https://github.com/facebook/react-native/pull/4238

Reviewed By: svcscm

Differential Revision: D2674536

Pulled By: nicklockwood

fb-gh-sync-id: 3dfad39f94f19999233bf777253ef71b6e692a6d
2015-11-19 08:42:31 -08:00
Mike Armstrong 3e7db56445 Fix multiple calls to createReactContextInBackground
Reviewed By: astreet

Differential Revision: D2674440

fb-gh-sync-id: f842826516d2b03291ad0c4bf5c8dcbf8ec0f3a9
2015-11-19 08:20:26 -08:00
Quentin Valmori 7da42e3950 add allowsInlineMediaPlayback prop to play inline html5 video
Summary: Allow an html5 video to be played inline. (see #3112)
Closes https://github.com/facebook/react-native/pull/3137

Reviewed By: svcscm

Differential Revision: D2674318

Pulled By: nicklockwood

fb-gh-sync-id: cf71e4039c7027f1468370ae3ddef6eb3e2d2d4f
2015-11-19 07:11:29 -08:00
Mike Armstrong 2a9a5fc9e8 css layout systrace markers
Reviewed By: astreet

Differential Revision: D2668741

fb-gh-sync-id: 043ff740f8cc7c687a79c50c933db99ed67b60e4
2015-11-19 06:52:27 -08:00
Milen Dzhumerov c8fd9f7588 Split immediate into multiple passes
Reviewed By: tadeuzagallo

Differential Revision: D2663957

fb-gh-sync-id: d7f0041fc98edb46e518f684527effe2f5201240
2015-11-19 03:33:26 -08:00
gilchenzion a3d9f5ba84 Add showsCompass to MapView props
Summary: Was trying to remove the compass from the map and thought I would contribute to the project for everyone.
Closes https://github.com/facebook/react-native/pull/4225

Reviewed By: svcscm

Differential Revision: D2674060

Pulled By: nicklockwood

fb-gh-sync-id: 66f069dfc53fdeae8aaab76980146296cea1140f
2015-11-19 02:22:29 -08:00
Andreas Amsenius 0e4bd91db7 Add RCTCameraRoll cocoapod subspec
Summary: Struggled for some time to figure out why CameraRoll could not (anymore, upgraded from RN 0.11 iirc) be used in a cocoapods setup. This was the cleanest way to make it work, is it a bad idea for some reason?
Closes https://github.com/facebook/react-native/pull/4230

Reviewed By: svcscm

Differential Revision: D2674063

Pulled By: nicklockwood

fb-gh-sync-id: 3d9e6a8ac1834d05ad807ff1fea1b89a724b9cc8
2015-11-19 01:28:25 -08:00
James Ide 0ebb69015d Merge pull request #4222 from deanmcpherson/master
Added Townske to showcase
2015-11-18 22:04:46 -08:00
Dean McPherson dc78a06142 updated 2015-11-19 17:02:05 +11:00
Dean McPherson df57d87035 added Townske to showcase 2015-11-19 15:26:27 +11:00
Kevin Gozali 18cd0953c2 ensure that RCTNetworking JS function names are consistent with android
Summary: public

Recent refactoring of `XMLHttpRequestBase` made use of `abortRequest` instead of the existing `cancelRequest` in iOS. This will simply alias `abortRequest` to `cancelRequest`.

Reviewed By: nicklockwood

Differential Revision: D2671189

fb-gh-sync-id: 6987d004e5a54973c330e19a1baba19ee41170f0
2015-11-18 15:48:29 -08:00
Nick Lockwood 6dca903a73 Fixed zero-size images
Summary: public

See: https://github.com/facebook/react-native/pull/4178

Reviewed By: tadeuzagallo

Differential Revision: D2670839

fb-gh-sync-id: 99a70e90c40301639f00fe4fc762da3205da1d36
2015-11-18 15:23:30 -08:00
James Ide dbba143a7a [Bot] Adjust the some of the wording of the NewIssueGreeting
Made it a little more terse and replaced "We have limited bandwidth" for more clarity.
2015-11-18 15:07:15 -08:00
Krzysztof Magiera dd09c88571 Compose propTypes from View.propTypes where appropriate.
Reviewed By: davidaurelio

Differential Revision: D2668380

fb-gh-sync-id: f34fc8df3bbf755c710e99c5421762406afaba2c
2015-11-18 13:06:27 -08:00
Andy Street 530ee3eeac Initialize JS executor and context at loadApp time
Summary: Automatically starts loading the RN instance as soon as loadApp is called instead of waiting for the UI to be constructed and attached to the window. This saves ~75ms of cold start time on GN 2011 phones.

Also, updates the contract for createReactContextInBackground such that it is only called once (so that people don't accidentally initialize more than once).

See http://imgur.com/a/d7qVm for systrace visualization.

public

Reviewed By: kmagiera

Differential Revision: D2652279

fb-gh-sync-id: 6e7b1fa5dea091af0d568834e11ed23eb1a7860e
2015-11-18 12:40:27 -08:00
Brent Vatne fea59168cc Merge pull request #4212 from tackk/add-to-showcase
Add Squad to the showcase
2015-11-18 12:33:09 -08:00
Martin Konicek 5f170be213 Update QuestionGreeting.md 2015-11-18 20:32:27 +00:00
Martin Konicek e681b2a6c1 Update QuestionGreeting.md 2015-11-18 20:32:00 +00:00
Dan Horrigan 7baf7ef657 Fix the order of the showcase. 2015-11-18 15:26:52 -05:00
Martin Konicek 52a227e132 Update NewIssueGreeting.md 2015-11-18 20:25:37 +00:00
Martin Konicek 4fc3e26cc8 Update QuestionGreeting.md 2015-11-18 20:23:40 +00:00
Dan Horrigan 0851095c4e Add Squad to the showcase 2015-11-18 15:23:33 -05:00
DengYun 6124298dd7 bugfix part 1 for #4124: react.gradle cause a error on windows when building release apk.
Summary: ```
* What went wrong:
Execution failed for task ':app:bundleReleaseJsAndAssets'.
> A problem occurred starting process 'command 'react-native''
```

Can be solved by this patch.
Closes https://github.com/facebook/react-native/pull/4209

Reviewed By: svcscm

Differential Revision: D2669661

Pulled By: foghina

fb-gh-sync-id: 951b7eb9dd3121de607cf5eb3dfb3af44cdf5994
2015-11-18 12:23:28 -08:00
Martin Konicek ea636c94e3 Update NewIssueGreeting.md 2015-11-18 20:18:39 +00:00
Martin Konicek e59b0fc789 Update NewIssueGreeting.md 2015-11-18 20:16:09 +00:00
Pieter De Baets a0e57e623b Remove unused xcscheme 2015-11-18 18:59:23 +00:00
Martin Konicek 494930afb2 Open source the Android Location module
Reviewed By: foghina

Differential Revision: D2658581

fb-gh-sync-id: e95b21c5c7c06f3332d2a7c9fab8be9a2e6441cb
2015-11-18 10:15:21 -08:00
Martin Konicek 99b4901f6b Update CONTRIBUTING.md 2015-11-18 18:09:52 +00:00
Krzysztof Magiera f2545bafc9 Use requireNativeComponent everywhere.
Reviewed By: sahrens

Differential Revision: D2663780

fb-gh-sync-id: 94a7e2265f6f869a2bdf1576dd8ea76b4c5f0b34
2015-11-18 09:43:28 -08:00
Pieter De Baets a027218641 Move JS integration tests to root folder
Reviewed By: mkonicek

Differential Revision: D2658454

fb-gh-sync-id: b639ea995411a7e43903264318b5fca4d2f1e9f7
2015-11-18 09:35:19 -08:00
Tadeu Zagallo 7a794cc72b Strip dev only modules
Summary: public

Make sure some modules that are only available in dev mode are only
included in dev bundles.

Depends on: D2663838

Reviewed By: davidaurelio

Differential Revision: D2663889

fb-gh-sync-id: 42be40b865ef305828b3519556125af090ec61f4
2015-11-18 09:12:29 -08:00
Krzysztof Magiera 9e670a64fc Fix resetting margins and borders on android.
Summary: public

Instead of using 0 as a default we should use UNDEFINED values. That is because setting 0 for left border in case when the property was deleted will interfere with horizontal border (or margin) value. Setting UNDEFINED makes CSSLayout nodes behave correctly in that case.

Reviewed By: andreicoman11

Differential Revision: D2668669

fb-gh-sync-id: 61ce62081583fc39864268333ac8c1409c276cad
2015-11-18 08:41:28 -08:00
Martin Konicek dea2199af2 Add messages for Facebook github bot 2015-11-18 16:29:54 +00:00
SangYeob Bono Yu e6b0eaee35 Fixed Typo
Summary: Closes https://github.com/facebook/react-native/pull/4199

Reviewed By: svcscm

Differential Revision: D2668739

Pulled By: sebmarkbage

fb-gh-sync-id: 4c40feb9088a1631bcd0304bc94e956b6c38883d
2015-11-18 08:10:30 -08:00
Marc Riera a41afb7a1d Add Switch docs 2015-11-18 16:58:21 +01:00
Krzysztof Magiera e6093cff04 Use requireNativeComponent with propTypes for Android components.
Reviewed By: davidaurelio

Differential Revision: D2663502

fb-gh-sync-id: 550e7b7c783ec0463a6beb052c09a768a8086056
2015-11-18 06:36:28 -08:00
Nick Lockwood ca20d710fc Removed duplicate UIManager constants
Summary: public

We were calling constantsToExport twice for every ViewManager, and including two copies of the values in __fbBatchedBridgeConfig. This diff removes the copy from UIManager and then puts it back on the JS side.

Reviewed By: tadeuzagallo

Differential Revision: D2665625

fb-gh-sync-id: 147ec4bfb404835e3875964476ba233d619c28aa
2015-11-18 04:47:27 -08:00
Andrei Coman 32c19c1994 Fix setting js responder for null react view for tag
Reviewed By: kmagiera

Differential Revision: D2637015

fb-gh-sync-id: 03af870cee82519ed34a4bbbcbd2c72146fcf00f
2015-11-18 04:28:27 -08:00
Emilio Rodriguez 3686facdda [Docs] Document Platform in the modules section of the docs #3701 2015-11-18 12:04:19 +01:00
James Ide d5daef08ef Merge pull request #4193 from Fanghao/master
Requires Xcode 7 or higher to run 0.15.0-rc
2015-11-17 20:10:02 -08:00
Fanghao Chen fe3b99886d Requires Xcode 7 or higher to run 0.15.0-rc 2015-11-17 17:09:09 -08:00
sunnylqm 7e22202061 add ERROR Watcher took too long to load hint
add `ERROR  Watcher took too long to load` hint
2015-11-18 09:01:17 +08:00
sunnylqm 27a0ce3ead update the way of starting packager on windows
update the way of starting packager on windows
2015-11-18 08:59:10 +08:00
James Ide 5c9837a080 [README] Add Product Pains mentions to the README
GitHub +1's are low SnR and people resort to them because there's no voting mechanism - https://github.com/isaacs/github/issues/9 - but Product Pains addresses this and it's way better for seeing popular issues.
2015-11-17 15:25:50 -08:00
Nick Lockwood 26cb6bef15 Open sourced RCTPasteboard
Summary: public

RCTPasteboard is a very basic API for writing strings to the pasteboard. Useful for implementing "copy to clipboard" functionality.

Reviewed By: astreet

Differential Revision: D2663875

fb-gh-sync-id: 8d0ecd824c3e9fe135b02201d21d0dab1907c329
2015-11-17 15:20:32 -08:00
Martin Konicek 3c5f3b1dfc Update CONTRIBUTING.md 2015-11-17 21:51:02 +00:00
James Ide b838b4617c Compress HTTP responses from the packager
Summary: The packager was adding compression middleware too late in the stack. This makes things a little faster especially if you're loading through dynamic DNS for example.
Closes https://github.com/facebook/react-native/pull/4121

Reviewed By: svcscm

Differential Revision: D2664373

Pulled By: frantic

fb-gh-sync-id: 46cce81ff6d9e4e71e1718d7e96b58449c248bc1
2015-11-17 12:22:29 -08:00
James Ide 47b8a0ab7a Merge pull request #4188 from exponentjs/npm2
[Docs] Suggest installing npm 2 instead of npm 3 for perf reasons
2015-11-17 11:50:30 -08:00
James Ide 4fed9bfa7d [Docs] Suggest installing npm 2 instead of npm 3 for perf reasons
npm 3 is really slow compared to npm 2, to the extent that people are reporting bugs.
2015-11-17 11:48:15 -08:00
Tadeu Zagallo e623940b3e Add ternary elimination support to the WPO pass
Summary: public

Replaces

```
__DEV__ ? foo() : bar()
```

with

```
bar()
```

for non-dev builds.

Reviewed By: davidaurelio

Differential Revision: D2663838

fb-gh-sync-id: 30fdfa72dda89fc0d340da359e0f43db2917fcf5
2015-11-17 11:14:15 -08:00
rocman 2244a86eea enable the minWidth/maxWidth/minHeight/maxHeight features
Summary: Closes https://github.com/facebook/react-native/pull/4183

Reviewed By: svcscm

Differential Revision: D2663931

Pulled By: nicklockwood

fb-gh-sync-id: 53d699fbb6041e3623eb78f1045cac28821efde8
2015-11-17 10:58:32 -08:00
Justin Spahr-Summers 0491142702 Invoke -reactBridgeDidFinishTransaction per-batch, not per-flush
Reviewed By: tadeuzagallo, majak

Differential Revision: D2663382

fb-gh-sync-id: f3bd77e0ec8fd4129657fc1c23cc542cf7f0c223
2015-11-17 10:22:26 -08:00
Matthieu Achard 2b657003b7 RTCImageStoreManager uses NSData instead of UIImage
Summary: Hi,

I'm currently building an app that changes metadata, does some resizes, maybe watermarking ...etc. I want to use RCTImageStoreManager to store the original image in memory and allow me to command different modifications from javascript as it gives me more flexibility. As RCTImageEditingManager does for example.

But currently the RTCImageStoreManager uses UIImage to store the image, the problem is that UIImage losses metadata.
So i suggest we change it to NSData.

Additionally I added a method to remove an image from the store.

A related PR can be found here https://github.com/lwansbrough/react-native-camera/pull/100.
Closes https://github.com/facebook/react-native/pull/3290

Reviewed By: javache

Differential Revision: D2647271

Pulled By: nicklockwood

fb-gh-sync-id: e66353ae3005423beee72ec22189dcb117fc719f
2015-11-17 09:55:31 -08:00
Pasindu Perera 83c9741dc9 Fixed Typo
Summary: Closes https://github.com/facebook/react-native/pull/4160

Reviewed By: svcscm

Differential Revision: D2663767

Pulled By: mkonicek

fb-gh-sync-id: 1e61c9a96247eec0cb22523989a31b2ad2de0827
2015-11-17 09:49:27 -08:00
Pawel Sienkowski 5367e841ad Weak RCTBridge reference in RCTImageView
Reviewed By: nicklockwood

Differential Revision: D2660517

fb-gh-sync-id: 45a5e2b936cfb4b87a09ad7a756c030376d59da3
2015-11-17 09:14:30 -08:00
sunnylqm b0196a1932 fix typo: showText -> show
Summary: fix typo: showText -> show
Closes https://github.com/facebook/react-native/pull/4140

Reviewed By: svcscm

Differential Revision: D2663635

Pulled By: nicklockwood

fb-gh-sync-id: 3969419e98e8220842494ffc8004b77b6d9a403f
2015-11-17 09:05:30 -08:00
satvik 6e01c514d2 THUMB_URLS of Examples are fixed. Issue #4159
Summary: Fixed THUMB_URLS in examples. Have kept a local copy of images as decided. Refer #4159 for more details.
Closes https://github.com/facebook/react-native/pull/4178

Reviewed By: svcscm

Differential Revision: D2663613

Pulled By: nicklockwood

fb-gh-sync-id: f2410c4a5df1736bb12afa393539b00e8dc5dbbf
2015-11-17 08:50:33 -08:00
Manuel Nakamurakare 2f23b30624 added a property to set a track image to slider ios
Summary: this change will allow the slider to have different track images.

Sets an image for the sliderIOS's track. It only supports images that are included as assets.
Closes https://github.com/facebook/react-native/pull/3850

Reviewed By: svcscm

Differential Revision: D2659680

Pulled By: nicklockwood

fb-gh-sync-id: faf6ddea1077b081c1fc05f8f110b669cef9902c
2015-11-17 08:45:30 -08:00
Martin Konicek 8f0615080b Merge pull request #4165 from chriskwan/examples-readmes
Add git clone step to READMEs for Examples
2015-11-17 16:31:46 +00:00
Felix Oghină e22fb312d2 reorder dev menu, surface live reload and perf monitor
Differential Revision: D2663707

fb-gh-sync-id: 42663a14e1bda7896867692473ae0bf3753aafe2
2015-11-17 08:14:27 -08:00
Felix Oghină 8491b579c8 fix inspecting text elements
Differential Revision: D2663651

fb-gh-sync-id: 2b583fecf5fa7a88f071a7441d03b95d21b8620f
2015-11-17 07:58:26 -08:00
Andrei Coman fc511f0730 Don't send same text changes from text input
Differential Revision: D2663576

fb-gh-sync-id: 259040eda54982c10374f9f1ee89f67a459937d0
2015-11-17 07:30:31 -08:00
Nick Lockwood 5b796cec34 Reduced work done on main thread by RCTImageLoader
Summary: public

Removed redundant calls to [RCTNetwork canHandleRequest] in release mode when loading images, and improved perf for handler lookups when running in debug mode.

Reviewed By: tadeuzagallo

Differential Revision: D2663307

fb-gh-sync-id: 13285154c1c3773b32dba7894d86d14992e2fd7d
2015-11-17 07:21:29 -08:00
Pieter De Baets c043c68e7e Return viewsWithNewFrame instead of passing it around
Reviewed By: nicklockwood

Differential Revision: D2663281

fb-gh-sync-id: 6218c2ff68f7e4d8132ef1f95fb22f5007434319
2015-11-17 06:37:31 -08:00
Alexander Blom 532c9112b4 Send HEADERS_RECEIVED and LOADING events on Android
Summary: Send part of the response body every 100 ms if the client has set onreadystatechange. This
is done by using the same events as the iOS code and removing the callback that Android previously
used.

Reconsolidate iOS and Android implementations.

Closes #3772

(The previous commit was reverted)

public

Reviewed By: astreet

Differential Revision: D2658153

fb-gh-sync-id: b1a32d22db7cc2995c673edd31f4bbaf16ca36cb
2015-11-17 06:31:31 -08:00
Krzysztof Magiera 337dc7e093 Cleanup mNativeChildren on react node cleanup.
Differential Revision: D2663443

fb-gh-sync-id: 7e6e7212103b738f6b6f535e54cc8b86e5def685
2015-11-17 05:47:25 -08:00
Tadeu Zagallo 0b46a0c13b Add a naive WPO implementation
Summary: public

RFC: The minifier haven't been stripping dead-code, and it also can't kill unused
modules, so as a temporary solution this inlines `__DEV__`, kill dead branches
and kill dead modules. For now I'm just white-listing the dev variable, but we
could definitely do better than that, but as a temporary fix this should be
helpful.

I also intend to kill some dead variables, so we can kill unused requires,
although inline-requires can also fix it.

Reviewed By: vjeux

Differential Revision: D2605454

fb-gh-sync-id: 50acb9dcbded07a43080b93ac826a5ceda695936
2015-11-17 03:39:28 -08:00
Krzysztof Magiera bd1885b5d4 Cleanup native view hierarchy when view is dropped.
Differential Revision: D2659738

fb-gh-sync-id: 1c14b8c3c6fabbd0e580777bb94221df6dd98f71
2015-11-17 02:06:28 -08:00
James Ide 0f590d1233 Merge pull request #4167 from mosch/patch-3
added WOOP App
2015-11-16 23:40:11 -08:00
Moritz Schwörer 3bd6efe7ed added WOOP App
yay, first react-native app is done.
2015-11-17 08:23:21 +01:00
Christoph Pojer 5b4244d755 Sync new haste features from upstream
Reviewed By: amasad

Differential Revision: D2644383

fb-gh-sync-id: 5225e6afb8e5b835865473b2880a77235e6bd6eb
2015-11-16 22:50:30 -08:00
Chris Kwan 7a98aeae18 Add git clone step to READMEs 2015-11-16 22:55:45 -05:00
Martin Konicek 7cfd38a093 Update LinuxWindowsSupport.md 2015-11-16 22:19:46 +00:00
Nick Lockwood 7aa789ad57 Fix onSelectionChange "this" binding
Reviewed By: tadeuzagallo

Differential Revision: D2660071

fb-gh-sync-id: 3fc50c0af8566dd7db5a56b220df979625673d07
2015-11-16 14:09:23 -08:00
olivier notteghem e4f0971a55 Re-land D2656590 in iOS repo which is the source of truth
Reviewed By: newobj

Differential Revision: D2660019

fb-gh-sync-id: 7cc183888f88d9971f59b23f45a86b5aa0391909
2015-11-16 13:54:30 -08:00
James Ide f331d2a844 Expose the touch-retention offset as a prop
Summary: The touch-retention offset defines a rect around a touchable component in which the touch is retained. Easiest way to see this is to touch a button in a real navigation bar and slide your finger out of the range and back in. This diff exposes the offset as a prop (I thought touchRetentionOffset was a more informative name than pressRectOffset)

Fixes #198
Closes https://github.com/facebook/react-native/pull/713

Reviewed By: svcscm

Differential Revision: D2115370

Pulled By: shayne

fb-gh-sync-id: c3f57940dfa3806f9c88df03a01d4d65bb58cf32
2015-11-16 13:53:31 -08:00
olivier notteghem 5217c8273f enabling progressive Jpeg rendering (part 2/2)
Reviewed By: nspaun

Differential Revision: D2658991

fb-gh-sync-id: 13a103458c30ea3e8f0cb37456d09f70f4e76e4a
2015-11-16 11:43:27 -08:00
sunnylqm 29c8d46ea1 fix a markdown format typo
Summary: fix a markdown format typo
Closes https://github.com/facebook/react-native/pull/4149

Reviewed By: svcscm

Differential Revision: D2658880

Pulled By: ericvicenti

fb-gh-sync-id: 7feced63f875e96780b0d8d52aa1470bb149ebf8
2015-11-16 11:37:45 -08:00
Nick Lockwood 8b81bb7be5 Fixed issue with alert not being presented when modal window is hidden
Reviewed By: ryanolsonk

Differential Revision: D2658537

fb-gh-sync-id: 94bb311142005cfacc7b7612c17309835eeb980a
2015-11-16 10:24:23 -08:00
Tadeu Zagallo 136d79f4d6 Fix set log block in template
Summary: public

The log register function was updated, but the test example wasn't.

Reviewed By: javache

Differential Revision: D2658417

fb-gh-sync-id: 9ad27ec02eb437e0262e71897ff1a58a97e88b6d
2015-11-16 10:08:08 -08:00
Mike Armstrong 619da521f3 Enable javascript systrace markers via js module
Differential Revision: D2658662

fb-gh-sync-id: 042377551f9dacc0a9d12728edfa54a57c617cf4
2015-11-16 09:46:34 -08:00
Mike Armstrong 2f9e7be04b fix output leaving bad characters in systrace output buffer due to overstepping bytes written
Differential Revision: D2658628

fb-gh-sync-id: e4c9dc66746177d371331d79972f1322239b4ea7
2015-11-16 09:39:31 -08:00
Nick Lockwood b7f5062128 Fixed nil insert crash in shadowViewRegistry
Summary: public

In iOS < 9, inserting a nil object into NSMutableDictionary crashes. It is valid for come components to return a nil shadowView (e.g. ART nodes), and this was crashing on iOS 8.

Reviewed By: jspahrsummers

Differential Revision: D2658309

fb-gh-sync-id: 7abf9273708cc03c3b6307b69ba11c016b471fbe
2015-11-16 09:19:24 -08:00
Martin Konicek d63d2071f9 Update KnownIssues.md 2015-11-16 14:12:46 +00:00
Tadeu Zagallo 8d347d6add Bump babel-core to 6.1.20
Reviewed By: davidaurelio

Differential Revision: D2656437

fb-gh-sync-id: 237b3c285ab83cae2099a1ca043e22e7e5afc691
2015-11-16 04:04:21 -08:00
Tadeu Zagallo 02b2e23663 Add suport for JSC profiling on iOS 9
Summary: public

Make the makefile more flexible and add support for iOS9

Reviewed By: jspahrsummers

Differential Revision: D2656510

fb-gh-sync-id: 0a8a6f137e68b50afedbc6d32266618ad79381e0
2015-11-16 03:38:11 -08:00
Tadeu Zagallo 905a8a4ce0 Reenable JS profiler after reload
Summary: public

Call `nativeProfilerStart` after reloading the bridge.

Reviewed By: jspahrsummers

Differential Revision: D2656507

fb-gh-sync-id: 651ff078ae289cb9701663f5f8ef164db1b42d74
2015-11-16 03:35:27 -08:00
Nick Lockwood 6dd171b8c2 RCTImagePicker now uses main thread
Summary: public

RCTImagePicker (aka ImagePickerIOS) was previously displaying UI from a random thread, which is unsafe. This diff forces it to execute on the main thread instead.

Reviewed By: jspahrsummers

Differential Revision: D2657465

fb-gh-sync-id: 3c0fa6935061ccaa3e6ce649b4e3e8ad8c701384
2015-11-16 03:17:29 -08:00
Tadeu Zagallo 2fb03be046 Fix babelHelpers.extend
Summary: public

The recent change to move babelhelpers out of the module broke the extends method.

Reviewed By: spicyj

Differential Revision: D2656448

fb-gh-sync-id: 633433deea00ecb140afbb732bff0599e67b4d41
2015-11-14 13:51:25 -08:00
Martin Konicek e171d67c55 Update Troubleshooting.md 2015-11-14 19:32:45 +00:00
Martin Konicek 358c2360da Update KnownIssues.md
Turns out it was already documented in Troubleshooting
2015-11-14 19:31:13 +00:00
Martin Konicek c7985e0c87 Document the Firebase issue 2015-11-14 19:26:33 +00:00
Nick Lockwood fa0b45c58b Replaced RCTSparseArray with NSDictionary
Reviewed By: jspahrsummers

Differential Revision: D2651920

fb-gh-sync-id: 953e2ea33abfc7a3a553da95b13e9ab2bccc5a1c
2015-11-14 10:28:28 -08:00
Nick Lockwood 5a34a097f2 Open sourced the onSelectionChange event
Summary: public

Open-sourced the onSelectionChange event for RCTTextView, and also added onSelectionChange support for RCTTextField.

Reviewed By: javache

Differential Revision: D2647541

fb-gh-sync-id: ab0ab37f5f087e708a199461ffc33231a47d2133
2015-11-14 09:44:30 -08:00
Nick Lockwood 397791fcea Added in-memory cache for AsyncLocalStorage
Reviewed By: tadeuzagallo

Differential Revision: D2641705

fb-gh-sync-id: 40b96b3084b82779e16f8845f9faeb0e3638d189
2015-11-14 09:20:30 -08:00
James Ide 90c8f37c39 Mark -[init] w RCT_NOT_IMPLEMENTED
Summary: ARTBrush.m doesn't defined init but Clang wants it.

Fix #2590
Closes https://github.com/facebook/react-native/pull/2592

Reviewed By: svcscm

Differential Revision: D2656454

Pulled By: nicklockwood

fb-gh-sync-id: c386adfadc30c5a0b642b60d3b7e1991481f1fb9
2015-11-14 06:29:27 -08:00
David Aurelio 21bae9b294 Unbreak jest tests (and travis e2e tests)
Reviewed By: mkonicek

Differential Revision: D2652002

fb-gh-sync-id: 8aab8da47dd737acc4ee9acddc484bd3bbdf1184
2015-11-14 03:26:24 -08:00
Nathan Spaun 39ec693866 revert D2631410
Differential Revision: D2655673

fb-gh-sync-id: 115247373767690e63a0d6ce812a578d26b47289
2015-11-13 17:51:30 -08:00
Martin Konicek e406dccaf9 Update docs for Animated - remove precomputeStyle 2015-11-13 22:19:26 +00:00
James Ide e6ad27b417 Merge pull request #4119 from corbt/documentation_native_android
Import PropTypes in Native UI Android Docs
2015-11-13 13:11:39 -08:00
Dave Miller a0268a7bfc Initial checkin for Image within Text nodes
Summary: This adds the basic support for embedding an image in a TextView.

Implementation details :

We create a ReactTextInlineImageShadowNode whenever an Image is embedded within a Text context.
That uses the same parsing code as ReactImageView (copied, not shared) to parse the source property to figure out the Uri where the resource is.

In ReactTextShadowNode we now look for the ReactTextInlineImageShadowNode and place a TextInlineImageSpan so that we can layout appropriately

Later at the time we go to setText on the TextView, we update that TextInlineImageSpan so that the proper Drawable (downloaded via Fresco) can be shown

public

Reviewed By: mkonicek

Differential Revision: D2652667

fb-gh-sync-id: 8f24924d204f78b8bc4d5d67835cc73b3c1859dd
2015-11-13 11:16:27 -08:00
Giampaolo Bellavite 492412f177 Fix typo in console.error
Summary: Closes https://github.com/facebook/react-native/pull/4116

Reviewed By: svcscm

Differential Revision: D2652595

Pulled By: cpojer

fb-gh-sync-id: a46a19dcbb119b4e14df2e4418787ea232c32606
2015-11-13 11:02:42 -08:00
Kyle Corbitt e3543e08f5 bugfix native ui android docs 2015-11-13 19:01:03 +00:00
Pawel Sienkowski 3a42661b47 Custom logic blocks for RCTTestRunner's runTest: method
Reviewed By: majak

Differential Revision: D2626497

fb-gh-sync-id: c78e3b47be4ee192e899594bd05b13521af7172e
2015-11-13 08:38:31 -08:00
Pawel Sienkowski 760a2fc79a Prevent RCTRootView delegate call
Reviewed By: javache

Differential Revision: D2631582

fb-gh-sync-id: 409d439eb1dc8c7723892477dfaf58aa85c664b5
2015-11-13 08:28:28 -08:00
Qiao Liang 993f15d2fe Ensure row key uniqueness for listview with sections
Summary: I encounter issues when using ListView with multiple Sections.
```
...
var ds = new ListView.DataSource({
  rowHasChanged           : (row1, row2) => row1 !== row2,
  sectionHeaderHasChanged : (s1, s2) => s1 !== s2
});
...
  getInitialState: function() {

    var sectionIDs = [0,1,2]
    var rowIDs = [
        [0,1,2],
        [0,1,2],
        [0,1,2]
    ]

    var dataBlob = [
        [blob0,blob1,blob2],
        [blob3,blob4,blob5],
        [blob6,blob7,blob8],
    ]

    return {
      dataSource : ds.cloneWithRowsAndSections(dataBlob, sectionIDs, rowIDs),
    };

```

the code above would throw error because of duplicate key, as ''sectionID0 + rowID0 === sectionID1 + rowID1'. And I have to do:
```
...
sectionIDs.map((id)=>{
  return id+'';
});

rowIDs.map((sec)=>{
  return sec,map((id)=>{
    return id+'';
  });
});
...
```

ListView with sections does not seem to be documented yet, so I am not sure if this is the intended behaviour or am I missing anything. Co
Closes https://github.com/facebook/react-native/pull/4082

Reviewed By: svcscm

Differential Revision: D2652028

Pulled By: mkonicek

fb-gh-sync-id: a9933bac1a1ae2d6cbc73a11ef6aefde6fcdb35f
2015-11-13 08:15:59 -08:00
Brent Vatne 50b8b00768 Add setPageWithoutAnimation
Summary: In some cases it's desirable to set the page in the ViewPager without animating it -- we have this in ScrollView with `scrollWithoutAnimationTo`. This PR adds `setPageWithoutAnimation` on ViewPager.

cc ide kmagiera
Closes https://github.com/facebook/react-native/pull/3621

Reviewed By: svcscm

Differential Revision: D2652056

Pulled By: mkonicek

fb-gh-sync-id: 6f1f38558c41ffdd863c0ebb2f046c75b5c0392c
2015-11-13 08:05:27 -08:00
James Ide 88a92f8f52 Add back projectRoots option to packager CLI command
Summary: Adding this to the CLI again (like: https://github.com/facebook/react-native/commit/8e7cfcd0537ce742618be21aa03e86aedef5f9ac#diff-75e3fc051b7c5100b4681e8a8f62615bL45)

Fix #2390
Closes https://github.com/facebook/react-native/pull/4065

Reviewed By: svcscm

Differential Revision: D2652032

Pulled By: mkonicek

fb-gh-sync-id: 7162983c24f6e08ecc8f7f410e9b756471d88631
2015-11-13 08:00:29 -08:00
Alexander Blom 4d4c48d32b Send HEADERS_RECEIVED and LOADING events on Android
Summary: Send part of the response body every 100 ms if the client has set onreadystatechange. This
is done by using the same events as the iOS code and removing the callback that Android previously
used.

Reconsolidate iOS and Android implementations.

Closes #3772

public

Reviewed By: mkonicek

Differential Revision: D2647005

fb-gh-sync-id: d006e566867fa47d5f8dff71219cb390bcb8e15a
2015-11-13 07:28:28 -08:00
Martin Konicek a99fabdfea Merge pull request #4102 from mkotsbak/patch-1
Add license and source info for react-native-cli
2015-11-13 15:21:58 +00:00
Martin Konicek a5357846d7 Merge pull request #4112 from abalone0204/patch-1
Correct the file name to preprocessor
2015-11-13 15:02:19 +00:00
Spencer Ahrens a94c2aea37 revert onEndReached change to investigate perf regression
Differential Revision: D2651998

fb-gh-sync-id: 81ef96bbd79a282b5d82b8cc9b0654e7163fbdfb
2015-11-13 06:21:58 -08:00
Tsung Chen Ku ade9645ae8 Correct the file name to preprocessor
Since the `scriptPreprocessor.js` is removed since 14.0,
we use `preprocessor.js` instead, 
but the doc doesn't update yet.
So I do it :)
2015-11-13 21:23:30 +08:00
Tim Yung c47116273d JS: Remove Throwing Collection Checks (rFBOBJC)
Reviewed By: sebmarkbage

Differential Revision: D2650824

fb-gh-sync-id: eb944a2086f1efff05215c9f6bd332d0a832606e
2015-11-12 19:38:31 -08:00
Eric Vicenti 5041171b78 Fix ScrollResponder scrollResponderScrollNativeHandleToKeyboard when kb is offscreen
Summary: public

`scrollResponderScrollNativeHandleToKeyboard` would fail silently if there is no keyboard present. This makes sure to do the correct scrolling behavior, by assuming the screen height is where the keyboard would be located.

This still might not work properly in landscape apps, but it should not make the situation worse

Also fix an issue wehre `scrollResponderKeyboardDidHide` would swallow the event

Reviewed By: vjeux

Differential Revision: D2643477

fb-gh-sync-id: f917390f4709361cc47bcd553b214833422ec05d
2015-11-12 19:17:28 -08:00
James Ide 235405091d Merge pull request #4108 from puf/master
Added section on modules that require WebSocket
2015-11-12 19:05:47 -08:00
Frank van Puffelen 591a2284cf Fixed two typos 2015-11-12 18:56:06 -08:00
Frank van Puffelen 354d882a2e Added section on modules that require WebSocket
Explain how to troubleshoot  'No transports available' error that appears when you require firebase before react-native.
2015-11-12 18:06:22 -08:00
Grant Paul ca1f023c8d Fix casting in QoS setter.
Reviewed By: jasonprado

Differential Revision: D2649914

fb-gh-sync-id: 064381bcc81a6a50ffa894d4a07823bb28a587e3
2015-11-12 17:02:42 -08:00
Tim Yung 1a926ab807 RN: Remove BackAndroid Warning
Reviewed By: vjeux

Differential Revision: D2644155

fb-gh-sync-id: 12239a7c36aa338c08a1c4f2de701efe9a145636
2015-11-12 13:24:27 -08:00
Martin Konicek ab7b3b2dea Open source IntentAndroid
Summary: Move the code to the github folder, add more docs and improve the example.

We might want to merge this with `LinkingIOS` later (it has the same functionality
plus support for deep links) but want to see how people use the `IntentAndroid`
API first (and what other methods we should add) to have more data points.

public

Reviewed By: lexs

Differential Revision: D2646936

fb-gh-sync-id: 751f35784d387efcd031f9b458821cdfde048a54
2015-11-12 12:41:32 -08:00
Pawel Sienkowski d5209a0829 'RCTRootView's size flexibility' UIExplorer demo
Reviewed By: javache

Differential Revision: D2622491

fb-gh-sync-id: de79a96ee0fef432bbd0512eba8994719a0adad3
2015-11-12 11:43:43 -08:00
Pawel Sienkowski f1712b0cc3 'Update app properties in runtime' UIExplorer demo
Reviewed By: javache

Differential Revision: D2615815

fb-gh-sync-id: 557ce1b2bc76360fe19a0893e0f317c09b685e23
2015-11-12 11:43:34 -08:00
Marius B. Kotsbak c27cfd38e4 Add license and source info
Fixes #4101.
2015-11-12 20:07:28 +01:00
Flavio daCosta eae91cc680 Don’t report failure to npm-start with arg support
Summary: This supports passing args to `npm start` as referenced in [this comment][comment] while still returning 0 on failure from an npm perspective.

This builds off the npm change in [this commit][commit] and discussed in this [PR].

[comment]: https://github.com/facebook/react-native/pull/2415#issuecomment-141309448
[commit]: https://github.com/facebook/react-native/commit/75df3b537ae071b0b4d1b01ae75d66ec5457bb1e
[PR]: https://github.com/facebook/react-native/pull/2415
Closes https://github.com/facebook/react-native/pull/3002

Reviewed By: svcscm

Differential Revision: D2647258

Pulled By: spicyj

fb-gh-sync-id: 2385254d23a37a99a53f53308e4688bc1fc3124e
2015-11-12 09:27:29 -08:00
Martin Konicek 2681200ed6 More descriptive comment in default.config.js
Reviewed By: foghina

Differential Revision: D2575388

fb-gh-sync-id: b28e9ccd7a89409d4d755cfb8d771e5a9e1981b9
2015-11-12 07:43:25 -08:00
Justin Spahr-Summers 0276dde612 Increase priority of UIManager's shadowQueue
Summary: This queue processes layout and user interface updates, so it should have as high a quality-of-service/priority as possible.

public

Reviewed By: javache

Differential Revision: D2641837

fb-gh-sync-id: 934686f7969b43101af183148d67ff7be4bdf660
2015-11-12 07:05:19 -08:00
Justin Spahr-Summers a1d8ea2ac1 Increase QoS of JavaScript thread on iOS 8+
Summary: This thread is effectively the "main thread" for JavaScript code in React Native applications, so it should have as high a quality-of-service as possible.

public

Reviewed By: javache, nicklockwood

Differential Revision: D2641878

fb-gh-sync-id: 3c60c1abeeab9e7405d6fc9602e0d4ccfab1ea1b
2015-11-12 07:05:13 -08:00
Tadeu Zagallo ce2bb0fe16 Update oss transformer
Summary: public

The inline-requires transform (from `fbjs-scripts`) is only used for oss tests, and wasn't updated, fix it.

Reviewed By: mkonicek

Differential Revision: D2641711

fb-gh-sync-id: 90a084082b9c55c5bcb776346f4655451a8a61f7
2015-11-12 07:05:07 -08:00
Tadeu Zagallo 6766d5ed54 Temporarily disable cli tests
Summary: public

The tests are failing, disable it temporarily until it's fixed.

Reviewed By: mkonicek

Differential Revision: D2641730

fb-gh-sync-id: e8e2a8f3e67df197570484d6a8b1d16be08ce1d7
2015-11-12 07:05:01 -08:00
Ben Alpert b90fe8e2e8 Use external babel helpers
Reviewed By: vjeux

Differential Revision: D2643810

fb-gh-sync-id: a415e2449a98b6070c688c1c250eb8a908b40409
2015-11-12 07:04:55 -08:00
Martin Konicek b699526123 Update shrinkwrap file to match internal
(Followup for https://github.com/facebook/react-native/commit/86c3e385eff0294967b4a92bfed131da079dc990)
2015-11-12 15:04:33 +00:00
Alex Kotliarskyi a710eb3292 Try to guess user's editor
Summary: public

Currently works only on OSX and supports Sublime (2/3) and Atom.

The idea is to get the list of running processes and try to find some well-known
editors there.

Reviewed By: vjeux

Differential Revision: D2642865

fb-gh-sync-id: d346902662354b2f633651a9bc54368146133651
2015-11-11 13:47:34 -08:00
James Ide 768e66bf33 Merge pull request #4079 from hendrikswan/master
Instructions to bring up the developer menu
2015-11-11 13:34:27 -08:00
Andrei Coman 8ca22fc2df Fix typeface getting applied recursively without new style
Differential Revision: D2643562

fb-gh-sync-id: 0db52c223d4941c89f2253bb3f4b2a5af8341ecf
2015-11-11 13:11:28 -08:00
hendrik swanepoel 1246993bc0 Instructions to bring up the developer menu 2015-11-11 23:03:23 +02:00
Pawel Sienkowski bdd0b4796a Prevent runApplication from being called with uninitialized content view
Reviewed By: javache

Differential Revision: D2639111

fb-gh-sync-id: ff9733ee7be1131584d2542f04cf953c63300f95
2015-11-11 12:05:28 -08:00
Ryan Olson 51a5b60a1a Fix showing alerts when modals are presented
Reviewed By: nicklockwood

Differential Revision: D2638505

fb-gh-sync-id: ebecc82baa46be4302fc8d3231f859de572eda10
2015-11-11 09:30:31 -08:00
Nick Lockwood 5931089677 Improved AsyncStorage merge function
Reviewed By: tadeuzagallo

Differential Revision: D2641817

fb-gh-sync-id: 0ba526ce21039ccdb979ac75c44d41c522c910ca
2015-11-11 09:03:05 -08:00
Christine Abernathy 12488da9cf Left nav shouldn't visible when moved to left
Summary: This issue shows up if you have a really long left nav item. When the navigator is pushed in iOS, the long nav item will be visible alongside the new nav item.

Steps to repro:
1/ Modify Examples/UIExplorer/Navigator/NavigationBarSample.js
2/ In NavigationBarRouteMapper.LeftButton, make the following change

    <Text style={[styles.navBarText, styles.navBarButtonText]}>
      Very Long Title {previousRoute.title}
    </Text>

3/ On iOS, get the UIExplorer project up and navigate to Navigator > Navbar Example > Next (top-right nav item) > Next

You should see the overlap.

<img width="592" alt="leftnavitem_issue" src="https://cloud.githubusercontent.com/assets/691109/11086934/b5b82e26-880a-11e5-9945-13901346a5c5.png">

With these changes the overlap is gone.
Closes https://github.com/facebook/react-native/pull/4067

Reviewed By: svcscm

Differential Revision: D2641934

Pulled By: ericvicenti

fb-gh-sync-id: 962536b97f77a3b7f176423aa11dc94f24f07332
2015-11-11 09:02:57 -08:00
Pieter De Baets be9cd6c9cf Don't traverse view trees that are not managed by react-native-github
Reviewed By: tadeuzagallo

Differential Revision: D2641753

fb-gh-sync-id: 924df6c4142ad4a467003d0039a0d7f843d9b63c
2015-11-11 08:15:35 -08:00
Pieter De Baets 215872c2eb Provide log source to handler
Reviewed By: majak

Differential Revision: D2615567

fb-gh-sync-id: a245813220436f2d83ae2ae28bde916cecb3f416
2015-11-11 06:44:30 -08:00
Tadeu Zagallo 86c3e385ef Bump fbjs-scripts version 2015-11-11 13:41:16 +00:00
Christopher Dro f407211131 Add keyboardAppearance prop to TextInput component.
Summary: Resolves #3649.
Closes https://github.com/facebook/react-native/pull/4012

Reviewed By: javache

Differential Revision: D2636538

Pulled By: nicklockwood

fb-gh-sync-id: 022e79d8f8fa684cad43af1a51f728d60ac652a8
2015-11-11 05:38:35 -08:00
Tadeu Zagallo c6a3052c73 Fix launchCommand
Summary: public

Fixes #4055

Babel is failing to find the plugins when running scripts with the full path,
cd into the folder before starting the packager as a workaround.

Reviewed By: vjeux

Differential Revision: D2638529

fb-gh-sync-id: b57151d3091d56a2c070692fb6296184a8fc62de
2015-11-11 04:39:28 -08:00
Krzysztof Magiera d8032b1c7d Upgrading okio and fresco.
Reviewed By: foghina

Differential Revision: D2636757

fb-gh-sync-id: 82dee46232ac2654870f727633604c86d569005e
2015-11-11 01:55:30 -08:00
Krzysztof Magiera 5695ebdcf4 Perf improvements to RecyclerViewBackedScrollView.
Differential Revision: D2641500

fb-gh-sync-id: 7ec6e2863bccebc98f75f586c0f17d509808d46b
2015-11-11 01:21:26 -08:00
James Ide 14b36b472e Merge pull request #4060 from sunnylqm/patch-3
fix typo
2015-11-10 19:24:27 -08:00
sunnylqm ab654b129f fix typo
fix: date.toTime() => date.getTime()
2015-11-11 11:06:40 +08:00
Harry Moreno 4386a3664d Note onSubmitEditing is invalid with multiline={true}
Summary: Repeat onSubmitEditing is invalid if mutliline is set to true. Closer to the method's documentation.
Closes https://github.com/facebook/react-native/pull/4008

Reviewed By: svcscm

Differential Revision: D2639710

Pulled By: nicklockwood

fb-gh-sync-id: b7a169f0d21ac53f092278bdd32ee2d79779aa14
2015-11-10 17:34:45 -08:00
Ben Alpert c73809d116 Update to React 0.14.2
Summary: Not many changes. Notably, this includes https://github.com/facebook/react/pull/5166 which fixes Chrome debugging in RN (in a web worker, `window.dispatchEvent` is available but `document` is not).

Fixes facebook/react-native#4007.

public

Reviewed By: sebmarkbage

Differential Revision: D2638788

fb-gh-sync-id: f6838af54fb0da855bac7edba0adce5d0094d0d9
2015-11-10 15:36:32 -08:00
glevi@fb.com f166e6ccb2 Bandaid for babel 6 flow errors
Reviewed By: tadeuzagallo

Differential Revision: D2638234

fb-gh-sync-id: 493931966d7d3ae5cdc4a5d0d31fd1a7d3af70da
2015-11-10 13:15:29 -08:00
Ben Alpert 288fa40537 Update breaking-changes.md 2015-11-10 12:17:19 -08:00
Ben Alpert 98e04e0a56 Update breaking-changes.md 2015-11-10 12:17:10 -08:00
Andy Street eb645ab82f Update AndroidUIPerformance.md 2015-11-10 19:46:30 +00:00
Tadeu Zagallo b907f40957 Fix breakages when upgrading to babel 6
Reviewed By: vjeux

Differential Revision: D2628092

fb-gh-sync-id: 077a3572fe8b261d390be2bdc32d9d06c2b80a01
2015-11-10 10:56:48 -08:00
Tadeu Zagallo 6eec446106 Use the previously upgraded transforms
Summary: public

Move all the transforms that had been previously upgraded to be the default now.

Reviewed By: vjeux

Differential Revision: D2631308

fb-gh-sync-id: a2120a9850c98ce65784b77598baa123121246ab
2015-11-10 10:55:32 -08:00
Tadeu Zagallo b48964717e Upgrade transformers to be compatible babel 6
Reviewed By: vjeux

Differential Revision: D2626155

fb-gh-sync-id: e919c8fb8bbf139bcd979ee2738c7ec4fc9eba74
2015-11-10 10:55:23 -08:00
Tadeu Zagallo 4bd012e796 Update package.json and shrinkwrap with babel 6
Summary: public

Update package.json and npm-shrinkwrap.json  with all the packages necessary for babel 6.

Reviewed By: davidaurelio

Differential Revision: D2631290

fb-gh-sync-id: 3ec4cbf902379256478f940f2711cab5de5f7e6e
2015-11-10 10:55:15 -08:00
Andy Street f00e748ebd Cleanup for inlines in D2595474
Differential Revision: D2637224

fb-gh-sync-id: 6947a06e2f2b9606fff84addec69dbc51cee84da
2015-11-10 10:24:29 -08:00
Andy Street 9d29b6c202 Update AndroidUIPerformance.md 2015-11-10 17:49:10 +00:00
Andy Street d2c50451f9 Add documentation for systrace 2015-11-10 16:50:38 +00:00
James Ide c7b64548f3 Merge pull request #4038 from digidemon/patch-1
Add Bionic eStore application to the showcase
2015-11-10 08:40:41 -08:00
Tadeu Zagallo 0764e4ef29 Kill RCTWebViewExecutor
Summary: public

The WebView executor has no benefits compared to the JSC executor (slower, no extra debugging tools...),
and it's pretty hacky (since it injects the code in a script tag we have to check for tags in the comments and etc...).

Reviewed By: nicklockwood, javache

Differential Revision: D2636465

fb-gh-sync-id: 0d0f8a59e2c12fe7905b02060b3938c894d2802b
2015-11-10 05:25:28 -08:00
Nick Lockwood 2eb8068cf1 Improved and generalized image thumbnail decoding logic
Reviewed By: jspahrsummers

Differential Revision: D2631934

fb-gh-sync-id: 3ddea328dcb0fc84b9d7b20708324f0b515f1b7f
2015-11-10 05:04:34 -08:00
Pieter De Baets 4b78ed2123 Fix reference to mustfix in RCTLog
Reviewed By: vjeux

Differential Revision: D2631344

fb-gh-sync-id: 29d4aef4c736adf255907351005ede4388d52707
2015-11-10 04:51:30 -08:00
Pieter De Baets a377f81b4e Fix check for rethrowing RCTFatal exceptions
Summary: I changed the format slightly of the exception being generated in RCTFatal, so we we're catching and rethrowing it, which left some useful information of the error stack.

public

Reviewed By: majak

Differential Revision: D2631341

fb-gh-sync-id: feb4939f58014171a55cd74f20f57bcd6dfddc1e
2015-11-10 04:30:37 -08:00
Krzysztof Magiera caf111eb23 Update okhhtp version to 2.5
Reviewed By: andreicoman11

Differential Revision: D2636394

fb-gh-sync-id: 1f4df9ae879e16f13c5343baed85a91469d88cff
2015-11-10 03:20:29 -08:00
Christoph Pojer cbaf58a47d Use debug instead of console.warn
Reviewed By: voideanvalue

Differential Revision: D2636111

fb-gh-sync-id: d21ec56045461353317348c4da14c92be8015bd3
2015-11-10 02:30:34 -08:00
Digidemon Solutions 8f889c942a Add Bionic eStore application to the showcase 2015-11-10 11:03:06 +02:00
Felix Oghină 0c27c3fde9 A bit of JavaClass refactoring
Differential Revision: D2636047

fb-gh-sync-id: 72e06634ca94f03a6ec6d4aa733be38e7157cf8a
2015-11-09 22:05:29 -08:00
Philipp von Weitershausen d7c8b4478b Make InteractionManager.runAfterInteractions() return a Promise
Summary: In accordance with the unwritten rule that any API that takes a callback should also return a promise, I've changed `InteractionManager.runAfterInteractions()` to do just that.

```js
  InteractionManager.runAfterInteractions(() => {
    ...
  });
```
can become
```js
  InteractionManager.runAfterInteractions().then(() => {
    ...
  });
```
(but doesn't have to). Most importantly, though, this change enables code like
```js
  doSomeUIStuff();
  await InteractionManager.runAfterInteractions();
  doSomeNonUIStuff();
```
which is nice.

Note: Because returning a `Promise` means the callback argument is now optional, the behaviour of the API is slightly changed, though not in a backwards-incompatible way (unless a consumer is in some way relying on the exception, but that would be insane).
Closes https://github.com/facebook/react-native/pull/3788

Reviewed By: vjeux

Differential Revision: D2634693

Pulled By: josephsavona

fb-gh-sync-id: 7315120963be23cf69d777e940b2750d32ae47a8
2015-11-09 20:14:26 -08:00
Christoph Pojer 6f57766d21 Defualts for platforms and assetExts
Reviewed By: voideanvalue

Differential Revision: D2635446

fb-gh-sync-id: 57e628cf5f917c7e2511d0c8bde696310ab0fc7a
2015-11-09 19:48:29 -08:00
Felix Oghină dd8ee4ad75 remove extraneous dimension conversion
Differential Revision: D2635753

fb-gh-sync-id: dd7d965ceb90c2c4771d4d28bbc6ec9ef97eca0c
2015-11-09 19:47:29 -08:00
Bhuwan Khattar c16574a0b4 Don't special case performanceNow
Summary: The previous version of `performanceNow` used to reassign to a `require(...)` alias, which our inline requires transform guarded against. Before the update to React 0.14, we were pulling `performanceNow` from a hardcoded `react-tools` version (https://github.com/facebook/react/blob/b4e74e38e43ac53af8acd62c78c9213be0194245/src/shared/vendor/performance/performanceNow.js), so we couldn't just fix the file and had to special case it. Now that we've updated to React 0.14, `performanceNow` is pulled from fbjs and no longer needs to be special cased.

public

Reviewed By: cpojer

Differential Revision: D2634940

fb-gh-sync-id: 7085cde3179c04f9ecfd87bdd472b19e370ee73c
2015-11-09 18:31:29 -08:00
Felix Oghină 53d20d54b4 Merge pull request #4024 from frantic/upgrading-assets-docs
Add manual instructions on upgrading 0.13 -> 0.14
2015-11-09 16:52:32 -08:00
James Ide 9a64f17de8 Source nvm.sh (best effort) when running react-native-xcode.sh
Summary: When Node is installed with nvm, scripts invoked from Xcode need to set up nvm. This can be done either by sourcing .profile/.bash_profile/.bashrc/etc... or by sourcing nvm.sh directly -- this diff does the latter and handles the case where nvm may have been installed the official way (under ~/.nvm/nvm.sh AFAIK) or via homebrew.
Closes https://github.com/facebook/react-native/pull/4015

Reviewed By: svcscm

Differential Revision: D2633301

Pulled By: frantic

fb-gh-sync-id: 3c2b9b0d21887ba21d6f85f5d279314d50c1db28
2015-11-09 16:42:30 -08:00
Alex Kotliarskyi 28ef2316da Add manual instructions on upgrading 0.13 -> 0.14 2015-11-09 15:55:03 -08:00
Peter Lai de4cb7d403 Fix crash when double launching activity
Reviewed By: AaaChiuuu

Differential Revision: D2633573

fb-gh-sync-id: c47bec903d54c12f4d9e576ad1aaf16d4bd68f30
2015-11-09 14:56:27 -08:00
Christoph Pojer 666706b0da Inline cache mock for DependencyGraph-test
Reviewed By: davidaurelio

Differential Revision: D2629211

fb-gh-sync-id: ade0bf4e486b58ecbc9a29eb3bdb61286eebb3d5
2015-11-09 13:34:55 -08:00
Christoph Pojer 44b051d98d Use a mock for FileWatcher
Reviewed By: davidaurelio

Differential Revision: D2628885

fb-gh-sync-id: f8b96c483eb7deb52a7ca4897801e2d0ef9e4f4c
2015-11-09 13:34:50 -08:00
Christoph Pojer 8c59866b69 Fix lint errors
Reviewed By: davidaurelio

Differential Revision: D2628366

fb-gh-sync-id: 8d849e2deb038842475e66ef641fa1d4f7b78d8f
2015-11-09 13:34:45 -08:00
Christoph Pojer b4fb6c2f61 Remove usage of declareOpts
Reviewed By: martinbigio

Differential Revision: D2619798

fb-gh-sync-id: ddc58233c06899017dbb98b3d8258eb0fe61cda3
2015-11-09 13:34:38 -08:00
Christoph Pojer 34f8a6e56f Move getPlatformExtension and getAssetDataFromName into DependencyResolver
Reviewed By: martinbigio

Differential Revision: D2619690

fb-gh-sync-id: 04ca68a1fa2dc7b77a49c38ea1515d7afbdee603
2015-11-09 13:34:32 -08:00
Christoph Pojer 145a72df80 Don't require Activity inside of DependencyResolver
Reviewed By: martinbigio

Differential Revision: D2619364

fb-gh-sync-id: 7947388c8041e5d6cbc1e20c8eb9fc7325dc46e0
2015-11-09 13:33:29 -08:00
Pieter De Baets 478a712d20 Ensure exceptions from route generation are reported
Reviewed By: swarr

Differential Revision: D2631395

fb-gh-sync-id: cf59a290a4b447122c36ec20176b563a38bee630
2015-11-09 09:13:27 -08:00
Tadeu Zagallo 0b5b0f9016 Move string transform from Tramponline to Profiler Queue
Summary: public

`RCTProfileTrampoline` (and consequently `RCTProfileTrampoline(Start|End)`) should be as lightweight
as possible, since it's called for every BridgeModule's method invocation, so
avoid doing any string processing there by dispatching it to Profiler queue.

Reviewed By: jspahrsummers

Differential Revision: D2625918

fb-gh-sync-id: 86a98d4cf727c3be20eebee0bf8437c502c6a42a
2015-11-09 08:43:35 -08:00
Tadeu Zagallo e5b843834d Rename RCTProfile(Begin|End)Event
Summary: public

Rename it to `RCT_PROFILE_(BEGIN|END)_EVENT` to make it clearer that it's a macro,
since it has special behaviours.

Reviewed By: jspahrsummers

Differential Revision: D2631542

fb-gh-sync-id: 629c139462c4aa3582f719b14482017d13676e33
2015-11-09 08:43:29 -08:00
Tadeu Zagallo fdbc1e03de Use barrier to write flag
Summary: public

Use OSAtomicBarrier to write the flags rather than using OSAtomic to read *and* write.

Reviewed By: jspahrsummers

Differential Revision: D2625915

fb-gh-sync-id: 2ed357ae408b2afe5ef2689582585bf4f9edd8a7
2015-11-09 08:03:26 -08:00
Nick Lockwood 3c04bfcf53 Added support for #rgba and #rrggbbaa colors
Summary: public

Added support for #rgba and #rrggbbaa colors, which are now officially recognized in the css spec, and supported by WebKit:

http://trac.webkit.org/changeset/192023

Reviewed By: davidaurelio

Differential Revision: D2631386

fb-gh-sync-id: 207a14f77f94bac8088568dc1bbe2bb29f0176c3
2015-11-09 08:02:46 -08:00
Krzysztof Magiera c6532a94a6 Fix default values for translateX/Y props.
Reviewed By: andreicoman11

Differential Revision: D2631186

fb-gh-sync-id: 8f898b11be31b253780474d1cf328d7d109decbb
2015-11-09 07:55:27 -08:00
Andrei Coman 86c1375c1a Fix test id test case
Differential Revision: D2631505

fb-gh-sync-id: a7a21f114e521ca4ffff9fe9f8408cda70ad5ff3
2015-11-09 06:32:28 -08:00
Brent Vatne cb0d510955 Merge pull request #3996 from sunnylqm/patch-1
Update Images.md(remove the unexisted "screenshot")
2015-11-09 14:35:17 +01:00
sunnylqm e6fb741eb6 Update Images.md
there is no screenshot above
2015-11-09 20:02:16 +08:00
Brent Vatne 6a936b3a4a Merge pull request #3994 from edo1493/master
CANDDi Play store link
2015-11-09 12:18:50 +01:00
edo1493 b3592a8b17 android link to play store 2015-11-09 10:44:41 +00:00
Edoardo Moreni 49df1cbfb0 Merge pull request #1 from facebook/master
Updating fork
2015-11-09 10:41:06 +00:00
Dmitry Gladkov b12117a038 Fix View translations in Android
Summary: Fixes regression in bf59864

Closes #3773
Closes https://github.com/facebook/react-native/pull/3954

Reviewed By: svcscm

Differential Revision: D2631180

Pulled By: kmagiera

fb-gh-sync-id: 09a1a2e48fd6fff37d1491c120a28221cdc1b163
2015-11-09 00:02:19 -08:00
James Ide 714d452a72 Merge pull request #3986 from mbrock/patch-1
KnownIssues.md: mention non-working devtools tab
2015-11-08 12:31:40 -08:00
Mikael Brockman 8646a94e6f KnownIssues.md: mention non-working devtools tab 2015-11-08 21:23:45 +01:00
Tadeu Zagallo e1fa325569 Change async events' cookie to NSUInteger
Summary: public

As jspahrsumemrs pointed out, `int` could overflow pretty easy, since it was static,
change it to an NSUInteger and downcast it when need to interop.

Reviewed By: jspahrsummers

Differential Revision: D2625902

fb-gh-sync-id: 2052be47a7b0ed81484da004fa18d6ef5baf26f7
2015-11-08 10:20:29 -08:00
Tadeu Zagallo 1f0d48a0e4 Guard from hooking modules twice
Summary: public

The dev menu is a little bit flaky right now, and sometimes it emits messages twice,
so guard it not to hook into the modules twice.

Reviewed By: jspahrsummers

Differential Revision: D2625911

fb-gh-sync-id: 18fd6bc00e473ed226291e7aca4a02cec84bfc8f
2015-11-07 13:47:27 -08:00
Ben Alpert 2db10e3e72 Fix open source
Summary: Unfortunately ReactTestUtils requires ReactDOM (for renderIntoDocument), and ReactTestUtils is required by ReactNative. This worked internally because we already shimmed ReactDOM for Relay; now we shim it externally too, at least until we figure out a better solution for this in React.

public

Reviewed By: vjeux

Differential Revision: D2629811

fb-gh-sync-id: 94aac2c4eda39d039fdcedd88295e7afb0f5c5b2
2015-11-07 11:41:20 -08:00
Brent Vatne fe4735ed99 Merge pull request #3862 from bluedaniel/master
Add Android version of Kakapo
2015-11-07 17:16:59 +01:00
Martin Konicek 0bcd01e5c4 Update EmbeddedAppAndroid.md 2015-11-07 14:14:24 +01:00
Hedger Wang 1f0566f55f clean up navigator when it's unmounted.
Summary: public

We've noticed that some of the navigator functions are called after the navigator
being unmounted. This diff adds the checks to protect the navigator from throwing
error when it's calling function after be unmounted.

Reviewed By: fkgozali

Differential Revision: D2629484

fb-gh-sync-id: 1cbee02b1a8d2a5d285e7d76f382d2599ed8caed
2015-11-06 23:41:26 -08:00
Ben Alpert bbee3c6f60 Update core libraries for React 0.14 final
Summary: All minor changes since we were already on the beta: most notable is that destructors are required in pooling to help prevent memory leaks.

public

Reviewed By: sebmarkbage

Differential Revision: D2608692

fb-gh-sync-id: acdad38768f7f48c0f0e7e44cbff6f0db316f4ca
2015-11-06 19:52:34 -08:00
Ben Alpert 3b9cc4c2a5 npm install react-haste@0.14.0
Summary: Install react-haste and fbjs-haste, remove react-tools, update npm-shrinkwrap.json. This only updates the npm packages; the subsequent commit will update the repo to work correctly with this new version.

public

Reviewed By: vjeux

Differential Revision: D2608597

fb-gh-sync-id: a372e4033f7c5091fa15b068853dd00ee69f5f75
2015-11-06 19:52:24 -08:00
Pasquale Anatriello bfeaa6a4f5 Custom fonts support added
Reviewed By: andreicoman11

Differential Revision: D2629077

fb-gh-sync-id: 8d647aff13f97d90c5047ad0ddbcae90215ca4ca
2015-11-06 18:15:31 -08:00
Joe Savona 1ae7a77934 Add polyfills to jest setup scripts
Reviewed By: cpojer

Differential Revision: D2627866

fb-gh-sync-id: 6d2c95ebc1fe05da3a90f8f6df3287bdbac870bd
2015-11-06 17:20:35 -08:00
Natthu Bharambe cce9ba864f Command line flags to start RN apps in web executor mode.
Reviewed By: frantic

Differential Revision: D2613142

fb-gh-sync-id: fadcea3d23825420c0412f2e4d8d51c70b0f08ed
2015-11-06 14:53:28 -08:00
Joe Savona c4739746ba Polyfill Array.from
Reviewed By: cpojer

Differential Revision: D2627437

fb-gh-sync-id: 6a7c94e13db772d96cbd8ebab37eccb0826963bc
2015-11-06 14:14:28 -08:00
Andy Street 853d249468 Add Systrace support for API 18+ in OSS
Differential Revision: D2627757

fb-gh-sync-id: a01347800d8e9ffda8759cc17df04f7cd139b17c
2015-11-06 14:02:35 -08:00
Adrov Igor b6340ee2b0 implement android maxlength prop
Summary: Fixes https://github.com/facebook/react-native/issues/3864
But I don't sure that this code is correct.

But it works and works same as in iOS.
Closes https://github.com/facebook/react-native/pull/3873

Reviewed By: mikearmstrong001

Differential Revision: D2626122

Pulled By: andreicoman11

fb-gh-sync-id: 316915c99b218ed5f32ca90fd72ce9810571383a
2015-11-06 13:25:34 -08:00
Alexander Blom 527d11ce01 Support progress in ProgressBarAndroid
Differential Revision: D2626321

fb-gh-sync-id: a358a1db8c8f3b4a41dc9a600ee691e6e60310f3
2015-11-06 12:08:29 -08:00
Felix Oghina 96b76fc85f fix run-android looking for packager in wrong place
Summary: Possibly leftover from the CLI migration.

public

Reviewed By: vjeux

Differential Revision: D2626589

fb-gh-sync-id: 22e44b7276bca136cde375a6d6d5af3bf0811767
2015-11-06 12:05:28 -08:00
Felix Oghină 9647c5a257 show script eval errors in redbox
Differential Revision: D2624801

fb-gh-sync-id: 48741a8caf029415753a4c616a07f18d3660e6fb
2015-11-06 11:43:30 -08:00
Ken Wheeler e6372719ea Fixes #3846
Summary: This fixes a  leak in regards to web sockets, detailed in #3846 . The connection state constants referenced the class rather than the instance and were coming back undefined.

cc brentvatne stephenelliot
Closes https://github.com/facebook/react-native/pull/3896

Reviewed By: svcscm

Differential Revision: D2626399

Pulled By: vjeux

fb-gh-sync-id: f42670003b68ed5b86f078d7ed74c2695f30fc69
2015-11-06 11:24:29 -08:00
Tadeu Zagallo 16d9f045d1 Fix RCTNativeTraceEndSection calls
Summary: public

For "some" reason, exception is never `NULL`, it's `null` (the JavaScript value),
so the calls will never finish.

Reviewed By: javache

Differential Revision: D2625896

fb-gh-sync-id: fc8176a6ac485bfecc9903db05bf69b39ac2d9b4
2015-11-06 08:28:28 -08:00
Andrei Coman de586bfa18 Fix text input spans
Differential Revision: D2626072

fb-gh-sync-id: 35087d65b8f4a52e44fedc229058c3f88827e539
2015-11-06 08:23:29 -08:00
Alex Kotliarskyi 7b2cd03d6a [docs] Remove old image! examples from docs 2015-11-06 07:37:38 -08:00
Nick Lockwood 7779e06a7f Added rich text input support
Summary: public

It is now possible to display and edit rich text inside a multiline `<textInput>` by nesting a `<Text>` node inside it.

Note that this doesn't yet provide everything needed to build a full rich text editor (as there is no facility to capture or control the selected text range, or insert/remove text) but it does make it possible to apply token-based styling to text as the user types.

See the 'Attributed text' example in the UIExplorer > TextInput demo for details.

Reviewed By: javache

Differential Revision: D2622493

fb-gh-sync-id: b6bc9a46005322c806934541966460edccb59e70
2015-11-06 07:26:27 -08:00
Tadeu Zagallo 8dac41b7f0 Rename variable to unbreak the build
Reviewed By: javache

Differential Revision: D2625963

fb-gh-sync-id: 136013d7fa3b8eea322eea4ec45901376c30881d
2015-11-06 07:23:25 -08:00
Tadeu Zagallo de1c0169fc Clean up unnecessary profile events
Summary: public

There were some old markers that are now automatically inject and now are no longer necessary (+ one that was missing an end call :( ))

Reviewed By: javache

Differential Revision: D2625901

fb-gh-sync-id: 4c4c9d6b4e8e2b4bdb9c64fde01000b0ca2e9f47
2015-11-06 06:55:30 -08:00
Pieter De Baets c1ae4780ce Fix crash in RCTLog
Reviewed By: tadeuzagallo

Differential Revision: D2625795

fb-gh-sync-id: 6983a2dc9259fa1777c05011c2752e9520aa26cd
2015-11-06 06:36:29 -08:00
Alex Krolick 84d1c17dae document that CameraRoll is not implemented on Android
Summary: The CameraRoll API shows up "unsuffixed" in the API list in the docs, so it is confusing to find that it is unimplemented on Android.
Closes https://github.com/facebook/react-native/pull/3901

Reviewed By: svcscm

Differential Revision: D2625837

Pulled By: mkonicek

fb-gh-sync-id: 4e5c00d260a30840a12fd9be0409c354d2052642
2015-11-06 06:31:31 -08:00
Nick Lockwood faa584c3bd Added headerdoc for RCTBridgeDelegate
Reviewed By: javache

Differential Revision: D2622807

fb-gh-sync-id: 68d1e8cfd3beceafd07f041fa2976ac2552600f7
2015-11-06 05:28:33 -08:00
Martin Konicek 98afd7584b Merge pull request #3924 from calflegal/master
Fix broken link in testing documentation
2015-11-06 14:20:16 +01:00
Pieter De Baets 9d76acc3d6 Fix android log level offset
Reviewed By: andreicoman11

Differential Revision: D2625742

fb-gh-sync-id: a373e85b7dd2e0fcb904b61a7728b16f4836c742
2015-11-06 05:02:45 -08:00
Nick Lockwood e98d3cdab8 Added single border examples
Reviewed By: sahrens

Differential Revision: D2622604

fb-gh-sync-id: 28205e27a323e41c6e7f11b7d4a41add4e57be71
2015-11-06 04:51:28 -08:00
Alexander Blom a797be6ffd Support 'color' attribute in ProgressBarAndroid
Differential Revision: D2625690

fb-gh-sync-id: 34ef656be7ce3304add3fae3e697c6b39b866af1
2015-11-06 02:34:32 -08:00
Krzysztof Magiera 6a656a1491 Speedup gradle builds by setting explicit deps on prepareBoost task.
Differential Revision: D2625574

fb-gh-sync-id: db0887e184a6d098699c9f84a2c3cb0d3b7e7b0f
2015-11-06 00:22:28 -08:00
Felix Oghină 1019cc3aef Merge pull request #3545 from frantic/asset-docs
Document new asset system
2015-11-05 17:15:49 -08:00
Alex Kotliarskyi e73b08fc06 Document new asset system 2015-11-05 16:10:05 -08:00
Andy Street df36e388f1 Accept double args in ScrollView.scrollTo
Differential Revision: D2623473

fb-gh-sync-id: 8d4156e67f42d050f0f940d69ca534180d5a0b23
2015-11-05 15:27:27 -08:00
Felix Oghină 201318f949 [docs] remove note about upgrade not being available in stable 2015-11-05 15:20:25 -08:00
Felix Oghină 63a82c40ac Revert "[releng] build 0.14-stable on travis"
This reverts commit a632c5723c.
2015-11-05 15:07:47 -08:00
Felix Oghină a632c5723c [releng] build 0.14-stable on travis 2015-11-05 15:06:52 -08:00
Felix Oghină 767243bd54 [travis] build stable branches 2015-11-05 14:27:12 -08:00
Alex Kotliarskyi 10b599c343 Load assets from same folder as JS bundle
Summary: Fixes #3679, see https://github.com/facebook/react-native/issues/3679

The idea is to always load images from the same folder that we loaded JS bundle.

This doesn't change the current behavior, since `imageNamed:` inferred the
absolute path to the image from app's bundle, but now we make it explicit.

The benefit for OTA updates implementations is that they can simply ask RN
to load js from some `~/Documents/<build-id>/main.jsbundle` folder and RN will
look for images in `~/Documents/<build-id>/assets/`.

Note that for Android we will have to come out with a different plan, since
in prod we load images from built-in resources.

public

Reviewed By: vjeux

Differential Revision: D2616995

fb-gh-sync-id: 2906c62380280ecb987525edf9a0e3e727a1008b
2015-11-05 12:53:26 -08:00
Pieter De Baets 0c83407dd2 Simplify logging exceptions from JS to native
Reviewed By: vjeux

Differential Revision: D2615559

fb-gh-sync-id: ee931b3691251c8b6276699c6f927e47d8e8fd97
2015-11-05 12:51:47 -08:00
Pieter De Baets d9b4c57e12 Remove log level 'log' from JS
Summary: Log level 'log' from JS should be equivalent to 'info'. Also added knowledge of 'trace' log level in RCTLog.

public

Reviewed By: vjeux

Differential Revision: D2615500

fb-gh-sync-id: 7a02f49bf7953c1a075741c21e984470c44b5551
2015-11-05 12:51:41 -08:00
Pieter De Baets 824858c6b2 Add convenience function for formatting NSError for reporting
Reviewed By: nicklockwood

Differential Revision: D2620933

fb-gh-sync-id: c5c40b78b19f12c9a3b1564b1e21f1acb12309ab
2015-11-05 12:51:34 -08:00
Pieter De Baets 31b5b0ac01 Create RCTFatal for reporting fatal React events
Summary: public

Add RCTFatal for reporting fatal runtime conditions. This centralizes failure handling to one function and allows you to customize how they should be handled. RCTFatal will be logged to the console and as a redbox and will also be triggered by fatal exceptions coming from RCTExceptionsManager.

Note that there is no RCTLogFatal, since just logging the fatal condition does not allow us to handle it consistently.

Reviewed By: nicklockwood

Differential Revision: D2615490

fb-gh-sync-id: 7d8e134419e10a8fb549297054ad955db3f6bee0
2015-11-05 12:51:27 -08:00
rocman d8dd330d41 fix the memory leaks caused by RCTTabBar
Summary: The memory leaks root from the TabBarController not removing itself
when its holder view deallocs. So to fix the issue, it’s just to remove
it from its parentViewController when the holding RCTTabBar
deallocs. This should be safe, since the RCTTabBar seems the owner
of the TabBarController.
Closes https://github.com/facebook/react-native/pull/3915

Reviewed By: svcscm

Differential Revision: D2620905

Pulled By: nicklockwood

fb-gh-sync-id: ce22eb3ebf82562827f6b1bae22aea5ac7d3b51a
2015-11-05 09:39:30 -08:00
Mark Miyashita f8df38424e Use mainBundle in RCTConvert to resolve asset paths
Summary: See #3888 for why this is necessary. Essentially, `[NSBundle mainBundle]` loads the file path for the target app which is the only way to reference images.

cc javache nicklockwood
Closes https://github.com/facebook/react-native/pull/3889

Reviewed By: svcscm

Differential Revision: D2615580

Pulled By: nicklockwood

fb-gh-sync-id: d06ce0987dde666b06bb5a7edf609ed45f325d2c
2015-11-05 09:30:36 -08:00
Nick Lockwood 8db1e1262e Attempt to fix RCTImageLoader crash
Reviewed By: jspahrsummers

Differential Revision: D2620944

fb-gh-sync-id: 39896c8aa6f162df5769afdd0f947acf4bb5cb76
2015-11-05 09:09:29 -08:00
Patrick O'Meara b3cfc598ce allowFontScaling false changing lineHeight
Summary: * allowFontScaling false was still changing lineHeight as if it were true

fixes #2783
Closes https://github.com/facebook/react-native/pull/3840

Reviewed By: svcscm

Differential Revision: D2615710

Pulled By: nicklockwood

fb-gh-sync-id: 7e4205c58967640762deb5837ecaa2dde236782c
2015-11-05 09:02:22 -08:00
Pawel Sienkowski 4e1f2f4e0f Fixed: Move out setupDevtools call from renderApplication function
Reviewed By: sahrens

Differential Revision: D2620876

fb-gh-sync-id: 8971a1c523c06966dd11280e19272429aa3f9c8d
2015-11-05 08:50:29 -08:00
Calvin Flegal 15adead428 Fix broken link in testing documentation 2015-11-05 11:37:33 -05:00
Frédéric Sagnes f5670f8ab5 Set ASCII as the default bundle encoding
Reviewed By: davidaurelio

Differential Revision: D2596387

fb-gh-sync-id: deadb8e9a44bbe7b12ce9e6bb5e3c96d4f646074
2015-11-05 07:31:55 -08:00
Mike Armstrong 7431f4e182 Fix missing private on member variable
Differential Revision: D2620844

fb-gh-sync-id: b9901f46d6fe6a772a48dd091c273c581a383dda
2015-11-05 07:03:36 -08:00
Andrei Coman e3b6104810 Fix ViewPager warning
Differential Revision: D2620741

fb-gh-sync-id: 9f35e94efb25c689661bf2775a7d0624b3c586f4
2015-11-05 05:06:33 -08:00
Nick Lockwood 11df4cb08c Fixed display of alerts on top of modal window
Reviewed By: javache

Differential Revision: D2616170

fb-gh-sync-id: f72f728008099fff6fc966d7a2ce4c0d27a4fefd
2015-11-05 03:54:31 -08:00
Brent Vatne 0da2004e88 Expose additional private modules
Summary: - TextInputState as TextInput.State
- Touchable
- flattenStyle as StyleSheet.flatten
- ReactNativeART as ART

Original discussion in #1821
Closes https://github.com/facebook/react-native/pull/3308

Reviewed By: sebmarkbage

Differential Revision: D2527152

Pulled By: javache

fb-gh-sync-id: 19d4ef9d4c0e6587b9f0793e1ca624aebb034f3b
2015-11-05 03:35:18 -08:00
Dave Sibiski 7af752403e Implements blurOnSubmit
Summary: The default value (to retain current behavior) is set to `true`. Setting the value to `false` will prevent the textField from blurring but still fire the `onSubmitEditing` callback. However, the `onEndEditing` callback will not be fired.

Addresses issue: https://github.com/facebook/react-native/issues/2129
Closes https://github.com/facebook/react-native/pull/2149

Reviewed By: svcscm

Differential Revision: D2619822

Pulled By: nicklockwood

fb-gh-sync-id: 9a61152892f4afb5c6c53e7b38dffae13bc7e13f
2015-11-04 21:05:42 -08:00
Mike Armstrong 66f7feda4d Remove NativeRunnables from local references table.
Differential Revision: D2620026

fb-gh-sync-id: c105143d3ad932abcaff1407c6434148221753c4
2015-11-04 20:41:28 -08:00
Bhuwan Khattar a4cc0c3ffd No NSError * over the bridge
Summary: I was getting the following error when running `testAsyncStorageTest`
```
uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (NSError)'
```

nicklockwood pointed out that it might be because we're attempting to send a `NSError *` over the bridge at some point. So I went looking for cases where that might happen and found this instance.

public

Reviewed By: jingc

Differential Revision: D2619240

fb-gh-sync-id: dc26ec268f976fec44f2804831398d3b01ab6115
2015-11-04 20:07:31 -08:00
Mike Armstrong 575a4a71b9 Force fresco to go to network
Differential Revision: D2619848

fb-gh-sync-id: fe607dd8774c0c5f7122c362d64e4484c0bcce59
2015-11-04 19:44:35 -08:00
Christoph Pojer 7f93548489 Remove dependency on underscore
Reviewed By: davidaurelio

Differential Revision: D2614853

fb-gh-sync-id: 706fb0db6852f599a1b3dd022dbc22aabb76539a
2015-11-04 19:02:47 -08:00
Mike Armstrong 97135ee575 Metrics for grey box time
Differential Revision: D2619368

fb-gh-sync-id: 4c8105ecff3f4bd0df57042b49ae8b8e722d6b3e
2015-11-04 18:49:29 -08:00
Christoph Pojer d3599d0a88 Start pulling DependencyResolver apart
Summary: I'm planning to split up `DependencyResolver` into the react-native specific implementation of it and a new, generic resolver that is going to replace `node-haste` for jest and other places where we might need JS dependency resolution.

The plan is to split the two folders up so that:

* `Resolver` is the folder for all the react-native specific resolver code
* `DependencyResolver` will become a standalone library, eventually moving into a package called `node-haste`.

There is still a lot to be figured out. This is just the first diff of likely many. The current goal is to make `DependencyResolver` standalone to be able to create an instance of a resolver and resolve all dependencies for a file. This is when I can start integrating it more seriously with jest.

This diff simply moves a bunch of things around and turns `HasteModuleResolver` into an ES2015 class ( :) ).

bypass-lint
public

Reviewed By: davidaurelio

Differential Revision: D2614151

fb-gh-sync-id: ff4e434c4747d2fb032d34dc19fb85e0b0c553ac
2015-11-04 16:59:30 -08:00
Christoph Pojer 7041a22bd0 Update jest to 0.7.1
Reviewed By: frantic

Differential Revision: D2614935

fb-gh-sync-id: 64cc4fb439f0c53f0eb0588c22e0291813a7e334
2015-11-04 14:42:13 -08:00
Peter Lai 59ed90dd5f Fix build break: add java file changes to fbobjc
Reviewed By: jingc

Differential Revision: D2617489

fb-gh-sync-id: 3fa37dc52c526c79e3510754606e542b171b3a18
2015-11-04 14:16:26 -08:00
James Ide 471449b368 Merge pull request #3872 from mccambridge/master
Added media queries for Showcase page in docs
2015-11-04 12:27:02 -08:00
Pieter De Baets 05996963c9 Cleanup RedBox display of native errors
Reviewed By: nicklockwood

Differential Revision: D2615507

fb-gh-sync-id: 94f8013b418a3b95508cc55b9302fde4325bfcbf
2015-11-04 12:12:33 -08:00
James Ide 7fec60e6c4 Merge pull request #3891 from mgmcdermott/patch-1
Added Harmonizome
2015-11-04 11:57:48 -08:00
Spencer Ahrens a4f7aa4853 make onEndReached a little more robust
Summary: public

Now if you scroll up out of the end threshold and then back down into it,
onEndReached will get triggered again.  This closes https://github.com/facebook/react-native/issues/1967

This also resets onEndReached when the data source changes.  This would fix
issues where the data source changes and onEndReached should fire again since
the new data may have more pages, whereas the old data had reached the end and
stopped.

Reviewed By: jingc

Differential Revision: D2610799

fb-gh-sync-id: f6cef513a42d4765514bf4bc55d9e31a760117f1
2015-11-04 11:32:28 -08:00
Satyajit Sahoo 6c11d18360 Prevent destroying activity on runtime changes
Summary: From http://developer.android.com/guide/topics/resources/runtime-changes.html

> Some device configurations can change during runtime (such as screen orientation, keyboard availability, and language). When such a change occurs, Android restarts the running Activity (onDestroy() is called, followed by onCreate()). The restart behavior is designed to help your application adapt to new configurations by automatically reloading your application with alternative resources that match the new device configuration.

However, in a React Native app, there is only a single activity for the entire app, unlike a single activity per screen in Android, and resources are not specific to orientation etc. Destroying activity means reloading the entire app. Most of the time, this is not the intended behaviour, and can cause data loss for the user if the developer doesn't disable it explicitly. I'm proposing to disable it by default.
Closes https://github.com/facebook/react-native/pull/3813

Reviewed By: svcscm

Differential Revision: D2616083

Pulled By: foghina

fb-gh-sync-id: 8794e436f61581ff0bf569b1b112845cae77b688
2015-11-04 10:47:30 -08:00
Tadeu Zagallo 0c74804427 Use dispatch_async instead of lock
Summary: public

The initial implementation used a lock to manage the stored profile information,
blocking the caller thread for longer than it should. Replace it with a private
queue, since the only thing we need to from the caller is to record the immediate
call time and the caller thread/queue, all the rest has absolutely no priority.

Use macros to also defer work done when generate the name of the events.

Reviewed By: nicklockwood

Differential Revision: D2603120

fb-gh-sync-id: e3e36160c893e7ae9ed3558f07c854ea76396661
2015-11-04 09:03:01 -08:00
Josh Berdine 02a8c38361 Update UIExplorer TextExample test snapshot
Summary: public

Re-recorded UIExplorerIntegrationTests::testTextExample snapshot to include
new opaque nested text example.

Reviewed By: nicklockwood

Differential Revision: D2610584

fb-gh-sync-id: 119dbf381f0b412ed8705597b03b367c5098b80d
2015-11-04 08:55:49 -08:00
Josh Berdine a670ed1d3c Simplify opaque nested Text UIExplorer example
Summary: public

Add simpler example and remove clutter used to test rendering.

Reviewed By: nicklockwood

Differential Revision: D2605648

fb-gh-sync-id: 84900c290c7af9439f5ce726dd84565bb006ff37
2015-11-04 08:55:42 -08:00
Josh Berdine c357943dfb Only make backgroundColor opaque if non-nil
Summary: public

Do not set a default backgroundColor of white when top-level RCTShadowText has
backgroundColor == nil.

Reviewed By: nicklockwood

Differential Revision: D2605636

fb-gh-sync-id: f2076d302e7ed574f7804080ccc80db1c9b9401c
2015-11-04 08:55:36 -08:00
Josh Berdine 6b9e4ec4b2 Mimic opacity style of nested Text nodes using alpha color component
Summary: public

Added opacity property to RCTShadowText, and use it to adjust the alpha
color component of nested text nodes when collapsing the RCTShadowText tree
into an NSAttributedString.  The opacity is propagated down the tree,
multiplying the aggregate with the current node's opacity at each step.  Also,
foreground and background colors are propagated down the tree so that in case
a node has an opacity style but no colors, the ancestor's colors can be used
when adjusting the alpha components.

Reviewed By: nicklockwood

Differential Revision: D2600402

fb-gh-sync-id: 2adb7b598b0a73c984bb2edaab545c02ab911c6b
2015-11-04 08:55:30 -08:00
Michael McDermott cbeb6aabaf Added Harmonizome
I've added the Harmonizome application to the showcase. It is also available for Android, however, I'll wait until we can add multiple links to one app before I include it.
2015-11-04 11:53:51 -05:00
Tadeu Zagallo 70c9ee8b1b Convert System.import transform to babel 6
Reviewed By: martinbigio

Differential Revision: D2615286

fb-gh-sync-id: 4f0e8e3359413d972ab4d0da291870768a77e361
2015-11-04 08:53:26 -08:00
Pieter De Baets 0a290e22da Exporting a synchronous UIWebView to JS
Summary: public

Original github title:  Exported a callback for native webview delegate method shouldStartLoadWithRequest

We have a requirement in our app, to open in mobile Safari, any http:// and https:// links displayed in a web view. Our web view is not full screen and is loaded with an HTML string from the backend. Displaying external content in that web view is outside of the scope of our app, so we open them in mobile Safari.

I've forked the WebView component and added a callback property, shouldStartLoadWithRequest, and modified the RCTWebView implementation of `webView:shouldStartLoadWithRequest:navigationType:`
to check if the shouldStartLoadWithRequest property is set.

If the property is set, `webView:shouldStartLoadWithRequest:navigationType:` passes the URL & navigationType to the callback. The callback is then able to ignore the request, redirect it, open a full screen web view to display the URL content, or even deep link to another app with LinkingIOS.openURL().

Original author: PJ Cabrera <pj.cabrera@gmail.com>
Closes https://github.com/facebook/react-native/pull/3643

Reviewed By: nicklockwood

Differential Revision: D2600371

fb-gh-sync-id: 14dfdb3df442d899d9f2af831bbc8d695faefa33
2015-11-04 08:44:29 -08:00
Kai Wood 635edd9ccc Support line number arguments for RubyMine
Summary: RubyMine's command line launcher `mine` supports the same syntax as `mate` for jumping to line numbers. This patch adds it to the list.
Closes https://github.com/facebook/react-native/pull/3883

Reviewed By: svcscm

Differential Revision: D2615422

Pulled By: pcottle

fb-gh-sync-id: 79a70f524f852ba8eb4803e6abc6970abbf02b61
2015-11-04 07:56:27 -08:00
Jean Regisser 1e52ef23e7 Fix retain cyles in RCTNetworkTask when used with RCTFileRequestHandler and RCTDataRequestHandler
Summary: Hi,

While implementing my own `RCTURLRequestHandler` I came across retain cycles in `RCTNetworkTask` when used with `RCTFileRequestHandler` and `RCTDataRequestHandler`.

The `NSBlockOperation` used in `RCTFileRequestHandler` and `RCTDataRequestHandler` could never be dealloc'ed because of a retain cycle.
And then the second issue was that those blocks were also strongly capturing the passed delegate which in this case is the `RCTNetworkTask` itself and then since the task was storing the block as a `requestToken`, the task could never be dealloc'ed as well.

Here are my proposed fixes. Let me know what you think.
Closes https://github.com/facebook/react-native/pull/3884

Reviewed By: svcscm

Differential Revision: D2615353

Pulled By: nicklockwood

fb-gh-sync-id: a73cbecffbebea75aaeb23d39f04a0d87602926f
2015-11-04 07:16:26 -08:00
Nick Lockwood d799558db5 Fix Groups text input
Reviewed By: javache

Differential Revision: D2590712

fb-gh-sync-id: 453e20970460c703230547d8fd649383ba7d4c4a
2015-11-04 04:09:27 -08:00
Hedger Wang 4763f89efa update NavigationContext API.
Summary: 1. Add a new api `top` which returns the root navigator of a nested navigator.
2. Remove the param `context` from the method `addListener` because it's not used and not necessary.

public

Reviewed By: fkgozali

Differential Revision: D2613852

fb-gh-sync-id: 0d5544422ff0be7875824989a4fbefbef9aac986
2015-11-03 19:08:31 -08:00
Martín Bigio eed38e9163 Retry landing D2590327
Reviewed By: swarr

Differential Revision: D2613446

fb-gh-sync-id: d38ad4e7cf66d25c69f92b330dd0feed0eeb23df
2015-11-03 17:45:28 -08:00
Bhuwan Khattar db229aab87 Make component registration in UIExplorerApp explicit
Summary: Currently, the components get registered by `UIExplorerApp.ios.js` as a side effect of requiring `UIExplorerList.ios.js`. This removes the side effect and makes the registration explicit so that it works well with inline requires.

public

Reviewed By: jingc

Differential Revision: D2613174

fb-gh-sync-id: 799dd8b11985708b05fc4c03f367487b47f46bc6
2015-11-03 17:20:30 -08:00
Jan Kassens 2519d25992 Fix undefined var exception
Summary: This check to see if `require` exists was bad as it throws an error for an
undefined reference in case it doesn't exist.
Closes https://github.com/facebook/react-native/pull/3845

Reviewed By: svcscm

Differential Revision: D2613368

Pulled By: martinbigio

fb-gh-sync-id: 7b1d0f38e4af9bce81356a613d6105f2c00c7ed7
2015-11-03 17:11:29 -08:00
Andrei Coman 5ed8c6732e Set spans on empty strings
Differential Revision: D2612574

fb-gh-sync-id: 17b93f42a773ea6239990c6b0bd9bf4f32f8b455
2015-11-03 15:06:26 -08:00
Nick Lockwood c5b990f65f Added lightweight generic annotations
Summary: public

Added lightweight genarics annotations to make the code more readable and help the compiler catch bugs.

Fixed some type bugs and improved bridge validation in a few places.

Reviewed By: javache

Differential Revision: D2600189

fb-gh-sync-id: f81e22f2cdc107bf8d0b15deec6d5b83aacc5b56
2015-11-03 14:49:30 -08:00
Sean McCambridge c7b46a13f9 Added media queries for .showcase in docs, creating a single-column layout on small screens and a two-column layout on tablet-sized screens when viewing showcase of RN apps. 2015-11-03 15:55:14 -05:00
James Ide 31565781f2 Merge pull request #3867 from ma94264/patch-1
Include my app done by React Native
2015-11-03 10:34:08 -08:00
aleclarsoniv 5dd3b88a81 Use 'visibleLength' if 'contentLength' is less
Summary: This prevents the 'distanceFromEnd' from being negative when 'offset' is zero, for example.
Closes https://github.com/facebook/react-native/pull/3074

Reviewed By: svcscm

Differential Revision: D2610771

Pulled By: sahrens

fb-gh-sync-id: f878f1c1b865063294013c3bb96b90831877d372
2015-11-03 10:13:28 -08:00
Martin Konicek 2797bc2069 Update RunningOnDeviceAndroid.md 2015-11-03 18:54:11 +01:00
Pawel Sienkowski 1efb9dc063 Remove invalid assertion from RCTUIManager
Reviewed By: javache

Differential Revision: D2606613

fb-gh-sync-id: e8d9bcf5d23b720230de4904cab577f097010150
2015-11-03 09:07:30 -08:00
Pawel Sienkowski d0371165c3 Fix the way the Storyline native module is updated
Reviewed By: javache

Differential Revision: D2609706

fb-gh-sync-id: dcacd9085243d04f4e0dfa8d4a4c5df594ef31ec
2015-11-03 08:58:28 -08:00
Krzysztof Magiera 6c204dcbea Update ViewGroupManager interface to use index for remove method.
Differential Revision: D2610700

fb-gh-sync-id: b59dfc581d9ca8d29203b5915fb743f3270989ab
2015-11-03 08:57:28 -08:00
Pieter De Baets e63fb0e8c9 Merge pull request #3863 from gkassabli/master
Updated accessibility documentation to reflect latest changes
2015-11-03 16:02:02 +00:00
Tadeu Zagallo 6532290397 Guard against dev menu calling twice
Summary: public

The Dev Menu is for some reason eventually calling twice the callbacks, guard
against it while we don't fix it.

Reviewed By: nicklockwood

Differential Revision: D2600470

fb-gh-sync-id: 50c622d2ab64ce50d51572dbfcc076c2765ce582
2015-11-03 07:24:28 -08:00
Daniel Levitt 3cd677cd8e Possible solution to duplicate apps in showcase 2015-11-03 15:02:44 +00:00
N.M 3205acef83 Include my app done by React Native
I just published my app done by react native in both Play Store and App Store.
Can you help to list my app on the react native website ? Thanks!!

https://play.google.com/store/apps/details?id=com.bitstrek.maxreward&hl=en
https://itunes.apple.com/us/app/maxreward/id1050479192?ls=1&mt=8
2015-11-03 22:54:15 +08:00
Georgiy Kassabli 6f14622ebb Updated accessibility documentation to reflect latest changes in React Native a11y 2015-11-03 14:46:24 +00:00
Daniel Levitt 4095394982 Add Android version of Kakapo 2015-11-03 13:41:41 +00:00
Martin Konicek 721c844a30 Update RunningOnDeviceAndroid.md 2015-11-03 13:47:45 +01:00
Martin Konicek 144e23f02f Update RunningOnDeviceAndroid.md 2015-11-03 13:44:09 +01:00
Martin Konicek 441c464c2b Make it clear Android emulator is the quickest way to get started
Summary: A lot of people try to use a device as the very first thing when trying
out React Native. I've observed this at the developer workshop in Prague
and on Twitter.

However, developing on pre-API 21 devices is quite involved:
https://facebook.github.io/react-native/docs/running-on-device-android.html

I'm thinking we could recommend installing Android together with Android
studio. Android studio installs HAXM for you (hardware acceleration, without
this Google emulators are useless) and also creates and starts emulators.
So it would be quite a smooth experience similar to pressing 'Run' in Xcode.

We'd just need to integrate with Gradle so that installing the app also starts
the packager. I think that's something we should do in any case.

Probably an even better option is to build a React Native-specific tool that
lets you do everything you need: opens the Android SDK Manager, creates and
starts emulators, detects whether you have Genymotion and opens it, upgrades
node and npm etc.

public

Reviewed By: vjeux

Differential Revision: D2604774

fb-gh-sync-id: c7ffb701b4e5209815faf652926937c22943be95
2015-11-03 04:05:27 -08:00
Tadeu Zagallo 1c9a74bbd1 Kill UIManager lock
Summary: public

The UIManager had a lock around the enqueued ui blocks, but now all the operations
should happen on the shadow thread, so I added assertions to it and removed the
locks.

Reviewed By: nicklockwood

Differential Revision: D2605760

fb-gh-sync-id: e1bc649f759502e7e9fd059932e0cba38dba05bf
2015-11-03 03:57:27 -08:00
Tadeu Zagallo 27be386c2e Fix trace name for native module calls received from JS
Summary: public

At some point the profile call was changed to only pass `@"invoke callback"`
rather than the module name, which makes most entries pretty much useless.
Change it back to be the module name.

Reviewed By: javache

Differential Revision: D2602222

fb-gh-sync-id: c4e8e3f559f66725620293cc575baf5ede48df31
2015-11-03 03:51:27 -08:00
Martin Konicek 4411ad49a4 More descriptive error message when Gradle build/install fails
Summary: Inspired by: https://twitter.com/geirmanc/status/660275638637477889

There are many reasons why the Gradle build could fail and the best
thing to do is to read the error message.

We can provide some hints in the most common cases though.

public

Reviewed By: vjeux

Differential Revision: D2604747

fb-gh-sync-id: 1aa83abb9ec823c03814dcc31d630a8f1914cf5c
2015-11-03 03:48:26 -08:00
Martin Konicek fcb0367bf3 Update RunningOnDeviceAndroid.md 2015-11-03 12:18:04 +01:00
Martin Konicek 2da7374ba5 Update DevelopmentSetupAndroid.md 2015-11-03 12:09:48 +01:00
Tadeu Zagallo 441995fa6a Log minification time
Summary: public

Add an activity to log minification time.

Reviewed By: vjeux

Differential Revision: D2604863

fb-gh-sync-id: cbdf0297f0611c87b589b87928af235f9ba81172
2015-11-03 01:20:26 -08:00
Brent Vatne 0caa2c64a1 Merge pull request #3855 from satya164/hn
Add Hey Neighbor to showcase
2015-11-03 10:08:52 +01:00
Satyajit Sahoo 16b2016493 Add Hey Neighbor to showcase 2015-11-03 14:09:35 +05:30
Chris Geirman b752d79838 update pro tip to clarify how to configure zsh shell
Summary: Thanks to alex_frantic for helping me solve this problem...
https://twitter.com/alex_frantic/status/657276624220659712
Closes https://github.com/facebook/react-native/pull/3853

Reviewed By: svcscm

Differential Revision: D2609728

Pulled By: pcottle

fb-gh-sync-id: edb20fcbaff0289a2363eedebd84d20c2d3b39aa
2015-11-02 21:33:31 -08:00
Pawel Sienkowski 9bfadb7e1e Revert moving out setupDevtools call
Reviewed By: menglu

Differential Revision: D2609340

fb-gh-sync-id: 3b27b3e18805660bd19ae705916ce4e51120f7f3
2015-11-02 18:34:25 -08:00
Pawel Sienkowski 7021918fe5 Move out setupDevtools call from renderApplication function
Reviewed By: frantic

Differential Revision: D2600393

fb-gh-sync-id: edac2fa3281314fb02a0951c342c2c1ae9b0441a
2015-11-02 15:37:38 -08:00
Aaron Chiu 63c4d07187 fix comment per Github comment
Reviewed By: andreicoman11

Differential Revision: D2606888

fb-gh-sync-id: f9e1381b912533de06326d5a90062f0d54741553
2015-11-02 12:38:26 -08:00
Alexander Blom 839756b6d4 Make extractor generic
Differential Revision: D2605494

fb-gh-sync-id: 37e298598c07221f75250a309b283fae319298af
2015-11-02 11:24:26 -08:00
Pieter De Baets 15c53f7563 Fix ReferenceImages resolving for buck test
Reviewed By: nicklockwood

Differential Revision: D2605694

fb-gh-sync-id: 90e65974c73405d482476c9eb2ddf1377f9a1401
2015-11-02 11:02:29 -08:00
Tadeu Zagallo 63015b911c Explicitly cast the trampoline prototype to IMP
Summary: public

Add explicitly cast to the trampoline prototype to silence warnings.

Reviewed By: javache

Differential Revision: D2605779

fb-gh-sync-id: e208b69236c1b87bb1374ee493840ea5f47b371c
2015-11-02 10:51:48 -08:00
Spencer Ahrens 99158f0d5a Better error message for RawText outside <Text>
Summary: public

Native iOS has a good error message, but it's in native which makes
things a little harder to track down (can't use Chrome debugger as easily).

Android has no special handling, so a cryptic "Trying to add unknown view tag..."
redbox would come up.

This puts the error handling in JS so it's shared on all platforms and can be
debugged more easily in Chrome.

Reviewed By: vjeux

Differential Revision: D2606064

fb-gh-sync-id: 5295a44a028c7be79d60dbaf0b5d59fd0a56fdde
2015-11-02 10:51:44 -08:00
Pieter De Baets 071f7c9bfa Enable and fix UIExplorer tests
Reviewed By: nicklockwood

Differential Revision: D2605623

fb-gh-sync-id: 493084d67026b86b5f0c00e8147dde3fd344bc97
2015-11-02 10:30:32 -08:00
rocman 7236788f34 Memory Leaks caused by RCTNavigator
Summary: releasing the viewControllers referred by _navigationController.viewControllers, which is also releasing the related views
Closes https://github.com/facebook/react-native/pull/3808

Reviewed By: svcscm

Differential Revision: D2604735

Pulled By: javache

fb-gh-sync-id: f202d155f04169f3f0f0ef26365b37b8525b6687
2015-11-02 10:08:33 -08:00
James Ide a456ac3ced Merge pull request #3552 from whokilledtheelectricmonk/patch-1
extend Network/Fetch API documentation
2015-11-02 10:02:02 -08:00
Dave Sibiski 6c7c845145 Implements onKeyPress
Summary: - When a key is pressed, it's `key value` is passed as an argument to the callback handler.
 - For `Enter` and `Backspace` keys, I'm using their `key value` as defined [here](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key#Key_values). As per JonasJonny & brentvatne's [suggestion](https://github.com/facebook/react-native/issues/1882#issuecomment-123485883).

- Example
```javascript
 _handleKeyPress: function(e) {
      console.log(e.nativeEvent.key);
  },

  render: function() {
    return (
      <View style={styles.container}>
        <TextInput
            style={{width: 150, height: 25, borderWidth: 0.5}}
            onKeyPress={this._handleKeyPress}
        />
        <TextInput
            style={{width: 150, height: 100, borderWidth: 0.5}}
            onKeyPress={this._handleKeyPress}
            multiline={true}
        />
      </View>
    );
  }
```
- Implements [shouldChangeCharactersInRange](https://developer.apple.com/library/prerelease/ios/documentat
Closes https://github.com/facebook/react-native/pull/2082

Reviewed By: javache

Differential Revision: D2280460

Pulled By: nicklockwood

fb-gh-sync-id: 1f824f80649043dc2520c089e2531d428d799405
2015-11-02 09:15:31 -08:00
Nick Lockwood 6539b26810 Fixed whitespace bug with RCTModuleMethod parsing
Summary: public

White space between the end of the first part of the method selector and the first colon was being included in the JS method name.

(See: https://github.com/facebook/react-native/issues/3804)

Reviewed By: javache

Differential Revision: D2605713

fb-gh-sync-id: b4402c9ede5eb31dd38021c902f046a4e0557814
2015-11-02 08:53:29 -08:00
Tadeu Zagallo cb3a07306e Expose RCTPerformanceNow, microsecond precision time for JavaScript
Summary: public

Expose a more precise timer, millisecond precision is enough to measure small operations.

Reviewed By: javache

Differential Revision: D2604218

fb-gh-sync-id: ba50c891b5690575548fe04ba1ae7d015bc31d90
2015-11-02 08:15:29 -08:00
Tadeu Zagallo ccd90e25c1 Convert remaining uses of alloc] init] to new]
Summary: public

We moved to using `new` instead of `alloc] init` but there was still some calls
left.

Reviewed By: javache

Differential Revision: D2604679

fb-gh-sync-id: ff7300ecbedb55dd5e93873592598810c9b87808
2015-11-02 08:03:17 -08:00
Nick Lockwood 0a28ce480e Merge pull request #3834 from springuper/springuper/fix-comma
fix missing comma
2015-11-02 15:43:50 +00:00
Tadeu Zagallo 23f7c3acd9 Reenable JS calls to systrace on reload
Summary: public

After reloading the JS side of the profiler wasn't being reenabled.

Reviewed By: javache

Differential Revision: D2602258

fb-gh-sync-id: 5de8afb829e9fa8225600e2b0ff9e00313ac1d4c
2015-11-02 05:35:35 -08:00
springuper eecdd88284 fix missing comma 2015-11-02 15:54:11 +08:00
Tadeu Zagallo d33e84dde5 Use nativeTrace(Begin|End)Section directly from BridgeProfiling
Summary: public

Call the native bindings explicitly from BridgeProfiling instead of polyfill'ing `console.profile` with
a function that has a different signature.

Reviewed By: vjeux

Differential Revision: D2602313

fb-gh-sync-id: 9295eff9458f2caa35b7e982c0f7c06dbe65fd09
2015-10-31 16:43:28 -07:00
Martin Konicek 7ae39f83ac Update RunningOnDeviceAndroid.md 2015-10-31 17:13:32 +00:00
Martin Konicek d98d4e6952 Update RunningOnDeviceAndroid.md 2015-10-31 16:30:25 +00:00
Martin Konicek 9dec2b4a02 Update RunningOnDeviceAndroid.md 2015-10-31 16:29:45 +00:00
Martin Konicek 156609a2a6 Update RunningOnDeviceAndroid.md 2015-10-31 16:29:13 +00:00
Martin Konicek b22d6a66d1 Update RunningOnDeviceAndroid.md 2015-10-31 16:25:10 +00:00
Martin Konicek b48f5a4c75 Update RunningOnDeviceAndroid.md 2015-10-31 16:18:50 +00:00
Martin Konicek 12bbf5b16f Update RunningOnDeviceAndroid.md 2015-10-31 16:17:06 +00:00
Aaron Chiu f8b8fa40fd fix calls to ReactInstanceManager.onResume()
Differential Revision: D2604172

fb-gh-sync-id: 8993b221c55ebe9f1882d203b1729dfce45795ef
2015-10-31 06:26:27 -07:00
Aaron Chiu c4d780d904 fix packager compilation error
Differential Revision: D2604171

fb-gh-sync-id: 11decf6c8b689b903bd9c4fd9aca2ea626cc1d43
2015-10-31 06:14:26 -07:00
Pieter De Baets 6ab2719bff Make <Modal> visible by default
Summary: Make <Modal> visible by default and fix the scenario where we present a modal immediately when adding it to the view hierarchy.

Closes #3724
Closes #2952

public

Reviewed By: nicklockwood

Differential Revision: D2595938

fb-gh-sync-id: 1571790d36fe486f1fbbed9f2d66f1e6add73d91
2015-10-30 17:09:27 -07:00
Tadeu Zagallo 287e0e3c49 Add RCTPerformanceLogger data to PerfMonitor
Summary: public

Add information the times recorded by RCTPerformanceLogger to RCTPerfMonitor,
tap the monitor to show a table view with the data.

Reviewed By: jspahrsummers

Differential Revision: D2595372

fb-gh-sync-id: dc3b73af71b6d7f258e4e5991116bbc6cedc21fb
2015-10-30 16:57:30 -07:00
Aaron Chiu 3ee3041d68 Hook up onActivityResult into react native and fb4a
Differential Revision: D2602975

fb-gh-sync-id: 3b81f059ee4dca2b63ce07304a552e9deaa28909
2015-10-30 16:49:27 -07:00
aleclarsoniv 97f9aa842c Add 'onMoveShouldSetResponderCapture' to 'propTypes'
Summary: Closes https://github.com/facebook/react-native/pull/3777

Reviewed By: svcscm

Differential Revision: D2602708

Pulled By: javache

fb-gh-sync-id: 8259ffd4cdd3d0c052e94ac50a9020d6da59ded7
2015-10-30 16:38:27 -07:00
Aaron Chiu c69c862b9e revert D2602236
fb-gh-sync-id: 251cc97cea632db68d742d51f9ecd6de335b7a23
2015-10-30 15:25:29 -07:00
Tadeu Zagallo 010380cca6 Fix CPU profiler upload
Summary: public

Changes were made on the packager that broke the CPU profile upload route,
fix it.

Reviewed By: martinbigio

Differential Revision: D2585184

fb-gh-sync-id: 206744f92d403d6851a69891dfac0c4c11bf1b7e
2015-10-30 14:46:00 -07:00
Aaron Chiu 0522db4dac Hook up onActivityResult into react native and fb4a
Differential Revision: D2602236

fb-gh-sync-id: 1e623110ae915316ba179e17eff86a8dd2b25034
2015-10-30 14:36:25 -07:00
James Ide 9e84f77e90 Merge pull request #3786 from zpao/docs-npm3
Make sure the docs build with npm3 and npm2
2015-10-30 12:52:06 -07:00
James Ide 515b3483b2 Merge pull request #3801 from exponentjs/remove-hit-test-docs
[Docs] Remove section on how transparent views don't receive touches on iOS
2015-10-30 12:50:48 -07:00
James Ide b27127ee1f [Docs] Remove section on how transparent views don't receive touches on iOS
After https://github.com/facebook/react-native/commit/77272d5a9193762b8668c99d54f5bb9a3e423a9e / D2574937, transparent views (managed by RN) on iOS now receive touch events. The code sample from the Known Issues section is now a UIExplorer example, and you can't tap the TouchableOpacity button because the transparent overlay is intercepting touches (which matches the behavior on other platforms).
2015-10-30 12:32:22 -07:00
Alexey Lang 9fe36beec9 Log JSBundleRequireTime and JSAppRequireTime.
Reviewed By: javache

Differential Revision: D2590707

fb-gh-sync-id: 4c306342b5725aaaac1d8fa0257ef860e446b0d4
2015-10-30 12:06:29 -07:00
Ryan Olson cf0a28265a Use UIAlertController when available in AlertIOS
Reviewed By: nicklockwood

Differential Revision: D2579164

fb-gh-sync-id: 310361585f8380429b631194147553d014ca5076
2015-10-30 11:26:27 -07:00
Adrov Igor fe42a28de1 Add response headers to XHR response
Summary: This is code from https://github.com/facebook/react-native/pull/3062 with fix for support multiple values from qbig
Closes https://github.com/facebook/react-native/pull/3709

Reviewed By: svcscm

Differential Revision: D2595944

Pulled By: astreet

fb-gh-sync-id: 2ff78de412f53932e29953b4e2ae6ff7be78eae3
2015-10-30 11:23:25 -07:00
Hedger Wang a33fe94dac build nested navigation context based on the hierarchy of navigators.
Reviewed By: zjj010104

Differential Revision: D2598388

fb-gh-sync-id: 9655bcc86021678984e2a29df20ad2496a1762d1
2015-10-30 11:09:28 -07:00
Naomi Jacobs 854689dcfa Add fetch's clone function to Request and Response prototypes
Summary: Fetch includes a cloning function that was not included in the React Native fetch.js. This adds it in so that cloning is available on responses from fetch calls in React Native. The code is taken directly from [fetch](https://github.com/github/fetch/blob/master/fetch.js) on Github.

<img width="601" alt="screen shot 2015-10-22 at 11 50 53 am" src="https://cloud.githubusercontent.com/assets/11564650/10675101/304ebe5a-78b3-11e5-9d6b-24ea6d9fb998.png">

<img width="596" alt="screen shot 2015-10-22 at 12 20 08 pm" src="https://cloud.githubusercontent.com/assets/11564650/10675834/4abaf4ee-78b7-11e5-9d34-436290b64b30.png">
Closes https://github.com/facebook/react-native/pull/3614

Reviewed By: svcscm

Differential Revision: D2600517

Pulled By: sahrens

fb-gh-sync-id: d70c5c58e923d997f93bb5aa2d1d90e95d5a75f2
2015-10-30 10:57:33 -07:00
Pawel Sienkowski db71dde10a Props setter for RCTRootView
Reviewed By: javache

Differential Revision: D2587673

fb-gh-sync-id: 79fff15b625ed9f4856ec75246ecafd1f7ef95f1
2015-10-30 09:28:27 -07:00
Elliot Lynde f96c92d75c Add OkHttpClient to NetworkingModule constructor
Reviewed By: sahrens

Differential Revision: D2600266

fb-gh-sync-id: 168195567d0dca819e53d5e3f0f7cfb24f415b63
2015-10-30 09:20:27 -07:00
Nick Lockwood 0d14d0f1ce Improved SliderIOS
Summary: public

* No longer sends events when not observing valueChanged.
* Snaps to step value while dragging.
* Added additional example to UIExplorer.

Reviewed By: javache

Differential Revision: D2595594

fb-gh-sync-id: 1e92427d2ab2e71e4eb4a9a7a75cd0f5f4a3a529
2015-10-30 09:13:26 -07:00
Martin Konicek 2fa58b58f9 Merge pull request #3749 from facebook/cli-testing-alternative-workflow
Steps for alternative testing workflow of the cli
2015-10-30 15:03:20 +00:00
Ivan Sorokin e409e20d2b Step support for SliderIOS
Summary: Add step support to SliderIOS
Closes https://github.com/facebook/react-native/pull/3746

Reviewed By: svcscm

Differential Revision: D2595360

Pulled By: nicklockwood

fb-gh-sync-id: 4adf8bcdf46c709776d779244ba3de2b40eb27d6
2015-10-30 07:18:28 -07:00
Martin Konicek c16ffd3162 Update RunningOnDeviceAndroid.md 2015-10-30 11:30:47 +00:00
Martin Konicek a02240c2ab Update RunningOnDeviceAndroid.md 2015-10-30 11:27:37 +00:00
Milen Dzhumerov 77272d5a91 Hit testing now treats views with 0.0 opacity as interactable
Reviewed By: nicklockwood

Differential Revision: D2574937

fb-gh-sync-id: 63629cd61cbd7cab93346b4dd91a32703d4f56e0
2015-10-30 04:14:25 -07:00
Paul O’Shannessy d8c7f8e8bf Make sure the docs build with npm3 and npm2 2015-10-29 22:49:34 -07:00
Nick Lockwood 9f4da92195 Fixed UIExplorer tests + async methods
Summary: public

UIExplorer tests were broken due to a refactor that didn't update the RCTShadowViewTests + an off-by-one error in the logic for exporting async methods.

Reviewed By: javache

Differential Revision: D2595810

fb-gh-sync-id: c25a8b8956bff1ef2754bba4a8f10d72a16e2954
2015-10-29 15:57:29 -07:00
James Ide 516196b260 Merge pull request #3781 from kirkness/master
Added Rota Employer & Worker to showcase
2015-10-29 14:53:04 -07:00
Oleg Lokhvitsky 26e3bf97d3 Revert D2590497
Reviewed By: pvulgaris

Differential Revision: D2597148

fb-gh-sync-id: a8b6e7c3a90a8a1eaefc996d6243c4a171df37c8
2015-10-29 14:35:32 -07:00
Henry Kirkness 3e2c5dab7c Added Rota Employer & Worker 2015-10-29 20:39:28 +00:00
Tadeu Zagallo 70585f0724 Fix typo in the enableBytecode symbol
Summary: public

s/ByteCode/Bytecode/

Reviewed By: mikearmstrong001

Differential Revision: D2595940

fb-gh-sync-id: dc41d0354ef7f11e98cababcdb6d9a722d28b374
2015-10-29 11:53:36 -07:00
Alex Kotliarskyi 9a93a3cba4 Use pre-bundled elements inspector
Reviewed By: spicyj

Differential Revision: D2588448

fb-gh-sync-id: 278631c1de78cac2bfd9950809feddbe3f630ad0
2015-10-29 11:21:32 -07:00
Andr3wHur5t 22cc044a67 Added support for toggling POI visibility on iOS map view.
Summary: Adds support for toggling points of interests visibility on iOS map view; resolving #3244
Closes https://github.com/facebook/react-native/pull/3631

Reviewed By: svcscm

Differential Revision: D2575148

Pulled By: nicklockwood

fb-gh-sync-id: 0d0ee9d3b4726aa40bc439bc2f36d1db4cae1147
2015-10-29 11:02:25 -07:00
Chace Liang f5b2659f35 unbreak madman save button
Reviewed By: fkgozali

Differential Revision: D2594398

fb-gh-sync-id: ad8f47c0c259e3aec4e9c99f10d06173fcd4f8b4
2015-10-29 10:57:50 -07:00
Martin Konicek 8167f40163 Document that WebView is iOS-only until we open source the Android implementation
Summary: The absence of docs can be confusing:
https://twitter.com/40_thieves/status/659500246632939520

public

Reviewed By: davidaurelio

Differential Revision: D2595809

fb-gh-sync-id: b741263782ad579bb40e94a383992dca3a6e8040
2015-10-29 10:09:34 -07:00
Martin Konicek 5518279610 Add gradle wrapper
Reviewed By: astreet

Differential Revision: D2590921

fb-gh-sync-id: cf870c96f772c06e1a8b69014ebd906978ea8c00
2015-10-29 10:09:29 -07:00
Martin Konicek 84f7602ed8 Temp remove Gradle wrapper 2015-10-29 17:08:30 +00:00
Adrov Igor 95972cfd08 fix error handling in packager
Summary: Currently on error I have following output:
```
 ERROR  Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:

   lsof -n -i4TCP:8081

You can either shut down the other process:

   kill -9 <PID>

or run packager on different port.

See http://facebook.github.io/react-native/docs/troubleshooting.html
for common problems and solutions.
/Users/nucleartux/Work/projects/react-native/local-cli/server/server.js:90
    if (error.code === 'EADDRINUSE') {
             ^

TypeError: Cannot read property 'code' of undefined
    at process.<anonymous> (/Users/nucleartux/Work/projects/react-native/local-cli/server/server.js:104:14)
    at emitOne (events.js:77:13)
    at process.emit (events.js:169:7)
    at process._fatalException (node.js:211:26)
```
Closes https://github.com/facebook/react-native/pull/3765

Reviewed By: svcscm

Differential Revision: D2595537

Pulled By: martinbigio

fb-gh-sync-id: e11ec2e6e8794bf5fe7570e27cd327777d8b300c
2015-10-29 08:59:02 -07:00
Andy Street 88655001e3 Only try to load from the packager when it's running
Reviewed By: mkonicek

Differential Revision: D2595489

fb-gh-sync-id: 1d0991fa5414ba4c12476b7ae6c50252e002467b
2015-10-29 07:26:38 -07:00
Nick Lockwood e9c7ebfd9a Ensure bad JS does not crash the app
Summary: public

We have code in place to ensure that a red box is displayed when bad arguments are sent to exported methods, however the methods were still being called with nil values for those arguments, resulting in crashes if the method wasn't set up to handle nil gracefully.

This diff ensures that methods will not be called if any of the argument conversion functions log an error. It also explicitly checks for nil output for arguments that are marked as nonnull.

Reviewed By: javache, tadeuzagallo

Differential Revision: D2580658

fb-gh-sync-id: aad6be758ea19f9b4521f3f9f0407bf672c0a2dd
2015-10-29 05:15:30 -07:00
David Aurelio b86a6e3b44 Add support for async bridged methods to android
Differential Revision: D2595414

fb-gh-sync-id: 3b44ce1737bdd1e0861a285a45976631a57ab3b5
2015-10-29 04:20:30 -07:00
James Ide b73bf16349 Add .S files to the Pod
Summary: These need to be included while building with CocoaPods.
Closes https://github.com/facebook/react-native/pull/3753

Reviewed By: svcscm

Differential Revision: D2595296

Pulled By: tadeuzagallo

fb-gh-sync-id: f2e2ba729c92c52808ed1b7d23c31f6fa7b9d891
2015-10-29 02:11:29 -07:00
Bhuwan Khattar 47b124436f require InitializeJavaScriptAppEngine in bundle
Reviewed By: martinbigio

Differential Revision: D2582794

fb-gh-sync-id: d6cfdda81f556ef0cefb2e9dc58f5978b651bd5b
2015-10-28 21:09:24 -07:00
Brent Vatne 2e1dfc9bc0 Merge pull request #3762 from nickbalestra/patch-1
Update Animations.md
2015-10-28 21:09:17 -07:00
Nick Balestra 37c2934f85 Update Animations.md
Fixed Misspelling
2015-10-28 20:42:53 -07:00
David Aurelio 40f513aa71 Bring back D2570057 (previously backed out) + fixes
Reviewed By: nicklockwood

Differential Revision: D2590604

fb-gh-sync-id: 63a0e0c6afda740f22aacb3f469d411f236fa16b
2015-10-28 18:44:26 -07:00
Martín Bigio 89f1e6732e Fix comments on .bat file 2015-10-28 21:36:07 -04:00
Hedger Wang 064de3b338 Replace Navigator with AdsManagerNavigator - step 1
Reviewed By: fkgozali

Differential Revision: D2585102

fb-gh-sync-id: 6f0d51d755e0926f7c6f4d411a026cebf49333a2
2015-10-28 18:27:26 -07:00
Jay Garcia ca7a8b271a hit test detection -- adding clipsToBounds testing
Summary: This addresses #3577 and #3533. It adds the ability to test for subview.clipsToBounds.
Closes https://github.com/facebook/react-native/pull/3750

Reviewed By: svcscm

Differential Revision: D2592878

Pulled By: nicklockwood

fb-gh-sync-id: a87842b87dc0b455120e6007059b5d9a51a53ea2
2015-10-28 16:23:39 -07:00
Krzysztof Magiera ffc6db2f2c Add @Nullables to TouchEvent.
Reviewed By: mkonicek

Differential Revision: D2591989

fb-gh-sync-id: 84f139b91ec21e656157a9c54cd616ee15673991
2015-10-28 14:53:13 -07:00
Krzysztof Magiera 03d7c7a6a1 Recycle scroll events.
Reviewed By: mkonicek

Differential Revision: D2591945

fb-gh-sync-id: 1c9bfdc88ef5add38fcf0c9499bf52a8a940a22e
2015-10-28 14:26:27 -07:00
Krzysztof Magiera 97f1cdaad4 Fix typo in NativeComponentsAndroid.md 2015-10-28 21:12:05 +00:00
Krzysztof Magiera 830b46ea43 Document default values for @ReactProp 2015-10-28 20:48:14 +00:00
Krzysztof Magiera 0b9c704544 Fix items orderting in NativeComponentsAndroid.md 2015-10-28 20:38:25 +00:00
Krzysztof Magiera ec104e9fba Docs for @ReactProp 2015-10-28 20:37:14 +00:00
Krzysztof Magiera 5b426c2a18 Docs for @ReactProp 2015-10-28 20:35:09 +00:00
Martín Bigio 15006cf0b4 Add option to indicate bundle encoding
Summary: public

To improve cold start performance we want to be able to avoid decoding the bundle at all. To make that happen we need to be able to generate a bundle encoded on `ucs2`. This diff adds support for indicating the encoding the Packager should use for bundling.

Reviewed By: davidaurelio

Differential Revision: D2582365

fb-gh-sync-id: 905384272a668910c57a1a2ca6d1b723c39233f8
2015-10-28 13:20:28 -07:00
Krzysztof Magiera 47e791fa3b Update NativeComponentsAndroid.md 2015-10-28 20:16:48 +00:00
Martín Bigio 539c4d0f64 Steps for alternative testing workflow on the cli 2015-10-28 15:46:23 -04:00
Krzysztof Magiera dea4c2ca8e Use onLayout in listview instead of calling measure for every scroll event.
Reviewed By: sahrens

Differential Revision: D2590497

fb-gh-sync-id: 42a8f97dcb43b3a59ba3f0a008fb363f8e8c7200
2015-10-28 12:43:29 -07:00
Aaron Chiu 28b66be7b0 add ability to save/access Activity instanceState from/to JS
Differential Revision: D2591821

fb-gh-sync-id: c9c28b653611e65ab5b6e6cc8d34771bf8589055
2015-10-28 12:41:36 -07:00
Spencer Ahrens a2d58203b8 Fix AsyncStorage error multiplexing
Reviewed By: nicklockwood

Differential Revision: D2590231

fb-gh-sync-id: 399a783a474367855d526e0b2604d0f862594102
2015-10-28 12:03:26 -07:00
Matthew Arbesfeld 3a743ef228 Allow developers to load JavaScript bundle from any source.
Summary: This patch adds two pieces of functionality:

- Exposes `JSBundleLoader` to allow a developer to load JavaScript bundles as they choose.
- Adds `ReactBridge.loadScripFromFile` method which loads a JavaScript bundle from an arbitrary file path.

Example usage:

```
JSBundleLoader jsBundleLoader = new JSBundleLoader() {
    Override
    public void loadScript(ReactBridge reactBridge) {
        reactBridge.loadScriptFromFile("/sdcard/Download/index.android.bundle");
    }
};

mReactInstanceManager = ReactInstanceManager.builder()
        .setApplication(getApplication())
        .setJSBundleLoader(jsBundleLoader)
        .setJSMainModuleName("") /* necessary due to TODO(6803830) */
        .addPackage(new MainReactPackage())
        .setInitialLifecycleState(LifecycleState.RESUMED)
        .build();
```

cc ide
Closes https://github.com/facebook/react-native/pull/3189

Reviewed By: svcscm

Differential Revision: D2535819

Pulled By: mkonicek

fb-gh-sync-id: f319299dbe29bab3b7e91f94249c14b270d9fec3
2015-10-28 11:51:29 -07:00
Nick Lockwood b59f250214 Backed out D2540626
Reviewed By: jingc

Differential Revision: D2590392

fb-gh-sync-id: 2893a4ee6ddd0de12803560b355cee6f1b9d43e6
2015-10-28 11:46:26 -07:00
Pawel Sienkowski 84a0874f0d Delay delegate call until RN content is available
Reviewed By: javache

Differential Revision: D2557315

fb-gh-sync-id: 305350fa74821eec5537fbcf96896e46e929f28a
2015-10-28 08:48:27 -07:00
David Aurelio 4ac898fceb Backout D2570057
Reviewed By: kmagiera

Differential Revision: D2590341

fb-gh-sync-id: 8a6073de3ef2a6e87b785a2bb252468a37c081cf
2015-10-28 08:28:25 -07:00
Manuel Nakamurakare 7d4f5a5c47 added property to sliderIOS to be able to disable it
Summary: added a new property named 'disable' to SliderIOS
this property prevents the user from being able to slide the slider
Closes https://github.com/facebook/react-native/pull/3730

Reviewed By: svcscm

Differential Revision: D2590154

Pulled By: javache

fb-gh-sync-id: b8a9c82c1b05eb813d9b81180cb1083b3f1852ac
2015-10-28 05:48:28 -07:00
Tadeu Zagallo 8185b203be Preserve xmm registers on x86_64
Summary: public

`%xmm` registers weren't being preserved what would cause eventual weird issues
for methods using floats / doubles / etc.

Reviewed By: jspahrsummers

Differential Revision: D2581358

fb-gh-sync-id: 701498def0f05716c665f4749e5154b828bf41ec
2015-10-28 05:35:25 -07:00
Krzysztof Magiera 46e67ef428 Recycle touch events.
Reviewed By: andreicoman11

Differential Revision: D2590149

fb-gh-sync-id: 97c60e12385526097431a192b692e2f92813722d
2015-10-28 02:27:25 -07:00
James Ide 3625e074e5 Merge pull request #3745 from mattds/fanofit-showcase
Add Fan of it to showcase
2015-10-28 02:15:59 -07:00
mattds 825f5da652 Add Fan of it to showcase 2015-10-28 10:41:59 +02:00
James Ide 05de52c216 Merge pull request #3741 from whokilledtheelectricmonk/patch-2
add link to upgrade instructions
2015-10-27 22:52:17 -07:00
Alex Krolick 98c6017581 add link to upgrade instructions 2015-10-27 21:56:26 -07:00
James Ide 1e1bc53a68 Merge pull request #3737 from pliosoft/clord-renofind-showcase
Add RenovationFind App to the showcase
2015-10-27 20:00:26 -07:00
Martin Konicek 9dbb18ad6b [global-cli] Bump version to 0.1.7 2015-10-28 01:31:28 +00:00
Hedger Wang ae58fe221b Stop handling animation once Navigator is unmounted.
Summary: public
Navigator subscribes to its internal animation spring that may still
asks navigator to re-render after being unmounted.

This diff clears the listeners of its animation spring once navigator
is unmounted.

Reviewed By: zjj010104

Differential Revision: D2588434

fb-gh-sync-id: 2b3ee65d3a6c3d45e5c6904d1dc65ac5a3e4534a
2015-10-27 18:30:24 -07:00
James Ide 80070983ea Merge pull request #3734 from dabit3/capitalization-fix
Changed uppercase O to lower case o
2015-10-27 18:15:05 -07:00
Martin Konicek a855aca070 Update breaking-changes.md 2015-10-28 01:01:01 +00:00
Martin Konicek 072b73c866 Update breaking-changes.md 2015-10-28 01:00:36 +00:00
Martin Konicek 427206fea5 Update breaking-changes.md 2015-10-28 00:58:11 +00:00
Nader Dabit 65ea5d36f5 Changed uppercase O to lower case o 2015-10-27 19:48:02 -05:00
Martín Bigio 44af0d3dec Infer platform from extension
Summary: public
Aparently this used to work on 0.11, lets fix it :)

Reviewed By: foghina

Differential Revision: D2557719

fb-gh-sync-id: dcbca077431c1356c89dfc55b71eecff64c7ad3d
2015-10-27 17:47:28 -07:00
Martin Konicek 72c55c525b [global-cli] Link to docs on Node version mismatch 2015-10-27 23:42:25 +00:00
Martin Konicek e4bda3ab85 Update LinuxWindowsSupport.md 2015-10-27 23:12:06 +00:00
Alex Krolick b5297fe5d4 extend Network/Fetch API documentation
- Mention that Fetch returns a Promise
  (makes example with .then clearer to newcomers to ES6/ES7)
- Add example of Fetch usage with second argument
  (helps clarify how e.g., a POST request to an API might be constructed)
- Add async/await example
2015-10-27 14:29:36 -07:00
Tadeu Zagallo 0f92639a96 Prevent RCTProfileTrampoline from getting stripped
Summary: public

I was using `dlsym` as a more elegant way of checking if the function was defined
to prevent crashes if running on an unsupported architecture, but Xcode might
strip the symbol, even with `.no_dead_strip`, if there's no references to the
compilation unit at all.

Replace it with an ugly `#if` that checks if it's any of the supported targets
and extern the function prototype.

Reviewed By: jspahrsummers

Differential Revision: D2581143

fb-gh-sync-id: b004ed351de97f96c04b4a6c914ce55cfcbbbcbb
2015-10-27 13:03:28 -07:00
Krzysztof Magiera 0e4dec930b Backout 052d4aab3722
Reviewed By: mkonicek

Differential Revision: D2586735

fb-gh-sync-id: 477a1c84fcf2a22b681407c7e93102dd59118f25
2015-10-27 13:02:08 -07:00
Martin Konicek 1c1e1ece99 Update Upgrading.md 2015-10-27 19:29:33 +00:00
Martin Konicek 4e5a2bc079 Introduce react-native link
Reviewed By: martinbigio

Differential Revision: D2575858

fb-gh-sync-id: 13be5a0411db5cd753ebbac3799a7a0139c0f952
2015-10-27 11:22:28 -07:00
James Ide 28c3f899c6 Merge pull request #3726 from chirag04/patch-2
fix website build after asyncstorage changes.
2015-10-27 11:13:07 -07:00
Chirag 38398bc6a3 fix website build after asyncstorage changes. 2015-10-27 14:10:59 -04:00
Clement Genzmer c902ed2fe5 Backout 981069:cb671e39fd64 breaking master
fb-gh-sync-id: 052d4aab3722d44f5c4fbb0f4f50a2d71ba56927
2015-10-27 10:46:29 -07:00
Martín Bigio d23e622426 Improve error logging when rebuild fails
Summary: public

We're seeing intermittent errors on the packager when rebasing. Since this is very hard to repro lets add more logging to the warning we show just before starting to rebuild the entire haste map again

Reviewed By: frantic

Differential Revision: D2585427

fb-gh-sync-id: fbfa953f6c8ae78cbee2f3ab19ad494b084165c8
2015-10-27 10:33:29 -07:00
Nick Lockwood b9e4f0ddd6 Merged the JS implementations of AsyncStorage, as there seem to be no significant differences.
Reviewed By: sahrens

Differential Revision: D2585257

fb-gh-sync-id: a1c930a675f40b4cd1b3ebe4dffb316747376522
2015-10-27 10:03:03 -07:00
Andy Street 6ef024870c Update KnownIssues.md 2015-10-27 17:01:23 +00:00
Andy Street 7addbd69f4 Update KnownIssues.md 2015-10-27 16:42:02 +00:00
Pawel Sienkowski 6faface188 RCTUIManager's setFrame:forView: fix - add support for Modal
Reviewed By: javache

Differential Revision: D2585415

fb-gh-sync-id: f367cf5353593363357dd86ec959acb1676cba9b
2015-10-27 09:22:28 -07:00
Martin Konicek 36ec4752a8 Merge pull request #3714 from rnplay/rnplay-android-showcase
Adds RN Playground Android to the showcase
2015-10-27 16:09:47 +00:00
Satyajit Sahoo c45bb3e9c9 Don't throw runtime exception if WebSocket is already closed
Summary: Refer #3364
Closes https://github.com/facebook/react-native/pull/3706

Reviewed By: svcscm

Differential Revision: D2585455

Pulled By: mkonicek

fb-gh-sync-id: fecd5e46c59a79a109aad97a49c9ea016e82d669
2015-10-27 08:36:27 -07:00
Krzysztof Magiera b28ff0451d Allow events recycling and implement recyclable OnLayoutEvents.
Differential Revision: D2585530

fb-gh-sync-id: cb671e39fd64c27a9c11e3cd064bd19cabe7f3b6
2015-10-27 08:34:28 -07:00
Martin Konicek 20073fcab2 Update README.md 2015-10-27 15:33:42 +00:00
Martin Konicek 28687d83de Merge pull request #3717 from hswolff/android-native-modules-docs
Fix android native modules to reference right export
2015-10-27 14:36:50 +00:00
Mike Armstrong 2b491b45c8 Move PerformanceLoggerFlag to onDraw
Differential Revision: D2585417

fb-gh-sync-id: 342f7a05dc53cb0af0871b0dc8504dc48680cde4
2015-10-27 07:19:27 -07:00
Harry Wolff 63c3e531d4 Fix android native modules to reference right export 2015-10-27 09:45:34 -04:00
Dave Sibiski 7f5e3a74be Adds RN Playground Android to the showcase 2015-10-27 08:41:22 -04:00
Martin Kralik f916ec26a6 removed unnecessary dispatches to main queue
Summary: There is no point in dispatching to main thread if there is nothing to do there.
This place gets called basically any time a repeating js timer fires, which doesn't imply UI changes (although usually that's why people setup timers).
Combined with previous diffs that makes us not generate empty blocks (nil instead), this could be minor perf win in some rare cases.

This also changes semantic of `reactBridgeDidFinishTransaction` call a bit. Previously it was done no matter if UI has changed or not.
I think it should be safe, since seems like callees really care only about views being laid out.

Depends on D2571166. (not strictly speaking)

public

Reviewed By: jspahrsummers, nicklockwood

Differential Revision: D2571188

fb-gh-sync-id: 02d52e4615475072c3c27226e67c431a667ec990
2015-10-27 05:09:45 -07:00
Martin Kralik 28f5af0c39 nil instead of empty RCTViewManagerUIBlock blocks
Summary: Same as in previous diffs. Gets us into a better place to know if we really have UI updates and it's marginally more efficient.

Depends on D2571143. (not really)

public

Reviewed By: nicklockwood

Differential Revision: D2571166

fb-gh-sync-id: e8f34521ec2e12156a49f1cd655e92df1db34fca
2015-10-27 05:09:39 -07:00
Martin Kralik 8989ff925d nil instead of empty RCTViewManagerUIBlock block
Summary: There is no point in returning empty block here. It's a tiny bit wasteful and prevents us from knowing if there are any UI updates.

Depends on D2571122 (not really).

public

Reviewed By: jspahrsummers

Differential Revision: D2571137

fb-gh-sync-id: 4a872f33f05eaf2d858009aa04ea89feaa23576c
2015-10-27 05:09:31 -07:00
Martin Kralik af70d05838 moved reactBridgeDidFinishTransaction calls
Summary: Previously `_bridgeTransactionListeners` were informed about `reactBridgeDidFinishTransaction` inside of one of the UI blocks.
That seems pretty arbitrary, doesn't really mean a "transaction" is really over (assuming transaction means all UI updates) and even when that block does nothing we still need to call these listeners, since there could be other UI blocks generated somewhere else!
So I've moved this call to a place that seemed better (=after all UI blocks are done), since all listeners are interested in knowing when layout has happened.

public

Reviewed By: nicklockwood

Differential Revision: D2571122

fb-gh-sync-id: 62be03ebc4353d6f6318c9765079b87b07483be2
2015-10-27 05:09:25 -07:00
Nick Lockwood 500ffa9b76 Fixed dev mode override to work with unminified JS
Summary: public

The dev mode override feature was built with the assumption that bunlded JS would be minified, and broke with unminified JS. This fixes that by using a more robust regex-based search.

Reviewed By: tadeuzagallo

Differential Revision: D2581240

fb-gh-sync-id: 4d4b45eb8573ceb956b7259550d80a9807f83d59
2015-10-27 04:14:29 -07:00
Mike Armstrong 385ac02aeb attributes for setting alignment in SGText
Reviewed By: kukulski

Differential Revision: D2483597

fb-gh-sync-id: 003592b55b98af7a350f4789f3199b4e6d5f2c22
2015-10-27 03:41:26 -07:00
David Aurelio 0e2f3672c5 Move type inference to registration of bridged methods
Differential Revision: D2581548

fb-gh-sync-id: 4cf9e0bbb494047c927cef8602101a9d000eb076
2015-10-27 02:52:29 -07:00
shrimpy f7f76569f3 Fixed build for UIExplorer project.
Summary: Added missing file RCTRootViewInternal.h
Closes https://github.com/facebook/react-native/pull/3708

Reviewed By: svcscm

Differential Revision: D2585196

Pulled By: tadeuzagallo

fb-gh-sync-id: 2d69e706fb7920063380c1dedc8ef4deb6801ee5
2015-10-27 02:42:26 -07:00
Krzysztof Magiera 137a0b8611 Kill @UIProp in favor of @ReactProp.
Differential Revision: D2582624

fb-gh-sync-id: b04b4c90ee478d995968cab4364e1ab0964b6ebe
2015-10-27 01:54:28 -07:00
Andrei Coman 6a7567e742 Add storage module to fb
Differential Revision: D2584243

fb-gh-sync-id: 50dece06820aa754741b560cae5eb3318c1926bd
2015-10-26 18:29:27 -07:00
Christoph Pojer 787e421815 Add moduleNameMapper config
Summary: This adds the moduleNameMapper config which corresponds to the same config in flow.

public

Reviewed By: voideanvalue

Differential Revision: D2582879

fb-gh-sync-id: f116b86a7d4196c39faa366a521fe8401769b173
2015-10-26 17:03:28 -07:00
Martin Konicek 3c730b1ce2 Revert "Add folders to attempt to unblock sync"
We don't need these files anymore, the sync from the internal
fb repo to github is working now.

This reverts commit 746ebc6a79.
2015-10-26 22:48:10 +00:00
Pawel Sienkowski 576f5d79af Introduction of RCTRootViewDelegate
Reviewed By: adamjernst

Differential Revision: D2532327

fb-gh-sync-id: 0d018a6c2842f8021718fb7387ee6acb5d894645
2015-10-26 15:41:36 -07:00
Pawel Sienkowski 46803f0617 Size flexibility modes for RCTRootView
Reviewed By: javache

Differential Revision: D2526355

fb-gh-sync-id: 095a43bc01f883fdfdad3a086a35682c20c05597
2015-10-26 15:41:29 -07:00
Krzysztof Magiera 3a92f2017f Fix buggy behavior of setBackgroundColor in react View.
Differential Revision: D2582549

fb-gh-sync-id: 8856eb27d46df37e201cd1169fcec3b5b68dac97
2015-10-26 15:38:28 -07:00
Krzysztof Magiera 05c9a1f91a Kill ViewManager.updateView
Differential Revision: D2581595

fb-gh-sync-id: cb653360d7f59da7f4326ca08c41f5de64c384c6
2015-10-26 15:38:23 -07:00
Krzysztof Magiera 5eaa553264 Backout 'Backout 978869:739faaa0f18b'
Reviewed By: mkonicek

Differential Revision: D2582059

fb-gh-sync-id: 398737d6ea7b8c6cacb9dacd1269d8f806d92e45
2015-10-26 15:38:18 -07:00
Martín Bigio bcf762af60 Move files from packager/ to local-cli
Summary: public

This is not only to put the files on a place where it makes more sense but also to allow to use ES6 features on them as `/packager` is not whitelisted on `babel`.

Reviewed By: mkonicek

Differential Revision: D2577267

fb-gh-sync-id: b69a17c0aad349a3eda987e33d1778d97a8e1549
2015-10-26 15:38:14 -07:00
Alexey Lang f87d2e15bd Support log extras
Reviewed By: javache

Differential Revision: D2580869

fb-gh-sync-id: bd24c976aef09243cd11b408d0f37997e400d238
2015-10-26 15:37:29 -07:00
Christoph Pojer 725de1d236 Update to 0.6.1
Summary: This version should be more stable and has the `moduleNameMapper` feature that frantic was asking for - I will send a follow-up diff for that. I also fixed an issue with `module.parent` and a module inside of yeoman that thought it was owning the universe.

See https://github.com/facebook/jest/blob/master/CHANGELOG.md#061 for a changelog since 0.5.6.

public

allow-crlf-text

Reviewed By: javache

Differential Revision: D2579041

fb-gh-sync-id: cb918875557f219239f49fc0ad49ac61d0884173
2015-10-26 15:37:23 -07:00
Martín Bigio 2856be9a07 Bring back global cli module check
Summary: public

This was introduced by vjeux on 0a5967d and removed on 0686b01. I guess it was removed accidentally as this this is a nice warning to have that should prevent n00bs from commiting a common mistake

Reviewed By: frantic

Differential Revision: D2563885

fb-gh-sync-id: 9fae145bbec587514f118d1d28d076b1d82f0630
2015-10-26 15:36:29 -07:00
Clement Genzmer b7d1d8248d Backout 978869:739faaa0f18b
fb-gh-sync-id: 0ea211696e8114cf86ab04790a4fb287cc79ff54
2015-10-26 15:36:24 -07:00
Krzysztof Magiera cf35f47c4d Support scrollTo with RecycleViewBackedScrollView.
Differential Revision: D2581381

fb-gh-sync-id: 830f36f4d62a3097fdf3697a94a22441f11f93ef
2015-10-26 15:36:20 -07:00
Jeff Morrison d4eb8201f1 Deploy Flow 0.18.1 to fbobjc
Reviewed By: gabelevi

Differential Revision: D2575778

fb-gh-sync-id: 2cf610959db6a493d1813455b17f66bc997a9ef3
2015-10-26 15:36:14 -07:00
Krzysztof Magiera c2e7384110 Blow away BaseViewPropertyApplicator.
Differential Revision: D2580741

fb-gh-sync-id: 739faaa0f18b336051ab2cf4eb9f4e4315a2fcd9
2015-10-26 15:36:08 -07:00
Martín Bigio 849aa4dae6 Move private-cli commands to local-cli
Summary: public

We cannot remove `local-cli` because is referenced by the global cli explicitly. If we do so, people would have to upgrate this global thin cli which will cause some pain. So, lets move `private-cli` commands into `local-cli` instead.

Reviewed By: frantic

Differential Revision: D2571983

fb-gh-sync-id: 712c29430203660fb6f0d5f23813cb2a7156ee48
2015-10-26 15:36:04 -07:00
Martin Konicek 24537e3726 Fix sync: make copyAndReplace.js consistent with internal repo 2015-10-26 22:33:54 +00:00
Martin Konicek ad69f52617 Fix sync: make library.js consistent with internal repo 2015-10-26 22:29:53 +00:00
Brent Vatne 85db6f7485 Merge pull request #3691 from jhilden/patch-1
add makerist app
2015-10-26 13:09:08 -07:00
James Ide 9ad73d8734 Merge pull request #3689 from rnplay/noodler-showcase
Add Noodler to showcase
2015-10-26 12:33:50 -07:00
Martin Konicek 746ebc6a79 Add folders to attempt to unblock sync 2015-10-26 17:22:39 +00:00
Jakob Hilden 9e8f194dff add makerist app
thanks for the useful showcase
2015-10-26 16:55:43 +01:00
Joshua Sierles 3714029a67 add Noodler to showcase 2015-10-26 16:11:51 +01:00
Martin Konicek 3de6c2883d [Android] Remove ViewPager from the list of missing views 2015-10-26 12:47:37 +00:00
James Ide 757fb0c6ab Merge pull request #3682 from melihmucuk/patch-1
YazBoz app added to showcase
2015-10-26 01:42:43 -07:00
Melih Mucuk 658cfb9e52 YazBoz app added to showcase 2015-10-26 10:27:36 +02:00
Christopher Lord 74eb9a8bb3 Add RenovationFind App to the showcase 2015-10-25 08:52:32 -06:00
James Ide cd3865a14d Merge pull request #3658 from divyenduz/native_ios_docs
add missing curly brace in NativeModulesIOS.md
2015-10-24 15:39:34 -07:00
Tadeu Zagallo a044ade333 Update button and add comments to Perf Monitor
Summary: public

Rename the dev menu button and add comments to the private method
used.

Reviewed By: ndfred

Differential Revision: D2576599

fb-gh-sync-id: cd5cde7562dcbc243663ac68d2b9cac5c0a984ab
2015-10-24 14:03:27 -07:00
Divyendu Singh 484e6403b3 add missing curly brace in NativeModulesIOS.md 2015-10-25 01:04:59 +05:30
Brent Vatne 032c3641d0 Merge pull request #3650 from qingfeng/patch-1
add Go Fire APP to showcase
2015-10-24 11:16:48 -07:00
QingFeng 1776fce435 Go Fire APP, All use react native Development 2015-10-24 17:55:58 +08:00
PJ Cabrera 7882506c75 Send the evaluation of the injectedJavaScript prop back to the React Native side
Summary: We have a use case in the development of our app, where we are rendering some HTML content in a web view. But this content comes from the back end, and varies in height. There are other components on the page, so it's not a full screen web view. We need to dynamically alter the web view height, to fit the HTML content without scrolling, and to push the non-web view content on the screen down.

The solution I came up with, was to use the _loadingFinish callback, to send the evaluation of the injectedJavaScript property back to the React Native side. In my example above, injecting 'document.getElement(elementId).offsetHeight' evaluates to the height of the element, with margins and borders applied, and once returned to the RN app, it can change the app state and cause the web view height to be adjusted.
Closes https://github.com/facebook/react-native/pull/2753

Reviewed By: svcscm

Differential Revision: D2578688

Pulled By: mkonicek

fb-gh-sync-id: fc9c0d0f84994a409e037016a555534549f8957a
2015-10-23 20:24:26 -07:00
Martin Bigio 47926abca9 Use default asset roots on default.config.js
Summary: We need to cherry pick this one as well.

cc ide
Closes https://github.com/facebook/react-native/pull/3640

Reviewed By: svcscm

Differential Revision: D2577961

Pulled By: mkonicek

fb-gh-sync-id: 3368fc02a931e0f259f3baa6706bd7d8586b0fbf
2015-10-23 18:49:25 -07:00
Martin Bigio 271de0f9b6 Fix webSocketProxy.js
Summary: cc mkonicek ide
Closes https://github.com/facebook/react-native/pull/3638

Reviewed By: svcscm

Differential Revision: D2576536

Pulled By: martinbigio

fb-gh-sync-id: 27f53eedf2bd94f71f4e405d3d4bb193eaabc918
2015-10-23 13:58:31 -07:00
James Ide ba6be7ab88 Merge pull request #3627 from christopherdro/fix-3622
Add section for troubleshooting. Closes #3622
2015-10-23 12:29:55 -07:00
James Ide 2fb51bf74a [Docs] Update Podfile troubleshooting to use local :path syntax
The supported way to use CocoaPods is via a local pod in node_modules so update the docs to reflect that.
2015-10-23 12:27:56 -07:00
James Ide 1f00ae787a [Docs] Update docs to explain how to use local Pod from npm
These instructions were already in the docs; just gave them more meat and deleted the old instructions that talked about installing from the Pod repo. Now, we publish only to npm so these instructions are important.
2015-10-23 12:26:25 -07:00
Christopher Dro c211a084ef Add section for troubleshooting. Closes #3622 2015-10-23 11:57:51 -07:00
Spencer Elliott c1faabcdf6 Replace applescript with https://github.com/sindresorhus/opn
Summary: This allows opening the Chrome debugger on OS X, Linux, and Windows, and succeeds the previous PR which used [browser-launcher2](https://github.com/benderjs/browser-launcher2) and included a `--dangerouslyDisableChromeDebuggerWebSecurity` option: https://github.com/facebook/react-native/pull/2406

[opn](https://github.com/sindresorhus/opn) is cross-platform and much simpler than browser-launcher2 (since we don't have to manage the opened Chrome instance; the OS will just use the default instance).
Closes https://github.com/facebook/react-native/pull/3394

Reviewed By: mkonicek

Differential Revision: D2550996

Pulled By: frantic

fb-gh-sync-id: fa4cbe55542562f30f77e0a6ab4bc53980ee13aa
2015-10-23 11:32:35 -07:00
Alex Kotliarskyi f0cf0b0288 npm install --save opn
Reviewed By: mkonicek

Differential Revision: D2570884

fb-gh-sync-id: 89f9ab8e8b04081442da28e8c30caa80b454d696
2015-10-23 11:32:29 -07:00
Tadeu Zagallo 9069bdf1c2 Introduce Perf Monitor
Summary: public

Kill `RCTPerfStats` and introduce the new `RCTPerfMonitor`, including memory
usage, JSC heap size, number of RN views in screen, FPS (both on UI and JS threads)
and more to come.

It removes all the previous traces that were previous spread across the bridge
and the dev menu and moves everything to be more contained, so the whole thing
can be safely striped in production.

Reviewed By: nicklockwood

Differential Revision: D2575158

fb-gh-sync-id: 6a6d0c4422adbddeeefddd32ec3409a7095ff2a9
2015-10-23 10:56:56 -07:00
Nick Lockwood cae4761006 Use arrays for module method data
Summary: public

Use arrays instead of dictionaries for encoding module method information.

This further reduces UIExplorer startup JSON from 16104 bytes to 14119 (12% reduction)

Reviewed By: javache

Differential Revision: D2570057

fb-gh-sync-id: 4a53a9ead4365a136e7caeb650375733e1c24c0e
2015-10-23 10:16:26 -07:00
Martín Bigio dad45aa8f2 Fix android command
Summary: public

We've recently tweak `Config.js` so that it changes the current working directory to be able to keep track of it when running functions on the config instances. Turns out we can't do this as some commands rely on the current path (i.e.: `android`).

Although for this specific command we could fix the issue by using several `../` I feel like changing the cwd could bring other weird problems in the future, so I'm reverting the last update I did to D2565954.

Reviewed By: foghina

Differential Revision: D2572172

fb-gh-sync-id: 8cba62228b19a7729efcfe240a2f00e9becda61f
2015-10-23 09:53:24 -07:00
Pieter De Baets 039dab078a Fix configuration for OSS UIExplorer tests
Reviewed By: nicklockwood

Differential Revision: D2575356

fb-gh-sync-id: 0ab5bd29aa3c17a8cb067a8a17abed3e178c5bcf
2015-10-23 09:35:25 -07:00
Nick Lockwood b0b9a56ef8 Fixed ActivityIndicatorIOS layout
Summary: public

This has been broken for a while. The styles in the JS were being set on the container instead of the activity view itself.

Also, due to the way frames were set directly on layer properties instead of the view, resizing didn't work properly because the UIImageView inside the UIActivityView was not being realligned when the bounds changed. This also caused problems for other controls such as maps, where it was fixed with a method override, but the simpler solution is just to set the view center and bounds directly.

Before: {F23631143}
After: {F23631144}

Reviewed By: javache, tadeuzagallo

Differential Revision: D2575156

fb-gh-sync-id: e82e56d36648e7c924df77da1750e03037b5d5be
2015-10-23 09:13:24 -07:00
Pieter De Baets ed0b45ef8e Merge pull request #3578 from javache/xcode-7
Use latest simulator version
2015-10-23 16:04:22 +01:00
Felix Oghină 864fdd1ebd Merge pull request #3580 from exponentjs/cli-version-check
[CLI] Make `react-native init` check your Node version
2015-10-23 11:57:25 +01:00
Felix Oghină 7e53ee1095 add upgrade cli command
Reviewed By: mkonicek

Differential Revision: D2559885

fb-gh-sync-id: 785bd6ad855da30c00b170e737a7dd0f3e756430
2015-10-23 03:37:28 -07:00
Felix Oghină 6f71b790f1 Merge pull request #3297 from exponentjs/node-4-cli
[CLI] Add Node >= 4 requirement to CLI tools
2015-10-23 11:18:44 +01:00
rocman 772010a9af Add controller to closest parent on time so as to fix the automaticallyAdjustContentInsets feature.
Summary: Here's the bug to fix:
https://github.com/facebook/react-native/issues/898
Closes https://github.com/facebook/react-native/pull/3509

Reviewed By: svcscm

Differential Revision: D2574869

Pulled By: javache

fb-gh-sync-id: 8d947c2a0edcfb695c2e209c7b44ae6417b6233e
2015-10-23 03:15:25 -07:00
James Ide bc409ba2da Merge pull request #3620 from jabbrass/patch-2
[docs] fix typos (docs/Animations)
2015-10-22 17:16:10 -07:00
J. Andrew Brassington 7c36138caa Fix typos (docs/Animations)
Line 461: "simlar" => "similar"
Line 545: "tighly" => "tightly"
2015-10-22 17:02:40 -07:00
Alexander Blom e6ad91b5a2 Fix showsHorizontalScrollIndicator for ScrollView
Differential Revision: D2573323

fb-gh-sync-id: 980a29fcf836326f9f581eb404d36638afb67f10
2015-10-22 16:50:25 -07:00
James Ide 6ec4d65aec Set up the RN JS environment before requiring other modules
Summary: Set up the polyfills for console and process before initializing other modules. Some modules do work (e.g. call `invariant`) when they are first required, so requiring the DefaultInjection module at the beginning ensures we have a consistent JS environment.
Closes https://github.com/facebook/react-native/pull/3526

Reviewed By: spicyj

Differential Revision: D2560340

Pulled By: frantic

fb-gh-sync-id: 44c743e3212ff1dcdbe0169041dfd3ea8f1a54f7
2015-10-22 15:48:28 -07:00
Martin Konicek 251a4086a7 Fix Chrome debugging
Reviewed By: dkoroskin

Differential Revision: D2572178

fb-gh-sync-id: 677f2eb5a7ff5ada2a4e66f86e90664787bef346
2015-10-22 14:26:27 -07:00
Martín Bigio dee96fbedc Update blacklist.js
Summary: Since we rely on a non npm version of `react-tools` which includes docs and other unnecessary files we need to make sure we blacklist some of them as otherwise the packager fails
Closes https://github.com/facebook/react-native/pull/3616

Reviewed By: svcscm

Differential Revision: D2572024

Pulled By: mkonicek

fb-gh-sync-id: 2082cd69e2ccddb275dfdc7db107d4ed6b826bbb
2015-10-22 14:20:26 -07:00
Martin Konicek 582655e6a8 Merge pull request #3612 from martinbigio/scripts-fix
[react-native-cli] Fix errors on tests refering `packager.js`
2015-10-22 20:45:24 +01:00
Martin Konicek eced31ffaf Merge pull request #3611 from foghina/bundle_upgrade_docs
[docs] add bundle and upgrade docs
2015-10-22 20:11:07 +01:00
Martin Bigio 26df016600 [react-native-cli] Fix errors on tests refering packager.js 2015-10-22 14:17:29 -04:00
Felix Oghină 880a06a4b2 [docs] add bundle and upgrade docs 2015-10-22 19:11:38 +01:00
Martin Konicek 3d489c3a6a Update GettingStarted.md 2015-10-22 19:05:11 +01:00
Martin Konicek 98aed73e1c Update GettingStarted.md 2015-10-22 19:02:19 +01:00
Martín Bigio 32aeeea313 Fix cli entry points
Reviewed By: frantic

Differential Revision: D2565954

fb-gh-sync-id: 6fde9e1dbefd71944e8f857e9a40619bf599ef75
2015-10-22 10:13:13 -07:00
Martin Konicek 17ef86d6bb Update LinuxWindowsSupport.md 2015-10-22 17:22:52 +01:00
Martin Konicek 58ea08dfdb Fix react-tools dependency
Reviewed By: foghina, spicyj

Differential Revision: D2570237

fb-gh-sync-id: 4340953702112af704cac97e7d27313c573eee20
2015-10-22 08:38:27 -07:00
Pieter De Baets 59bb57a002 Use latest simulator version 2015-10-22 16:10:09 +01:00
Martin Konicek 55f8f3e370 Explanatory message when starting packager on Windows or unknown platform
Reviewed By: martinbigio

Differential Revision: D2564756

fb-gh-sync-id: 097ec541267a54a45d82116a03e4c22b8f49eb99
2015-10-22 07:10:27 -07:00
Pieter De Baets afea653cbc Measure script conversion time in RCTPLScriptExecution
Reviewed By: alexeylang

Differential Revision: D2570036

fb-gh-sync-id: a3ca8cdf0420b0da12b65ac0a672179940b2f818
2015-10-22 06:41:28 -07:00
Felix Oghină ce7de93275 [android] remove deprecated gradle plugin 2015-10-22 14:25:03 +01:00
Nick Lockwood ae5de54f00 Reduced module config data
Summary: public

We're sending a lot of module config data when the app first starts, and much of this is redundant.

UIExplorer current sends 19061 bytes of module config JSON. This diff reduces that to 16104 (15% saving) by stripping modules that have no methods or constants, and removing method types unless method is async.

Reviewed By: tadeuzagallo, javache

Differential Revision: D2570010

fb-gh-sync-id: 8c0abbd1cdee3264b37a4f52e852008caaffb9c5
2015-10-22 05:53:26 -07:00
Charles Marsh 66717d802b Allow for styling of ToolbarAndroid's overflow icon
Summary: Fixes #2858.

Here's a screenshot of the custom overflow icon in action:
<img width="638" alt="overflow" src="https://cloud.githubusercontent.com/assets/1309177/10567090/693e395a-75ae-11e5-84cd-20b19149c620.png">
Closes https://github.com/facebook/react-native/pull/3497

Reviewed By: svcscm

Differential Revision: D2559787

Pulled By: foghina

fb-gh-sync-id: f188711ec094af3fa307722527f22aefff722e64
2015-10-22 04:43:25 -07:00
Tadeu Zagallo 71da2917e5 Remove retainArguments from RCTModuleMethod's invocation
Summary: public

Fixes #2527

We were re-using the same invocation for every module's method, but calling
`[NSInvocation retainArguments]`, so the arguments would never be released.

Reviewed By: nicklockwood

Differential Revision: D2559997

fb-gh-sync-id: eafa3b3517c7cab3539954e26e250f7f668eee50
2015-10-22 04:04:25 -07:00
Felix Oghină ff17789e98 consistent redbox theme, bigger text and spacing
Differential Revision: D2569981

fb-gh-sync-id: 20b9bfc6801544795d6d13aa029ae5e1f5ee1dee
2015-10-22 03:39:26 -07:00
Alexander Kotliarskyi 8c18a24277 Merge pull request #3586 from frantic/fix-e2e-tests
Fix e2e tests
2015-10-21 21:03:13 -07:00
Alex Kotliarskyi be70e32de2 Generate bundle and assets when building via Xcode
Summary: This integrates React Native into Xcode's build process, which lets us automatically handle bundling and packaging image assets.

Tested the script via https://github.com/frantic/ReactNativeAssetsExample

Loaded from packager:
<img width="432" alt="screen shot 2015-10-19 at 3 11 12 pm" src="https://cloud.githubusercontent.com/assets/192222/10593447/be5bc7e8-7678-11e5-8c70-ecc2a1ee24fc.png">

Loaded from offline bundle:
<img width="432" alt="screen shot 2015-10-19 at 3 10 58 pm" src="https://cloud.githubusercontent.com/assets/192222/10593448/be5d5194-7678-11e5-8b02-d492a26cfb81.png">

Android:
<img width="639" alt="screen shot 2015-10-19 at 3 11 20 pm" src="https://cloud.githubusercontent.com/assets/192222/10593449/be5de2d0-7678-11e5-8d3c-0378fc447f15.png">
Closes https://github.com/facebook/react-native/pull/3523

Reviewed By: mkonicek

Differential Revision: D2557923

Pulled By: frantic

fb-gh-sync-id: 19957e255993696e793b0162662772efd89f5c1a
2015-10-21 18:44:27 -07:00
Bhuwan Khattar aff4cfb3b3 Fix spacing
Reviewed By: cpojer

Differential Revision: D2568166

fb-gh-sync-id: 8cedfd49ae4ce0de57a4ff3b499057c748803bd3
2015-10-21 17:39:26 -07:00
Alex Kotliarskyi 2f5681d4f2 Fix e2e tests
Internally we don't mirror `scripts` folder from GitHub, which means
when importing #3523 changes to `scripts/e2e-test.sh` will not make it to
GitHub. This commit contains those changes.
2015-10-21 16:36:28 -07:00
Bhuwan Khattar 3a8f9e1080 split transformers
Reviewed By: martinbigio

Differential Revision: D2567545

fb-gh-sync-id: 2e6a341885c701c6a7da35830227dbff7705255c
2015-10-21 16:28:27 -07:00
cpojer 54b1402c43 Nuke unused scriptPreprocess file. 2015-10-21 15:25:11 -07:00
Jesse Ruder 56fef9b622 Allow duplicate keys in FormData
Summary: Right now `FormData` doesn't allow duplicate keys and uses the last value set for a duplicate key. I tested this in Chrome:
```
var formData = new FormData();
formData.append('key', 'value1');
formData.append('key', 'value2');

var request = new XMLHttpRequest();
request.open("POST", serverUrl);
request.send(formData);
```
and the request has both 'value1' and 'value2'.

I removed the duplicate key check in `FormData`. If people want to build appending or disallow duplicate keys, they can build either on top of this.
Closes https://github.com/facebook/react-native/pull/3556

Reviewed By: svcscm

Differential Revision: D2566999

Pulled By: nicklockwood

fb-gh-sync-id: 580e52e69376ebe9693e39a386cc540802b6d94f
2015-10-21 15:18:40 -07:00
Nick Lockwood 666833d2d2 Fixed RCTImageStoreManager bug
Reviewed By: tadeuzagallo

Differential Revision: D2565154

fb-gh-sync-id: a9b6df27e4c54d5c3a9ad42dc5b821729d445c9e
2015-10-21 13:19:28 -07:00
James Ide d061de1107 Merge pull request #3582 from levic92/patch-2
Add Okanagan News App to showcase
2015-10-21 13:05:05 -07:00
levic92 279a6cd52f Add Okanagan News App to showcase
This app was built using React Native and was created to provide a more optimized mobile experience for reading news articles. I would love to have it added to the showcase!
2015-10-21 13:01:31 -07:00
Krzysztof Magiera 44ff93e7bf Sync latest code from github
Differential Revision: D2566417

fb-gh-sync-id: 9eb9fbbb2dfbd5337de128ea4415120faf089aaa
2015-10-21 12:52:26 -07:00
James Ide 64c809345f [CLI] Make react-native init check your Node version
We get a bunch of bugs because people are running old versions of Node that don't support modern JS. We have "engines" entries in the package.json files to catch this earlier but printing an explicit error message will also make this clear.

Test Plan: Changed react-native's package.json to require Node >= 5 and got an error message when running the CLI with Node 4.
2015-10-21 12:51:14 -07:00
Oliver (Cunpu) Bo 4036eca570 Fix pixelated image in storyline
Reviewed By: seanxiao

Differential Revision: D2563069

fb-gh-sync-id: 86fa47801c34669b7b0c2826e0e776717f5605dc
2015-10-21 12:45:29 -07:00
Nick Lockwood a859d9e931 Fixed ActionSheetIOS on iOS 9 SDK
Summary: public

UIActionSheet no longer works on iPad when building with the iOS 9 SDK, as reported here: https://github.com/facebook/react-native/issues/3498

This diff implements an alernative code path that uses UIAlertController instead when its available.

Also added `anchor` support for action sheets (previously only supported for share sheet).

Reviewed By: javache

Differential Revision: D2560068

fb-gh-sync-id: feda20f6f1fee5e2ba624761fbeb812e23d96fff
2015-10-21 12:21:28 -07:00
James Ide 5227b10455 [README] Add clarification about GH issues being for bugs & feature requests 2015-10-21 11:26:50 -07:00
Alexey Lang 8ad09987e5 Log bundle size.
Reviewed By: javache

Differential Revision: D2564757

fb-gh-sync-id: c4429b735482ee6405b936e2dcdf610e9c6ad35f
2015-10-21 10:55:25 -07:00
Thomas Parslow 394dfae868 Support line number arguments for Emacs when using emacsclient
Summary: Many emacs users will want to use the `emacsclient` command to launch emacs. This opens the file in an existing emacs session rather than opening up a new instance.
Closes https://github.com/facebook/react-native/pull/3536

Reviewed By: svcscm

Differential Revision: D2565189

Pulled By: pcottle

fb-gh-sync-id: be12782aa92281eb649710ac22db2ffa1486a08a
2015-10-21 09:57:40 -07:00
Martin Konicek c771fb3072 Fix runAndroid
Reviewed By: kmagiera, martinbigio

Differential Revision: D2565100

fb-gh-sync-id: 3be393fbd164997ebaa7a9b133e6ebb72059a615
2015-10-21 09:39:27 -07:00
Martin Konicek 62ac37275f Actually revert https://github.com/facebook/react-native/commit/2608efccb6d81e2abc5571522455e641caf330ea
Summary: We need to keep both babel and babel-core top level. `npm-shrinkwrap` defines that to be at the top level but that's only used when cloning the github repo. When publishing to npm and installing from npm, it has no effect (it's not published anywhere).

This file assumes `babel-core` is at the top level: https://github.com/facebook/react-native/blob/master/packager/babelRegisterOnly.js

public

Reviewed By: davidaurelio

Differential Revision: D2565054

fb-gh-sync-id: 7d6a079d88e09c1ba0478cf4041948e330da639a
2015-10-21 09:34:26 -07:00
Pieter De Baets 68c52814d6 Enable ReactKit tests on iOS9
Reviewed By: majak

Differential Revision: D2565213

fb-gh-sync-id: 6a70f7e7403b396af8d10b844c5e41ea472ab9b5
2015-10-21 09:31:24 -07:00
James Ide 6a5b61eb88 Merge pull request #3534 from edo1493/master
CANDDi's iOS app
2015-10-21 09:27:05 -07:00
Martin Konicek cafeac0000 Update LinuxWindowsSupport.md 2015-10-21 17:06:19 +01:00
Krzysztof Magiera a5c693dd53 Fix typo in ReadableMapKeySetIterator.
Reviewed By: mkonicek

Differential Revision: D2564934

fb-gh-sync-id: 2ef1a0f5c1550d912dc751100c307659a5159fa3
2015-10-21 09:05:12 -07:00
Stephen Keep 852eba2a91 Documentation Update
Summary: The first change is to remove the word 'Hybrid' to a lot of javascript developers the word Hybrid is normally referred to as a webview app (such as Cordova) and this may cause confusion.

The second change is to refer to the property within Navigator that allows a scene to be presented from the bottom of the screen (like a modal).
Closes https://github.com/facebook/react-native/pull/3173

Reviewed By: svcscm

Differential Revision: D2561886

Pulled By: javache

fb-gh-sync-id: e37e5d06869ffadc152abaf304f77c93b81f71a3
2015-10-21 07:02:25 -07:00
Martin Konicek 586b1ee5df Update LinuxWindowsSupport.md 2015-10-21 14:08:13 +01:00
Martin Konicek 59563ff203 Update LinuxWindowsSupport.md 2015-10-21 14:06:53 +01:00
Martin Konicek 0b5179dce7 [docs] Add docs about Linux and Windows support 2015-10-21 14:02:27 +01:00
Martin Konicek 43d6b1bbfa Update DevelopmentSetupAndroid.md 2015-10-21 13:31:34 +01:00
Hermes Pique 9960878ba4 Revert D2564759
Differential Revision: D2564818

fb-gh-sync-id: 75e44551fc2c7e22be8096f12c06aa88b72a4508
2015-10-21 05:31:25 -07:00
Edoardo Moreni ea4ea90d77 canddi app 2015-10-21 13:03:34 +01:00
Krzysztof Magiera e1b2c84a81 Fix typo in ReadableMapKeySetIterator.
Differential Revision: D2564759

fb-gh-sync-id: 6a57fb71d4da1d467661a3ae786f637172b21e73
2015-10-21 04:14:12 -07:00
Martin Konicek f1ab581337 [react-native-cli] Make 'npm start' call 'react-native start' 2015-10-21 11:27:37 +01:00
Martín Bigio c6c97cbd9d Introduce default config
Reviewed By: frantic

Differential Revision: D2561344

fb-gh-sync-id: 651b8a199069f78e1ace2897ba4c0352aab7e3ea
2015-10-21 03:04:04 -07:00
Martín Bigio 8e7cfcd053 Kill unused files
Reviewed By: frantic

Differential Revision: D2561113

fb-gh-sync-id: a81fece0a948485e12bff7ec146e39d890664887
2015-10-21 03:04:01 -07:00
Martín Bigio 088c193a22 Start packager through cli
Reviewed By: frantic

Differential Revision: D2561066

fb-gh-sync-id: 1743153a84947da5d0e54aca7e1919cf5df3a965
2015-10-21 03:03:59 -07:00
Martín Bigio 5c4bb894bf Clean up cli.js
Reviewed By: frantic

Differential Revision: D2546201

fb-gh-sync-id: 214a12213674749e1b7270ccbe90fd3330c9cb1e
2015-10-21 03:03:57 -07:00
Aaron Chiu b4d4cf4444 bump up react bridge time out from 15s to 30s
Differential Revision: D2562848

fb-gh-sync-id: 62255e01d4ff599c03af5eebd87d8d40aeb7e6fe
2015-10-21 03:03:55 -07:00
Martín Bigio 34c91800d2 Revert 2608efc
Reviewed By: frantic

Differential Revision: D2561665

fb-gh-sync-id: fe7c3a63a8644e122703637c2d4ead21b75a373f
2015-10-21 03:03:53 -07:00
Felix Oghină 71adc24974 Revert "Update rn-cli.config.js"
This reverts commit 8d592650c9.
2015-10-21 11:02:08 +01:00
Martín Bigio 774bbc2f3a [react-native-cli] Remove reference to packager.sh
This script was removed, need to remove the reference we had here.
2015-10-20 22:15:30 -04:00
Sam Swarr c15ec71238 Create script to generate NSURL builders for RN Routes
Reviewed By: martinbigio

Differential Revision: D2513000

fb-gh-sync-id: 4ff695b4d5ea55ae9bb21df4000d2dead5b7ff97
2015-10-20 13:49:31 -07:00
Samarendra M Hedaoo 54b5b62f78 Adding http as failover for react-tools git repo.
Summary: Fixes #2797 for me.

Most times git://github.com/facebook/react-tools times out. So adding
http as a fail-over so that if git protocol doesn't work while cloning
the react-tools repo as a dependency, http would atleast work and ensure
that a simple "react-native init myProject" doesn't fail.

Submitting a PR so that http is used as a failover when cloning. (I guess that is what git+http does in package.json)
Closes https://github.com/facebook/react-native/pull/3514

Reviewed By: svcscm

Differential Revision: D2561417

Pulled By: spicyj

fb-gh-sync-id: ac421a7f57474124875a5cabdc5a34801019f6cd
2015-10-20 13:49:25 -07:00
James Ide 330b0538a9 Merge pull request #3548 from anttimo/fix-typo-in-DirectManipulation-doc
Fixed one typo and made one sentence more readable by adding 'and' to it.
2015-10-20 13:09:38 -07:00
Antti Moilanen d6f46c693a Fixed one typo and made one sentence more readable by adding 'and' to it. 2015-10-20 23:06:33 +03:00
David Aurelio 523769faa7 Add --verbose flag to react native packager cli
Reviewed By: martinbigio

Differential Revision: D2517347

fb-gh-sync-id: 02e64f99120b6636d6e7649deb11d0b2f58d9285
2015-10-20 11:52:25 -07:00
Nick Lockwood c76c22249d Clear cache entry when calling multiRemove
Reviewed By: javache

Differential Revision: D2560487

fb-gh-sync-id: 4d2c192cc659f118fd5667da2a029457328eae9f
2015-10-20 11:50:30 -07:00
Martín Bigio 02e39719c2 Move run-android to private-cli
Reviewed By: mkonicek

Differential Revision: D2544567

fb-gh-sync-id: 3c62f6c30b5be7f480d8f44a48fb551fc30d477e
2015-10-20 11:48:29 -07:00
Brent Vatne 93488a7898 Merge pull request #3541 from frantic/yglf-talk
Add "React Native: Under the Hood" to videos
2015-10-20 11:26:10 -07:00
Martin Konicek 5e2882846c Update breaking-changes.md 2015-10-20 19:20:16 +01:00
Hedger Wang 06a154e061 Fix Js error in Navigator
Summary: public

In Navigator, there are several places that mutate `this.state.presentedIndex`
with the express `this.state.presentedIndex = destIndex` instead of calling
`this.setState`, which creates the problem that not all internal states are
updated within the same React update cycle.

One of the symptoms is that over-swiping within the Navigator may throw JS error
due to `this.state.sceneConfigStack` and `this.state.presentedIndex` are not both
updated.

The workaround is to bypass the over-swiping gesture to avoid JS error.

Reviewed By: ericvicenti

Differential Revision: D2557140

fb-gh-sync-id: 1e5c9047ed17c04a63e2a568118848b00723fb1d
2015-10-20 11:04:23 -07:00
Martin Konicek 4ac3c4a853 Make 'npm start' an alias for 'packager.sh', don't silently no-op on Windows
Reviewed By: martinbigio

Differential Revision: D2559772

fb-gh-sync-id: d1cd2874c32459d6e1f0af7d084c3559ebc145aa
2015-10-20 10:15:22 -07:00
Martin Konicek e612690413 Add license headers to local-cli
Reviewed By: martinbigio

Differential Revision: D2559969

fb-gh-sync-id: d8cd52435213729ff73a1f039eb0378b28f8d10e
2015-10-20 09:55:21 -07:00
Martin Konicek 82fad33af7 Breaking change: Remove redundant packager entry point
Summary: We have too many ways to start the packager:
- react-native start
- npm start
- ./packager/packager.sh
- ./packager/launchPackager.command

This removes yet another one. According to the [npm docs](https://docs.npmjs.com/files/package.json)
this creates `/usr/local/bin/react-native-start`. Let's kill it.

public

Reviewed By: martinbigio

Differential Revision: D2559953

fb-gh-sync-id: e3b41a0622e6168fe686cdf9c93714dbf02f5965
2015-10-20 09:54:30 -07:00
James Ide 93c56a0e90 Expose the projectRoots option
Summary: This was already implemented -- just documenting it in the CLI.
Closes https://github.com/facebook/react-native/pull/3246

Reviewed By: svcscm

Differential Revision: D2560211

Pulled By: martinbigio

fb-gh-sync-id: c4e4d974db28d6251636ff38bfcb0afdf5148de7
2015-10-20 09:49:27 -07:00
Alex Kotliarskyi 3506f55ece Add "React Native: Under the Hood" to videos 2015-10-20 09:48:00 -07:00
David Aurelio fb46e39cad Make the modification time of the transformer file relevant for the cache.
Reviewed By: amasad

Differential Revision: D2554956

fb-gh-sync-id: cc76f083594aac04c74a4ef271305238b06710eb
2015-10-20 09:46:23 -07:00
Nick Lockwood dbe37e7898 Improved AsyncLocalStorage performance
Reviewed By: javache

Differential Revision: D2540626

fb-gh-sync-id: f94def7463075d40c2dcfea1cb4c01502aefa117
2015-10-20 09:42:23 -07:00
Krzysztof Magiera 4849aabecc Stop propagating requestLayout up the view hierarchy.
Differential Revision: D2560183

fb-gh-sync-id: e62acc3eb70a78ae4526bfe696e51349be957ae3
2015-10-20 08:46:21 -07:00
Andy Street 1b55e4657c Load JS bundle after CatalystInstance has been attached to the ReactContext
Reviewed By: andreicoman11

Differential Revision: D2550062

fb-gh-sync-id: 05790e8c092c7dd28669ffd48f7d7d2dffd6546e
2015-10-20 06:24:25 -07:00
Nick Lockwood 1d6d1189f0 Improved threading for image loader
Summary: public

The image loader was previously returning on the main thread, which could lead to poor performance due to various call sites doing further image processing (resizing, cropping, etc.) directly in the completion block.

This diff modifies the loader to return on a background thread (the same one used to load the image), and updates the call sites to dispatch to the explicit thread they need.

Reviewed By: javache

Differential Revision: D2549774

fb-gh-sync-id: fed73b7c163fdf67ff65bae72ab1986327e75815
2015-10-20 05:02:23 -07:00
Jimmy Mayoukou 77154a7581 Fix typos in example descriptions.
Summary: Closes https://github.com/facebook/react-native/pull/3095

Reviewed By: svcscm

Differential Revision: D2559729

Pulled By: foghina

fb-gh-sync-id: 70dbd39de86e6377d32d1628c77ff10510ac3ae5
2015-10-20 04:38:21 -07:00
Tadeu Zagallo 89c1747c33 Implement asm trampoline rather forwardInvocation
Summary: public

The profiler overrides all the methods of all the BridgeModules, and in order to
`start` and `end` the profiler at the function invocation time it used `NSInvocation`,
which is slow.

Replace it with a simple assembly method based on `objc_msgSend`.

Reviewed By: jspahrsummers

Differential Revision: D2550807

fb-gh-sync-id: 88ca08f9d6bfcd3035bda9304c93566c8818b46f
2015-10-20 04:14:09 -07:00
Martin Konicek 1b29690496 [docs] Tweak Android setup screenshot 2015-10-20 12:44:39 +02:00
Martin Konicek d41cedb8fc Update DevelopmentSetupAndroid.md 2015-10-20 12:35:48 +02:00
Martin Konicek 4d9b05cfb2 [docs] Simplify Android setup instructions 2015-10-20 12:30:54 +02:00
Edoardo Moreni 67498a4b6d CANDDi's iOS app 2015-10-20 10:23:50 +01:00
Martín Bigio 8d592650c9 Update rn-cli.config.js 2015-10-19 19:07:34 -04:00
Martín Bigio 17c59ace46 Add node-fetch node module to repo
Reviewed By: vjeux

Differential Revision: D2542225

fb-gh-sync-id: a94e799d5595eb7909b42bc8acb6d80259ca1609
2015-10-19 15:00:26 -07:00
Brent Vatne d03bf216b1 Remove link to IRC in CONTRIBUTING.md, not used anymore 2015-10-19 12:27:17 -07:00
Brent Vatne 61ad255629 Merge pull request #3519 from ptmt/patch-3
Add info about react-native channel on DiscordApp
2015-10-19 12:25:50 -07:00
Brent Vatne ac5e2a41bb Merge pull request #3520 from purposecampaigns/add-foodstand-to-showcase
Add Foodstand to RN showcase
2015-10-19 12:24:31 -07:00
Justin Spahr-Summers 123516d556 Reload RCTImageView when it's displaying the default image
Summary: public

If the frame is set, or the image view moves to a window, we should attempt to load the "real" image. The sizing logic shouldn't kick in if we're only displaying the default image.

Resolves https://github.com/facebook/react-native/issues/3460.

Reviewed By: tadeuzagallo

Differential Revision: D2555316

fb-gh-sync-id: c0c13070ee080bad2b30ca01d9d5173bead406e3
2015-10-19 10:26:24 -07:00
Ricky Reusser d760544652 Add Foodstand to RN showcase 2015-10-19 13:20:05 -04:00
Hedger Wang 73b80773ba supports event capturing and bubbling phases in Navigation context.
Summary: Adds the API that enables the navigation events capturing and bubbling which is the feature
that is enabled if the nested navigation contexts is created by the navigator.

This would allow developer to observe or reconcile navigation events within the navigation tree.

public

./Libraries/FBReactKit/jest

Reviewed By: zjj010104

Differential Revision: D2546451

fb-gh-sync-id: dfc9d16defaa563b9e80fd751a20570f6e524b74
2015-10-19 10:06:22 -07:00
Nick Lockwood 1076f4a172 Added RCTDataRequestHandler
Summary: public

Added RCTDataRequestHandler, which is responsible for loading data URLs. This moves the logic for data URL handling out of RCTImageDownloader (no longer needed) and into the RCTNetwork library, where it makes more sense.

This also means that it is now possible to load data URLs via XHR, and use them for purposes other than just images.

Reviewed By: javache

Differential Revision: D2540964

fb-gh-sync-id: 4f0418bd6b9186f047cc8297276bb970795af104
2015-10-19 09:07:06 -07:00
Dmitry 419549b116 Add info about react-native channel on DiscordApp 2015-10-19 20:47:03 +05:00
Tadeu Zagallo 31f9a690f3 Flush queue every 5ms during JS execution
Summary: public

Implement the iOS side of the optmisation previously implemented in android
(D2485402)

Depends on D2540746

Reviewed By: javache

Differential Revision: D2541118

fb-gh-sync-id: f3590600a6defa2da75c5b7b2cced6ad8bfea6cb
2015-10-19 08:04:24 -07:00
Joe Noon 607527c0d4 (upstream) Prevent SocketRocket killing the connection before notifying of final messages
Summary: wrap NSStreamEventEndEncountered in dispatch_async _workQueue per upstream:
https://github.com/square/SocketRocket/pull/294

CLA completed
Closes https://github.com/facebook/react-native/pull/3493

Reviewed By: svcscm

Differential Revision: D2554892

Pulled By: javache

fb-gh-sync-id: 347a37eb95b20b7e92b985b6908e15462672e83c
2015-10-19 06:47:22 -07:00
Felix Oghină 9dc036d2b9 add gradle tasks for bundling js and assets in template
Summary: This adds gradle tasks that call `react-native bundle` with the correct args to bundle dev/release JS and assets. The dev task is disabled by default, as in dev mode people only use reload JS in most cases.

Submitting this as a pull request to have community visibility, although we have this code internally as well now and this will require an import.

* generate a project with `react-native init`, add some assets, run `./gradlew assembleRelease`, sign & zipalign generated APK, run it -> works
* enable dev bundling task, run `./gradlew installDebug` (not `react-native run-android` so as to not start the packager) -> works

Reviewed By: svcscm

Differential Revision: D2555071

Pulled By: foghina

fb-gh-sync-id: c3d9fcd4c77862e6a4db4e4d8d8cc39ee9dff3ab
2015-10-19 06:33:22 -07:00
Pieter De Baets 59e670e453 Fix a warning about SnapshotView
Reviewed By: majak

Differential Revision: D2553669

fb-gh-sync-id: 2a2b47f9cf7a75403e4e2541b32a4b141b3d08be
2015-10-19 06:10:22 -07:00
Felix Oghină b09e92e1b3 Merge pull request #3499 from willchu/master
Add LoadDocs to showcase
2015-10-19 12:15:15 +01:00
Felix Oghină 81317bd27a Merge pull request #3495 from dsandor/master
Clarified ReactInstanceManager paragraph.
2015-10-19 12:09:35 +01:00
James Ide 45d2c691a3 Start to use the Obj-C JSContext instead of the C API
Summary: The Obj-C API is usually easier to work with, and also makes it very easy to use the C API when necessary (performance, for example). This diff just switches the designated initializer of RCTContextExecutor to take a JSContext instead of JSGlobalContextRef, but the old initializer still works if needed.

I was doing some memory leak investigation and it is easier with ARC so I wanted to incrementally move the executor to Obj-C.
Closes https://github.com/facebook/react-native/pull/2159

Reviewed By: svcscm

Differential Revision: D2554890

Pulled By: tadeuzagallo

fb-gh-sync-id: 75b96d04cddff68fa3daf5d0fafdffad21dae307
2015-10-19 03:51:20 -07:00
Andrei Coman 716f7e8ef2 Don't use MotionEvent timestamp for touch events
Differential Revision: D2554905

fb-gh-sync-id: 7f83e94948cc9ac1024e249764d445fb056f400e
2015-10-19 03:08:23 -07:00
James Ide e3f33ea261 Merge pull request #3500 from jadekler/master
Small readme updates
2015-10-18 21:47:36 -07:00
Jean de Klerk 2be0525b2a Small readme updates
- Link for firefox react dev tools
- Add missing word
2015-10-18 19:00:38 -06:00
Will ec6d41414d add LoadDocs to showcase 2015-10-18 17:34:59 -07:00
David Sandor c0a2c96d9b Clarified ReactInstanceManager paragraph. 2015-10-18 15:55:21 -05:00
Brent Vatne 7827b35443 [Website] Update support section to link to Discord 2015-10-18 12:39:43 -07:00
Brent Vatne 3759511951 Merge pull request #3490 from hswolff/ios-device-docs
Update documentation with improved Cocoapods workflow
2015-10-18 12:02:51 -07:00
Brent Vatne e59b28e6ca [README] Link to Reactiflux Discord invite 2015-10-18 11:58:59 -07:00
Harry Wolff 6949be63e4 Update documentation with improved Cocoapods workflow 2015-10-18 09:48:48 -04:00
Nick Lockwood 16a48ae0c3 Fixed "Unrecognized request token" red box
Summary: public

There was a race condition issue in RCTDownLoadTask whereby the request handler would sometimes call one of the delegate methods before setup was complete, causing an error to be logged because the request token had not been set, and causing te request to fail because the class was not yet set up.

This diff fixes that issue by adding an explicit `start` method to RCTDownloadTask, and changing the setup order to allow for the request to call back immediately without this being treated as an error.

Reviewed By: tadeuzagallo

Differential Revision: D2553628

fb-gh-sync-id: 5ca4e791574a632ccbf2e873e28ac88bffdf851d
2015-10-17 09:34:23 -07:00
Andrei Coman f01272b031 Fix touches with pointer events backtrack
Differential Revision: D2553642

fb-gh-sync-id: b1788879bfbb564a291ada0e7ac206f567780f8a
2015-10-17 06:31:26 -07:00
Hedger Wang a2524bac33 Support nested navigation context.
Reviewed By: fkgozali

Differential Revision: D2525434

fb-gh-sync-id: 18e7d672b2cbadc318a207c8812f38d8669bad30
2015-10-17 04:25:26 -07:00
Martin Konicek dcd82a2450 Update RunningOnDeviceIOS.md 2015-10-17 11:26:58 +02:00
Brent Vatne b39b97546a [Docs] Add ViewPagerAndroid to extractDocs 2015-10-16 19:25:43 -07:00
Martín Bigio 8bff2d30ab Use private-cli's server instead of packager.js
Reviewed By: vjeux

Differential Revision: D2542027

fb-gh-sync-id: e59f3be17590c1e256a903e04f2f0359c835c8b5
2015-10-16 15:01:23 -07:00
Martín Bigio 5977f494fc Allow user to configure transformer through cl argument
Reviewed By: frantic

Differential Revision: D2547435

fb-gh-sync-id: 77016ee5beba854a4cb58e9ac04b91a7dd76cf3e
2015-10-16 13:26:22 -07:00
James Ide 01f90054cc Merge pull request #3415 from exentrich/patch-1
Add Raindrop.io to showcase
2015-10-16 13:00:30 -07:00
Patrik Tomas Chamelo 1511d8ca1d Invoking devMenu from RCTBridge in prod will crash
Summary: While we shouldn't invoke `bridge.devMenu` in production, doing it will result into a crash.

1. `devMenu` internally calls `RCTBridgeModuleNameForClass([RCTDevMenu class])`
2. `RCTBridgeModuleNameForClass()` calls `moduleName`
3. In the release code `RCTDevMenu` doesn't export the `moduleName` class method.
Closes https://github.com/facebook/react-native/pull/2910

Reviewed By: svcscm

Differential Revision: D2550797

Pulled By: tadeuzagallo

fb-gh-sync-id: 5dfbf905e5a02d9fd3b52f8b3d6eefc4e3ff30b2
2015-10-16 12:15:25 -07:00
Bhuwan Khattar 256f69f4e6 fix HasteDependencyResolver
Reviewed By: javache

Differential Revision: D2550444

fb-gh-sync-id: f978efdd73c09e58bcdbc4711ee2a7662a0b1bf3
2015-10-16 11:16:25 -07:00
Martín Bigio b00c49725c Use new cli on fbt string extraction script
Reviewed By: frantic

Differential Revision: D2534971

fb-gh-sync-id: b008c21c2194c59e8b2b83402841292cee8d85e8
2015-10-16 10:57:39 -07:00
Adam Miskiewicz 24bfdda499 Adds support for ES6 export syntax to the packager's DependencyResolver.
Summary: This PR includes:
- A regex that allows for the `export` syntax.
- Updated tests.
Closes https://github.com/facebook/react-native/pull/3465

Reviewed By: svcscm

Differential Revision: D2550322

Pulled By: vjeux

fb-gh-sync-id: 7d35f436af13cf5b6b1287835a18a9693ec1be8a
2015-10-16 10:57:32 -07:00
Adam Terlson da250671e5 Add support for cancelAllLocalNotifications
Summary: Closes https://github.com/facebook/react-native/pull/2980

Reviewed By: svcscm

Differential Revision: D2550080

Pulled By: javache

fb-gh-sync-id: 76a7088f4f86191b02e6c176e4a8a7bc85f90835
2015-10-16 10:57:25 -07:00
James Ide 2608efccb6 exclusively use babel-core
Summary: We don't need babel the CLI tool... just babel-core suffices. Remove babel, which speeds up npm install, and just use babel-core.
Closes https://github.com/facebook/react-native/pull/2476

Reviewed By: svcscm

Differential Revision: D2550081

Pulled By: martinbigio

fb-gh-sync-id: 4390a48ff4cc4ea78217e8af00322b7342e98c95
2015-10-16 09:24:23 -07:00
Ryan Olson 1091ecd8e0 Respect destination vaules in LayoutAnimation create
Reviewed By: nicklockwood

Differential Revision: D2544389

fb-gh-sync-id: 9e6abdbd1f500578369e5f2c3e34d7f5ef047f5e
2015-10-16 08:39:22 -07:00
Martin Bigio c0b5e6ed67 [react-native-cli] Move new-library command to private-cli 2015-10-16 11:20:29 -04:00
Frédéric Sagnes 4a3857ef1d Use JSStringCreateWithUTF8CString and skip NSString decoding when loading the bundle
Summary: public

Benchmarking our startup path has shown we spend a lot of time decoding strings (iPhone 4S / iPhone 5):

* reading a 2MB JS bundle: 35ms / 15ms
* decoding is to an `NSString`: 186ms / 78ms
* transforming that to a `JSString`: 29ms / 10ms

Instead of going through an `NSString` transformation, we generate a null-terminated bundle (0.1ms / 0.05ms to copy the data) and use `JSStringCreateWithUTF8CString` (121ms / 53ms) to generate the string. That makes decoding 70% faster.

Reviewed By: javache

Differential Revision: D2541140

fb-gh-sync-id: 09a016b8edfd46a9b62682c76705564d2024e75e
2015-10-16 08:11:25 -07:00
Krzysztof Magiera 8e2ec64763 Use RecyclerViewBackedScrollView in groups feed on Android.
Differential Revision: D2549975

fb-gh-sync-id: 98689a58a69ce8425c695acf74701509816821ae
2015-10-16 07:45:22 -07:00
Krzysztof Magiera 0ed3048e39 Add deprecated transform props to View prop type definition.
Differential Revision: D2549973

fb-gh-sync-id: 96b5233fe4ed003760746d8cdb7f0496a67c63be
2015-10-16 07:30:26 -07:00
Bill Glover 8fb9cc8fc1 Fix 16 linter warnings in Examples/
Summary: Partially fixes #3316 by addressing 16 linter warnings:
 - Strings should be singlequote
 - Missing semicolon

Travis build jobs 1.1 through 1.4 complete successfully. 1.5 fails through what appears to be an unrelated issue on master.
Closes https://github.com/facebook/react-native/pull/3332

Reviewed By: @​svcscm

Differential Revision: D2531718

Pulled By: @javache

fb-gh-sync-id: ca22fbeac5fe3b4f725775a72f21b6dd7a75d94b
2015-10-16 04:03:23 -07:00
Jihyun Yu 79e33078f2 Fix minor typos on documentation
Summary: Closes https://github.com/facebook/react-native/pull/2742

Reviewed By: @​svcscm

Differential Revision: D2549690

Pulled By: @javache

fb-gh-sync-id: 84cb3aa78c2c75bae24a8cc7c1b96e219c9a0552
2015-10-16 03:49:25 -07:00
Pieter De Baets 74002b784b Fixes broken link to running on device
Summary: Closes https://github.com/facebook/react-native/pull/2420

@​public

Reviewed By: @majak

Differential Revision: D2549685

fb-gh-sync-id: 8ce3c9aa242cd65e8efc2bdd0065f9e20de8240d
2015-10-16 03:41:21 -07:00
Krzysztof Magiera f47e8ac6a1 Instrumentation test for native listview component.
Differential Revision: D2549707

fb-gh-sync-id: c9ff379383853c198274778e99a72b313d9dbda9
2015-10-16 03:41:18 -07:00
Mike Armstrong 3d40d622f9 Prevent ReactMarker class from being stripped in release
Differential Revision: D2547100

fb-gh-sync-id: c6a5d2f70bfdf5fa6fdd7f17f063de7ad837ece3
2015-10-16 03:41:16 -07:00
Ben Alpert 84df87ef64 Fix React warnings
Reviewed By: @sebmarkbage

Differential Revision: D2548854

fb-gh-sync-id: 9ace9ce57641e2dcaae997358e6404044d871f82
2015-10-16 03:41:14 -07:00
Bhuwan Khattar 15054ade7d Support cyclic dependencies in require polyfill
Reviewed By: @martinbigio

Differential Revision: D2548506

fb-gh-sync-id: fca534179a5f8fcf407917137cdd71d964f145e5
2015-10-16 03:41:08 -07:00
Jared Forsyth 0788e0b683 Devtools websocket
Summary: I thought this was already in here, but then it wasn't. It's connected to by RN [here](https://github.com/facebook/react-native/blob/master/Libraries/Devtools/setupDevtools.js#L17).
Closes https://github.com/facebook/react-native/pull/3431

Reviewed By: @​svcscm

Differential Revision: D2548286

Pulled By: @frantic

fb-gh-sync-id: ffd74426949196ca538c897c1a0d07d08b204630
2015-10-16 03:41:05 -07:00
Will Ngo b3c72a5632 Fix command to re-generate the static bundle in Examples
Summary: Updated the commands provided in the comments to re-generate the static bundle in the Movies and UIExplorer examples, making them match the URL used in `sourceURL` while in dev mode.
Closes https://github.com/facebook/react-native/pull/3132

Reviewed By: @​svcscm

Differential Revision: D2547140

Pulled By: @vjeux

fb-gh-sync-id: 450049d3c3d4eb9919d0a3a6bd6c611e90d0f958
2015-10-16 03:41:02 -07:00
Bhuwan Khattar 83b8a30beb Simplify require polyfill
Reviewed By: @vjeux

Differential Revision: D2544415

fb-gh-sync-id: ab48b5fba169c43c68dd24dc95ea1d0322ed67c4
2015-10-16 03:40:58 -07:00
Krzysztof Magiera 643769fc8e Fix dependency on recycler view in OSS.
Differential Revision: D2546027

fb-gh-sync-id: 7a2c2298332400fb216c18b8c569a859d1a3e1d0
2015-10-16 03:40:55 -07:00
Martín Bigio d96b750e56 Fix bundle command with --dev
Reviewed By: @vjeux

Differential Revision: D2538070

fb-gh-sync-id: 3720de8e60d20d6becc60035095e29b3a480a017
2015-10-16 03:40:51 -07:00
Martín Bigio 36697ae6a1 Move android generator to private-cli
Summary: @​public

Lets also make this more generic to allow to generate the template for any platform code.

Reviewed By: @vjeux

Differential Revision: D2536821

fb-gh-sync-id: 6fb99c6dc546b8e1f9839c96a473dc08b0f5285c
2015-10-16 03:40:48 -07:00
James Ide 72b713262f [CLI] Add Node >= 4 requirement to CLI tools
React Native's packager now relies on modern V8 so it depends on modern Node. The CLI tools actually run with older versions of Node but the version constraint in the CLI's package.json accomplishes two things:

- Lets us rely on modern V8 in the CLI so we don't have to think about which JS features we can use
- Fails faster up front. So if someone has Node 0.10 for example they will get an error when setting up the CLI tools instead of later on in the process.
2015-10-15 16:15:35 -07:00
Martín Bigio ca1bc35940 Update npm-shrinkwrap.json 2015-10-15 14:43:28 -04:00
James Ide c38d7fab97 isInteraction option to keep InteractionManager unblocked
Summary: Adds a new option to animation configs so that animations can be marked as non-interactions. This solves the "loading indicator problem" where an animated loading screen would deadlock as it waits for all interactions to complete.

As for the API, what we really want long term is better scheduling. This needs to be built at the runtime level (into the RN bridge) and take care of things like priority donation that are probably overkill right now. Basically this API is a medium-term fix and I won't be upset if it gets replaced with a finer-grained scheduler.
Closes https://github.com/facebook/react-native/pull/3433

Reviewed By: @​svcscm

Differential Revision: D2545300

Pulled By: @vjeux

fb-gh-sync-id: c1216bf69bfbbbae00c76c4697183fe96a6a01dd
2015-10-15 09:22:33 -07:00
Krzysztof Magiera 1e52b8297c Wrapper for android RecyclerView to be used by ListView.js
Differential Revision: D2545291

fb-gh-sync-id: 5d745939f6d63aea4cd9bba2f55e68336efc1e9a
2015-10-15 09:22:31 -07:00
Michal Aichinger d0e40c581d Fixes a path in touchableHandlerResponderGrant method when touchableGetPressRectOffset method is not present.
Summary: Current code is checking presence of touchableGetPressRectOffset method but fails immediately on trying to get 'left' value of null.
Closes https://github.com/facebook/react-native/pull/3438

Reviewed By: @​svcscm

Differential Revision: D2545068

Pulled By: @javache

fb-gh-sync-id: d16cb46af1fc6eae02f56b2096c2169ce475e022
2015-10-15 09:22:29 -07:00
Mike Armstrong 4ec5161685 timer markings from JS JNI
Differential Revision: D2545138

fb-gh-sync-id: f93670ad929dbe37d641968e506108c6aac0cac2
2015-10-15 09:22:26 -07:00
Christopher Chedeau 8ddd3e864e Merge pull request #3424 from rnplay/embedded-simulator-website
Documentation: Adjust styling and add Appetize link in the modal
2015-10-15 09:17:21 -07:00
Johan Ruokangas cb609f986c Remove indentation and force appetize link to open a new window/tab 2015-10-15 18:18:01 +03:00
Andrei-Ovidiu Coman 02958376ad Update KnownIssues.md 2015-10-15 14:07:47 +01:00
James Ide 498ef4f935 Merge pull request #3430 from adaojunior/patch-1
fix typo
2015-10-14 16:49:03 -07:00
Adão Júnior 5e844c75f8 fix typo 2015-10-14 20:44:36 -03:00
Martín Bigio ce0e839d27 Update breaking-changes.md 2015-10-14 19:14:40 -04:00
Christopher Chedeau bbb756d2cb Merge pull request #3428 from vjeux/s3_token
Adding s3 token to travis environment
2015-10-14 14:54:47 -07:00
Christopher Chedeau dfee3f30af Adding s3 token to travis environment 2015-10-14 14:54:02 -07:00
Christopher Chedeau a0f3d29c0b Merge pull request #3427 from vjeux/appetize_token
Add appetize.io token to travis environment
2015-10-14 14:47:53 -07:00
Christopher Chedeau 6ab4faa68b Add appetize.io token to travis environment
$APPETIZE_TOKEN is now available
2015-10-14 14:46:31 -07:00
James Ide f006571a41 Merge pull request #3418 from bluedaniel/master
Adding Kakapo to the app showcase
2015-10-14 13:55:35 -07:00
Christopher Chedeau 3f2199ddf0 Merge pull request #3425 from vjeux/add_files
[website] Support pushing new files
2015-10-14 13:29:21 -07:00
Christopher Chedeau c43b2da158 [website] Support pushing new files
In #3421 we created a new folder but it didn't get picked up by the publish script.

```
Untracked files:
  (use "git add <file>..." to include in what will be committed)
  js/
```

The reason is that `git diff-index --quiet HEAD --` returns 0 for untracked files. But, if we add before, it returns 1.

It still returns 0 if we add but there's nothing changed
2015-10-14 13:26:22 -07:00
Johan Ruokangas 080746c4c3 Add hover effect and appetize link 2015-10-14 23:04:31 +03:00
Daniel Levitt 62e238fd6a Place Kakapo in the correct alphabetical order 2015-10-14 20:02:08 +01:00
Christopher Chedeau ceb948d151 Merge pull request #3421 from rnplay/embedded-simulator-website
Documentation: Fix the site generator so the simulator's supporting javascript files get written
2015-10-14 11:45:04 -07:00
Joshua Sierles 21a8145fe8 instead of ignoring the documention javascript support files, just write them without trying to process them 2015-10-14 20:40:20 +02:00
Christopher Chedeau a4383f0a50 Merge pull request #3420 from rnplay/embedded-simulator-website
Documentation website changes for an embedded simulator in AlertIOS documentation
2015-10-14 11:05:03 -07:00
Joshua Sierles d9ee81c127 embed an appetize.io simulator for AlertIOS documentation 2015-10-14 19:57:23 +02:00
Daniel Levitt 2d18cae041 Adding Kakapo to the app showcase 2015-10-14 18:45:22 +01:00
Tadeu Zagallo 529687f923 Defer calls until bridge finishes loading
Summary: @​public

When de-batching the calls from native -> JS, some calls were being dispatched
before the bridge had finished loading, which would cause lost calls when running
on the `ContextExecutor` and redbox when running in the Chrome debugger

Reviewed By: @javache

Differential Revision: D2540746

fb-gh-sync-id: ece29406648d3cbcb42cef3b32b8774ff0c15fd8
2015-10-14 09:49:23 -07:00
Krzysztof Magiera 10a9b94b9c Skip unnecessary string allocs from frquently executed code paths.
Differential Revision: D2540814

fb-gh-sync-id: 045d012b52a6bc89d409bcc028532da1760c5775
2015-10-14 09:23:25 -07:00
exentrich 10cc72bb88 Add Raindrop.io to showcase 2015-10-14 19:12:07 +03:00
Felix Oghină aae9f0255f [docs] add docs for integrating with existing apps on Android 2015-10-14 17:10:47 +01:00
Harry Wolff 1b94586fe6 Add documentation for making PushNotificationIOS events work,
Summary: I was just implementing push notifications for my iOS app and was very confused why the `register` event wasn't working.

[Eventually I ran across this tutorial](https://medium.com/@​DannyvanderJagt/how-to-use-push-notifications-in-react-native-41e8b14aadae) that explained that I needed to update my AppDelegate to make that event work.

I've updated the documentation to include that note within the actual file.
Closes https://github.com/facebook/react-native/pull/3390

Reviewed By: @​svcscm

Differential Revision: D2537853

Pulled By: @javache

fb-gh-sync-id: 1e8860173c38f6b2d7f9d273019f201e4cc9c0f2
2015-10-14 09:09:26 -07:00
Martin Konicek 3df34f1ba8 Merge pull request #2953 from j27cai/and-patch
updated ReactiveAndroid installation info
2015-10-14 17:00:59 +01:00
Martin Konicek f8ef2c4b77 Update breaking-changes.md 2015-10-14 16:58:26 +01:00
Christopher Chedeau 92c7eb25a6 Revert changes to breaking-changes.md
This is synced internally, we can't update it on github directly. cc @mkonicek
2015-10-14 08:53:55 -07:00
Martin Konicek 9a48b7c336 Update RunningOnDeviceAndroid.md 2015-10-14 16:49:51 +01:00
Dave Sibiski c2ae790396 Removes hardcoded port 8081 from URL format strings
Summary: This allows the use of different bundle URLs & ports in Dev mode. (ie. ngrok url shared with a team member)

The bundle URL can be changed via the normal Dev Menu, or programmatically by setting the `debug_http_host` shared preference key.

For example, in your apps `MainActivity.java` before creating your `ReactRootView`:
```java
SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(getApplication());
SharedPreferences.Editor editor = mPreferences.edit();
editor.putString("debug_http_host", "my.customurlandport.com:8888");
editor.commit();
```

**Breaking change**: Custom bundle URLs added via the Dev Menu will need to also include the port. This has been noted in the documentation and also on the preference description in the Dev Menu.

Addresses: https://github.com/facebook/react-native/issues/2704
Closes https://github.com/facebook/react-native/pull/2824

Reviewed By: @​svcscm

Differential Revision: D2540450

Pulled By: @javache

fb-gh-sync-id: a053de91e3095bb67640bb0f1b8761e55775bc9c
2015-10-14 08:46:15 -07:00
Yuri Zarubin 45644aab35 Check that WS connection is open before closing it on failed. Fixes #3346
Summary: Check that the WS state is set to OPEN before trying to close it when the ```websocketFailed``` event fires. Otherwise the app throws an error at the Android level.

Fixes #3346
Closes https://github.com/facebook/react-native/pull/3347

Reviewed By: @​svcscm

Differential Revision: D2535807

Pulled By: @mkonicek

fb-gh-sync-id: bb70c551ea2e582cfaa80139a265dbbca6d990d2
2015-10-14 08:46:12 -07:00
Martin Konicek 855f7be4b8 Make Android examples depend on source again
Summary: @​public

The idea was to depend on a fixed version from Maven to make running the examples easy, however that only works if we depend on both fixed version of JS and the Android artifacts.

The current way leads to version mismatches and causes confusion: https://github.com/facebook/react-native/issues/3329

This commit makes the Android examples consistent with iOS (always build the latest JS and native code from master).

Added docs here: https://github.com/facebook/react-native/commit/8abfb5e0e2015a0b8a80cba81ccf249df275adcb

Reviewed By: @foghina

Differential Revision: D2531525

fb-gh-sync-id: 7c0844b63ddeb94ad008a3f0e7a43e1af69031c4
2015-10-14 07:48:25 -07:00
Eric Jing Cai 6494746613 Update README.md 2015-10-14 10:44:14 -04:00
Mike Armstrong a041d770e4 PerfTest Stubs for OSS
Differential Revision: D2540549

fb-gh-sync-id: 01abb2e444f1636f50075df94d9275f8295340a3
2015-10-14 07:08:10 -07:00
Martin Konicek 31a02fb758 Merge pull request #2959 from BretJohnson/win-line-endings
Force LF line endings for Bash scripts, so they work on Windows
2015-10-14 14:43:21 +01:00
Krzysztof Magiera 8486a68b91 Share fontsize and numberoflines props between text and inputtext shadow nodes.
Differential Revision: D2540451

fb-gh-sync-id: 289eeaed6881efe429124a0e69195a025ac3cbb8
2015-10-14 05:41:24 -07:00
Martin Konicek ad4f589b65 Update breaking-changes.md 2015-10-14 12:53:43 +01:00
Martin Konicek 663ae6cbf7 Update breaking-changes.md 2015-10-14 12:53:16 +01:00
Martin Konicek 4b90db10da Update breaking-changes.md 2015-10-14 12:52:33 +01:00
Krzysztof Magiera 589df04846 Introduce @ReactProp-enabled LayoutShadowNode as a baseclass for most of the shadow nodes.
Differential Revision: D2540232

fb-gh-sync-id: 6dfed70c8253973897f4e447377ec5561862da23
2015-10-14 01:41:26 -07:00
James Ide 9493e96e13 Merge pull request #3396 from theinventor/patch-1
add RepairShopr to showcase
2015-10-13 22:05:34 -07:00
Troy Anderson c0654cfc96 add RepairShopr to showcase
Happy react-native users over here :)
2015-10-13 22:03:54 -07:00
Bret Johnson ea70525744 Added a .gitattributes file, ensuring that Bash script source files (gradlew and
*.sh) have normal Unix LF line endings even on Windows.  This change is needed
so gradlew, packager.sh, and other Bash scripts can run on Windows (under cygwin).
On Windows the rest of the source files will typically have CR+LF endings (Git
default), but Bash scripts need to have LF endings to work, thus this override
to force that.
2015-10-13 23:10:39 -04:00
Martin Konicek f03c7b59fd Merge pull request #3393 from passy/patch-1
Document opening rage menu via adb
2015-10-14 00:53:54 +01:00
Pascal Hartig 7aeae9778f Document opening rage menu via adb
You can access the rage menu via adb by sending the keycode manually if you don't have a physical device that you can shake.
2015-10-14 00:43:32 +01:00
Martin Konicek 0206347df3 Update KnownIssues.md 2015-10-13 23:24:44 +01:00
Krzysztof Magiera f4e2a670d3 Convert basic shadow nodes to use @ReactProp.
Differential Revision: D2537318

fb-gh-sync-id: 3061545f27953299904fe224e973fa409650d239
2015-10-13 12:57:24 -07:00
Martín Bigio 08e79deebd Update RunningOnDeviceIOS.md 2015-10-13 15:41:42 -04:00
Martín Bigio a21e226b68 Remove install command
Summary: @​public

The implementation wasn't working. Lets remove this for now and revisit if we trully want to support this.

Reviewed By: @frantic

Differential Revision: D2536442

fb-gh-sync-id: 4aca2d1d2584cd15ac855d69e6e9a5a08abf778e
2015-10-13 12:08:22 -07:00
Martín Bigio 1ab0c3b374 Update RunningOnDeviceIOS.md 2015-10-13 15:08:11 -04:00
Dave Miller 19e11232fe Move SnapshotView to SnapshotViewIOS and create an unimplemented android version
Reviewed By: @andreicoman11

Differential Revision: D2536373

fb-gh-sync-id: 0f671e8198175a15540b74d54e53eee941aa0c1b
2015-10-13 11:48:38 -07:00
Martín Bigio a102e6f587 Breaking change: Move bundle to private-cli
Summary: @​public

We need to start using the `private-cli` for the new asset system. Note this is a breaking change! People will have to upgrade their workflows/scripts to start using the new cli. Otherwise we'd need to build a thin adapter that is aware of both APIs which is something we;d like to avoid. The major API changes are:
  - API is now `entry-file` based instead of `url` based.
  - /s/--out/--bundle-output
  - /s/--out/--sourcemap-output

Also these parameters have no longer default values, you need to specify them. For instance, if you want to generate the sourcemaps you need to pass in the `--sourcemap-output` option

Lastly, additional project roots or asset roots need to be specified on the `rn-cli.config.js`.

Reviewed By: @frantic

Differential Revision: D2533877

fb-gh-sync-id: a45f9095fdf9442a9106ea7bb6a6b7f651d25273
2015-10-13 11:48:30 -07:00
Martín Bigio 793c3564ff Fail loud when module is not resolved correctly
Summary: @​public
We've been forgiving unresolved modules errors in the past but we've realized that doing so makes the codebase a bit unstable as people don't make sure to fix these errors. From now on we'll early fail and stop the packager when any module cannot be resolved (including assets)

Reviewed By: @amasad

Differential Revision: D2518076

fb-gh-sync-id: e170d95b905cc29afbe46e24b65425ddd887f77c
2015-10-13 11:48:23 -07:00
James Ide 49f7b68772 Merge pull request #3388 from paramaggarwal/patch-5
Add Myntra to showcase
2015-10-13 11:38:26 -07:00
Param Aggarwal 39bea42932 Add Myntra to showcase
We are using React Native on our app's homepage for the Daily Fashion Feed - a curated list of content to discover inspiring content. We recently went live to 100% and happy to share this news with the community.

Also, we are doing JS updates on the fly to our customers and loving it!
2015-10-13 23:53:19 +05:30
Krzysztof Magiera 05015e8d36 Extract @ReactProp annotated properties from shadow nodes.
Differential Revision: D2536419

fb-gh-sync-id: 643499d4fdcb481349dad1701391059d2362984e
2015-10-13 10:11:30 -07:00
James Ide 3d22547e31 Merge pull request #3384 from mosch/patch-2
Make platform name unselectable
2015-10-13 09:53:29 -07:00
Nick Lockwood a92f107712 Added RCTFileRequestHandler
Summary: @​public

We previously discovered that using an NSURLSessionDataTask to load local files is noticably less efficient than using regular filesystem methods.

This diff adds RCTFileRequestHandler as a replacement for RCTHTTPRequestHandler when loading local files. This reduces loading time when loading local files via XMLHttpRequest, as well as improving the performance for some image load requests.

Reviewed By: @javache

Differential Revision: D2531710

fb-gh-sync-id: 259714baac131784de494d24939f42ad52bff41a
2015-10-13 08:14:28 -07:00
Andy Street 28f6eba22d Make removeClippedSubviews default to true on ListView/RecyclingListView
Reviewed By: @satishsampath

Differential Revision: D2536046

fb-gh-sync-id: 7e0b4442bb0b3705bba3b5f7bdf873fb348a83f6
2015-10-13 08:06:26 -07:00
Andy Street e0b2c2e34e Batch native method calls in 5ms increments
Reviewed By: @mkonicek

Differential Revision: D2535803

fb-gh-sync-id: 8363a83d6966cfa4c2ea46358b10e4139333329f
2015-10-13 08:03:41 -07:00
Martín Bigio 88a880b1fc Pull into our repo cli.js
Reviewed By: @vjeux

Differential Revision: D2533584

fb-gh-sync-id: c73647202024c211ffa4a744e0f3566b09c4bc40
2015-10-13 08:03:34 -07:00
Martín Bigio 76e0f49338 Merge pull request #3385 from martinbigio/rm-cli
Temporarily remove cli.js
2015-10-13 11:03:04 -04:00
Param Aggarwal 8e03dfc99e Expose RCTTest for consumers via CocoaPods
Summary: Enables using `RCTTestRunner` in app code.
Closes https://github.com/facebook/react-native/pull/3382

Reviewed By: @​svcscm

Differential Revision: D2536089

Pulled By: @nicklockwood

fb-gh-sync-id: 35d3e57e43ac94ad3e6abf6852bf963c9dd2e1c9
2015-10-13 07:39:24 -07:00
Pieter De Baets 44c651037a Disable RCTLog completely in production
Reviewed By: @nicklockwood

Differential Revision: D2521718

fb-gh-sync-id: f06c9af3906ae8cebca0d318fc2b0e2d03671220
2015-10-13 07:31:25 -07:00
Pieter De Baets c70cbbaf61 Update npm-shrinkwrap
Reviewed By: @foghina

Differential Revision: D2535983

fb-gh-sync-id: 05769aba306e5772d399abb8084c31f9ef2cfc55
2015-10-13 07:23:26 -07:00
Felix Oghină b721c12516 import latest changes from github
Differential Revision: D2536028

fb-gh-sync-id: 2d28b10f06b4ab3a9113b7870e58faf6debba9b6
2015-10-13 06:59:42 -07:00
Martin Bigio 3f55bd1380 Temporarily remove cli.js 2015-10-13 09:57:32 -04:00
Quentin Adam c73ceff914 Corrected computation of RCText element height with padding
Summary: Corrected computation of RCText element height with padding (padding was counted twice).
See also issue #2466.
Closes https://github.com/facebook/react-native/pull/2838

Reviewed By: @​svcscm

Differential Revision: D2535924

Pulled By: @nicklockwood

fb-gh-sync-id: b9527803c0a5a6eed1db7e37c98b628750ab2045
2015-10-13 06:44:32 -07:00
Nick Lockwood 5b425278bb Removed references to isStatic from the codebase
Summary: @​public

The legacy 'isStatic' property for image sources is no longer used anywhere in our codebase, but was still being generated by the packager and referenced in the JS in various places.

This diff removes all the remaining references.

Reviewed By: @frantic

Differential Revision: D2531263

fb-gh-sync-id: 0bba0bb8473b1baa908ef7507cbf6d83efb0d9ee
2015-10-13 06:44:30 -07:00
Alexey Lang aabdc9cc9f Improve RCTPerfomanceLogger
Reviewed By: @mikearmstrong001

Differential Revision: D2531397

fb-gh-sync-id: 3f6c1831c9a7b62f857deda7a535589970cf2052
2015-10-13 06:44:27 -07:00
Tadeu Zagallo baf5b7b4d5 De-batch native->js calls and react updates
Summary: @​public

Take a step back and de-batch the bridge calls so we can have better profiling data and a better starting point to work on future optimisations. Also gave a 10~15% win on first render.

Reviewed By: @javache

Differential Revision: D2493674

fb-gh-sync-id: 05165fdd00645bdf43e844bb0c4300a2f63e7038
2015-10-13 06:44:25 -07:00
Nick Lockwood 261100d9d0 Fix data url support
Reviewed By: @tadeuzagallo

Differential Revision: D2535768

fb-gh-sync-id: 537ecc462e4a8a9e807ccad28a715419f4d5f355
2015-10-13 06:44:23 -07:00
Andrei Coman c456accbed Make text in text inputs selectable
Differential Revision: D2535762

fb-gh-sync-id: 49eaf403195fd210a87fe4babf266ee4b29b7ae8
2015-10-13 06:44:21 -07:00
Krzysztof Magiera 42e9189b77 Add getShadowNodeClass method to ViewManager interface.
Differential Revision: D2535731

fb-gh-sync-id: 7a68778ea4ca47b113d73b1d638d74d905ea2da5
2015-10-13 06:44:19 -07:00
Alex Kotliarskyi 393ead59dc Always return scale from resolveAssetSource
Reviewed By: @nicklockwood

Differential Revision: D2532565

fb-gh-sync-id: 113b8318a8f1a9b0dac4fab389a98ddd51d00e17
2015-10-13 06:44:16 -07:00
Martín Bigio 144f8598c2 Introduce configuration template
Summary: @​public

We're rolling out a replacement for `local-cli`. As part of the process we moved many hardcoded values into a JS based configuration file.

Reviewed By: @vjeux

Differential Revision: D2533111

fb-gh-sync-id: 7250bddee9989b089ded409104e098ef15d79498
2015-10-13 06:44:14 -07:00
Martín Bigio 12a68a8183 Move oss server to cli
Summary: @​public We're moving all the operation from `local-cli` to the `private-cli` and improving the code in the process. On this diff we introduce the `server` command which will be use to start the packager server. On follow up diffs we'll make changes to start using it from `local-cli`.

Reviewed By: @vjeux

Differential Revision: D2531443

fb-gh-sync-id: 5f7f12a250895265d83d1b076f6bbddb5cbdc257
2015-10-13 06:44:12 -07:00
Moritz Schwörer 0e98bc9651 Make platform unselectable
Copy method names by double clicking added platform name to clipboard. 
Annoyed me couple of times. Now double clicking on method name in documentation will only select the name of the method.
2015-10-13 15:12:12 +02:00
Martin Bigio 6f04687436 Include private-cli on npm export
Reviewed By: @vjeux

Differential Revision: D2532645

fb-gh-sync-id: 94e45cd0e799dd450feb6e1a8e9fc85a6655dffb
2015-10-12 13:02:24 -07:00
Martín Bigio 31aacd78e8 Fix error message when invoking wrong command.
Summary: @​public

The message we were showing before didn't include correctly the commands the private cli had.

Reviewed By: @vjeux

Differential Revision: D2530164

fb-gh-sync-id: 2b00c74cb41441686587588632815c5948f3a864
2015-10-12 13:01:00 -07:00
Krzysztof Magiera 3561c9ed2b Restructure ViewManagersPropertyCache.
Differential Revision: D2532365

fb-gh-sync-id: e5cbb55093310b47b6525839d7c5929264d158ad
2015-10-12 12:02:56 -07:00
Martín Bigio f39816eb38 Tweak cli config resolution
Summary: @​public
We need to tweak the resolution algorithm to start looking for the config file at the directory where the node script is running. This is needed to make development easier as internally we'll need 2 config files, one for open source and other one for internal use. This won't affect oss as for they we'll generate this file as part of the `init` command.

Reviewed By: @vjeux

Differential Revision: D2530161

fb-gh-sync-id: 17c21a56a26a91f2671197e8daa36c19adcea8ee
2015-10-12 12:02:50 -07:00
Jiajie Zhu aacd2d90a4 fix watchPosition keep updating location
Reviewed By: @nicklockwood

Differential Revision: D2519624

fb-gh-sync-id: 7366c5ac9e06082448b9fbba3c616aaf8e4183f9
2015-10-12 11:56:45 -07:00
Christopher Chedeau da359c312a Fix jest test that runs the polyfill 10 times
Summary: @​public

jest is running the polyfill multiple times on the same environment (cc @cpojer, need to fix that!). By default jest doesn't have XMLHttpRequest polyfilled so it'll define a property with writable to be false. It'll fatal the second time it tries to override XMLHttpRequest.

The hacky workaround is to make properties that do not exist with writable: true. But the long term fix would be to make jest stop running the polyfill multiple times.

Reviewed By: @javache

Differential Revision: D2532019

fb-gh-sync-id: a82abf69541781a64a0744798c736f90833e28cb
2015-10-12 11:52:28 -07:00
Alex Kotliarskyi 62d0586e59 Rely only on scriptURL when loading images
Reviewed By: @foghina

Differential Revision: D2527119

fb-gh-sync-id: e2a9618f729a2ec03b1959fa13fae46620cc379e
2015-10-12 11:36:26 -07:00
Ben Alpert 5e33dbcfcc Move stuff out of vendor/react_contrib/
Summary: This was a confusing place for them. BoundingDimensions, Position, and Touchable were only used in Touchable; StaticContainer I moved to Libraries/Components.

@​public

Reviewed By: @vjeux

Differential Revision: D2530730

fb-gh-sync-id: e636a6b7259c2bd3ab52c82ebd59a6c66c9e7e7a
2015-10-12 11:18:30 -07:00
Martin Konicek 264cb8962a Don't publish /ReactAndroid/build to npm, update version on master
Summary: @​public

See the discussion in https://github.com/facebook/react-native/pull/3019

This is temporary Gradle output and can be huge (>100MB).

Reviewed By: @foghina

Differential Revision: D2531612

fb-gh-sync-id: 8874d39b1a9b35dc4b4ce465dd149589db75bb29
2015-10-12 11:11:40 -07:00
Russell Stewart 7b7625b1fe Update ToastAndroidExample.android.js
Summary: Closes https://github.com/facebook/react-native/pull/3236

Reviewed By: @​svcscm

Differential Revision: D2517317

Pulled By: @mkonicek

fb-gh-sync-id: cfbcffd5fdf5e5d2a59b35b35d890717ce64f4a3
2015-10-12 10:16:27 -07:00
Martin Konicek 302fb6aea7 Fix the package name of Android Switch
Reviewed By: @foghina

Differential Revision: D2531260

fb-gh-sync-id: aee885009b5c3f2072500eaa84669ece7c57d2e0
2015-10-12 10:11:26 -07:00
Tadeu Zagallo f7065e5c0a Support start and stopping systrace from repl
Reviewed By: @jspahrsummers

Differential Revision: D2512911

fb-gh-sync-id: f5441219f9d7063b3602c55efac9f07407e33f56
2015-10-12 09:45:40 -07:00
Christopher Chedeau e48807abfd Merge pull request #3362 from foghina/cli_suppress_create
[cli] suppress yeoman create output in init
2015-10-12 09:39:23 -07:00
Martin Konicek 2944c665bf Fix package name of DebugComponentOwnershipModule
Reviewed By: @foghina

Differential Revision: D2531355

fb-gh-sync-id: 71de71bfec0353fb45bb8dbc8a3f4ce7cad43925
2015-10-12 09:10:33 -07:00
Li Qichao 5198ed438a Fix the wrong offline bundle link in Movie example
Summary: When I am trying to figure out if there are several js files, there is only one bundle file. I am trying to use the command line in the comment which is
<code>curl 'http://localhost:8081/Examples/Movies/MoviesApp.includeRequire.runModule.bundle' -o main.jsbundle</code>
But after react native has upgraded to 0.12, this command line didn't work. You need to use:
<code>curl 'http://localhost:8081/Examples/Movies/MoviesApp.ios.bundle?platform=ios&dev=true' -o main.jsbundle</code>
And then it will work
Closes https://github.com/facebook/react-native/pull/3361

Reviewed By: @​svcscm

Differential Revision: D2531487

Pulled By: @javache

fb-gh-sync-id: 5fd96d427b1097de4e264cb047a13d5a382c6d0f
2015-10-12 08:59:22 -07:00
Andrei Coman 96dda4bf5f Revert D2531438
Differential Revision: D2531532

fb-gh-sync-id: c86bbcde3254df78f3dca88285ef1cd5a3563123
2015-10-12 08:36:27 -07:00
Martin Konicek c075be6cab .gitignore - build/ is related to both iOS and Android 2015-10-12 16:35:28 +01:00
Martin Konicek 8abfb5e0e2 Add docs for examples 2015-10-12 16:16:39 +01:00
Felix Oghină aa63636512 [cli] suppress yeoman create output in init 2015-10-12 16:10:18 +01:00
Christopher cab3bd6e86 Add note for iOS9 url scheme changes
Summary: Closes https://github.com/facebook/react-native/pull/3354

Reviewed By: @​svcscm

Differential Revision: D2531433

Pulled By: @javache

fb-gh-sync-id: a7d280f6f8d3e6fa723c6518110ca344f9583ddd
2015-10-12 08:04:24 -07:00
Martín Bigio d30384080a Bring back "download from server" perf optimization
Reviewed By: @frantic

Differential Revision: D2515566

fb-gh-sync-id: 25771888390154e9962d141f872cef85c08cd1d0
2015-10-12 06:39:44 -07:00
Nick Lockwood 799168929c Unify XCAsset handling logic
Summary: @​public

This diff unifies the logic for detecting when images refer to XCAsset files into a single function (RCTXCAssetNameForURL) and uses it for both +[RCTConvert UIImage:] and RCTImageLoader.

I've also tightened the definition of XCAssets so that it only applies to images inside .car files, not any image inside the main bundle. This avoids using the +[UIImage imageNamed:] when not strictly necessary, which is desirable since that method is not thread-safe, and has undocumented caching behavior that is difficult to reason about.

Reviewed By: @javache

Differential Revision: D2526400

fb-gh-sync-id: 7199c2a44f1d55ff236d2c38a0a9368739b993d5
2015-10-12 04:15:27 -07:00
Emmanouil Konstantinidis c16c3f9814 Fix typo - Remove duplicated "to have"
Summary: Closes https://github.com/facebook/react-native/pull/3015

Reviewed By: @​svcscm

Differential Revision: D2530576

Pulled By: @vjeux

fb-gh-sync-id: e7df3706f3c733e8de32c1f123d951b488133e8a
2015-10-11 21:14:54 -07:00
Christopher 53403423ca - Fix response variable from getCurrentReachability
Summary: Fixes #3333 and #2802
Closes https://github.com/facebook/react-native/pull/3345

Reviewed By: @​svcscm

Differential Revision: D2530744

Pulled By: @vjeux

fb-gh-sync-id: 521cbe482f3811339b21cf68ba2269d2b5286e82
2015-10-11 19:42:24 -07:00
James Ide 720228825b Merge pull request #3327 from gabro/patch-1
Update list of babel transformations in JavascriptEnvironment doc
2015-10-10 15:57:00 -07:00
Gabriele Petronella df1a6d5bed Add missing semicolon in example and remove extra one 2015-10-11 00:47:12 +02:00
Gabriele Petronella 72ac2f3c27 move await inside async function in async/await example 2015-10-11 00:45:27 +02:00
James Ide 2c7de35dee Export per-platform NavigatorNavigationBarStyles for consistent styling
Summary: This allows for the iOS-style navigation bar on Android and vice versa in order to simplify design. It is entirely optional in that NavigationBars will continue to defauly to their platform-specific style, but you can override it with the `navigationStyles` prop:

```js
<Navigator.NavigationBar
  navigationStyles={Navigator.NavigationBar.StylesIOS}
/>
```

Fixes #2995.
Closes https://github.com/facebook/react-native/pull/3028

Reviewed By: @​svcscm

Differential Revision: D2527902

Pulled By: @ericvicenti

fb-gh-sync-id: c7b1bfac200b5e03fc0d9dfb8acc8b916c825595
2015-10-10 15:32:46 -07:00
Gabriele Petronella cee9c6fe80 Update list of babel transformations in JavascriptEnvironment documentation
Re-sync the documentation with https://github.com/facebook/react-native/blob/master/packager/transformer.js#L35-L48
2015-10-10 15:18:07 +02:00
Nikos Katsikanis d65a3ad43f Merge branch 'master' of https://github.com/facebook/react-native 2015-10-10 12:28:48 +01:00
Andrei Coman 9f1dab69c1 Use correct spans in shadow nodes
Differential Revision: D2529951

fb-gh-sync-id: d3bfbe9ea4b9c0cd405a2e0fb9a3176274f0c9fa
2015-10-10 02:17:25 -07:00
Jiajie Zhu c86966c150 fix breadcrumb icon offset
Reviewed By: @fkgozali

Differential Revision: D2528804

fb-gh-sync-id: 6ed9e9ce330ecc147c3fb8217c7b1b0986c862fe
2015-10-09 17:53:26 -07:00
Atticus White 7abf8ba631 PanResponderExample fix for responding to events
Summary: Fixes #3312.

The example was no longer reacting to touch/drag events.

It looks like `setNativeProps` requires the `style` property to contain the style rules. It appears that this warning is [only in development mode](https://github.com/facebook/react-native/blob/381e2acd184fc4ba80a240ba3d7dda0464c6416b/Libraries/ReactIOS/NativeMethodsMixin.js#L115-L117), but after fixing it I am seeing the gestures recognized and properly handled. Running outside of the dev environment yielded the circle to be positioned at the top left of the screen, below the navigation bar, and inaccessible.

<img src="https://cloud.githubusercontent.com/assets/656630/10407224/1449b1b2-6eb6-11e5-8116-20d08f7721ec.png" width="350" />

![after](http://g.recordit.co/UIbeHcKZUg.gif)
Closes https://github.com/facebook/react-native/pull/3315

Reviewed By: @​svcscm

Differential Revision: D2529010

Pulled By: @vjeux

fb-gh-sync-id: 6b79573f42a2520197f77dcb76cd640ea614477f
2015-10-09 17:31:25 -07:00
Brent Vatne 05c08a472c Merge pull request #3314 from brentvatne/docs/add-dimensions
[Docs] Add Dimensions to API docs
2015-10-09 14:46:43 -07:00
Brent Vatne 36f015c0dd [Docs] Add Dimensions to API docs 2015-10-09 14:44:36 -07:00
James Ide 4f0a7250cc Add Node >= 4 requirement to package.json and packager/package.json
Summary: When you try to install these with old Node you'll now get a message from npm telling you that your version of Node is old. This makes it more obvious what's going on and hopefully reduces the number of issues we get due to people using an old version of Node.
Closes https://github.com/facebook/react-native/pull/3296

Reviewed By: @​svcscm

Differential Revision: D2526500

Pulled By: @vjeux

fb-gh-sync-id: 036e10a8d1819ea082e419cd328a458202f0e071
2015-10-09 14:44:23 -07:00
Ian MacLeod c612d830bb Preserve original global properties when polyfilling them
Summary: Fixes #934.
Closes https://github.com/facebook/react-native/pull/3293

Reviewed By: @​svcscm

Differential Revision: D2525598

Pulled By: @vjeux

fb-gh-sync-id: 90672550f723a183897456dc9512851bfa34807a
2015-10-09 14:41:23 -07:00
Mikhail Chinyakov aa8ead7cd6 Fix build process for react-native-fbsdk libraries.
Summary: I found the problem with building react-native-fbsdk (https://github.com/facebook/react-native-fbsdk) libraries when I used cocoapods.
When we use the option 'header_mappings_dir = "."' , header files of React will be copied with subfolders structures, not into one folder "${PODS_ROOT}/Headers/Public/React". And we should add recursive search and write "${PODS_ROOT}/Headers/Public/React/**". However writing code in auto-generated files is not good idea.
Closes https://github.com/facebook/react-native/pull/3248

Reviewed By: @​svcscm

Differential Revision: D2528021

Pulled By: @vjeux

fb-gh-sync-id: 4ea76eac4035f0bd7c5894f604f84f903714a4e3
2015-10-09 14:40:43 -07:00
Nikos 1c61a8a510 Create .editorconfig 2015-10-09 22:34:00 +01:00
Sebastian Markbage 17da325bb4 Add List of Common Cases to AttributePayload Benchmark
Summary: The most common cases is either that nothing changed or that only one part of
an array changed.

@​public

Reviewed By: @spicyj

Differential Revision: D2516385

fb-gh-sync-id: 0cd09b95ebac37ee1b575025d23ae2f2e6e2fb47
2015-10-09 14:31:23 -07:00
Christopher Chedeau 5369ccd3e6 Merge pull request #3311 from javache/objc-tests
Missing file rename
2015-10-09 11:03:35 -07:00
Pieter De Baets 37202f6c8f Missing file rename 2015-10-09 18:51:50 +01:00
Brent Vatne 2a89d94f96 Merge pull request #3310 from jabbrass/patch-1
[Docs] fix typo in KnownIssues.md
2015-10-09 09:46:52 -07:00
Ben Alpert ab6f375c66 Log React warnings internally, fix warnings in Android tests
Reviewed By: @javache

Differential Revision: D2517993

fb-gh-sync-id: c91a42a0abe4037b72c4497a5dc8b52a922fbf98
2015-10-09 09:33:24 -07:00
Martin Konicek a7b23df510 [Android] Add default Proguard config 2015-10-09 17:13:46 +01:00
Martin Konicek 3fce0a9d61 Update SignedAPKAndroid.md 2015-10-09 17:12:05 +01:00
Martin Konicek c5af96b471 Update SignedAPKAndroid.md 2015-10-09 17:11:25 +01:00
Martin Konicek fcf1103b95 Update SignedAPKAndroid.md 2015-10-09 17:10:43 +01:00
Martin Konicek 87ae707985 Update SignedAPKAndroid.md 2015-10-09 17:08:34 +01:00
Martin Konicek 2d206f7286 Update SignedAPKAndroid.md 2015-10-09 17:06:55 +01:00
Martin Konicek 5209114534 Update SignedAPKAndroid.md 2015-10-09 17:00:12 +01:00
Martin Konicek faeeb1567e Update SignedAPKAndroid.md 2015-10-09 16:55:07 +01:00
Martín Bigio 5196ad102d fix E2E tests
Reviewed By: @mkonicek

Differential Revision: D2526310

fb-gh-sync-id: 1c04f56073dc5b393a36b258c039fdfd85ab83a2
2015-10-09 07:59:02 -07:00
Pieter De Baets 67a69906e7 Allow image extensions when loading from asset catalogs
Reviewed By: @nicklockwood

Differential Revision: D2526258

fb-gh-sync-id: 01ccbddcfe8dc98ae5eeac1a066fbc1e69d6f087
2015-10-09 07:55:26 -07:00
Pieter De Baets 903eaa863c Fix logic for loading images from asset catalogs in RCTConvert
Reviewed By: @nicklockwood

Differential Revision: D2526264

fb-gh-sync-id: 039b0438fbce7c3e752271adc8d5aa5d4fe915e5
2015-10-09 07:46:41 -07:00
Martin Konicek 26f5f1ffc8 Update SignedAPKAndroid.md 2015-10-09 15:37:06 +01:00
Uri Baghin f52cd5dc1e Use path instead of resourceSpecifier so it unescapes.
Reviewed By: @nicklockwood

Differential Revision: D2526217

fb-gh-sync-id: c48af71402927b0aa4e9942e1825068af5334ab9
2015-10-09 06:39:43 -07:00
Martin Konicek de0e039898 Update SignedAPKAndroid.md 2015-10-09 14:30:58 +01:00
Felix Oghină 3a0a1a4122 expose JS source location to JS
Differential Revision: D2526103

fb-gh-sync-id: d597b52dd9442fc27b0841b7df447e9d8d7de6e1
2015-10-09 04:24:23 -07:00
Mike Armstrong fffae394c7 Use new hybrid inheritance for NativeArray and descendants
Reviewed By: @andreicoman11

Differential Revision: D2523619

fb-gh-sync-id: 62382c16cbbeceec12763b3786676ecff783b651
2015-10-09 03:11:35 -07:00
Martín Bigio 998ab1b1a4 Server failing on start up
Summary: @​public
When doing node <script> some es6 features like const seem to work. But when we extracted some of them into other files and require them through babels require infra it started failing because the paths where those files are located where not on the `only` whitelist.

Reviewed By: @vjeux

Differential Revision: D2525557

fb-gh-sync-id: 79752c4f9b8ff2d20f73cfe27d6a2f3706959d95
2015-10-08 21:08:21 -07:00
J. Andrew Brassington 3ae0f4044f [Docs] fix typo in KnownIssues.md
Line 53: "currenty" => "currently"
2015-10-08 17:42:38 -07:00
Martín Bigio 32b62ef055 Unbreak packager on oss master
Summary: @​public
This was a hard one, bare with me on the full story of what happened.

We recently started writting additional JS scripts in ES6 for the cli. These code needs to be transformed by babel before we execute it as we don't run node with `--harmony`. To do so we removed the `only` attribute on the `babel-register`. Turns out this broke the packager on oss as if no `only` not `ignore` parameter is specified babel will ignore `node_modules`. Since on oss when a project is created `react-native-github` is located inside of `node_modules` we started getting syntax errors.

The fix is to include separately all the different paths we need to make sure babel transforms each of them. We cannot simply have a single `babel-core/register` as we need to include paths that belong both to oss and internal only. So, we need to have multiple `register` invocations. Since babel does not accumulate the `only` you send on every invocation we need to build a small wrapper to do so.

Reviewed By: @frantic

Differential Revision: D2522426

fb-gh-sync-id: 379a7bb169c7d5cb3002268742de269238bba766
2015-10-08 17:37:27 -07:00
Martín Bigio 42d756310a Unify oss and internal version of base body loader middleware
Reviewed By: @amasad

Differential Revision: D2519637

fb-gh-sync-id: 88f23c33a1ca0423852ce8ed7696df811e3f8d27
2015-10-08 14:21:15 -07:00
Martín Bigio 0a835b7994 Factor out cpu profiler middleware into it's own file
Reviewed By: @amasad

Differential Revision: D2519562

fb-gh-sync-id: c2b2ba56072d75d7082740532b5d1959273c84f4
2015-10-08 14:21:07 -07:00
Martín Bigio 22e88f2069 Unify oss and internal version of systrace profiler middleware
Reviewed By: @amasad

Differential Revision: D2519518

fb-gh-sync-id: 6682f80447e2b62fcf6b137412ca8ddbe03ecb09
2015-10-08 14:20:58 -07:00
Martín Bigio f980c33073 Unify oss and internal version of status page middleware
Reviewed By: @vjeux

Differential Revision: D2519415

fb-gh-sync-id: 2cf27c88b29c18a7a1f3aa1611f0d7f510a8fa24
2015-10-08 14:20:50 -07:00
Martín Bigio f37ad56afd Unify oss and internal version of stack trace editor opener
Reviewed By: @vjeux

Differential Revision: D2519344

fb-gh-sync-id: 022d8865cd8eea3b0b51f9070c000f15c464dc6a
2015-10-08 14:20:42 -07:00
Martín Bigio 35f9ac89a7 Unify oss and internal version of dev-tools middleware
Reviewed By: @amasad

Differential Revision: D2518928

fb-gh-sync-id: 0c98b16481b524436a2cf4af3e196ac5715b55ee
2015-10-08 14:20:33 -07:00
Brent Vatne 1fd2e176ae Fix broken code block and make the example nicer
Summary: @​kmagiera @mkonicek - made a mistake while updating it, removed the `margin` style for some reason on the inner Text (it was 1am, ¯\_(ツ)_/¯). This also makes the example nicer looking - style the navigation with a white background, center the text in the main content view.

![](http://url.brentvatne.ca/16xXe.png)
![](http://url.brentvatne.ca/1a4Jt.png)
Closes https://github.com/facebook/react-native/pull/2682

Reviewed By: @​svcscm

Differential Revision: D2454465

Pulled By: @mkonicek

fb-gh-sync-id: 2fa17366b34ae31c490d37791ad693c17ac3f128
2015-10-08 14:01:52 -07:00
Nick Lockwood 7fe7a2a26b Improved JS bundle loading performance
Summary: @​public

RCTJavaScriptLoader was using an NSURLSessionDataTask to load local bundle.js files. While this works, it was non-optimal from a performance point of view.

Reviewed By: @tadeuzagallo

Differential Revision: D2522598

fb-gh-sync-id: b32981b3be4c336512d1462d3f4943b5aad34ae0
2015-10-08 12:39:52 -07:00
Nick Lockwood 91e6c98ecd Implemented inline image support for <Text>
Summary: @​public

This diff implements inline image support for <Text> nodes. Images are specified using <Image> tags, however all properties of the image are currently ignored apart from the source (including width/height styles).

Images are loaded asyncronously, and will trigger a text re-layout when they have loaded.

Reviewed By: @javache

Differential Revision: D2507725

fb-gh-sync-id: 59d0696d00a1bc531915cc35242a16b2dec96e85
2015-10-08 11:56:25 -07:00
Martin Konicek c740edaf03 Add a comment to CLI's init 2015-10-08 17:49:05 +01:00
Marc Horowitz 23a16f60f8 Update fbjni from upstream
Reviewed By: @mkonicek

Differential Revision: D2517281

fb-gh-sync-id: 9deeae6821f13394a2886d6d86781b4f563aadf6
2015-10-08 08:46:31 -07:00
Alexey Lang e3e9be9efb Log time to prepare native config
Reviewed By: @jspahrsummers

Differential Revision: D2517033

fb-gh-sync-id: fd560304f163b0ab9be592024e2a9b793fb990bc
2015-10-08 08:46:25 -07:00
Pieter De Baets 6ca8f4836d Disable RCTAssert completely in production builds
Reviewed By: @tadeuzagallo, @jspahrsummers

Differential Revision: D2521700

fb-gh-sync-id: f769afd98bb662e8bbe773adb45990f2175cdfe4
2015-10-08 08:26:20 -07:00
Nick Lockwood 63a37be1dd Removed RCTCache
Reviewed By: @tadeuzagallo

Differential Revision: D2410542

fb-gh-sync-id: 98af1b51802e69e7ede9a31feda0df5a526a6db5
2015-10-08 05:37:29 -07:00
Pieter De Baets 706cf38931 Fix Xcode analyzer warning
Reviewed By: @nicklockwood

Differential Revision: D2517025

fb-gh-sync-id: 3948f6b4255bc9035b2e7441469d0cc31c8027f8
2015-10-08 05:37:23 -07:00
Pieter De Baets 83f14da0a3 Fix OSS UIExplorer tests
Reviewed By: @jspahrsummers

Differential Revision: D2517136

fb-gh-sync-id: d00ddcd8baa0f06c4f41f57b8336d67e354eca5b
2015-10-08 04:20:23 -07:00
James Ide cb8b656a82 Only handle accessibility notifications from the correct RCTAccessibilityManager
Summary: When you reload and create a new bridge, one of the things that happens during setup is that the RCTAccessibilityManager fires a notification. The old bridge would receive this notification from the new bridge's RCTAccessibilityManager, which we don't want, especially because the two are running on different shadow queues.

I believe this led to a gnarly crash in NSConcreteTextStorage because RCTMeasure in RCTShadowText.m was getting called for the old RCTText (getting destroyed) from a notification fired from the new shadow queue. The fix is for the UIManager to handle notifications only from its bridge's RCTAccessibilityManager. See #2001 for the kinds of crashes we were seeing.
Closes https://github.com/facebook/react-native/pull/3279

Reviewed By: @​svcscm

Differential Revision: D2521652

Pulled By: @nicklockwood

fb-gh-sync-id: a4ffe3ef8304667727e573e2a2e8b716e1d2f3e1
2015-10-08 04:00:41 -07:00
Mike Armstrong 34c26f31f6 Add dev mode to Android settings menu
Differential Revision: D2521488

fb-gh-sync-id: 28ae23a43570682e42eec4b6995235e8c65dd786
2015-10-08 00:12:25 -07:00
James Ide 3b370ce438 Merge pull request #3277 from exponentjs/showcase
[Showcase] Update attribution for Exponent
2015-10-07 18:08:39 -07:00
James Ide 6aad09e8d6 [Showcase] Update attribution for Exponent
Updated the "by whom" info.

Test Plan: Build and view website.
2015-10-07 18:07:26 -07:00
James Ide 47cc9c382a Merge pull request #3275 from smothers/patch-1
Showcase: add Posyt
2015-10-07 18:06:48 -07:00
Chris Smothers 4e1ff687dd add Posyt to showcase.js 2015-10-07 20:41:30 -04:00
James Ide 70721858cf Merge pull request #3269 from pmadruga/docs_link_fix
fix navigator comparison link in performance doc
2015-10-07 15:27:28 -07:00
James Ide 441bad6bdd Merge pull request #3272 from nsimmons/cli/actually_make_init_backwards_compatible
[cli] make init backwards-compatible for real
2015-10-07 15:26:31 -07:00
Nick Simmons 8d3bbdf8e6 [cli] make init backwards-compatible for real 2015-10-07 17:39:22 -04:00
gabe@fb.com 49a0ae7c32 Deploy v0.17.0
Reviewed By: @jeffmo

Differential Revision: D2512723

fb-gh-sync-id: d16ef34ae727123fbc5b833e828b04faf19b350f
2015-10-07 12:24:21 -07:00
gabe@fb.com 08ec89d2e6 Fix errors in preparation for v0.17.0
Reviewed By: @jeffmo

Differential Revision: D2512681

fb-gh-sync-id: dedf465af43cf3c8839fa960c5f1a2c2648e4e1e
2015-10-07 12:03:20 -07:00
Pedro Madruga 2bdfb40a82 fix navigator comparison link in performance doc 2015-10-07 20:50:08 +02:00
Christopher Chedeau f2bd983029 Remove useless warning
Reviewed By: @frantic

Differential Revision: D2515006

fb-gh-sync-id: f411a4c2ccf73bb12bcd1caa7d0272a9de06509a
2015-10-07 11:07:29 -07:00
Martin Konicek c819c5590b Add @satya164's WebSocket docs from #2839 2015-10-07 18:09:21 +01:00
Martin Konicek 2d7747ecb7 Add NativeMethodsMixin docs to website 2015-10-07 18:04:55 +01:00
Kyle Corbitt 381e2acd18 Document NativeMethodsMixin
Summary: This is related to the discussion in #3155.

I've documented the methods in this mixin, and pointed to other appropriate documentation where necessary as well.

I didn't end up adding any examples. I wanted to add a `focus()`/`blur()` example to the UIExplorer app, but the app seems to be broken on master at the moment (`Requiring unknown module "event-target-shim"`) and I didn't bother trying to fix it. I think the last thing necessary for making the usage of these methods clear is an example of calling one or more of them on a `ref` or view captured in some other way. However, `setNativeProps` is well documented in the "Direct Manipulation" guide, which I link to from this page, so by extension it should be possible to figure out the functionality of the other methods.

cc @mkonicek @​astreet
Closes https://github.com/facebook/react-native/pull/3238

Reviewed By: @​svcscm

Differential Revision: D2517187

Pulled By: @mkonicek

fb-gh-sync-id: 4e68b2bc44ace83f06ae2e364ca0c23a7c461b20
2015-10-07 09:43:22 -07:00
Satyajit Sahoo f4857a6d42 Implement WebSocket module for Android. Fixes #2837
Summary: The JavaScript code for Android is same as the iOS counterpart, I just added few new lines and used arrow functions instead of binding `this`.
Closes https://github.com/facebook/react-native/pull/2839

Reviewed By: @​svcscm, @vjeux

Differential Revision: D2498703

Pulled By: @mkonicek

fb-gh-sync-id: 3fe958dd5af0efba00df07515f8e33b5d87eb05b
2015-10-07 08:36:22 -07:00
Martin Konicek 57a7387d85 Merge pull request #3061 from satya164/signed-apk
[Android] Added docs about generating a signed APK
2015-10-07 16:28:35 +01:00
Andrei Coman c805157cac Fix touch target computation
Differential Revision: D2516811

fb-gh-sync-id: 1f3490f969912f1eb8f4d49a5daa976314bbc25f
2015-10-07 01:54:22 -07:00
Mike Armstrong fb90ba6ded Use new hybrid inheritance for NativeArray and descendants
Differential Revision: D2516708

fb-gh-sync-id: 75bc2d7095ffe2c397d5ffb34b621b322b858c3e
2015-10-07 01:02:24 -07:00
Mike Armstrong 8251f1c905 Systrace stub fixes
Differential Revision: D2516670

fb-gh-sync-id: 89d7fdce569d4b37633fb4ab4acbeef707d54bac
2015-10-06 23:58:23 -07:00
James Ide 9dfd487810 Merge pull request #3258 from winfieldco/master
Adding AIGA Design Conference app to showcase
2015-10-06 23:23:59 -07:00
Christopher Auyeung ffd3f6941b Adding AIGA Design Conference app to showcase 2015-10-06 23:56:44 -04:00
Martin Konicek 0a419650ce Open source ViewPagerAndroid
Reviewed By: @foghina

Differential Revision: D2513014

fb-gh-sync-id: d9bb668d76939ad85b657233c8b7beac9b244fab
2015-10-06 20:01:21 -07:00
Sebastian Markbage 6244fd003d Refactor Attribute Processing (Step 3)
Reviewed By: @spicyj

Differential Revision: D2514193

fb-gh-sync-id: 8ba55014e8d052c69d8e1def327284ec974d6837
2015-10-06 15:36:32 -07:00
Sebastian Markbage 2ea3b93784 Add warning to setNativeProps and Animated for non-nested styles
Summary: These were accidentally supported because they were merged at a lower
level. That's an implementation detail. setNativeProps should still
normalize the API.

I fixed some callers.

Setting props the normal way used to ignore these. Unfortunately we can't
warn for those cases because lots of extra props are spread. (The classic
transferPropsTo issue.)

@​public

Reviewed By: @vjeux

Differential Revision: D2514228

fb-gh-sync-id: 00ed6073827dc1924da20f3d80cbdf68d8a8a8fc
2015-10-06 15:36:23 -07:00
Martín Bigio 82b3a6b967 Merge pull request #3204 from benvinegar/GH-3202
Add --write-sourcemap option to 'bundle' cli command (fixes #3202)
2015-10-06 18:18:05 -04:00
James Ide 9d8ecb65e4 Merge pull request #3253 from yamill/showcase-wpv
Add WPV app to Showcase
2015-10-06 12:05:18 -07:00
Yamill Vallecillo 0aaa45c434 Add WPV app to Showcase 2015-10-06 14:52:28 -04:00
Andrei Coman a876b234c6 Fix element inspector
Differential Revision: D2513268

fb-gh-sync-id: c0c91cc96926eb6d222c7cbc8855342e8594a09f
2015-10-06 11:41:32 -07:00
Robert Fleischmann 0de9e0104a Provide default loading view for React views in Wilde
Reviewed By: @javache

Differential Revision: D2496540

fb-gh-sync-id: 31488a6d1fc1f679ab4361d6a8d48f19b2347703
2015-10-06 10:39:28 -07:00
Pieter De Baets 9e81dec5e4 Only dismiss <Modal> once
Reviewed By: @nicklockwood

Differential Revision: D2512593

fb-gh-sync-id: b56eacd3965de76d6b7288199eabeaa5f63547cd
2015-10-06 10:29:27 -07:00
Spencer Ahrens 36cbe74f99 introduce universal switch
Reviewed By: @vjeux, @mkonicek

Differential Revision: D2441456

fb-gh-sync-id: c4050ec86f30234ea29c38205d668157bde65a35
2015-10-06 10:29:22 -07:00
Felix Oghina 8f7748748e Revert [React Native] Refactor Attribute Processing (Step 3)
Reviewed By: @kmagiera, @mikearmstrong001

Differential Revision: D2512548

fb-gh-sync-id: bcae3a8c85bfcfa468f2128288a25f406d78cf08
2015-10-06 10:29:18 -07:00
Mike Armstrong 5d682d65f6 set JS profiling global to true, fix to parsing of strings with ascii value >=128
Reviewed By: @mkonicek

Differential Revision: D2512320

fb-gh-sync-id: 098727cd664f0f0cdb0092875a9934a5d7b577f2
2015-10-06 10:29:11 -07:00
Felix Oghina b5890e1283 use listview for redbox stacktrace, open file on click
Reviewed By: @andreicoman11

Differential Revision: D2512364

fb-gh-sync-id: 5f2c90db7eca010185080f726fd3ef0ee519cdbc
2015-10-06 10:29:06 -07:00
Pieter De Baets 06ef95799a Allow nil tabbar item icon
Reviewed By: @nicklockwood

Differential Revision: D2508310

fb-gh-sync-id: e4eaf1237cca380b74d154c3cda50379fbafcf00
2015-10-06 10:29:01 -07:00
Pieter De Baets 81278d1a39 Fix UIExplorer integration tests
Reviewed By: @vjeux

Differential Revision: D2510761

fb-gh-sync-id: 21ec8988305ba9f3526277a8b445676ac4fcf3aa
2015-10-06 10:28:57 -07:00
Andrei Coman ea8d0b6c1f Protect against SQLiteFullExceptions
Reviewed By: @kmagiera

Differential Revision: D2512317

fb-gh-sync-id: 93fd65ebd88e42b5afc4e06c0612576101f15c97
2015-10-06 10:28:51 -07:00
Bret Johnson b7b83e4f12 Fixed to use ; instead of : as the path delimiter on Windows, for NDK_MODULE_PATH
Summary: Also fixed the extra slash before first-party in that path (it was ...//first-party
and is now .../first-party).  The $dir funct always produces a result that ends with
a /, so APP_MK_DIR always ends in a / and no extra / is needed when appending to it.
With these two changes all of React Native for Android, including C++, seems to
build OK on Windows 😄
Closes https://github.com/facebook/react-native/pull/2961

Reviewed By: @​svcscm

Differential Revision: D2512239

Pulled By: @kmagiera

fb-gh-sync-id: 4fbc9fc85bab455b8ed1e07a8ac299a48921753e
2015-10-06 10:28:46 -07:00
Sebastian Markbage ac5b7548d2 Refactor Attribute Processing (Step 3)
Summary: Decouple processStyle from the main reconciliation. It is now a process
extension to the style attribute `transform`. This effectively decouples a
large portion of special cases and helper dependencies from the reconciler.

The transform attribute becomes translated into the transformMatrix attribute on
the native side so this becomes a little weird in that I have to special case
it. I don't think it is worth while having a general solution for this so I
intend to rename the native attribute to `transform` and just have it accept the
resolved transform. Then I can remove the special cases.

The next step is generalizing the flattenStyle function and optimizing it.

@​public

Reviewed By: @vjeux

Differential Revision: D2460465

fb-gh-sync-id: 243e7fd77d282b401bc2c028aec8d57f24522a8e
2015-10-06 10:28:41 -07:00
Sebastian Markbage 8e3ce0ff98 Refactor Attribute Processing (Step 2)
Summary: Move the ViewAttributes and StyleAttributes configuration into the
Components library since they're coupled and change with the
native component configuration.

This also decouples StyleAttributes from the reconciler by adding it
to the ReactViewAttributes.

To do that, I refactored the property diffing to allow for recursive
configurations. Now an attribute configuration can be a nested object,
a custom configuration (diff/process) or true.

The requireNativeComponent path incorrectly gets its attributes set up
on the root validAttributes instead of the nested style object.
So I also have to add the nested form. Effectively these currently allow
these attributes on props or nested.

@​public

Reviewed By: @vjeux

Differential Revision: D2456842

fb-gh-sync-id: cd5405bd8316c2fcb016d06c61244ce7719c26c0
2015-10-06 10:28:35 -07:00
Sebastian Markbage 6c5024ec58 Refactor Attribute Processing (Step 1)
Summary: Concolidate the creation of the "update payload" into
ReactNativeAttributePayload which now has a create
and a diff version. The create version can be used by
both mountComponent and setNativeProps. This means that
diffRawProperties moves into ReactNativeAttributePayload.

Instead of storing previousFlattenedStyle as memoized
state in the component tree, I recalculate it every
time. This allows better use of the generational GC.
However, it is still probably a fairly expensive
technique so I will follow it up with a diff that
walks both nested array trees to do the diffing in a
follow up.

This is the first diff of several steps.

@​public

Reviewed By: @vjeux

Differential Revision: D2440644

fb-gh-sync-id: 1d0da4f6e2bf716f33e119df947c044abb918471
2015-10-06 10:28:27 -07:00
Madelaine Boyd 62e8ddc205 Revert g90f63f5c6fbbadd3ce6486e65d6fe6f967f56db6: [RN] add allTime vs. perBatch UIManager stats
fb-gh-sync-id: cef98420bcb8e708196bd5e162fa5dc4003b4fa2
2015-10-05 17:34:23 -07:00
Martin Bigio 725e3eba6e Fix bad require
Reviewed By: @vjeux, @​swarr

Differential Revision: D2509919

fb-gh-sync-id: 8c3555d080a2b49c3a1effbe5c7e1d31a9a04767
2015-10-05 15:32:22 -07:00
Spencer Ahrens 340229303f add allTime vs. perBatch UIManager stats
Summary: @​public

UIManagerStatTracker now provides allTime and perBatch stats so it's easy to see
how bit each batch is.

Reviewed By: @vjeux

Differential Revision: D2506218

fb-gh-sync-id: 635556185245d2bd6cb149497ea60b503b2523ce
2015-10-05 14:19:08 -07:00
Spencer Ahrens b0bdd4e45d Fix ListView bug where onEndReached wouldn't trigger initially
Summary: @​public

Sometimes we want to load a very small number of rows initially and want the
onEndReached callback to be called immediately to trigger more data to be
loaded without waiting for the  user to scroll at all.  This diff makes that
happen by also checking on mount instead of only when scrolling.

Reviewed By: @vjeux

Differential Revision: D2507184

fb-gh-sync-id: ea8e47667d00387a935a426dd45afe978fd6d8cd
2015-10-05 13:49:00 -07:00
Christopher Chedeau d409f13abe Merge pull request #3241 from vjeux/warning_cli
[cli] Add a big warning to stop people from modifying the global cli
2015-10-05 11:21:51 -07:00
Christopher Chedeau cfd19bb6cd [cli] Add a big warning to stop people from modifying the global cli 2015-10-05 11:20:04 -07:00
Tadeu Zagallo ad622f20f2 Fix wrong source map test
Reviewed By: @javache
2015-10-05 11:15:20 -07:00
Alexey Lang 7b514c63df Log native modules init time and config inject time separately
Reviewed By: @jspahrsummers

Differential Revision: D2508010
2015-10-05 11:05:23 -07:00
Martin Konicek fd124f0cbe Merge pull request #3240 from vjeux/cli_contributing
[cli] Use contributing.md as readme
2015-10-05 19:02:42 +01:00
Christopher Chedeau 92fd668653 [cli] Use contributing.md as readme
The readme is basically empty but contributing has a ton of useful information. Github's interface show everything in readme inline when you open the folder, so might as well make this information more visible.
2015-10-05 10:57:39 -07:00
Martin Konicek 2c522cd16c Update KnownIssues.md 2015-10-05 18:53:00 +01:00
Andrei Coman 166a96bcee Fix keyboardShouldPersistTaps default value
Reviewed By: @astreet

Differential Revision: D2507878
2015-10-05 10:25:21 -07:00
Pieter De Baets babdeb33ba Make processColor more efficient
Reviewed By: @nicklockwood, @vjeux

Differential Revision: D2507684
2015-10-05 10:15:34 -07:00
Felix Oghină 787895e903 check for destroyed instance before calling native method
Differential Revision: D2508050
2015-10-05 09:30:51 -07:00
Martin Konicek 85370ecba6 Update KnownIssues.md 2015-10-05 17:23:57 +01:00
Martín Bigio 9a22b1e78b Introduce internal server command
Reviewed By: @frantic

Differential Revision: D2449459
2015-10-05 09:21:34 -07:00
Martín Bigio 7ad418a396 Move fbobjc bundle command to cli
Reviewed By: @frantic

Differential Revision: D2457072
2015-10-05 09:21:27 -07:00
Martin Konicek fe477fbdb4 Update KnownIssues.md 2015-10-05 17:20:13 +01:00
Martin Konicek c99e8cbb5e Update KnownIssues.md 2015-10-05 16:51:28 +01:00
Tadeu Zagallo 753cc7683c Fix minified source maps
Summary: @​public

The source maps generated by uglify are already stringified, and therefore were
being stringified twice.

Reviewed By: @martinbigio

Differential Revision: D2498242
2015-10-05 08:48:25 -07:00
Mike Armstrong 17c49e2879 systrace of Fresco
Differential Revision: D2507874
2015-10-05 08:07:31 -07:00
Mike Armstrong 4a5fed3c42 Markers for JSC and Bridge Initialization
Differential Revision: D2507869
2015-10-05 08:07:23 -07:00
Martin Konicek 943f62b81b Merge pull request #3193 from winterbe/issue2797
Add --verbose option to react-native-cli (fixes #2797)
2015-10-05 15:16:45 +01:00
Pieter De Baets 7c1b6b0fb6 Vendor tinycolor; strip unnecessary components
Reviewed By: @vjeux

Differential Revision: D2503048
2015-10-05 04:41:26 -07:00
Dral 95a4f441e0 Silently (warning) fail when <Image> source has empty uri
Summary: fixes #3127
Closes https://github.com/facebook/react-native/pull/3185

Reviewed By: @​svcscm

Differential Revision: D2507588

Pulled By: @nicklockwood
2015-10-05 04:08:24 -07:00
Dral 463b072dac Support hex values in outputRange
Summary: 1. Should I add an example of this to the UIExplorer Animation example?

2. Should I support mixing hex and rgba values in outputRange? It is possible with this implementation, but may cause confusion
Closes https://github.com/facebook/react-native/pull/3177

Reviewed By: @​svcscm

Differential Revision: D2506947

Pulled By: @vjeux
2015-10-04 14:37:59 -07:00
Amjad Masad 8356b609a5 Use different cache keys for Package objects (fixes #2949)
Summary: @​public

Dead-lock trying to read package.json because it's both a "module" and a "package". in `Module.getName` it uses the cache key "name" and tries to call `Package.getName` which uses the same cache key and we end up returning the same promise that we're trying to resolve resulting in a dead-lock.

This changes the cache keys for the packages that adds a prefix "package-".

Reviewed By: @vjeux

Differential Revision: D2506979
2015-10-04 12:37:25 -07:00
James Ide 3cdd8d0320 Include ReactAndroid with the npm distribution
Summary: Enables building RN Android from source while keeping it in sync with the iOS distribution.
Closes https://github.com/facebook/react-native/pull/3019

Reviewed By: @​svcscm

Differential Revision: D2506390

Pulled By: @vjeux
2015-10-03 11:49:33 -07:00
Dral a9b8ca027c Clear timeouts on unmount in TouchableMixin
Summary: Fixes #1152
Closes https://github.com/facebook/react-native/pull/3176

Reviewed By: @​svcscm

Differential Revision: D2506385

Pulled By: @vjeux
2015-10-03 11:49:27 -07:00
James Ide ac069aaf12 Update the packager's version check message for Node 4.0
Summary: Users should use Node 4.0 instead of io.js. This isn't a hard requirement since io.js still works but it's simpler if everyone is on the latest version.
Closes https://github.com/facebook/react-native/pull/2547

Reviewed By: @​svcscm

Differential Revision: D2506388

Pulled By: @vjeux
2015-10-03 11:49:21 -07:00
Christopher Chedeau bcf9c42bae Merge pull request #3207 from FormationsFactory/showcase-add-formations-factory-company-name-search-app
Add Formations Factory Company name search app to [Showcase]
2015-10-03 11:06:36 -07:00
James Ide c649211147 Add unit tests to flattenStyle
Summary: The StyleSheet merging algorithm was modeled after `Object.assign` and the native spread operator. This diff converts `flattenStyle` to actually use `Object.assign`.
Closes https://github.com/facebook/react-native/pull/3048

Reviewed By: @​svcscm

Differential Revision: D2506387

Pulled By: @vjeux
2015-10-03 10:17:23 -07:00
Julius Jurgelenas 4b7c639ccc Add Formations Factory Company name search app to Showcase 2015-10-03 11:09:44 +03:00
Amir Rosenfeld 22d507a680 robust native in fbobjc
Reviewed By: @fkgozali

Differential Revision: D2505371
2015-10-02 18:22:23 -07:00
Ben Vinegar a16d0e46d8 Add --write-sourcemap option to 'bundle' cli command (fixes GH-3202) 2015-10-02 16:01:18 -07:00
Mike Grabowski 2f76c8a4a9 Fixes #3060
Summary: This pull request fixes a glitch that occurred when scrolling horizontally, as described in the #3060.
Closes https://github.com/facebook/react-native/pull/3169

Reviewed By: @​svcscm

Differential Revision: D2500186

Pulled By: @mkonicek
2015-10-02 14:32:23 -07:00
Pieter De Baets 0fb2fb37cc Silence analyzer warning for nil-checking NSNumber
Reviewed By: @jspahrsummers

Differential Revision: D2503068
2015-10-02 12:36:30 -07:00
Christopher Chedeau 6f84ccf51a Fix tests related to event-target-shim
Summary: @​public

Jest has an issue where if you export `Symbol` it crashes badly. Since event-target-shim does that, it breaks everything. Mocking that module fixes the issue until @cpojer comes back from vacation and fixes the bug in Jest itself.

Reviewed By: @jingc

Differential Revision: D2503562
2015-10-02 12:36:23 -07:00
Dave Miller b8c42f7f6f Introduce SnapshotView which wraps Renderable content and will verify the snapshot
Reviewed By: @javache

Differential Revision: D2493722
2015-10-02 12:15:24 -07:00
Alex Kotliarskyi de736227fa Add packager-managed assets support to NavigatorIOS
Reviewed By: @vjeux

Differential Revision: D2500520
2015-10-02 12:02:29 -07:00
Abhishek Sood e08a507f75 This reverts D2502620
Differential Revision: D2503381
2015-10-02 11:33:23 -07:00
James Ide 9dd956a84b Merge pull request #3197 from skv-headless/fix-link-to-animations
[Docs] fix link to animation examples
2015-10-02 11:32:22 -07:00
Kushal Dave 1d77645a53 Set scrollsToTop = NO for UITextViews
Summary: Complete the work from 853d5b2221 by also fixing the placeholder view.
Closes https://github.com/facebook/react-native/pull/3129

Reviewed By: @​svcscm

Differential Revision: D2499753

Pulled By: @vjeux
2015-10-02 10:18:31 -07:00
Mike Armstrong c5b82fe600 Capture java side sampling at the same time as JavaScript
Differential Revision: D2503123
2015-10-02 10:18:24 -07:00
Alexey Lang 737e011f96 log native modules init time and config inject time separately
Reviewed By: @tadeuzagallo, @jspahrsummers

Differential Revision: D2502620
2015-10-02 09:55:21 -07:00
Martin Konicek c15fd8f22c Add link to docs for React addons
Reviewed By: @javache

Differential Revision: D2502770
2015-10-02 08:29:17 -07:00
skv f8bf3463ac [Docs] fix link to animation examples 2015-10-02 17:40:16 +03:00
Felix Oghină 0a13cd0480 Merge pull request #3196 from foghina/cli_backwards_compat
[cli] make init backwards-compatible
2015-10-02 15:05:03 +01:00
Mehdi Mulani 1d8d3d779a Backout ReactNative sync as some tests broke 2015-10-02 06:55:23 -07:00
Felix Oghină 046d8d2dee [cli] make init backwards-compatible 2015-10-02 14:44:20 +01:00
Tadeu Zagallo 7a4348917f Guard against multiple calls from the dev menu
Summary: @​public

The RCTDevMenu always calls the handler, even with the state hasn't changed.
Guard against it.

Reviewed By: @javache

Differential Revision: D2499034
2015-10-02 04:54:23 -07:00
Tadeu Zagallo beab8d52d4 Fix racing conditions on the profiler
Summary: @​public

The flow event methods weren't properly synchronized and neither was the module
unhooking.

Reviewed By: @jspahrsummers

Differential Revision: D2498719
2015-10-02 04:18:21 -07:00
Harry Moreno b1c8e490e0 Add docs for View BorderWidth
Summary: Closes https://github.com/facebook/react-native/pull/3133

Reviewed By: @​svcscm

Differential Revision: D2502503

Pulled By: @mkonicek
2015-10-02 04:13:24 -07:00
Felix Oghină 3dcc234efd do not destroy instance when handling exception
Differential Revision: D2502513
2015-10-02 03:45:24 -07:00
Tadeu Zagallo eee2fd1ca2 Fix RCTConvert analyser error
Summary: @​public

Fix analyser error on RCTConvert where a key used to subscript an
NSMutableDictionary could possibly be nil.

Reviewed By: @alexeylang, @jspahrsummers

Differential Revision: D2498988
2015-10-02 03:35:22 -07:00
Benjamin Winterberg a7047d5764 Add --verbose option (fixes #2797) 2015-10-02 10:51:45 +02:00
Chace Liang 8221c33650 Add Voice Over related change to AccessibilityManager.
Reviewed By: @hedgerwang

Differential Revision: D2491520
2015-10-01 18:19:24 -07:00
leeyeh 626b551ff2 Implement EventTarget interface for WebSocket.
Summary: close #2583Closes https://github.com/facebook/react-native/pull/2599

Reviewed By: @​svcscm

Differential Revision: D2498641

Pulled By: @vjeux
2015-10-01 17:59:29 -07:00
Sebastian Markbage 14d2b0e147 Add benchmark for attribute diffing
Summary: Benchmark for testing the attribute diffing algorithm.

@​public

Reviewed By: @vjeux

Differential Revision: D2498078
2015-10-01 15:05:38 -07:00
Christopher Chedeau de717a8379 Polyfill Number.EPSILON and Number.MIN/MAX_SAFE_INTEGER
Summary: Those three properties have been ratified as ES6 but are not yet implementd in JSCore. This polyfills them.

See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON

@​public

Reviewed By: @sahrens

Differential Revision: D2497528
2015-10-01 15:05:33 -07:00
Tadeu Zagallo d96748492f Fix ReactPerf markers in Systrace
Reviewed By: @spicyj

Differential Revision: D2468107
2015-10-01 15:05:28 -07:00
Tadeu Zagallo d447edc5ed Fix profiler setup
Summary: @​public

Update packager entry and profiler pre-built dylib +
Update makefile to make it easier to use different versions of Xcode
and shortcircuit when using the wrong version.

Reviewed By: @jspahrsummers

Differential Revision: D2498157
2015-10-01 15:05:23 -07:00
Martin Konicek 2c0da0f8b5 Merge pull request #3072 from ajwhite/patch-sample-app-gitignore-android
[Android] .gitignore entries for generator template (previously SampleApp)
2015-10-01 21:57:45 +01:00
James Ide e961eaf5c8 Merge pull request #3175 from corbt/es6-modules
enable es6 module syntax
2015-10-01 13:22:52 -07:00
Kyle Corbitt be4c58dcb7 documentation for es6 module syntax 2015-10-01 21:20:41 +01:00
Christopher Chedeau b90d622945 Import event-target-shim npm module
Reviewed By: @foghina

Differential Revision: D2498747
2015-10-01 12:32:24 -07:00
shlomiatar 535ee40818 Fix DependencyResolver to support ES6 multiline imports
Summary: *This is a PR to fix #1939 (DependencyResolver fails to handle ES6 modules import statements with new lines)*

**This PR includes:**
- A fix to the problematic regular expression
- Updated tests that support the new line style.

**Summary:**
We found out that while the packager does its module wrapping thing for lines like this:
```js
import theDefault, { named1, named2 } from 'src/mylib';
```
It fails to do the same for multi line imports:
```js
import theDefault, {
  named1,
  named2
} from 'src/mylib';
```
We've tracked done the issue to a [faulty regular expression in replacePatterns.js](https://github.com/facebook/react-native/blob/master/packager/react-packager/src/DependencyResolver/replacePatterns.js#L12)

You can see various import statements with the problematic regular expression [here](http://regexr.com/3bc8m)

We've figure out a better regular expression (you can play around with it [here](http://regexr.com/3bd3s))Closes https://github.com/facebook/react-native/pull/1940

Reviewed By: @​svcscm

Differential Revision: D2498519

Pulled By: @vjeux
2015-10-01 12:17:21 -07:00
Martin Konicek 8cc6145979 Fix packager docs 2015-10-01 20:10:13 +01:00
Atticus White 56abd6ab41 add android .gradle and build directories to sample app gitignore 2015-10-01 15:09:44 -04:00
Martin Konicek 52d504258b Mention debug.js in packager docs 2015-10-01 19:59:41 +01:00
Martin Konicek ff0f054c78 Another note about verbose output for RN packager 2015-10-01 19:53:05 +01:00
Martin Konicek ee0b19a528 Add a note about verbose output for RN packager 2015-10-01 19:46:09 +01:00
Kyle Corbitt 9c4b476679 enable es6 module syntax
Summary: This is an updated copy of #1993, which was approved by @vjeux but hasn't been rebased. It whitelists the es6 module syntax and updates the JS Environment docs to match. cc @ide @​hkjorgensenCloses https://github.com/facebook/react-native/pull/3175

Reviewed By: @​svcscm

Differential Revision: D2498360

Pulled By: @vjeux
2015-10-01 10:57:23 -07:00
Martin Konicek 31a0c95f69 [cli] Formatting 2015-10-01 15:33:45 +01:00
Martin Konicek a5463c4c10 [cli] Fix 'react-native start' on Windows
Based on https://github.com/facebook/react-native/pull/2989
Thanks @BerndWessels!
2015-10-01 15:28:05 +01:00
Pieter De Baets 91d6cb73ea Fix UIExplorer tabbar test
Reviewed By: @jspahrsummers

Differential Revision: D2498139
2015-10-01 06:02:23 -07:00
Pieter De Baets f3a6466fcd Check if test runner is of right type before accessing its internals
Summary: I previously added this check to make the test complete waits until all teardown completed but if you're running tests with any other executor than the JSC one, this would crash.

@​public

Reviewed By: @jspahrsummers

Differential Revision: D2493967
2015-10-01 04:22:24 -07:00
Felix Oghină 7f9cf97767 Merge pull request #2713 from jmhdez/fix-appName-on-init
[cli] pass arguments from cli instead of using process.argv in init
2015-10-01 12:06:24 +01:00
jmhdez 575e9b7b9a Respect projectName on template creation 2015-10-01 12:39:35 +02:00
Aaron Chiu ebb92ad2cc fix white space in ReactImageManager.java
Differential Revision: D2498072
2015-10-01 02:31:23 -07:00
Aaron Chiu 2cc8acf2e3 enabled border width and border color (sync diff 2)
Differential Revision: D2497575
2015-10-01 00:28:20 -07:00
Aaron Chiu 47224bd93e enabled border width and border color (sync diff)
Differential Revision: D2497518
2015-09-30 21:02:56 -07:00
Amjad Masad 502d277ff2 Error on name collisions
Summary: @​public
This moves us from warnings on name collisions to errors. If the error happens in initialization it will fatal out.

However, if the error happens while working (after initialization) then I did my best to make it recoverable. The rational behind this is that if you're working and you're changing names, you may introduce a duplication while moving things around. It will suck if you have to restart the server every time you do that.

Reviewed By: @frantic

Differential Revision: D2493098
2015-09-30 21:02:50 -07:00
Harry Moreno 90fc8a30dd Format Code in TextInput Comment
Summary: * wrap code snippet in TextInput Comment in backticks ```
* unless there is a way to omit portions of comments from reaching the
docs this is less confusingCloses https://github.com/facebook/react-native/pull/3085

Reviewed By: @​svcscm

Differential Revision: D2495630

Pulled By: @frantic
2015-09-30 21:02:44 -07:00
Henry Zhu e45b7ffb1e update lint packages, fix lint errors
Summary: @​cesarandreu pointed out running eslint on react-native resulted in `t.isReferencedIdentifier is not a function` issues on the babel #linting channel on slack.

- update eslint, babel-eslint, eslint-plugin-react
- fix eslint errors: `Error - t.isReferencedIdentifier is not a function`
- fix lint npm script

I see there's also https://github.com/facebook/react-native/pull/1736 from @ide which would fix it tooCloses https://github.com/facebook/react-native/pull/1874

Reviewed By: @vjeux

Differential Revision: D2495878

Pulled By: @frantic
2015-09-30 21:02:37 -07:00
Danny van der Jagt 200b81172e Fix for IOS 8
Summary: **Problem**
Using push notifications in IOS 8 will throw this error:
`registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later.`
The problem is that the check is running on compile instead of runtime.

**Solution**
If have changed the compile if statement to a runtime if statement. The fix is tested on: IOS 7.1 and 8.* and everything is working now.
This solution is also discussed in: https://github.com/facebook/react-native/issues/1613 and it was part of  https://github.com/facebook/react-native/pull/1979. (is being separated to keep things moving)

Please let me know what you think.Closes https://github.com/facebook/react-native/pull/2332

Reviewed By: @​svcscm

Differential Revision: D2490987

Pulled By: @ericvicenti
2015-09-30 21:02:31 -07:00
Quentin Valmori 4bb58e59f7 Fix one warning
Summary: translucent is a boolean not a stringCloses https://github.com/facebook/react-native/pull/3134

Reviewed By: @​svcscm

Differential Revision: D2495517

Pulled By: @frantic
2015-09-30 21:02:25 -07:00
Magnus Bergman 6068c07e98 Fix dead link in PushNotificationIOS docs.
Summary: Closes https://github.com/facebook/react-native/pull/3117

Reviewed By: @​svcscm

Differential Revision: D2495539

Pulled By: @frantic
2015-09-30 15:40:27 -07:00
olivier notteghem 2bded4cb2e Add log output to rule out that multiple react context creation are responsible for increased mem / image not loading in CTScan
Reviewed By: @​krangarajan

Differential Revision: D2495435
2015-09-30 14:11:24 -07:00
Alexander Kotliarskyi 189ba53ca2 Merge pull request #2940 from andersryanc/docs-image-png-note
Add note about PNG files to Image static resources
2015-09-30 14:03:59 -07:00
Justin Spahr-Summers a4ef7abebb Wait to clear RCTImageView.image until definitively removed from window
Summary: When `RCTImageView` is removed from the view hierarchy, it clears out its `image` to save memory. This makes sense, except that it gets removed from the window (view hierarchy) even when becoming the child of another view.

This fixes the logic so that it only clears out the image if the view hasn't been moved somewhere else within one frame.

@​public

Reviewed By: @javache

Differential Revision: D2493849
2015-09-30 09:40:30 -07:00
Stephan Diederich e65cc9d679 update some asset catalogs
Reviewed By: @nscoding

Differential Revision: D2480708
2015-09-30 09:21:38 -07:00
Felix Oghină 5ca5ec7688 add remote image support to toolbar
Differential Revision: D2493627
2015-09-30 09:21:27 -07:00
Brent Vatne ee3f7e9d21 Merge pull request #3145 from brentvatne/perf-docs
[Docs] First pass at performance guide
2015-09-30 10:42:00 -04:00
Felix Oghină 3e7af6e1a4 [SampleApp] adding unsynced changes from PR #3025 2015-09-30 15:15:30 +01:00
Brent Vatne 554bdf98a7 [Docs] First pass at performance guide 2015-09-30 09:42:56 -04:00
Kevin Gozali 5b2099f87f added QPL for main interactions
Reviewed By: @amirrosenfeld

Differential Revision: D2488420
2015-09-29 22:25:23 -07:00
Amjad Masad 0ad05043f5 Fix more name collisions
Summary: @​public
Add more duplicate files to the blacklist.

Reviewed By: @vjeux

Differential Revision: D2493066
2015-09-29 22:01:21 -07:00
Amjad Masad 9211b9b3cf Introduce getOrderedDependencyPaths that gets all concrete dependecy paths
Summary: @​public
Since we added packager-managed assets -- internally we still think of asset dependency as a single "module". In reality there are multiple files that represent this module. This becomes important with the `getDependencies` API which is used by Buck to inform it on what to rebuild. Since `getDependencies` deals with modules, and is more of an internal API, I've introduced a new one and would go on to deprecate this.

Reviewed By: @frantic

Differential Revision: D2487207
2015-09-29 18:34:21 -07:00
Amjad Masad 42b5cd59e4 Fix debug namespaces
Summary: @​public
Have a top-level debug namespace: `ReactNativePackager`
And add a couple of debugs in the transformer. This is ground work for adding a verbose option.

Reviewed By: @DmitrySoshnikov

Differential Revision: D2489960
2015-09-29 16:10:22 -07:00
Alexander Kotliarskyi b903754116 Merge pull request #3100 from foghina/run_linux
[cli] spawn xterm on linux to run the packager
2015-09-29 15:34:02 -07:00
Amjad Masad 256fa18ab2 remove randomness
Reviewed By: @javache

Differential Revision: D2490001
2015-09-29 12:44:22 -07:00
Pieter De Baets 9076b71ac3 Use bundleForClass instead of mainBundle to find resources
Reviewed By: @jspahrsummers

Differential Revision: D2485109
2015-09-29 10:36:23 -07:00
Andrei Coman 3b6d029a55 Fix background color issue
Differential Revision: D2489578

committer: Service User <svcscm@fb.com>
2015-09-29 09:22:19 -07:00
Pieter De Baets 3a664a0008 Log column number in RCTRedBox messages
Reviewed By: @jspahrsummers

Differential Revision: D2489364
2015-09-29 09:22:14 -07:00
Alexey Lang e727fc817b Pause JS DisplayLink if nothing to process.
Reviewed By: @jspahrsummers

Differential Revision: D2489107
2015-09-29 09:22:10 -07:00
Tadeu Zagallo 4c74f01b85 Move immediates to React batchedUpdates
Reviewed By: @jspahrsummers

Differential Revision: D2484935
2015-09-29 09:22:06 -07:00
Amjad Masad ca007aabb4 Pass in the platform options when loading dependencies
Reviewed By: @jingc

Differential Revision: D2488262
2015-09-29 09:22:00 -07:00
Yinan Na 9ef24d8cc8 RC Fix storyline cannot open bug (iOS 7)
Reviewed By: @jingc

Differential Revision: D2486832
2015-09-29 09:21:55 -07:00
Pieter De Baets e885628245 Don't call originalConsole methods when they don't exist
Reviewed By: @vjeux

Differential Revision: D2485562
2015-09-29 09:21:48 -07:00
Alex Kotliarskyi f07dd70051 Managed assets support for RCTConvert
Reviewed By: @nicklockwood

Differential Revision: D2443130
2015-09-29 09:21:39 -07:00
James Ide e15035f30b Delete SampleApp
Summary: The sample app's code has been converted to Yeoman generator templates. Tell people to run the UIExplorer instead, or the `react-native init` project (which is the same as the SampleApp). This will slightly reduce the size of the npm package and cleans up unused files.
Closes https://github.com/facebook/react-native/pull/3025

Reviewed By: @​svcscm

Differential Revision: D2484901

Pulled By: @foghina
2015-09-29 09:21:33 -07:00
Christopher Chedeau a02785cdc4 Revert _file deletions to fix the sync 2015-09-29 09:16:34 -07:00
Felix Oghina f6ec854e23 [cli] spawn xterm on linux to run the packager
Also use ANDROID_HOME env var when running adb.
2015-09-28 20:14:07 +01:00
Justin Spahr-Summers 0ff3a421c9 Actually define RCTSetLogThreshold()
Summary: This function was declared, but never defined, so calling it would crash your application.

I also took this opportunity to ensure that the logging threshold is given a default value upon initialization, not just the first time `RCTGetLogThreshold()` is called.

@​public

Reviewed By: @tadeuzagallo

Differential Revision: D2475622
2015-09-28 04:23:26 -07:00
James Ide 92109b8a0c Explanation of Modal's purpose in hybrid apps
Summary: Explained that Modal is for hybrid apps and suggest using a top-level Navigator in pure RN apps.
Closes https://github.com/facebook/react-native/pull/2663

Reviewed By: @​svcscm

Differential Revision: D2483626

Pulled By: @sahrens
2015-09-27 23:48:22 -07:00
yiminghe 4978855d72 support es6.constants by default. Fixes #2932
Summary: In javascriptcore(ios9), this code will run as expected(output 0 1):

```js
for(let i=0; i<2; i++) {
  const data = i;
  console.log(data);
}
```

But when debug in chrome, the above code will fail without `use strict` prologue (if you add prologue, rn will fail with red screen `Const declarations are not supported in strict mode`): https://code.google.com/p/v8/issues/detail?id=4432.

So it's better to transpile contant by default.

Closes https://github.com/facebook/react-native/pull/2955

Reviewed By: @​svcscm

Differential Revision: D2483398

Pulled By: @vjeux
2015-09-26 15:50:24 -07:00
Satyajit Sahoo c22e143a1d Fix typos 2015-09-27 00:03:41 +05:30
Satyajit Sahoo fba9fbbced Added docs about generating a signed APK 2015-09-27 00:01:10 +05:30
Amjad Masad fa0da5682b Fix haste resolution (and better warnings)
Summary: @​public

Fix the haste resolution algorithm. Changed the map data structure from a list of modules, to a list of modules grouped by platform.
This considerably simplifies the "getModule" method and makes it easy to properly warn about colliding module names.
This also fixes a bug where we used to include `.web` files when we shouldn't (see task).

Reviewed By: @vjeux

Differential Revision: D2482969
2015-09-25 20:35:45 -07:00
Christopher Chedeau 76846f7e33 Remove all the duplicate module warnings
Summary: @​public

@amasad added a warning when there are two @​providesModule with the same name. This removes all those warnings by blacklisting the internal version of those files. Once we get of the big react-tools/ hack, we'll be able to remove all those :)

Reviewed By: @amasad

Differential Revision: D2482521
2015-09-25 19:24:24 -07:00
Christopher Chedeau bd36e40258 Fix width being ignored when has a value of 0
Summary: https://github.com/facebook/css-layout/commit/8f6a96adbcb2b0389f948b8113d8b7cb8991bb2d added a test in isDimDefined that checks if `value > 0.0`, but unfortunately, it did not faithfully port the JavaScript version which is `value >= 0.0`: https://github.com/facebook/css-layout/blob/master/src/Layout.js#L306. Sadly, no test covered this so it went unnoticed.
Closes https://github.com/facebook/css-layout/pull/134

Reviewed By: @​svcscm

Differential Revision: D2481773

Pulled By: @vjeux
2015-09-25 15:42:21 -07:00
Krzysztof Magiera 656126a2f1 Convert remaining viewmanager to @ReactProp.
Differential Revision: D2481816

committer: Service User <svcscm@fb.com>
2015-09-25 15:02:25 -07:00
Jiajie Zhu 0fb3d8de83 revert D2372548 to fix initial app state issue
Reviewed By: @hedgerwang

Differential Revision: D2480492
2015-09-25 13:25:26 -07:00
James Ide 65253e3915 Merge pull request #3043 from exponentjs/nvm-docs
[Docs] Remove recommendation to install nvm from brew
2015-09-25 13:19:50 -07:00
James Ide cfc8331a7f [Docs] Remove recommendation to install nvm from brew
The nvm maintainers have their own recommended installation instructions (via shell script or git checkout), which are linked to from the docs.
2015-09-25 13:18:31 -07:00
Olivier Notteghem 3f213e37d3 Fix scrollTo() method to pass integer as opposed to float
Reviewed By: @​nspaun

Differential Revision: D2480775
2015-09-25 13:01:25 -07:00
Olivier Notteghem dcae4bada0 Sync diff : Enable initializing react context off UI thread
Reviewed By: @astreet

Differential Revision: D2480130
2015-09-25 12:54:27 -07:00
Pieter De Baets 8f13560fd5 End slider interaction when touches are cancelled
Reviewed By: @jingc

Differential Revision: D2479259
2015-09-25 11:42:32 -07:00
Christopher Chedeau ec8b5425e5 Fix row height
Reviewed By: @frantic

Differential Revision: D2480265
2015-09-25 11:25:57 -07:00
Justin Spahr-Summers 1487ebfe01 Revert packager randomization revert 2015-09-25 10:24:06 -07:00
Mike Armstrong 23564fe65a reduce leeway to 1, child clipping updated every scroll movement. This fixes scroll view behaviour
Reviewed By: @jspahrsummers

Differential Revision: D2479961
2015-09-25 10:24:02 -07:00
Ryan Anderson 6dfadba318 fix images docs verbiage 2015-09-25 09:34:07 -07:00
Justin Spahr-Summers e2fdd59784 Revert packager module randomization 2015-09-25 07:41:25 -07:00
Krzysztof Magiera bf598647d2 Convert View to @ReactProp.
Differential Revision: D2479795

committer: Service User <svcscm@fb.com>
2015-09-25 03:14:28 -07:00
Cirkos 1ad1f45fe6 Reverted D2476924
Reviewed By: @mmmulani

Differential Revision: D2479710
2015-09-25 03:08:24 -07:00
Justin Spahr-Summers 3bbfab545a Log when RCTImageView reloads and when assets are scaled
Summary: This sort of logging helped me identify issues with reloading images too frequently (and for trivial reasons), so leaving it in might be useful for future optimization work, or for anyone building apps using these components.

@​public

Reviewed By: @alexeylang

Differential Revision: D2475613
2015-09-25 02:29:25 -07:00
Amjad Masad 9293e54085 Warn and randomize colliding name selection
Summary: @​public

The issue of colliding haste modules have came up many times and have wasted countless engineering hours. This will start warning about it and will also start selecting modules at random so that people don't depend on undefined behavior.

Additionally, this surfaced an issue where with assets we may fatally throw if the directory doesn't exist. This is fixed by checking the existence of the directory before trying to match files in it.

Reviewed By: @jingc

Differential Revision: D2478480
2015-09-25 00:19:27 -07:00
Ryan Anderson a8b34a1516 remove isStatic and change image to my-icon 2015-09-24 23:37:33 -07:00
Martin Bigio bf88e46ebb Print to console instead of debug uncaught exceptions
Reviewed By: @jingc

Differential Revision: D2478099
2015-09-24 15:57:26 -07:00
Martin Konicek fcd7de5301 Autoplay GIFs on Android
Summary: This adds support for animated GIFs on Android! Looking forward to some meme apps :)
Also, Fresco is awesome.

Closes #2997.

@​public

Reviewed By: @mkonicek

Differential Revision: D2477540

committer: Service User <svcscm@fb.com>
2015-09-24 14:37:24 -07:00
Christopher Chedeau 03222d66bb Revert of [Fix dimension check for STRETCH children]
Summary: We had a layout issue in Ads Manager after updating to the latest version of css-layout on react-native. I bisected the change to https://github.com/facebook/css-layout/commit/909c14117f118c9b36e6623590e62bff2f996c1b. It changes the condition and breaks the behavior that we had. This change was not covered by a unit test so I added one.

Closes https://github.com/facebook/css-layout/pull/131

Reviewed By: @​svcscm

Differential Revision: D2476924

Pulled By: @vjeux
2015-09-24 14:11:47 -07:00
Donald Wong 428f76d8a2 Reverting D2475270 2015-09-24 14:11:42 -07:00
Martin Konicek a3e6afe137 Merge pull request #3006 from foghina/merge_yo_tests
[cli] merge yeoman tests into one file to avoid concurrenct issues with jest
2015-09-24 21:43:17 +01:00
Christoph Pojer 252c12c353 Update to 0.5.8
Reviewed By: @vjeux

Differential Revision: D2475270
2015-09-24 10:58:32 -07:00
Martin Konicek dfbee9f558 add dropped frame count to FPS overlay
Differential Revision: D2476082

committer: Service User <svcscm@fb.com>
2015-09-24 10:22:40 -07:00
Martin Konicek bdb11c05a8 Update README.md 2015-09-24 17:18:29 +01:00
Felix Oghină 5cd64a658d [cli] merge yeoman tests into one file to avoid concurrenct issues with jest 2015-09-24 17:02:43 +01:00
Andrei Coman a37d0f9c20 Dirty hack to consume enter key
Differential Revision: D2475863

committer: Service User <svcscm@fb.com>
2015-09-24 08:20:26 -07:00
Andrei Coman c1e3f9100e Fix SQL errors caused by huge operations
Differential Revision: D2475717

committer: Service User <svcscm@fb.com>
2015-09-24 08:20:23 -07:00
Martin Bigio eee11eaeed Log server state when client is unexpetedly closed
Reviewed By: @javache

Differential Revision: D2473036
2015-09-24 08:20:20 -07:00
Krzysztof Magiera 5623c831b3 Introducing view property annotation.
Differential Revision: D2475680

committer: Service User <svcscm@fb.com>
2015-09-24 08:20:17 -07:00
Krzysztof Magiera 6c3fb77f30 Static type check for int params + migrate colorInt to just int.
Differential Revision: D2475618

committer: Service User <svcscm@fb.com>
2015-09-24 08:20:14 -07:00
James Ide 944fa4d635 Suppress warning when checking for JSGlobalContextSetName
Summary: This API is defined only on iOS 8 and newer. There is a warning that the function is defined when checking if it exists since it is always defined in the iOS 8 SDK but not necessarily on iOS 7 phones. Use pragmas to silence the warning.
Closes https://github.com/facebook/react-native/pull/2475

Reviewed By: @​trunkagent, @vjeux

Differential Revision: D2443432

Pulled By: @tadeuzagallo
2015-09-24 08:20:11 -07:00
Andrei Coman 33cc607c1f AsyncStorage improvements
Differential Revision: D2475604

committer: Service User <svcscm@fb.com>
2015-09-24 08:20:08 -07:00
James Ide 7615d74d14 Check self.isValid in RCTBatchedBridge after initial script evaluation
Summary: I noticed that sometimes the batched bridge would be valid before `[self enqueueApplicationScript:url:onComplete:]` but then become invalid in the completion callback. This diff checks `self.isValid` inside of the callback.

Closes https://github.com/facebook/react-native/pull/2016

Reviewed By: @​trunkagent, @jspahrsummers

Differential Revision: D2443438

Pulled By: @tadeuzagallo
2015-09-24 08:20:05 -07:00
Jan Kassens 974ec059e8 Fix for displayName transform
Summary: The `react.displayName` transform was added in 93b9329b75.

That diff missed to update the `.babelrc` where the comment says it should stay
in sync (I'm not sure where it's used though). I added a comment in the other
direction so this can be prevented in the future.

I also updated the `cacheVersion` so we actually transform the code again to add
the missing displayName properties to unchanged components.
Closes https://github.com/facebook/react-native/pull/2905

Reviewed By: @vjeux

Differential Revision: D2473447

Pulled By: @kassens
2015-09-24 08:20:02 -07:00
Jason Brown 74f467b00a Add skewX and skewY to the transform style options
Summary: Closes https://github.com/facebook/react-native/pull/2652

Reviewed By: @​trunkagent, @​svcscm

Differential Revision: D2437758

Pulled By: @vjeux
2015-09-24 08:19:59 -07:00
oveddan 8db35d492b Have the chrome debugger run javascript within a web worker, to remove the global document.
Summary: To make the chrome debugger environment consisten with the JSC executer environment,
where there is no `window.document`, make the chrome debugger run the javascript inside a web worker.

This fixes #1473
Closes https://github.com/facebook/react-native/pull/1632

Reviewed By: @martinbigio

Differential Revision: D2471710

Pulled By: @vjeux
2015-09-24 08:19:55 -07:00
Hedger Wang 200d9af315 Add method stopPropagation and stop to NavigationEvent
Summary: @​public

Add method `stopPropagation` and `stop` to NavigationEvent so we can stop event easily once event bubbling and capturing is supported.

Reviewed By: @fkgozali

Differential Revision: D2471903
2015-09-24 08:19:52 -07:00
Martin Konicek a0ccebc460 Update GettingStarted.md 2015-09-24 15:18:42 +01:00
Aaron Chiu a7dd4f09b5 Merge pull request #2902 from morenoh149/fixGrammarNativeModulesAndroid
Fix Grammar
2015-09-24 14:15:43 +01:00
Aaron Chiu e55b5a0e37 Merge pull request #2901 from morenoh149/fixTypoKnownIssues
Fix typo
2015-09-24 14:14:19 +01:00
Felix Oghină 9f1ff48458 Merge pull request #3000 from foghina/fix_yeoman_tests
[cli] use different names in generator tests

This should fix #2974
2015-09-24 13:57:12 +01:00
Felix Oghină 2dcb06949a [cli] use different names in generator tests 2015-09-24 13:54:01 +01:00
Martín Bigio 51917f6cd9 Add portfinder dev dependency
Reviewed By: @vjeux

Differential Revision: D2468120
2015-09-23 19:29:40 -07:00
Jordan Byron 4c366d0bcb Remove duplicate PanResponderExample and update docs
Summary: While looking at the [pan responder docs](https://facebook.github.io/react-native/docs/panresponder.html#working-example) I noticed they linked to `ResponderExample` rather than `PanResponderExample` and that `ResponderExample ` defined `NavigatorIOSExample` which was odd. This PR just kills `ResponderExample` and updates the link in the docs. :bowtie:
Closes https://github.com/facebook/react-native/pull/1743

Reviewed By: @​svcscm

Differential Revision: D2468010

Pulled By: @vjeux
2015-09-23 19:29:35 -07:00
Alex Kotliarskyi 390649ab4e Support tintColor for managed image assets
Reviewed By: @nicklockwood

Differential Revision: D2443089
2015-09-23 19:29:30 -07:00
Charlie Cheever dc7681e946 Also call the original console methods if they exist
Summary: Ex. When `console.log` or similar is called, this will call
the original method, which can be quite useful.

For example, under iOS, this will log to the Safari console debugger,
which has an expandable UI for inspecting objects, etc., and is also
just useful if you are using that as a REPL.

I don't believe this incurs a meaningful performance penalty unless
the console is open, but it would be easy to stick behind a flag
if that is a problem.
Closes https://github.com/facebook/react-native/pull/2486

Reviewed By: @​svcscm

Differential Revision: D2472470

Pulled By: @vjeux
2015-09-23 19:29:24 -07:00
Alex Kotliarskyi 34d57afc32 Handle errors that are not Error instances
Reviewed By: @sahrens

Differential Revision: D1799587
2015-09-23 19:29:19 -07:00
Elia Grady 88b101bb3e Fixed typo
Summary: _setRenderSceneToHarwareTextureAndroid was changed to _setRenderSceneToHardwareTextureAndroid.
Closes https://github.com/facebook/react-native/pull/2869

Reviewed By: @​svcscm

Differential Revision: D2472438

Pulled By: @vjeux
2015-09-23 19:29:14 -07:00
Andrei Coman d1e316fce3 Remove text input warnings
Reviewed By: @mkonicek

Differential Revision: D2471396
2015-09-23 19:29:04 -07:00
Hedger Wang b2049e3ccb Hierarchical event bubbling - 1
Reviewed By: @fkgozali

Differential Revision: D2469495
2015-09-23 19:28:56 -07:00
Thomas Aylott 30e9bf6077 TextMate support for launchEditor
Reviewed By: @frantic

Differential Revision: D2467263
2015-09-23 19:28:44 -07:00
James Ide 0386858586 Merge pull request #2987 from kassens/gh-only
Update cacheVersion in bundle.js
2015-09-23 15:27:21 -07:00
Jan Kassens c6a9d0e69f Update cacheVersion in bundle.js
As requested by @vjeux, this moves the change to this file to a separate PR.

For more info see #2905.
2015-09-23 15:24:54 -07:00
Christopher Chedeau c52a13186f Merge pull request #2981 from exponentjs/separate-cli-tests
[Tests] Move the packager and cli tests to separate matrix entries
2015-09-23 15:12:48 -07:00
James Ide 03c874cb7f [Tests] Move the packager and cli tests to separate matrix entries
The packager and cli tests now run independently of the RN JS tests. When the packager moves to its own repo we can just remove the packager entry from .travis.yml.

The cli tests are also marked as allowed to fail for now.
2015-09-23 14:14:29 -07:00
Christopher Chedeau 2494261e07 Merge pull request #2982 from AaaChiuuu/sample
[ReactNative] remove unused files in SampleApp
2015-09-23 14:14:02 -07:00
Aaron Chiu c604b6e866 [ReactNative] remove unless files in SampleApp 2015-09-23 22:01:14 +01:00
Christopher Chedeau 0c8e910ed8 Merge pull request #2976 from AaaChiuuu/flow
merge the root .flowconfig and local-cli/generator/templates/_flowconfig
2015-09-23 14:01:06 -07:00
Aaron Chiu 2566ed8089 merge the root .flowconfig and local-cli/generator/templates/_flowconfig
Test Plan: flow check && scripts/e2e-tests.sh
2015-09-23 21:47:43 +01:00
Aaron Chiu 9f62d54cce merge .flowconfig files part 1
Differential Revision: D2472462

committer: Service User <svcscm@fb.com>
2015-09-23 13:02:27 -07:00
Martin Bigio 407247fe1e Don't swallow client errors
Reviewed By: @​swarr

Differential Revision: D2472285
2015-09-23 12:43:23 -07:00
Frédéric Sagnes d26d4708b0 Implement cancellation for RCTAssetsLibraryImageLoader
Reviewed By: @tadeuzagallo

Differential Revision: D2471253
2015-09-23 12:09:31 -07:00
Tadeu Zagallo 98378cab18 Add gluecode for systrace
Summary: @​public

Add gluecode to allow use to systrace as the backend of RCTProfile

Reviewed By: @jspahrsummers

Differential Revision: D2439181
2015-09-23 12:09:25 -07:00
rxb dcf245a9a2 Definable distance pagination for ScrollView
Summary: This is an enhancement for ScrollView that adds the ability to paginate based on a width other than the width of the ScrollView itself. This is a fairly common pattern used on apps like Facebook, App Store, and Twitter to scroll through a horizontal set of cards or icons:

![img_8726 2](https://cloud.githubusercontent.com/assets/451050/8017899/39f9f47c-0bd2-11e5-9c1d-889452f20cf7.PNG) ![img_8727 2](https://cloud.githubusercontent.com/assets/451050/8017898/39f962dc-0bd2-11e5-98b4-461ac0f7f21b.PNG)  ![img_8728 2](https://cloud.githubusercontent.com/assets/451050/8017900/39fd91a4-0bd2-11e5-8786-4cf0316295a0.PNG)

After trying to accomplish this only with JS, it appears that attempting to take over an in-progress native scroll animation with JS is always going to result in some amount of jankiness and jumping.

This pull request uses `scrollViewWillEndDragging` in RCTScrollView.m to adjust `targetContentOffset` based on two new optional props added to ScrollView. `snapToInterval` sets the multiple that the
Closes https://github.com/facebook/react-native/pull/1532

Reviewed By: @​svcscm, @​trunkagent

Differential Revision: D2443701

Pulled By: @vjeux
2015-09-23 11:47:25 -07:00
alvaromb b9ef384f74 Updated TouchableHighlight docs
Summary: ``onlyChild`` restriction is implemented in ``TouchableHighlight``, not ``TouchableOpacity``.
Closes https://github.com/facebook/react-native/pull/2542

Reviewed By: @​svcscm

Differential Revision: D2471539

Pulled By: @vjeux
2015-09-23 11:25:34 -07:00
Brent Vatne 118cf51522 Fix PanResponder example code
Summary: Fixes this:

![](http://url.brentvatne.ca/VwLF.png)
Closes https://github.com/facebook/react-native/pull/1464

Reviewed By: @​svcscm

Differential Revision: D2471541

Pulled By: @vjeux
2015-09-23 11:25:27 -07:00
Tadeu Zagallo 1ab650f958 Remove use of const from packager and add systrace internally
Reviewed By: @martinbigio

Differential Revision: D2471270
2015-09-23 10:56:31 -07:00
Amir Rosenfeld da284f6e36 stub Java QPL for OSS
Reviewed By: @mkonicek

Differential Revision: D2470258
2015-09-23 10:30:28 -07:00
Christopher Chedeau 393b6791a8 Delete ResponderExample.js
See https://github.com/facebook/react-native/pull/1743
2015-09-23 10:18:05 -07:00
Kyle Corbitt 1d9ba1ceb6 change native-modules link to work on gh-pages 2015-09-23 17:47:31 +01:00
Justin Spahr-Summers bcd2ef5dfc Improve RCTImageView resizing logic
Summary: @​public

It's less important to reload for downscaling than upscaling, so increase the threshold in that direction. Also, this now considers each dimension separately, and a big enough change either way should result in a reload.

Finally, this considers both the current image size and the inflight target size, so we don't reload if either is already good.

Reviewed By: @tadeuzagallo

Differential Revision: D2470911
2015-09-23 07:32:30 -07:00
Justin Spahr-Summers de85bcab0b Cancel previous calls to -[RCTImageView reloadImage] to prevent extra work
Reviewed By: @tadeuzagallo

Differential Revision: D2470902
2015-09-23 07:32:23 -07:00
Christopher Chedeau 75d0b904b9 Merge pull request #2609 from exponentjs/faster-ci-tests
[Travis] Use Xcode 7 image, remove brew update, install nvm directly
2015-09-23 07:25:20 -07:00
James Ide 3b68869fc8 Add scrollWithoutAnimationTo to Android
Summary: `ScrollView.scrollWithoutAnimationTo` is supported on iOS but not Android. This is an existing API, and this diff adds Android support.

Closes https://github.com/facebook/react-native/pull/2695

Reviewed By: @​svcscm

Differential Revision: D2452630

Pulled By: @mkonicek
2015-09-23 05:58:27 -07:00
Bret Johnson 5b0dd6432a Added a more explicit error message when ndk.dir / ANDROID_NDK is set,
Summary: but the NDK build command can't be found in that directory.   This
more explicit error now shows the full NDK path where it's looking
and (importantly) includes a hint that backslashes need to be escaped
on Windows for ndk.dir.   When I built on Windows the first time,
I didn't realize ndk.dir backslashes needed to be escaped and the
generic "not found" error made the root cause harder to track
down.   This change should help others that build on Windows & run into
the same.
Closes https://github.com/facebook/react-native/pull/2960

Reviewed By: @​svcscm

Differential Revision: D2470761

Pulled By: @kmagiera
2015-09-23 05:57:24 -07:00
James Ide 8a77aa60c3 [Travis] Use Xcode 7 image, remove brew update, install nvm directly
- Uses the Xcode 7 image
- The new image includes xctool 0.2.5 (current)
- Removes the `brew update` command, which needed to fetch a lot of data
- Disables the npm spinner before installing flow-bin
- Uses `$TMPDIR` instead of spinning up Node
2015-09-22 22:41:12 -07:00
Eric Jing Cai a31d3a9d4f updated ReactiveAndroid installation info 2015-09-22 22:22:03 -04:00
Martín Bigio a85884275d Temp dependency should be a dev one
Reviewed By: @vjeux

Differential Revision: D2468639
2015-09-22 18:24:26 -07:00
Amir Rosenfeld 8a638d8e58 move qpl to oss
Reviewed By: @mkonicek

Differential Revision: D2465929
2015-09-22 17:33:28 -07:00
Alex Coco 12a0045412 Fix typo in cloneWithRows comments
Summary: `s/informatoin/information/`
Closes https://github.com/facebook/react-native/pull/2532

Reviewed By: @​svcscm

Differential Revision: D2469067

Pulled By: @vjeux
2015-09-22 17:02:27 -07:00
James Ide b7efd0212f Merge pull request #2937 from unknownexception/patch-2
[Showcase] Add Hashley app
2015-09-22 15:52:12 -07:00
Amjad Masad 45ed000d4b Remove server error listener so that it throws
Summary: @​public
We swallow errors like it's nobody's business :(
Having an error handler that `reject`s after the promise has been resolved is a no-op. In node, if there is no `error` event handler then the error would throw.

So after we start listening and we want to resolve the promise, we remove the error listener so that we make sure errors actually throw.

Finally, I made the `uncaughtError` handler log `error.stack` so we can get an idea of what's going on.

Reviewed By: @martinbigio

Differential Revision: D2468472
2015-09-22 15:48:29 -07:00
Amjad Masad 30cca276fa Return concrete file paths to the client
Reviewed By: @martinbigio

Differential Revision: D2465182
2015-09-22 15:45:25 -07:00
Martín Bigio c4cb95f2d7 Add logging information when client's socket gets closed unexpetedly
Reviewed By: @amasad

Differential Revision: D2468293
2015-09-22 15:21:35 -07:00
Jan Kassens 9486642322 Prop routeMapper of Navigator.NavigationBar is required
Summary: The component will crash if the prop is not provided. This helps with a better
error message in the console output.
Closes https://github.com/facebook/react-native/pull/2894

Reviewed By: @​svcscm

Differential Revision: D2461752

Pulled By: @ericvicenti
2015-09-22 14:44:28 -07:00
Colin Parsons 972ae4c186 fix minor grammar and typo errors in comments
Summary: comments only. no code modified.
Closes https://github.com/facebook/react-native/pull/2038

Reviewed By: @​svcscm

Differential Revision: D2468021

Pulled By: @vjeux
2015-09-22 14:41:28 -07:00
Amjad Masad f39e3fe113 Simplify over-engineered Activity module
Summary: @​public
I've noticed that the logs can be sometimes misleading, as when an Activity ends it doesn't log immediatly. A sync `console.log` would log before it although the Acitivity should've finished before.

Turns out we wait before writing out the logs to the console. I don't see any reason for this. Looking at the `Activity` module it's over-engineered. This diff makes logging sync and simplfies the module.

Reviewed By: @martinbigio

Differential Revision: D2467922
2015-09-22 14:25:37 -07:00
Tamara Woodson 4447bff976 Fix minor grammatical error in documentation
Summary: No code changes; comments/documentation only.
Closes https://github.com/facebook/react-native/pull/2083

Reviewed By: @​svcscm

Differential Revision: D2468024

Pulled By: @vjeux
2015-09-22 14:25:25 -07:00
Christopher Chedeau f7ff980876 Merge pull request #1416 from dalinaum/fix-warning
[Cosmetic] Fix some lint warnings
2015-09-22 14:06:41 -07:00
Christopher Chedeau 48e042378d Merge pull request #2946 from vjeux/fix_animated_docs
Fix website with Animated
2015-09-22 14:00:52 -07:00
Joel Arvidsson 7f76f08a11 Better feature detection for FormData/FileReader/Blob
Summary: This PR bumps fetch to 0.9.0, the latest release and fixes broken feature detection originating in that self is not referring to `window.self` but an empty object. Assigning that object to window.self or GLOBAL won't work in the chrome dev tools because of CORS restrictions. This is a pragmatic solution but maybe not ideal.

Background to the problem can be read here: https://github.com/facebook/react-native/issues/2376
Closes https://github.com/facebook/react-native/pull/2587

Reviewed By: @​trunkagent, @​svcscm

Differential Revision: D2438341

Pulled By: @vjeux
2015-09-22 13:53:24 -07:00
Christopher Chedeau 69a4024c85 Fix lint warnings when adding a new js file
Summary: @​public
When we updated eslint, some of the rules have been renamed and are spamming everytime someone adds a new js file. It turns out that the rules that those have been deprecated to were already present in the current eslint config and enabled, so I just needed to remove them.

Reviewed By: @jingc

Differential Revision: D2467315
2015-09-22 13:05:43 -07:00
Christopher Chedeau 00ceec9def Fix website with Animated
Animated.js has been renamed (and moved) to AnimatedImplementation.js, so we need to update the path and add another translation rule.
2015-09-22 12:54:04 -07:00
Amjad Masad 7806c0875b Log exit code
Reviewed By: @martinbigio

Differential Revision: D2467457
2015-09-22 12:40:25 -07:00
Christoph Pojer cee01bef4f Don't transform node_modules in open source
Summary: We aren't ignoring node_modules so we apply our transform on *all of them*.

See https://github.com/facebook/react-native/pull/2942 and https://github.com/facebook/react-native/issues/2939

@​public

Reviewed By: @vjeux

Differential Revision: D2467324
2015-09-22 12:13:38 -07:00
Christopher Chedeau a50b4ea7b9 Initial web implementation
Summary: @​public

This diff does a couple of things:
- Move all the code in a src/ folder
- Move bezier.js in the Animated folder
- Rename Animated.js into AnimatedImplementation.js and adds two entry points: AnimatedReactNative.js and AnimatedWeb.js
- Implement very dumb polyfills for flattenStyle, Set and InteractionManager
- Import my work in progress demo.html file to make sure that the code is actually working.

Everything is not working correctly:
- It calls forceUpdate on every frame and doesn't use bindings because setNativeProps is not implemented
- None of the style: {transform} are working because React web doesn't know about the array notation for transform
- The demo need more work

Reviewed By: @sahrens

Differential Revision: D2464277
2015-09-22 11:58:37 -07:00
Martin Konicek c45be4d55a Test export to github
Reviewed By: @mkonicek

Differential Revision: D2467343

committer: Service User <svcscm@fb.com>
2015-09-22 11:34:27 -07:00
Yusef Napora 2f9bd1f62f App Extension support
Summary: This adds workarounds for the code that was preventing React from compiling when linked against an iOS App Extension target.

Some iOS APIs are unavailable to App Extensions, and Xcode's static analysis will catch attempts to use methods that have been flagged as unavailable.

React currently uses two APIs that are off limits to extensions: `[UIApplication sharedApplication]` and `[UIAlertView initWith ...]`.

This commit adds a helper function to `RCTUtils.[hm]` called `RCTRunningInAppExtension()`, which returns `YES` if, at runtime, it can be determined that we're running in an app extension (by checking whether the path to `[NSBundle mainBundle]` has the `"appex"` path extension).

It also adds a `RCTSharedApplication()` function, which will return `nil` if running in an App Extension. If running in an App, `RCTSharedApplication()` calls `sharedApplication` by calling `performSelector:` on the `UIApplication` class.  This passes the static analysis check, and, in my opinion, obeys the "spirit of th
Closes https://github.com/facebook/react-native/pull/1895

Reviewed By: @​svcscm

Differential Revision: D2224128

Pulled By: @nicklockwood
2015-09-22 10:46:26 -07:00
Martin Konicek 3f220f6b59 [ReactNative] Export latest Android changes 2015-09-22 18:36:21 +01:00
Ryan Anderson dee4ea8ea3 Add note about PNG files to Image static resources 2015-09-22 10:00:19 -07:00
Martín Bigio 833ca598bc Introduce react native CLI
Reviewed By: @frantic

Differential Revision: D2430522
2015-09-22 09:02:32 -07:00
Dmitry e56ec9da35 Add Hashley app to Showcase 2015-09-22 19:00:51 +05:00
Martin Konicek 71628638f6 Export latest Android changes 2015-09-22 11:15:50 +01:00
Martin Bigio daba14264c Remove node_modules dir early fail check
Reviewed By: @vjeux

Differential Revision: D2464127
2015-09-21 17:51:35 -07:00
Martín Bigio 37b5cd45e1 Add temp node dependency
Reviewed By: @vjeux

Differential Revision: D2445915
2015-09-21 17:49:37 -07:00
Christoph Pojer 24b0064eae Upgrade jest to 0.5.6
Reviewed By: @vjeux

Differential Revision: D2459297
2015-09-21 14:39:55 -07:00
Christoph Pojer d088750163 Fix tests + enable inline requires on react-native
Reviewed By: @sahrens, @vjeux

Differential Revision: D2456607
2015-09-21 14:39:44 -07:00
Martin Konicek 6b733bdcf1 Minor fixes in comments
Reviewed By: @mkonicek

Differential Revision: D2463595

committer: Service User <svcscm@fb.com>
2015-09-21 14:39:36 -07:00
Martin Bigio 8f5b2ccbe0 Log uncaught exceptions on the socket server
Reviewed By: @frantic

Differential Revision: D2462114
2015-09-21 12:08:29 -07:00
Jason Als f762a55abd Wrong function name
Summary: RippleAndroid is actually Ripple
Closes https://github.com/facebook/react-native/pull/2710

Reviewed By: @​svcscm

Differential Revision: D2452607

Pulled By: @mkonicek
2015-09-21 09:00:34 -07:00
Martin Konicek 86ff767268 [ReactNative] Fix typo in ReactInstanceManager.java 2015-09-21 16:01:52 +01:00
Aaron Chiu e665acca4b pull in github css-layout into fbobjc react native
Reviewed By: @vjeux

Differential Revision: D2448929
2015-09-20 20:35:29 -07:00
Pieter De Baets d94ed42e1c Enable Jest tests
Reviewed By: @amasad

Differential Revision: D2422290
2015-09-20 16:48:35 -07:00
Harry Moreno 7f067921a6 Fix Grammar
changed
`To make it simpler for to access your new functionality ...`

to
`To make it simpler to access your new functionality ...`
2015-09-20 19:30:51 -04:00
Harry Moreno 1edc3eb001 Fix typo
changed
`... for React Native and gis therefore enabled by default.`

to

`... for React Native and is therefore enabled by default.`
2015-09-20 19:28:36 -04:00
James Ide ddd6fe3fae Merge pull request #2898 from taydakov/patch-1
Fix misspelling
2015-09-20 15:04:04 -07:00
Lev Taydakov ecc79dc6f5 Fix misspelling 2015-09-20 13:48:27 -07:00
James Ide 95b6f88686 Merge pull request #2874 from dgellow/fix-doc-runningondeviceios
fix AppDelegate.m path
2015-09-19 17:14:10 -07:00
Christoph Pojer fa01b2e4cb Codemod tests to use top-level-requires
Reviewed By: @DmitrySoshnikov

Differential Revision: D2456250
2015-09-19 15:41:29 -07:00
Christoph Pojer 3fca7f4d7b inline requires + preprocessor updates
Reviewed By: @DmitrySoshnikov

Differential Revision: D2455903
2015-09-19 15:22:33 -07:00
dgellow 55c5dade57 fix AppDelegate.m path 2015-09-19 22:56:21 +02:00
Christopher Chedeau f802998599 Merge pull request #2857 from javache/fix-flow-config-again
Bump flow version
2015-09-18 19:35:05 -07:00
Pieter De Baets 64eb8741ee Bump flow version 2015-09-18 19:28:38 -07:00
Pieter De Baets c011274d01 Fix fbobjc ignoring timed-out
Reviewed By: @cpojer

Differential Revision: D2459512
2015-09-18 18:41:26 -07:00
Pieter De Baets 19067a8fbc Prevent setFrame:forView: being called for invalidated views
Reviewed By: @vjeux

Differential Revision: D2459295
2015-09-18 17:33:25 -07:00
DengYun 450cd5c406 Generate module name seperated by '/' on Windows.
Summary: I think packager on different platform should generate same output if possible. So packager should replace '\\' in module name with '/' on Windows.

Closes https://github.com/facebook/react-native/pull/2813

Reviewed By: @​svcscm

Differential Revision: D2458634

Pulled By: @martinbigio
2015-09-18 15:15:28 -07:00
Marc Horowitz a87ba4ab4c Prepare the bridge for C++
Reviewed By: @nicklockwood

Differential Revision: D2432291
2015-09-18 15:04:28 -07:00
Jeff Morrison 18a7e363b5 Deploy to fbobjc
Reviewed By: @gabelevi

Differential Revision: D2457704
2015-09-18 14:25:27 -07:00
Martin Konicek f1355f36f3 Update DevelopmentSetupAndroid.md 2015-09-18 20:53:06 +01:00
Christopher Chedeau 6bf58aa8aa Fix sync
Differential Revision: D2457857
2015-09-18 12:12:53 -07:00
Martin Konicek f6b97eaa91 Merge pull request #2809 from hzerica/master-pr-6
[CLI]let 'react-native bundle' support 'platform' option.
2015-09-18 20:04:40 +01:00
Felix Oghină 4eecef12c5 Merge pull request #2849 from httpNick/master
Updated comment in javascript to say the method name is 'show' instead of 'showText'
2015-09-18 19:04:47 +01:00
James Ide c552a721d4 Merge pull request #2850 from nkt/change-docs-structure
[Docs] Split iOS and Android docs into different categories
2015-09-18 11:00:18 -07:00
Nikita Gusakov e55b373a61 Split iOS and Android docs into different categories 2015-09-18 20:54:05 +03:00
Nick Duncan ae57b4a729 Updated comment in javascript to say the method name is \'show\' instead of \'showText\'. 2015-09-18 10:38:36 -07:00
Jeff Morrison 2bbdbc704d React native fixups
Reviewed By: @gabelevi

Differential Revision: D2456130
2015-09-18 10:36:24 -07:00
alantrrs c6495531fb Fix typo on example code
Summary: Closes https://github.com/facebook/react-native/pull/2828

Reviewed By: @​svcscm

Differential Revision: D2457233

Pulled By: @foghina
2015-09-18 10:32:32 -07:00
ChristianHersevoort b6cb0e1246 Fixed typo in TouchableNativeFeedback docs
Summary: Closes https://github.com/facebook/react-native/pull/2843

Reviewed By: @​svcscm

Differential Revision: D2457197

Pulled By: @foghina
2015-09-18 10:32:25 -07:00
Brent Vatne 2e98c1fd5f Merge pull request #2848 from sonnylazuardi/master
Showcase: New app "Ziliun"
2015-09-18 10:27:46 -07:00
Sonny Lazuardi f7af11a734 Showcase: New app "Ziliun" 2015-09-19 00:10:34 +07:00
Dave Miller 4af2501e8e Remove an existing UIAlertViews when invalidating the RCTAlertManager
Reviewed By: @nicklockwood

Differential Revision: D2456795
2015-09-18 08:45:27 -07:00
mqli f5409c1a51 Fixing the packager infinite loop on Windows
Summary: The issue here https://github.com/facebook/react-native/issues/2787

The root path '/' dosn't match windows root path
Closes https://github.com/facebook/react-native/pull/2789

Reviewed By: @​svcscm

Differential Revision: D2452718

Pulled By: @martinbigio
2015-09-18 06:05:22 -07:00
James Ide 4fd03ba21a Finish up the work to send through the error cookie
Summary: - Includes the error cookie with soft exceptions as well since they too can be updated (requires tiny Android change too)
- Passes the error cookie through instead of leaving it unused
Closes https://github.com/facebook/react-native/pull/2198

Reviewed By: @​svcscm

Differential Revision: D2455391

Pulled By: @sahrens
2015-09-17 18:15:27 -07:00
Hedger Wang 1fd27dae5e Fix crash on RC while toggling object status.
Reviewed By: @​chaceliang

Differential Revision: D2454891
2015-09-17 17:20:51 -07:00
Alexsander Akers 9a2d05d9b2 Move color processing to JS
Reviewed By: @vjeux

Differential Revision: D2346353
2015-09-17 17:20:45 -07:00
Felix Oghină 6078a4f865 add docs to BackAndroid so they show up in the website
Summary: Fix github issue #2777

@​public

Reviewed By: @andreicoman11

Differential Revision: D2452599
2015-09-17 17:20:32 -07:00
Christopher Chedeau 5745b8fb37 Bring back the sync tool to a good state
Differential Revision: D2448321
2015-09-17 17:19:51 -07:00
James Ide feb84e0345 Merge pull request #2817 from codejet/improve_gettingstarted
Fix tiny grammatical error
2015-09-17 13:25:11 -07:00
codejet a7906c9b7c Fix tiny grammatical error 2015-09-17 22:11:55 +02:00
DengYun 9e60d5788c Merge branch 'master' of github.com:facebook/react-native into master-pr-6 2015-09-18 01:02:56 +08:00
DengYun 302c89f912 let 'react-native bundle' support platform option.
react-native bundle --platform android --minify
2015-09-18 00:58:50 +08:00
Martin Konicek 27ab039b6a Export latest Android changes 2015-09-17 14:33:28 +01:00
Felix Oghină 3b4845f93c Merge pull request #2801 from corbt/back_button_android
handle back button press in JS
2015-09-17 14:21:32 +01:00
Kyle Corbitt 88add08c2e handle back button press in JS 2015-09-17 12:09:19 +01:00
Alexander Kotliarskyi a88a134b13 Merge pull request #2767 from foghina/dont_swallow
[cli] don't swallow require(local_cli) errors
2015-09-17 11:34:37 +01:00
James Ide f080577e07 Merge pull request #2788 from dsibiski/patch-2
[Docs][Android] Adds NDK download instructions
2015-09-16 21:56:12 -07:00
Dave Sibiski 96c05c5420 [Docs][Android] Adds NDK download instructions
Right now, as the NDK is required, let's guide people to the download & extraction page.
2015-09-16 22:47:36 -04:00
James Ide 5e46f4406a Merge pull request #2785 from sahat/patch-1
Update iOS .xcodeproj path
2015-09-16 18:31:18 -07:00
Sahat Yalkabov 365cdde1ef Update iOS .xcodeproj path 2015-09-16 18:26:28 -07:00
Christopher Chedeau c33ca92327 Fix shrinkwrap
Reviewed By: @cpojer

Differential Revision: D2449121
2015-09-16 16:20:26 -07:00
Hedger Wang bab9bfec3a Fix crash on RC while toggling object status.
Reviewed By: @​chaceliang

Differential Revision: D2446382
2015-09-16 15:35:35 -07:00
Martin Konicek 674abf1955 Flexbox docs
Summary: Documenting this as it wasn't obvious the defaults were different:
https://github.com/facebook/react-native/issues/2724

@​public

Reviewed By: @vjeux

Differential Revision: D2450283
2015-09-16 15:23:01 -07:00
James Ide 102b2030f9 Merge pull request #2779 from exponentjs/readme
[README] Add link to react-native tag on Stack Overflow
2015-09-16 15:02:02 -07:00
James Ide 20e8b82b34 [README] Add link to react-native tag on Stack Overflow
Raise some awareness of the tag and let people know they can help by answering qquestions and be altruistic and helpful.
2015-09-16 15:00:45 -07:00
Christopher Chedeau 36a8358ae7 Fix more tests
Summary: beeper node modules has a `return` statement outside of a function which doesn't parse. To fix it, we mock it. Also, setupEnvPolyfills is no longer being used.
Closes https://github.com/facebook/react-native/pull/2770

Reviewed By: @​svcscm

Differential Revision: D2448882

Pulled By: @vjeux
2015-09-16 13:05:30 -07:00
Martin Konicek b4b42f1ff5 Update KnownIssues.md 2015-09-16 19:54:49 +01:00
Martin Konicek a77b03d30d Update KnownIssues.md 2015-09-16 19:53:26 +01:00
Martin Konicek 32bb968bf0 Update KnownIssues.md 2015-09-16 19:50:28 +01:00
Martin Konicek 0962d8f33b Update KnownIssues.md 2015-09-16 19:49:06 +01:00
Christopher Chedeau c95028b1df Delete setupEnvPolyfills.js which is no longer being used 2015-09-16 11:36:02 -07:00
Christoph Pojer e056c628f9 Merge pull request #2548 from exponentjs/node-convergence-tests
[Node 4] Update .travis.yml to install Node 4.x
2015-09-16 11:19:58 -07:00
Christopher Chedeau aa768ddeb8 Bring back build status 2015-09-16 10:58:05 -07:00
facebook-github-bot-6 6277a88555 Restore unintended sync 2015-09-16 10:38:42 -07:00
facebook-github-bot-6 0d09f22dbf Get back 100% in sync with fb codebase 2015-09-16 10:30:53 -07:00
Nick Lockwood 0044b3c2c3 Added logic to detect text encoding for downloaded data
Summary: @​public

RCTNetworking currently relies on network responses to include an accurate text encoding, otherwise it is unable to convert the response data to text unless it's encoded as UTF8.

See: https://github.com/facebook/react-native/issues/1780#issuecomment-139334294 for details.

This diff makes use of a new feature in iOS8 to detect the encoding of the text authomatically

Reviewed By: @sahrens

Differential Revision: D2443446
2015-09-16 10:25:06 -07:00
Sebastian Markbage 890c2193d0 Kill old transform propTypes/attributes
Summary: I can't find anywhere these are being used by the bridge / native
views anymore. I don't think they work anymore. ART has a similar
API but uses a different code path.

We might as well clean this up. Makes it easier to reason about.

@​public

Reviewed By: @vjeux

Differential Revision: D2445353
2015-09-16 10:25:01 -07:00
Christoph Pojer 6e991cf96a Simplify jest config + update to jest 0.5.5 in react-native-github
Reviewed By: @DmitrySoshnikov

Differential Revision: D2445071
2015-09-16 10:24:58 -07:00
Christopher Chedeau fa042eda50 Update TransformPropTypes.js 2015-09-16 10:24:43 -07:00
Brent Vatne e2841c05b4 [README] Add note about supported operating systems 2015-09-16 09:51:41 -07:00
Brent Vatne c1c455ff8a [Docs] Update known issues to include shadows on Android 2015-09-16 09:41:34 -07:00
Felix Oghină 373c8777f6 [cli] don't swallow require(local_cli) errors 2015-09-16 17:17:13 +01:00
Felix Oghină f775bb0e05 [cli] update appcompat and gradle tools versions in the template 2015-09-16 16:30:31 +01:00
James Ide 0e03321551 Merge pull request #2750 from flipace/flipace-type-patch-1
fixed one typo
2015-09-16 00:05:38 -07:00
Patrick Neschkudla 77d06223e4 fixed one typo
gradle instead of gralde
2015-09-16 08:40:00 +02:00
Christopher Chedeau 7f8095a9cf Merge pull request #2746 from facebook/revert-2733-npmdebug
Revert "ignore npm-debug.log"
2015-09-15 21:11:20 -07:00
Christopher Chedeau 5cb40da942 Revert "ignore npm-debug.log" 2015-09-15 21:11:10 -07:00
Christopher Chedeau 3f86d42b81 Merge pull request #2725 from javache/fix-flow-config
Update generator's flow config
2015-09-15 21:08:55 -07:00
Christopher Chedeau 870e3b332e Merge pull request #2733 from eddiemonge/npmdebug
ignore npm-debug.log
2015-09-15 21:07:00 -07:00
Christopher Chedeau be966f5a25 Testing import script
Summary: Closes https://github.com/facebook/react-native/pull/2622

Reviewed By: @​trunkagent, @​svcscm

Differential Revision: D2427801

Pulled By: @vjeux
2015-09-15 18:25:31 -07:00
Christopher Chedeau 69d42f6fa6 Adding an empty line to test the import script
Summary: Closes https://github.com/facebook/react-native/pull/2739

Reviewed By: @​svcscm

Differential Revision: D2446411

Pulled By: @vjeux
2015-09-15 17:45:31 -07:00
Christopher Chedeau b39debf256 Reverting change 2015-09-15 17:20:07 -07:00
Christopher Chedeau ab8968b893 Adding an empty line to test the import script 2015-09-15 17:19:54 -07:00
Martín Bigio 41850a962f defeat race condition when replying to client
Summary: @​public

The server dies after 30 seconds if it has no jobs on it's queue. The problem is that the jobs counter gets decreased before returning the bytes to the client. As a consequence, it's possible that the server dies while it's returning the bytes to the client, or just after it finished returning the bytes to the client.

To avoid both issues lets move the counter decrease a few lines below and bump the timer to make sure we have time to fully write the bytes on the socket and let the client close the connection before the server dies.

Reviewed By: @vjeux

Differential Revision: D2445264
2015-09-15 16:25:25 -07:00
James Ide 72e89d82fe Merge pull request #2735 from dsibiski/patch-1
[Docs][Android] Adds "Running on Device" note
2015-09-15 15:12:14 -07:00
Dave Sibiski 5538011d30 [Docs][Android] Adds "Running on Device" note
Lots of people keep asking why they get a red screen telling them to connect to a dev server when using their device. Most have followed the "Getting Started" guide, but didn't notice the "Running on Device" section since it is kinda buried in the sidebar and isn't linked to from anywhere.
2015-09-15 18:09:32 -04:00
Mike Armstrong b434ae0f3d Better text descriptions for examples
Reviewed By: @mkonicek

Differential Revision: D2443908
2015-09-15 14:55:27 -07:00
Eddie Monge e7b0d3aa42 ignore npm-debug.log 2015-09-15 14:53:46 -07:00
Martin Konicek ffe20480e4 Merge pull request #2709 from negativetwelve/missing-platform
[iOS] Add missing platform param for the movies app

This has already been done internally but messed up with the Android export.
2015-09-15 22:23:03 +01:00
Nick Lockwood a3fab4a791 Merge pull request #2723 from javache/fix-sample-app-builds
Disable code stripping for DEBUG builds
2015-09-15 22:06:59 +01:00
James Ide fb59425262 [Node 4] Update .travis.yml to install Node 4.x + upgrade jest
Jest 0.5.2 ships with a fix for bound functions, which RN exercises. And with this Travis change, the automated tests will install Node 4.x with nvm before running.

Test Plan:`nvm use 4 && npm i && npm test`
See if Travis tests pass.
2015-09-15 13:59:03 -07:00
Eric Vicenti c962251900 Fix crash when touch terminates without active gesture
Summary: When the touch gets terminated, it is not guaranteed that there is an active gesture. It looks like this was causing crashes

@​public

Reviewed By: @​chaceliang

Differential Revision: D2441469
2015-09-15 13:12:05 -07:00
Spencer Ahrens 4dca06b238 UIManagerStatTracker
Reviewed By: @astreet

Differential Revision: D2442406
2015-09-15 13:11:58 -07:00
Christoph Pojer 178d2759fc Add node 4 to Vendor
Reviewed By: @amasad
2015-09-15 13:11:49 -07:00
Christopher Chedeau fce9abea52 Delete npm-debug.log
Kill this file, shouldn't be checked in.
2015-09-15 13:11:00 -07:00
Martin Konicek f2f7da6ccd Update README.md 2015-09-15 20:58:06 +01:00
Martin Konicek 8a56eab5fb Update README.md 2015-09-15 20:56:44 +01:00
Martin Konicek eea4ed391f Update README.md 2015-09-15 20:43:36 +01:00
Christoph Pojer c507391111 Add node 4 to Vendor
Reviewed By: @amasad
2015-09-15 11:35:59 -07:00
Param Aggarwal f35fbc2a14 Fixes consistent crash on iPad with iOS 8 while sharing.
Summary: (Fixes #1890, #2395, #2604.)

Usage:
```
ActionSheetIOS.showShareActionSheetWithOptions({
  anchor: React.findNodeHandle(this.refs.share),
  message: "React Native",
  url: "https://github.com/facebook/react-native"
}, (e)=>{ console.log('shared'); }, (e)=>{console.log('dismissed'); });
```

Screenshot on iPad with iOS 8:

<img width="324" alt="screen shot 2015-09-09 at 8 50 26 am" src="https://cloud.githubusercontent.com/assets/543981/9752590/df5cd324-56cf-11e5-892b-92a6c98f3d39.png">

If the `anchor` is not specified, it will centre the popup on screen without arrows:

![centered](https://cloud.githubusercontent.com/assets/543981/9752612/10c87c6a-56d0-11e5-8c59-fcbf64a36f9c.png)

Closes https://github.com/facebook/react-native/pull/2610

Reviewed By: @nicklockwood

Differential Revision: D2439533

Pulled By: @javache
2015-09-15 11:35:26 -07:00
Pieter De Baets 81c81501d5 Update generator's flow config 2015-09-15 11:20:24 -07:00
Nick Lockwood b450e36ef8 Fixed chrome debug persistence + crash
Reviewed By: @tadeuzagallo

Differential Revision: D2443181
2015-09-15 11:20:23 -07:00
Spencer Ahrens 07e6039b70 Add comments about nativeOnly props 2015-09-15 10:46:08 -07:00
Spencer Ahrens bb79d034d2 Add comments about nativeOnly props 2015-09-15 10:37:48 -07:00
Pieter De Baets 322807b664 Disable code stripping in SampleApp debug builds
Reviewed By: @nicklockwood, @sahrens

Differential Revision: D2443697
2015-09-15 10:35:28 -07:00
Pieter De Baets e7d833f2d9 Disable code stripping for DEBUG builds 2015-09-15 09:44:15 -07:00
Justin Spahr-Summers 6484173b88 Automatically start JSC profiling if enabled on last run
Summary: @​public

Using the saved state of the toggle button, this starts profiling automatically when the `RCTContextExecutor` is set up, if it was profiling before.

Reviewed By: @tadeuzagallo

Differential Revision: D2429026
2015-09-15 02:55:26 -07:00
Mark Miyashita 2892e5f4cf [iOS] Add missing platform to the sample Movies iOS app 2015-09-15 01:14:48 -07:00
Brent Vatne 4fd0a2de0d [Docs] Update known issues 2015-09-14 23:32:45 -07:00
James Ide a30df1c9af Merge pull request #2694 from Bhullnatik/patch-1
[website] missing semicolon in Java example.
2015-09-14 16:37:13 -07:00
Jimmy Mayoukou c153e9bbbf missing semicolon in Java example. 2015-09-15 01:32:50 +02:00
James Ide 1bf8971f26 Merge pull request #2546 from exponentjs/node-convergence-docs
[Docs] Update RN website docs to mention Node 4+ instead of io.js
2015-09-14 16:18:16 -07:00
James Ide f9f050e617 [Docs] Update RN website docs to mention Node 4+ instead of io.js
The io.js codebase has been rebranded as "Node.js", so moving forward everyone should install the latest version of Node. The name "io.js" is no longer.
2015-09-14 16:16:10 -07:00
Martin Konicek dbd82413c2 [website] Add Olivia's talk from @Scale to Videos 2015-09-15 00:03:05 +01:00
Brent Vatne d09fc4ac50 Merge pull request #2680 from paramaggarwal/patch-3
[Docs] Remove duplicate Android setup steps
2015-09-14 12:23:38 -07:00
Param Aggarwal 356e800004 [Docs] Remove duplicate Android setup steps 2015-09-15 00:25:59 +05:30
James Ide bda3873e50 Merge pull request #2674 from gubatron/master
[website] missing parenthesis in java example.
2015-09-14 11:31:39 -07:00
gubatron 7995f28a11 [website] missing parenthesis in java example. 2015-09-14 14:22:47 -04:00
Martin Konicek 42eb5464fd Release React Native for Android
This is an early release and there are several things that are known
not to work if you're porting your iOS app to Android.

See the Known Issues guide on the website.

We will work with the community to reach platform parity with iOS.
2015-09-14 18:13:39 +01:00
Peter Cottle c372dab213 Fix various issues with packager editor launcher
Summary: There are a few small bugs with the code that launches the editor from the packager:

* First of all, the filepath is not escaped which means tokens like `(` or spaces will mess up the process execution. Dropbox unfortunately decided to use spaces in its enterprise product, so I was getting this error:

![screen shot 2015-07-11 at 3 20 54 pm](https://cloud.githubusercontent.com/assets/1135007/8635748/186e7f2e-27ea-11e5-8058-1f4dabb79634.png)

* Next, the line number argument formatting was assumed to be in a specific format (`:%d`) which actually errors out vim and other editors.
* Lastly, the process was started synchronously but not attached to the stdin / stdout of the parent process. This means that only editors like mvim, sublime, and others would work since they spawn a new window. Editors like emacs, vi, nano, etc wouldn't work and instead just hang at the command line.

So I whipped up this diff to fix a number of these issues, demo here:
http://recordit.co/M6zwiUj7hp

The demo shows both
Closes https://github.com/facebook/react-native/pull/1957

Reviewed By: @vjeux, @pcottle

Differential Revision: D2420941

Pulled By: @frantic
2015-09-14 10:00:26 -07:00
Nick Lockwood 515d5a5f4b Added toggle items to dev menu
Reviewed By: @tadeuzagallo

Differential Revision: D2424595
2015-09-14 09:40:33 -07:00
Andrei Coman eb48759675 Add License headers to .js files
Differential Revision: D2438967

committer: Service User <svcscm@fb.com>
2015-09-14 07:40:31 -07:00
Martin Konicek c51bfdc50c Update README.md 2015-09-14 13:56:39 +01:00
Param Aggarwal b998e5a7b7 Use getters and setters
Summary: As per discussion in #2423 - possible fix for crash. (cc: @​javache)

Please share feedback regarding the PR, we are going to be using this diff in production to see if it fixes the crashes we are seeing.

(fixes #2423)
Closes https://github.com/facebook/react-native/pull/2494

Reviewed By: @javache

Differential Revision: D2433515

Pulled By: @nicklockwood
2015-09-13 11:10:29 -07:00
James Ide 9d36fc6a71 Merge pull request #2654 from browniefed/fixLinkedDocumentation
Add back Transform/Flexbox links to style documentation
2015-09-12 15:55:20 -07:00
Martin Konicek df288564c6 Fix Flow annotations in ScrollViewSimpleExample
Reviewed By: @jingc

Differential Revision: D2437502
2015-09-12 15:35:27 -07:00
Jason Brown 627d5a8e7e Fix documentation by adding propTypeCompositionHandler 2015-09-12 09:53:01 -07:00
James Ide f4172dea3d Merge pull request #2647 from ericvera/ericvera-fix-test
Update Testing.md with pre-processing information
2015-09-11 22:22:23 -07:00
ericvera f88fe71ee6 Update Testing.md with pre-processing information
With the added information a react-native developer will be able to run jest tests without errors.
2015-09-11 21:56:45 -07:00
Martin Konicek f1cf322c9e Fix blacklist
Reviewed By: @amasad

Differential Revision: D2432196
2015-09-11 17:01:43 -07:00
Martin Konicek 56f77ec6ee Tweak debug menu labels
Reviewed By: @kmagiera

Differential Revision: D2430890
2015-09-11 17:01:40 -07:00
Gabe Levi c03dad19e7 Deploy 0.15.0
Reviewed By: @jeffmo

Differential Revision: D2421222
2015-09-11 17:01:38 -07:00
Amjad Masad 1bf7887322 Refactor DependencyResolver into request/response
Reviewed By: @martinbigio

Differential Revision: D2425842
2015-09-11 17:01:35 -07:00
Christopher Chedeau e9e3cd304b Revert internal files that didn't get pulled internally first
See all the packager files in this commit:
https://github.com/facebook/react-native/commit/f83675d1915b5e77638c117c82f8641cea367ffe#diff-7b5603771e245e5b0cd7223277db3db4

cc @foghina
2015-09-11 16:59:28 -07:00
Martin Konicek 169da2a1b7 Add simple ScrollView example to UI Explorer
Reviewed By: @foghina

Differential Revision: D2434588
2015-09-11 14:10:30 -07:00
Amjad Masad d5bce33f69 Fix server tests
Summary: @​public
Invoking an extra promise caused failures in the promise-based tests. This fixes them.

Reviewed By: @vjeux

Differential Revision: D2432431
2015-09-11 13:30:33 -07:00
Brent Vatne 1a0b6c8c0d Merge pull request #2640 from liubko/showcase
Showcase: add 'FastPaper' app
2015-09-11 09:59:01 -07:00
Dorota Kapturkiewicz d7ee28e079 fix ToastAndroid
Differential Revision: D2433671

committer: Service User <svcscm@fb.com>
2015-09-11 07:50:29 -07:00
Nick Lockwood 789a07c5a4 Added code to sync __DEV__ value to RCT_DEBUG
Summary: @​public

When using bundled JS the `__DEV__` flag is set to false by default, which can cause errors to be missed if used for testing. This diff adds logic to override the `__DEV__` value when running in RCT_DEBUG configuration, so that the JS debug checks are enabled.

Reviewed By: @tadeuzagallo

Differential Revision: D2429533
2015-09-11 07:15:27 -07:00
Tadeu Zagallo 20cd649553 Automatically save and convert JavaScript profile to chrome format
Summary: @​public

Migrate scripts to open source and add new route on the packager
to directly convert profiler outputs to a devtools compatible format.

Reviewed By: @jspahrsummers

Differential Revision: D2425740
2015-09-11 06:40:26 -07:00
Liubko 6a9838a748 Showcase: add 'FastPaper' app 2015-09-11 16:17:56 +03:00
Andrei Coman 360d04e9c8 Add Timer example
Differential Revision: D2433417

committer: Service User <svcscm@fb.com>
2015-09-11 02:00:31 -07:00
Xiqi Liu b45f89e69f Add Jest test to check dependency version matches.
Reviewed By: @vjeux

Differential Revision: D2396634
2015-09-11 01:25:27 -07:00
Yamill Vallecillo f8f75ff612 Navigator.NavigationBar Landscape Fix
Summary: NavigationBar items are fixed to Portrait when Device is in Landscape.

This supplements that fix by removing the `width` properties and just using `left` and `right` positioning respectively.

<strong>Before:</strong>

![ios simulator screen shot sep 8 2015 1 27 02 pm](https://cloud.githubusercontent.com/assets/755943/9743817/3e6b858a-5636-11e5-80e8-81e62b46c46e.png)

<strong>After:</strong>

![ios simulator screen shot sep 8 2015 1 29 21 pm](https://cloud.githubusercontent.com/assets/755943/9743822/43e7d4b4-5636-11e5-8e1c-9f13bdc492b2.png)

Closes https://github.com/facebook/react-native/pull/2606

Reviewed By: @vjeux

Differential Revision: D2426942

Pulled By: @ericvicenti
2015-09-10 14:00:26 -07:00
Felix Oghină 2a6a841ba9 Merge pull request #2633 from facebook/remove_console_logs
[cli] fix spurious console.log output generated by yeoman during tests
2015-09-10 19:10:23 +01:00
Nick Lockwood 33036b1f01 Fixed DatePickerIOS onChange event
Reviewed By: @javache

Differential Revision: D2429598
2015-09-10 10:10:26 -07:00
Christopher Chedeau e2ffac28e4 A deep dependency of yeoman just spams the console.log with giant json. This diff silences console.log around the require to kill them 2015-09-10 09:48:15 -07:00
Tadeu Zagallo af05af7125 Update json generation code and save to file
Summary: @​public

* Change the JSON generation and remove the dependency on YAJL since it had a
128 depth limit
* Enable the profiler bytecode generation to fix missing frames
* Save the output to a file on the tmp dir instead of outputting it to the console

Reviewed By: @jspahrsummers

Differential Revision: D2420754
2015-09-10 09:10:23 -07:00
Dorota Kapturkiewicz 2a34239c17 move AccessibilityExample to oss
Differential Revision: D2424931
2015-09-10 08:40:36 -07:00
Alexander Kotliarskyi 65c4088340 Merge pull request #2573 from nsimmons/cli/add_version_argument
[CLI] Add version argument
2015-09-10 16:23:04 +01:00
Pieter De Baets 5ac1c26ddd Merge pull request #2630 from javache/fix-e2e
Use new packager URL in e2e test
2015-09-10 15:13:07 +01:00
Pieter De Baets bc69787576 Use new packager URL in e2e test 2015-09-10 14:41:16 +01:00
Nick Lockwood 19e421a8dc Fixed segmented control
Reviewed By: @javache

Differential Revision: D2428947
2015-09-10 04:50:24 -07:00
Bill Fisher 493cb35966 Fix flow typing of TimingAnimationConfig
Summary: @​public
Make the flow type of TimingAnimationConfig and TimingAnimation the same as SpringAnimationConfig and SpringAnimation.
This is a more accurate flow type as both are multiplexed through maybeVectorAnim().

Reviewed By: @sahrens

Differential Revision: D2410166
2015-09-09 23:55:30 -07:00
Brent Vatne ac9471f2cd Merge pull request #2626 from brentvatne/fix-getting-started-project-path-ios
[Docs] xcodeproj for new projects is now in iOS/
2015-09-09 21:10:15 -07:00
Brent Vatne ee1cbf4c98 [Docs] xcodeproj for new projects is now in iOS/ 2015-09-09 21:08:58 -07:00
James Ide cbed87a74e Merge pull request #2619 from JonathanHayward/patch-1
Specify missing step
2015-09-09 16:49:22 -07:00
Amjad Masad 9b27116798 Client should throw when server unexpectedly closes the connection
Reviewed By: @natthu

Differential Revision: D2425357
2015-09-09 16:35:25 -07:00
Amjad Masad 3cfac35fd8 Handle EEXIST error when starting the server
Reviewed By: @cpojer

Differential Revision: D2426373
2015-09-09 16:10:33 -07:00
Amjad Masad 3ee65225be Protect against races in deleting corrupt cache
Reviewed By: @cpojer

Differential Revision: D2426450
2015-09-09 16:05:39 -07:00
JonathanHayward b7f5b8c98f Update GettingStarted.md 2015-09-09 17:12:58 -05:00
Amjad Masad cd4e8a9fae Pass in platform argument in offline building
Summary: how did this ever work?
All build jobs must pass in the platform argument.
This also turns the "platform" argument into a required one.

I added a task to infer the platform argument from the filename here: t8306875

Reviewed By: @martinbigio

Differential Revision: D2425114
2015-09-09 14:45:58 -07:00
JonathanHayward 6eaa789ec0 Specify missing step
The instructions as given did not work. The reason they did not work was that, while my .bashrc was made aware of nvm, my running bash process did not know about nvm until I ran ". ~/bashrc", after which things worked as expected.
2015-09-09 15:59:22 -05:00
Pieter De Baets 89b7bd4e5e Remove IntegrationTests.m reference
Summary: In https://github.com/facebook/react-native/commit/7a6f116ed49b9671a2245aff878c1126f4798e7b, IntegrationsTests.m got renamed but for some reason the xcode project still referenced that file and broke the tests.

I opened xcode, found the red file, deleted it and saved. Tests are now passing again :)

I already landed it: https://github.com/facebook/react-native/commit/f9b2709c8d39b1ec6f729d315855f05d427ab75b

Reviewed By: @vjeux

Differential Revision: D2424063
2015-09-09 11:25:30 -07:00
Christopher Chedeau d3800c6615 Fix declareOpts test
Summary: When we updated joi, the error message was changed. I removed the content to prevent similar errors in the future.

Reviewed By: @amasad

Differential Revision: D2424048
2015-09-09 11:25:28 -07:00
Alex Kotliarskyi ce47e56b7b Attach platform to asset url
Summary: Depends on D2420548

Reviewed By: @martinbigio

Differential Revision: D2421696
2015-09-09 11:25:26 -07:00
Tadeu Zagallo c4305fe9af Move systrace helper out of the packager
Summary: @​public

The profiler helper shouldn't live inside the packager itself, move
it to the packager.js file with other middlewares.

Reviewed By: @martinbigio

Differential Revision: D2424878
2015-09-09 11:25:24 -07:00
Dorota Kapturkiewicz 4a4f087a9c move Toast to oss
Summary: Importing JS changes to fbobjc which should be maintained as a source of truth
for React Native JS files. For more details about this change, please refer to
the original diff in fbandroid repo: D2410797

Reviewed By: @andreicoman11

Differential Revision: D2424679
2015-09-09 11:25:22 -07:00
Alex Kotliarskyi d82af3cb92 Fix "global-strict" lint
Reviewed By: @vjeux

Differential Revision: D2420561
2015-09-09 11:25:18 -07:00
Christopher Chedeau c71c940803 Revert "unbreak tests"
This reverts commit f9b2709c8d.
2015-09-09 11:10:50 -07:00
Christopher Chedeau 635b15b454 Testing new export script
Differential Revision: D2420548
2015-09-09 10:01:29 -07:00
Christopher Chedeau 1c4be5e1f2 Merge pull request #2608 from facebook/Update_Tue_8_Sep
Update tue 8 sep
2015-09-08 20:14:35 -07:00
Christopher Chedeau f9b2709c8d unbreak tests 2015-09-08 20:00:42 -07:00
Christopher Chedeau a9607901e2 Updates from Tue 8 Sep 2015-09-08 16:54:44 -07:00
Nick Simmons 4f89c61bd8 [CLI] Add version argument 2015-09-08 17:48:16 -04:00
Alex Kotliarskyi fb7d7d6880 [ReactNative] Pipe platform option all the way to the asset server 2015-09-08 11:37:38 -08:00
Christopher Chedeau c0488c71d3 [npm] Fix connect/
Summary:
We had an old version of connect internally and a new version on github. Unfortunately, internally we picked up the od one and externally we picked the new one. This diff removes the internal version and downgrades the external version. It also updates package.json to make sure we have the same versions that are installed, somehow they mismatch!?
2015-09-08 11:31:52 -08:00
Chace Liang c971aae676 [RN][Accessibility] typo in onAccessibilityTap 2015-09-08 10:40:28 -08:00
Nacho Lopez Sais 551815c1cf Adapted changes from android repo for TextInput numberOfLines 2015-09-08 10:25:13 -08:00
Nick Lockwood 56d25bbbdd Moved CameraRoll-related classes into CameraRoll folder instead of Image
Summary:
The CameraRoll-related APIs were mixed in with the Image classes due to legacy coupling issues. Now that the APIs have been decoupled, it makes more sense for the CameraRoll classes to live in a separate library.

This will be a breaking change for apps using the CameraRoll or related APIs. Fix is to add the RCTCameraRoll lib to your project.
2015-09-08 09:48:19 -08:00
Ben Alpert 93b9329b75 [ReactNative] Enable displayName transformer in open source 2015-09-08 08:11:42 -08:00
Tadeu Zagallo f9ca103ecb [ReactNative][Profiler] Update OSS build script to work with new makefile
Summary:
There was some recent changes to the Makefile, but the open source
build phase script wasn't update. Update it to copy the files to
the right location.
2015-09-08 05:59:07 -08:00
James Ide f61ea911b5 [Profiler] Fix makefile target
Summary:
Simple rename.

Closes https://github.com/facebook/react-native/pull/2595
Github Author: James Ide <ide@jameside.com>
2015-09-08 05:59:07 -08:00
Martín Bigio 817bf1f50f [react-packager] Bump ipc timeout 2015-09-08 04:50:25 -08:00
Nick Lockwood 2061899224 Fixed networker crash due to threading bug 2015-09-08 04:03:04 -08:00
Nick Lockwood ad0c97f25b Fixed PickerIOS onChange event 2015-09-08 03:34:33 -08:00
Amjad Masad 8586f89322 [react-packager] Update sane to fix bug and add new features
Summary:
Updates sane to get:

1. Fix error plumbing (surface watchman errors correctly)
2. Better capability testing
3. Use watchman's globbing
4. Other minor fixes
2015-09-08 01:25:29 -08:00
James Ide b9049ee96d [README] Added note about squashing commits to the Contributing page 2015-09-07 23:32:31 -07:00
Amjad Masad bceab6c1c2 [react-packager] Allow a longer startup time before the server dies
Summary:
1. When the server starts up, it only gives itself 30 second to live before receiving any connections/jobs
2. There is a startup cost with starting the server and handshaking
3. The server dies before the client has a chance to connect to it

Solution:
1. While the server should die pretty fast after it's done it's work, we should have a longer timeout for starting it
2. I also added accompanying server logs with client connection errors
2015-09-07 10:31:49 -08:00
James Ide 68a00759e4 Merge pull request #2581 from tylermcginnis/patch-6
Add Spero for Cancer to React Native showcase
2015-09-07 10:36:36 -07:00
Tyler McGinnis a53b77949f Alphabetize list. 2015-09-07 18:24:03 +01:00
Tyler McGinnis 9023e19dc3 Add Spero for Cancer to React Native showcase 2015-09-07 10:40:24 +01:00
Martín Bigio 59b9dc8829 [react-packager] Add command line option to reset cache on OSS 2015-09-07 01:16:44 -08:00
James Ide 8b84ccb95b Merge pull request #2563 from nsimmons/react-native-cli/updated_intro_to_sinopia
[CLI] Updated contributing guide to deal with Sinopia publishing issue
2015-09-06 21:29:16 -07:00
Spencer Ahrens 1f6f60582d [RN] Prevent reloading library photos on every animation frame 2015-09-06 17:16:10 -08:00
James Ide 319fa06afb [README] Intro section that links to website 2015-09-06 17:22:14 -07:00
James Ide 7361f537c9 [README] Added a table of contents and some small rewording
The table of contents should make it easier to browse the README.
2015-09-06 16:45:35 -07:00
James Ide ab28625daa Merge pull request #2574 from exponentjs/new-readme
[README] New README co-authored with @brentvatne
2015-09-06 16:37:16 -07:00
James Ide e5d4bfaf31 [README] New README co-authored with @brentvatne
This new README talks more about the react-native project, repository, and contribution process (the old one was more focused on technical details). @brentvatne and I want people to get help and file issues & PRs more effectively. Here's a first draft that we believe helps with that.
2015-09-06 16:30:29 -07:00
Brent Vatne b81aa51ee5 Merge pull request #2566 from steve-ng/master
Showcase: New app "SG Toto 4d"
2015-09-05 19:32:58 -07:00
Steve f4a1382cd8 Showcase: New app "SG Toto 4d" 2015-09-06 10:10:07 +08:00
Brent Vatne eef6f96d49 Merge pull request #2565 from vishnevskiy/master
Showcase: New app "Discord"
2015-09-05 18:37:57 -07:00
Stanislav Vishnevskiy 3c1235f377 Showcase: New app "Discord" 2015-09-05 17:55:50 -07:00
Nick Simmons dca6135d35 updated contributing guide sinopia section to deal with use auth issue 2015-09-05 14:39:57 -04:00
James Ide f170939c70 Merge pull request #2561 from PhilippKrone/yolociShowcase
Showcase: New app "Yoloci"
2015-09-05 03:20:51 -07:00
philipp.krone 1f4d52e4f2 Showcase: New app "Yoloci" 2015-09-05 12:18:06 +02:00
Campbell Glass 97a54b5569 [mobilehome] Working Mobile Home GraphQL for android 2015-09-04 18:35:35 -08:00
Gabe Levi 874f39bf7f [Flow] Clean up react-native for Flow v0.15.0 2015-09-04 16:51:18 -08:00
Amjad Masad 936e1d4a11 [react-packager] Support platform extensions in image requires
Summary:
We don't currently support platform extensions in asset modules.
This adds supports for it:

```
require('./a.png');
```

Will require 'a.ios.png' if it exists and 'a.png' if it doesn't.
2015-09-04 15:17:14 -08:00
Christopher Chedeau 8831bb10a1 [npm] Upgrade all the modules to their latest version 2015-09-04 14:48:23 -08:00
Tadeu Zagallo 90409770c9 [RectNative][Packager] Cache minification result
Summary:
The packager just cached the result of the bundle, but would minify
it on every request. Change it to cache the minification result.
2015-09-04 12:22:50 -08:00
Tadeu Zagallo c593504910 [ReactNative] Add RCTJSCProfiler to internal apps 2015-09-04 10:47:56 -08:00
Pieter De Baets 1d04a58821 Correct references to unexistent SnapshotTestManager to TestModule 2015-09-04 08:16:00 -08:00
Tadeu Zagallo b9f12056e9 [ReactNative] Update uglify-js
Summary:
Uglify had already been updated, but was accidentally changed
back to the previous version. Update it again.

@allow-crlf-text
2015-09-04 07:23:01 -08:00
Alexey Lang bbeaac5d3b Automatically adjust content inset after view controller did layout subviews 2015-09-04 07:00:21 -08:00
Nick Lockwood bb5522582d Fixed layout animation crash 2015-09-04 05:34:46 -08:00
Nick Lockwood e4110456ab Changed RCTImageLoader to always return a UIImage
Summary:
GIF images are currently loaded as a CAKeyframeAnimation, however returning this animation directly from RCTImageLoader was dangerous, as any code that expected a UIImage would crash.

This diff changes RCTGIFImageLoader to return a UIImage of the first frame, with the keyframe animation attached as an associated object. This way, code that is not expecting an animation will still work correctly.
2015-09-04 05:10:34 -08:00
Aaron Chiu 3c4adeb2e7 [ReactNative][SyncDiff] Hook in the Dialog.onDismiss to JS 2015-09-04 04:09:25 -08:00
Tadeu Zagallo d316586e7d Merge pull request #2404 from ide/xcode64
[Travis] Update CI to run with Xcode 6.4
2015-09-04 12:59:52 +01:00
Tj 58661978a7 [RCTDevLoadingView] Add ability to disable during development.
Summary:
I'd like this ability as this has a tendency to get in the way of some of the more complex UI pieces I have. Disabling RCT_DEV entirely is too much for me.
Closes https://github.com/facebook/react-native/pull/2451
Github Author: Tj <tfallon@mail.depaul.edu>
2015-09-04 03:46:06 -08:00
Pieter De Baets 7a6f116ed4 Fix React Native test configuration 2015-09-04 03:30:36 -08:00
James Ide 3f4c7e40c6 [Bridge] Consistently post "DidFailToLoad" notification when there's an error
Summary:
Previously the bridge sometimes never fired RCTJavaScriptDidLoadNotification or RCTJavaScriptDidFailToLoadNotification if there was an error (for example, if the source code loaded but we couldn't inject the JSON config). This diff moves the error handling into a method called `stopLoadingWithError` that the bridge can call whenever there is an error.

Also if the script failed to load, the BatchedBridge still called `executeSourceCode`. With this diff the `_loading` flag is set to NO when the script fails to load, and `executeSourceCode` returns immediately when `_loading` is false. This way the bridge does not try to execute JS when there is a loading error.
Closes https://github.com/facebook/react-native/pull/2520
Github Author: James Ide <ide@jameside.com>
2015-09-04 03:28:51 -08:00
Pieter De Baets 9b1f6c9e30 Make RCTTestRunner wait for JS context to deallocate 2015-09-04 03:24:16 -08:00
Pieter De Baets 44fec06891 Fix example apps to use new packager paths 2015-09-04 02:40:41 -08:00
James Ide 1b0da33b47 [Travis] Update CI to run with Xcode 6.4
Use Xcode 6.4 instead of Travis' beta support for 6.3.
2015-09-04 02:39:37 -07:00
Spencer Ahrens cc1a9fa3f3 [RN] Document Animated.js 2015-09-03 19:25:41 -08:00
Spencer Ahrens 304989e3b8 Merge pull request #2541 from sahrens/Updates_from_Thu_Sep_3rd
Updates from Thu September 3rd
2015-09-03 17:51:41 -07:00
Amjad Masad 54f91bd951 [react-packager] Socket Server should not die while there active connections
Summary:
Saw an issue with a build because of an ENONT error: https://fb.facebook.com/groups/716936458354972/permalink/923628747685741/

My hypothesis:

1. We issue a ping to the socket (in SocketInterface/index.js) a decides if the available socket is alive
2. We see that it's alive but by the time we actually connect to it the server would've died

Solution:

1. The server shouldn't die as long as there are clients connected to it (currently it only stay alive as long as there are jobs)
2. The "ping" should only disconnect once the client is connected
3. Finally, have a better error message than ENOENT
2015-09-03 14:48:19 -08:00
Nick Lockwood e0505fe43e Added missing init override to RCTRootView 2015-09-03 13:10:06 -08:00
Spencer Ahrens fdeb6a842a [RN] New AnimationExample 2015-09-03 12:52:56 -08:00
Chace Liang 836e4c03fc [RN][Accessibility] Expose accessibilityTraits and accessibilityComponentType props to Touchable* component 2015-09-03 12:16:21 -08:00
Tadeu Zagallo 7bb0ff535c [ReactNative][Packager] Fix source maps for minified sources
Summary:
The packager was ignoring minification for source map requests.
2015-09-03 12:01:57 -08:00
Spencer Ahrens d7b13fb32b Updates from Thu Sep 3rd. 2015-09-03 12:55:40 -07:00
Spencer Ahrens 19f062d23c Merge pull request #2540 from sahrens/animatedDocGen
[autodocs] add doc blocks to more things
2015-09-03 12:31:17 -07:00
James Ide 293d2924c7 Merge pull request #2537 from dizlexik/patch-1
Fix broken link in Animations.md
2015-09-03 12:16:39 -07:00
Spencer Ahrens dfdef9a02a [autodocs] add doc blocks to more things 2015-09-03 11:53:20 -07:00
Joe Lutz b572a6b874 Fix broken link in Animations.md 2015-09-03 12:15:30 -05:00
Tadeu Zagallo 200fa6debc [ReactNative] Bump node_modules and add npm-shrinkwrap 2015-09-03 06:18:13 -08:00
Alex Akers 8187d1f0ec Update image loader plugins 2015-09-03 06:06:19 -08:00
Nick Lockwood aa62a5e4e0 Send layout events on shadow queue
Summary:
We currently wait until after views have been updated on the main thread before sending layout events. This means that any code that relies on those events to update the UI will lag the atual layout by at least one frame.

This changes the RCTUIManager to send the event immediately after layout has occured on the shadow thread. This noticably improves the respinsiveness of the layout example in UIExplorer, which now updates the dimension labels immediately instead of waiting until after the layout animation has completed.
2015-09-03 03:42:26 -08:00
Oliver (Cunpu) Bo f28255ea3e Support "file://" in RCTImageLoader 2015-09-02 16:37:33 -08:00
James Ide be6a3dcb75 Merge pull request #2533 from danscan/patch-1
Add "Tabtor Parent" insights app to showcase.
2015-09-02 17:08:38 -07:00
Dan Scanlon 3f0a936e1c Add "Tabtor Parent" insights app to showcase. 2015-09-02 19:51:23 -04:00
Amjad Masad 62f9059f85 [react-packager] Sourcemap url should include the same args as the bundle url
Summary:
Sourcemap urls were generated as just the pathname (no options) which meant that they generated source for the wrong bundle.

Even worse, there exists a race condition when multiple request to the same bundle has different types of paltform arguments (in this case one could be 'ios' and the other is undefined). The fix will this will come later as it's more involved -- will need to refactor the dependency resolver to have a per-request state.
2015-09-02 15:34:54 -08:00
James Ide ddb43bc9bf Merge pull request #2531 from quelledanielle/patch-1
Fix typo in LinkingLibraries.md
2015-09-02 16:19:15 -07:00
Alex Kotliarskyi c069035479 [React Native] Bring back .sourceURL 2015-09-02 14:12:48 -08:00
Danielle Pham 22845b56f0 Fix typo in LinkingLibraries.md
you => your
2015-09-02 18:09:12 -04:00
Tadeu Zagallo b92efd1a2f Merge pull request #2398 from ide/iojs-3-deps
[npm] Update to stacktrace-parser@0.1.3 and ws@0.8.0 to satisfy io.js 3 / Node 4
2015-09-02 22:28:44 +01:00
James Ide 7f65971761 [npm] Update to stacktrace-parser@0.1.3 and ws@0.8.0 to satisfy io.js 3 / Node 4
Summary:
The previous version of stacktrace-parser 0.1.2 had an line in its package.json file that required Node <= 2.x. That line was removed, so it no longer warns on io.js 3.x or Node 4.x.

Similarly, ws 0.8.0 was published with support for the new V8, so it compiles with io.js 3.x and therefore should work with Node 4.x.

Updated the Travis file as well to run on io.js 3.x.

Fixes #2258, #2455

Closes https://github.com/facebook/react-native/pull/2398
Github Author: James Ide <ide@jameside.com>
2015-09-02 11:20:56 -08:00
Alex Akers e092c61bac Add KeyboardAvoidingView 2015-09-02 09:17:20 -08:00
Alex Akers 36444a65c7 Add pluggable image processing system 2015-09-02 08:31:34 -08:00
Tadeu Zagallo eb9a9395ac [ReactNative][JSCProfiler] Cleanup make file and make targets cacheable
Summary:
The makefile for the JSCLegacyProfiler was really messy, clean it up a bit,
remove duplicate code, and make targets be actual files rather than dummy targets
so it can actually cache things instead of re-downloading everything every time.
2015-09-02 08:11:42 -08:00
Nick Lockwood 848839858b Added mechanism for directly mapping JS event handlers to blocks
Summary:
Currently, the system for mapping JS event handlers to blocks is quite clean on the JS side, but is clunky on the native side. The event property is passed as a boolean, which can then be checked by the native side, and if true, the native side is supposed to send an event via the event dispatcher.

This diff adds the facility to declare the property as a block instead. This means that the event side can simply call the block, and it will automatically send the event. Because the blocks for bubbling and direct events are named differently, we can also use this to generate the event registration data and get rid of the arrays of event names.

The name of the event is inferred from the property name, which means that the property for an event called "load" must be called `onLoad` or the mapping won't work. This can be optionally remapped to a different property name on the view itself if necessary, e.g.

  RCT_REMAP_VIEW_PROPERTY(onLoad, loadEventBlock, RCTDirectEventBlock)

If you don't want to use this mechanism then for now it is still possible to declare the property as a BOOL instead and use the old mechanism (this approach is now deprecated however, and may eventually be removed altogether).
2015-09-02 06:11:24 -08:00
Spencer Ahrens 4379aa00de [RN] Use default param for elastic bounciness 2015-09-01 20:38:50 -08:00
Amjad Masad b17b328aed [react-packager] Fix cache issues 2015-09-01 16:43:17 -08:00
Spencer Ahrens 2fc8ca01f9 Merge pull request #2517 from sahrens/animatedDocGen
[Docs] Expand API parsing and rendering
2015-09-01 14:15:12 -07:00
Spencer Ahrens 126928b0b4 [Docs] Expand API parsing and rendering
The `Animated` module exposes a lot of functionality, including internal
classes. This diff extracts properties and classes from modules and renders them
recursively.

This also adds `Animated` to the autogen docs now that they more capable,
although it needs way more docblocks and such which will come later.
2015-09-01 14:14:47 -07:00
James Ide 514efd17d3 [npm] Update to stacktrace-parser@0.1.3 and ws@0.8.0 to satisfy io.js 3 / Node 4
The previous version of stacktrace-parser 0.1.2 had an line in its package.json file that required Node <= 2.x. That line was removed, so it no longer warns on io.js 3.x or Node 4.x.

Similarly, ws 0.8.0 was published with support for the new V8, so it compiles with io.js 3.x and therefore should work with Node 4.x.

Updated the Travis file as well to run on io.js 3.x.

Test Plan:
```
$ nvm use iojs-v3
Now using io.js v3.1.0 (npm v2.13.3)

$ npm i
<no compiler errors>
```
2015-09-01 14:09:47 -07:00
Brent Vatne 2acf6e7bf9 Merge pull request #2511 from bradens/master
Add leanpub to the list of showcase apps.
2015-09-01 14:03:38 -07:00
Amjad Masad 39ae5daec3 [react-pacakger] Max idle time for socket server is too long 2015-09-01 11:40:47 -08:00
Hedger Wang 36dfd402b2 [madman] Supports onLayout for AdsManagerTouchableHighlight.
Summary:
Supports `onLayout` for Touchable*` by piping onLayout
through to the native component inside since only native components support
it by default.
2015-09-01 10:22:47 -08:00
Andrei Coman bc64f26a7a [ReactNative][SyncDiff] Add border example 2015-09-01 10:05:35 -08:00
Tadeu Zagallo 0426f502bb [ReactNative] Increase timeout and re-enable allocation tests
Summary:
Two of the allocation were disabled due to eventual failures on Travis, but
haven't failed internally nor locally. I'm bumping the time out and re-enabling
them to see if that was the case.
2015-09-01 08:53:47 -08:00
Marius Butuc 3cd9187a26 Fix LinkingIOS docs typo
Summary:
And yes, just agreed to the Contributor License Agreement (CLA). 👍
Closes https://github.com/facebook/react-native/pull/2483
Github Author: Marius Butuc <marius@shopify.com>
2015-09-01 08:09:45 -08:00
Andrei Coman 9cede03846 [ReactNative][SyncDiff] Add Image Example 2015-09-01 07:55:44 -08:00
Tadeu Zagallo c522e3b16e [ReactNative] Re-enable timers test
Summary:
Timers test was failing but I believe that D2399150 fixes it. Re-enable and
monitor.
2015-09-01 06:14:37 -08:00
futbalguy 3bef953f77 Added clarifying language to error for not finding development server
Summary:
Added additional check to make if seeing error message on not finding development server:
Node server URL is correctly set in AppDelegate.

Should make it easier for a developer that is not running on localhost for the first time.

Screenshot of updated error message:
![img_0015 1](https://cloud.githubusercontent.com/assets/7111607/9553286/d7081c30-4d72-11e5-8c24-e3e5c83281d0.PNG)

Closes https://github.com/facebook/react-native/pull/2484
Github Author: futbalguy <kyle.rokita@gmail.com>
2015-09-01 05:25:56 -08:00
Tadeu Zagallo c6240c7441 [ReactNative] Ensure WebViewExecutor's webview is created on the main thread
Summary:
Fixes #2464

After the bridge parallelisation of the bridge initialisation the executors
were being `setUp` in a background thread, and the `RCTWebViewExecutor` was
crashing when creating a `UIWebView` out of the main thread.

Wrap the `UIWebView` creation in a call to the main thread.
2015-09-01 05:16:43 -08:00
Andrei Coman 5b2d8000ae [ReactNative][SyncDiff] Add option to make examples platform specific 2015-09-01 04:56:05 -08:00
Andrei Coman d4e5d95efe [ReactNative][SyncDiff] Revamp AsyncStorage for OSS 2015-09-01 04:25:07 -08:00
James Ide 853d5b2221 [TextInput] Set scrollsToTop = NO for UITextViews
Summary:
Now that UITextViews have a delegate, they consume the "tap to scroll to top" gesture. This diff restores the original behavior of letting the top-level scroll view (if any) scroll to top instead.

I tried exposing scrollsToTop as a prop and was semi-successful in that I could turn scroll-to-top on and off for the top-level scroll view scroll, but the text view itself would never scroll to top. So instead of exposing it as a prop, this diff sets scrollsToTop always to NO, which is how TextInput behaved previously.

Closes https://github.com/facebook/react-native/pull/2333
Github Author: James Ide <ide@jameside.com>
2015-09-01 02:40:15 -08:00
Ted Suzman 2b3a4bd27d [ReactNative] Maintain order of bridge calls
Summary:
When bridge calls are made, they should be dispatched to their
destination GCD queue in the same order they were made. (It
looks like this invariant broke in 336e18d, which caused call
order to depend on the iteration of `NSMapTable` keys
whenever there are calls to multiple modules that share a queue)

Fixes #1941 (in which RCTUIManager createView addUIBlock
blocks were sometimes running after other blocks that depended
on them)

I'm a react-native/iOS/objc newbie, so please excuse any
ignorance this commit may well contain :)
Closes https://github.com/facebook/react-native/pull/2488
Github Author: Ted Suzman <ted@suzman.net>
2015-09-01 02:19:42 -08:00
Braden Simpson c78b33b942 Style fixes for showcase 2015-08-31 20:49:19 -07:00
Nathan Spaun 1ff22b7b9c Adding jest tests to groups rn 2015-08-31 17:35:47 -08:00
Braden Simpson 19df8ba698 Add leanpub to the list of showcase apps. 2015-08-31 17:06:54 -07:00
Spencer Ahrens ce81468607 Merge pull request #2504 from sahrens/Updates_from_Mon_Aug_31st
Updates from Mon Aug 31st
2015-08-31 17:00:33 -07:00
Spencer Ahrens 465f539057 Updates from Mon Aug 31st. 2015-08-31 16:31:41 -07:00
Spencer Ahrens f1c9c5c2af [RN] Disable flaky testJavaScriptExecutorIsDeallocated 2015-08-31 13:50:05 -08:00
Spencer Ahrens 9ad2c322c0 [RN] improve elastic easing
Summary:
1) Makes params more intuitive (only one now, bounciness, which maps intuitively to number of oscillations).
2) Satisfies boundary conditions (f(0) = 0, f(1) = 1) so animation actually goes where you tell it (before it would finish at a random location depending on the input params).
3) Simple test to verify boundary conditions.
2015-08-31 13:39:00 -08:00
Amjad Masad d87480e9ac [react-pacakger] Fix failing test
Summary:
Fix failing test that matches the exact error string to match using `contains`.

I was under the impression that jest tests were running in CI -- turns out not yet.
2015-08-31 12:42:29 -08:00
Spencer Ahrens 1a411a7869 Merge pull request #2507 from sahrens/updateWebsite
Update auto gen docs
2015-08-31 12:45:27 -07:00
Spencer Ahrens 51b1f399be Update auto gen docs
* docgen -> v2.0.1 to support ES6 classes.
* Add `<Modal>` and `<ProgressViewIOS>` components to docs.
2015-08-31 12:23:11 -07:00
Spencer Ahrens 94ae886060 [RN] add clarifying Android-only comment to Portal 2015-08-31 11:10:45 -08:00
James Ide 81c2216d82 [RN Debugger] Don't try to handle messages without a method
Summary:
Some messages are special and are intended for the devtools, like `{$open: id}` and `{$error: id}`. The main debugger-ui page can't handle these and thinks something is wrong when `object.method` is undefined. This diff handles messages only if they specify a method.

Fixes #2377

Closes https://github.com/facebook/react-native/pull/2405
Github Author: James Ide <ide@jameside.com>
2015-08-31 11:09:57 -08:00
Spencer Ahrens d080c8dc2b [RN] fix TimerExample
Summary:
Pressing clear would crash if timer was unmounted.

Fixed by not rendering clear button when timer unmounted.
2015-08-31 10:06:59 -08:00
Spencer Ahrens 6f3849ea7b [RN] Disable TimersTest - sporadic failures on Travis
Summary:
Can't get any local failures to trigger.  Travis failure:

https://travis-ci.org/facebook/react-native/jobs/78064148
2015-08-31 09:52:23 -08:00
Amjad Masad 250494acd3 [react-packager] Fail loudly with errors from the transformer 2015-08-31 09:27:26 -08:00
James Ide 34c74eaead Merge pull request #2505 from dubert/patch-1
[Showcase] fix broken icon app image link for Facebook Ads Manager
2015-08-31 09:50:36 -07:00
Luke Dubert c086a352b3 [Showcase] fix broken icon link 2015-08-31 12:46:15 -04:00
Martín Bigio 7fed668841 [react-packager] Cache BundlesLayout 2015-08-31 07:13:35 -08:00
Brent Vatne fdc7d49a08 [Showcase] Add Exponent to the list 2015-08-30 13:44:37 -07:00
Brent Vatne b35a15135d [Showcase] Use the actual name from the Play store for Adverts Manager 2015-08-30 13:42:04 -07:00
Brent Vatne 2bc2534d91 [Showcase] Add a few more apps, improve styling 2015-08-30 13:38:09 -07:00
Felix Oghina 53fc5624e4 [reactnative] send platform arg with all packager requests 2015-08-29 06:36:18 -08:00
Brent Vatne bbf7a8f49e Merge pull request #2482 from esauter5/master
Add DropBot app to Showcase
2015-08-28 12:15:41 -07:00
Tadeu Zagallo aee74efde7 [ReactNative] Add JSC profiler to Dev Menu
Summary:
Add JSC profiler to the dev menu and rename the pre-existent one to systrace.

For now it just outputs to the console, but a better workflow is on the way.
2015-08-28 10:31:47 -08:00
Eric Sauter 3357bec8c0 Add DropBot to Showcase 2015-08-28 10:39:52 -04:00
Pieter De Baets e15f584a3d Slim RCTSourceCode in production 2015-08-28 05:46:35 -08:00
Tadeu Zagallo 8c19b58eef [ReactNative] Move babel to oss folder 2015-08-28 04:14:00 -08:00
Andrei Coman 06c1b4dffd [ReactNative][SyncDiff] Add Movies app 2015-08-28 03:03:53 -08:00
Nick Lockwood fa6bc1c3cd Fixed WebView example 2015-08-27 14:08:17 -08:00
Christopher Chedeau fdf76b419a Merge pull request #2470 from chirag04/showcase_size
[Showcase] Reduce the width on showcase items
2015-08-27 13:11:31 -07:00
chirag04 791ed112f2 reduce the width on showcase items 2015-08-27 16:08:14 -04:00
Christopher Chedeau b1573a45a7 Merge pull request #2337 from chirag04/showcase
showcase link on React-native website.
2015-08-27 12:51:12 -07:00
Eric Vicenti 99bd57aef2 [ReactNative] Improve error handling with missing bridge callback
Summary:
This will throw an error message with the problematic callback module/method. Previously we would get an invariant in this case when we try to access `callback.apply` later in the method.
2015-08-27 11:02:58 -08:00
Martín Bigio 5dbde93ec6 [react-packager] System.import transform 2015-08-27 09:28:48 -08:00
Andrei Coman 8ec1a180df [ReactNative][SyncDiff] Add more items to react-native target 2015-08-27 06:31:30 -08:00
Amjad Masad 34b5aa2a57 [react-packager] Fix races
Summary:
A few potential races to fix:

1. Multiple clients maybe racing to delete a zombie socket
2. Servers who should die because other servers are already listening are taking the socket with them (move `process.on('exit'` code to after the server is listening
3. Servers which are redundant should immediatly die
2015-08-27 01:41:11 -08:00
Amjad Masad 1598cc6979 [react-packager] bump create server timeout to 60s 2015-08-26 23:11:44 -08:00
Alex Kotliarskyi c7b1509615 [react-native] Fix tests and re-enable CI 2015-08-26 20:58:24 -08:00
James Ide a88daba06f Merge pull request #2452 from Reparadocs/master
Changing Linked Libraries URI to point to the right page
2015-08-26 20:34:56 -07:00
Alex Kotliarskyi 5b25f208c5 [ReactNative] Teach flow how to deal with images 2015-08-26 18:26:09 -08:00
Rishab U Hegde 326768a949 Changing Linked Libraries URI to point to the right page 2015-08-26 18:47:03 -07:00
Martín Bigio ac5c1e9cc4 [react-packager] Make sure server is listening on socket 2015-08-26 16:25:17 -08:00
Andy Street a9115bcbb3 [ReactNative][SyncDiff] Add parameter to allow turning on/off off screen rendering for alpha compositing 2015-08-26 15:15:36 -08:00
Martin Konicek fc06dc8e37 Merge pull request #2448 from mkonicek/Updates_Wed_26_Aug_2
More updates from Wed 26 Aug
2015-08-26 19:24:35 +01:00
Nick Lockwood 7bf157c92c Fix assertion when modules are accessed early on in bridge startup 2015-08-26 10:01:29 -08:00
Martin Konicek 590156a360 More updates from Wed 26 Aug 2015-08-26 18:52:03 +01:00
Martin Konicek 9ffbfaeb35 [ReactNative] Disable flaky Obj-C test 2015-08-26 09:34:03 -08:00
Martin Konicek 6d78b75a10 Update CONTRIBUTING.md 2015-08-26 17:04:53 +01:00
Martin Konicek a0c3b426de Update react-native-cli/CONTRIBUTING.md 2015-08-26 16:35:03 +01:00
Martin Konicek 9576657b57 Update react-native-cli/CONTRIBUTING.md 2015-08-26 16:04:48 +01:00
Martin Konicek dd9bbb4bca Update react-native-cli/CONTRIBUTING.md 2015-08-26 16:02:43 +01:00
Andrei Coman f2da308928 [ReactNative] Add unimplemented views for some components 2015-08-26 05:47:12 -08:00
Martin Konicek 57adecc36e Merge pull request #2443 from mkonicek/Updates_Wed_26_Aug
Updates from Wed 26 Aug
2015-08-26 14:23:12 +01:00
Martin Konicek 5526533f51 Updates from Wed 26 Aug 2015-08-26 14:04:01 +01:00
Felix Oghină 626f828d54 [reactnative] remove platform option from oss packager 2015-08-26 04:49:41 -08:00
Andrei Coman a8f11d7115 [ReactNative] Add TouchableNativeFeedback to OSS 2015-08-26 01:31:52 -08:00
Amjad Masad 074069e465 [react-packager] Cleanup socket interface code 2015-08-25 17:36:08 -08:00
Amjad Masad 2b7dd4650f [react-native] bump create server timeout 2015-08-25 17:13:13 -08:00
Andy Street 162d12cfa4 [ReactNative][SyncDiff] Allow renderToHardwareTextureAndroid to be used outside of setNativeProps 2015-08-25 16:55:51 -08:00
Andy Street 504fa60168 [ReactNative][SyncDiff] AutoSync 2015-08-25 14:54:10 -08:00
Martin Konicek 0203f87ea3 Add chalk mock 2015-08-25 22:02:19 +01:00
Martin Konicek 2f6e7336cb Merge pull request #2435 from mkonicek/Updates_Tue_25_Aug_trois
Updates from Tuesday 25 August

JS test failure fix will follow.
2015-08-25 19:58:36 +01:00
Martin Konicek 19f922aa80 [cli] Fix iOS app template 2015-08-25 19:25:17 +01:00
Martin Konicek 480b5c9e2e [website] Fix website generation 2015-08-25 19:23:41 +01:00
Martin Konicek da7ac11c53 Updates from Tue 25 Aug 2015-08-25 19:21:59 +01:00
Martin Konicek 4f87ec5ce7 [ReactNative] Unbreak OSS packager JS tests 2015-08-25 10:18:39 -08:00
chirag04 47d33eab8a add some apps using rn 2015-08-25 14:14:21 -04:00
Natansh Verma 8d65367fbc Revert "[packager] Unbreak Bundler test" 2015-08-25 09:53:45 -08:00
Amjad Masad 54026024cc [react-packager] Expose a socket interface
Summary:
Buck (our build system) currently starts multiple packager instances for each target and may build multiple targets in parallel. This means we're paying startup costs and are duplicating the work. This enables us to start one instance of the packager and connect to it via socket to do all the work that needs to be done.

The way this is structured:

1. SocketServer: A server that listens on a socket path that is generated based on the server options
2. SocketClient: Interfaces with the server and exposes the operations that we support as methods
3. SocketInterface: Integration point and responsible for forking off the server
2015-08-25 09:37:08 -08:00
Alexey Lang 2d2252cd50 Use native initialAppState to init app_state for AppStateIOS. 2015-08-25 09:32:28 -08:00
Martin Konicek 245a5b8e8c [packager] Unbreak Bundler test 2015-08-25 09:24:42 -08:00
Matt Mahoney 36c1064033 [rn] Pass props when creating a view in RCTViewManager 2015-08-25 08:08:17 -08:00
Krzysztof Magiera 27a67c2434 [ReactNative] Respect --assets-dest in "download from server" mode 2015-08-25 07:22:05 -08:00
Martin Konicek 5f8c0613fe [ReactNative] Temporarily disable flow in TabBarItemIOS 2015-08-25 07:16:35 -08:00
Nick Lockwood 8497b5a66f Fixed tab bar snapshot test 2015-08-25 06:36:43 -08:00
Nick Lockwood 65a3c07cfe Fixed tab bar icon scale
Summary:
TabBarItemIOS supports setting the scale for base64-encoded images using an optional scale parameter, however this was broken due to the JS code only passing the uri, not the whole source object, to the native side.

(See: https://github.com/facebook/react-native/issues/2413)
2015-08-25 05:26:14 -08:00
Pieter De Baets 371aeceb72 Small perf improvement to RCTPerfStats and RCTBridgeModuleNameForClass 2015-08-25 04:48:39 -08:00
Nick Lockwood 072390ec5c Fixed SampleAppTests 2015-08-25 04:41:12 -08:00
Alex Akers 9aefd6bd6e Add keyboard-observing notifications 2015-08-25 03:49:13 -08:00
Tadeu Zagallo fe0143eb20 [ReactNative] Update JS profiler to be compatible with Android
Summary:
Use nativeTraceBeginSection and nativeTraceEndSection with a more dynamic signature
to be compatible with Android.
2015-08-25 02:25:29 -08:00
Nick Lockwood 4382c0e8f4 Fixed redbox rotation
Summary:
Added autoresizing constraints to the redbox layout so that it resizes correctly when the screen is rotated.
2015-08-25 02:20:26 -08:00
Nick Lockwood 88e0bbc469 Ran Convert > To Modern Objective C Syntax 2015-08-25 01:08:49 -08:00
Jing Chen a57353b2b4 [react-native] Make flow warn on timeout instead of redbox 2015-08-24 19:51:14 -08:00
Ben Alpert 75df3b537a Don't report failures to npm
Summary:
This suppresses this output from npm:

```
npm ERR! Failed at the react-native@0.9.0 start script './packager/packager.sh'.
npm ERR! This is most likely a problem with the react-native package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     ./packager/packager.sh
npm ERR! You can get their info via:
npm ERR!     npm owner ls react-native
```

We don't seem to have any automated scripts that rely on the exit code of npm start (or even call it at all).
Closes https://github.com/facebook/react-native/pull/2415
Github Author: Ben Alpert <balpert@fb.com>
2015-08-24 19:32:27 -08:00
Martín Bigio 9ba4697f02 [react-packager] Fix OSS tests 2015-08-24 18:49:05 -08:00
Amjad Masad a008704b51 [react-packager] Add bser to be used in a socket server implementation 2015-08-24 17:04:32 -08:00
Amjad Masad eb248e0b58 [react-packager] Implement transformer progress bar
Summary:
The transform step in currently the longest one in the bundling process. This adds a progress bar to track the transform progress.

{F23096660}
2015-08-24 16:09:34 -08:00
Amjad Masad 8c5626cd87 [react-packager] check in the progress module 2015-08-24 16:09:33 -08:00
Justin Spahr-Summers 94671df753 [JSCLegacyProfiler] Use generic iOS SDK instead of pinning to 8.3
Summary:
The path to the iOS 8.3 SDK does not exist when only Xcode 6.4 is installed. This uses a more general folder name, which (at least) the 8.4 SDK symlinks to.

I haven't verified this on Xcode 6.3, so I'd appreciate it if someone could confirm that this path exists there too! :)
2015-08-24 13:42:34 -08:00
Martin Konicek bb708769d4 [ReactNative] Fix sample apps 2015-08-24 11:48:10 -08:00
Andrei Coman ed0ca71be0 [SyncDiff] [react_native] Revamp text input example for oss 2015-08-22 14:23:30 -08:00
Andrei Coman 127b3292c1 [SyncDiff] [react_native] Add more oss examples 2015-08-22 03:34:33 -08:00
Andrei Coman 8cc7f7f99a [SyncDiff] [react_native] Add toolbar example to oss 2015-08-22 02:14:38 -08:00
Tim Yung af8a6a44b2 RN: Expose React.unstable_batchedUpdates
Summary:
Per @spicyj in facebook/relay#127, this exposes `unstable_batchedUpdates` in React Native the same way it is exposed in `ReactDOM`.
2015-08-21 15:24:56 -08:00
Christopher Chedeau 4b420cc095 Merge pull request #2399 from ide/nvm
[Travis] Put $PWD in front of nvm  (fixes npm install)
2015-08-21 14:58:19 -07:00
Andrei Coman 52abc759ff [SyncDiff] [react_native] Add TextExample to UIExplorer 2015-08-21 14:34:46 -07:00
Christopher Chedeau f3a165db4f [Logs] Name fs step
Summary:
There are two fs steps and it wasn't clear why. This now puts the right label:

```
[9:38:25 PM] <START> Building in-memory fs for JavaScript
[9:38:27 PM] <END>   Building in-memory fs for JavaScript (2030ms)
[9:38:27 PM] <START> Building in-memory fs for Assets
[9:38:27 PM] <END>   Building in-memory fs for Assets (615ms)
```
2015-08-21 14:29:05 -07:00
Pieter De Baets eab390aecb Cleanup bridge init, measure native module init time 2015-08-21 12:32:25 -07:00
James Ide f8f68176d5 [Travis] Put $PWD in front of nvm (fixes npm install)
There was a problem where NVM_DIR wasn't correctly configured, which meant that `npm install` was using whatever version of Node was on the system (0.12 in this case) despite having run `nvm use iojs-v2`. Fixing up NVM_DIR fixes the `npm install` errors and builds the native npm packages for the right version of Node.
2015-08-21 11:37:11 -07:00
Alex Kotliarskyi 8d07df4a22 [ReactNative] Unbreak debugger 2015-08-21 11:20:17 -07:00
Alexey Lang 3643c127a8 Fix fuzziness images in UIExplorer <Image> sample. 2015-08-21 10:58:47 -07:00
Martin Bigio 677f96c60e [react-packager] unbreak tests 2015-08-21 09:38:37 -07:00
Martín Bigio 320a9207f4 [react-packager] Avoid referring Module like objects in BundlesLayout
Summary:
The `BundlesLayout` will be used as a persistent index. As such, it would be easier to avoid having dependencies to `Module`, `Package`, `Asset`, etc. We're not using that information for now and if we happen to need to use it we could always fetch it using the `ModuleCache`.
2015-08-21 08:13:58 -07:00
Martin Konicek 934e7b9afd [ReactNative][oss] Make package.json in consistent with github 2015-08-21 08:09:21 -07:00
Martín Bigio d2f82b1dfd [react-packager] Move async dependencies to System.import
Summary:
We've decided to move the syntax for asynchronously requiring async dependencies. The new syntax works better with promises and therefore withe async/await as well. The new syntax looks like this: `System.import('moduleA').then(moduleA => {...});` or if you're using async/await you could simply do:
  let moduleA = await System.import('moduleA');
  new moduleA().someFunction();

If you need to require multiple dependencies just do:
  Promise
    .all([System.import('moduleA'), System.import('moduleB')])
    .then((moduleA, moduleB) => {...})

or the equivalent using async/await
2015-08-21 07:56:19 -07:00
Dorota Kapturkiewicz f128269da7 [ReactNative] make radiobutton work with accessibility 2015-08-21 07:23:04 -07:00
Nick Lockwood c27e5198e2 Add doc comment for mainScrollView 2015-08-21 04:00:03 -07:00
Bill Fisher debca6d24f [ReactNative] Pass events through to touchable handlers
Summary:
We want to be able to access the touch data within our components' event handlers, so we need to thread the event object all the way through to them.
2015-08-21 03:03:32 -07:00
Nick Lockwood 2cd02d94ff Converted RCTRedBox to a bridge module 2015-08-21 02:53:55 -07:00
Harrison Harnisch 46c6cde947 UI CPU and memory utilization graphs in Chrome debugging mode
Summary:
Chrome debugging UI is currently only showing connection state and logs in the console, leaving room for plenty of interesting information.

I've pushed the UI (using the same convention set by FPS -- UI/JS) CPU and memory utilization data over the debug Websocket and tapped into the existing stream of JS calls that get ran in V8.

The number of JS calls in a time interval is counted for all sub calls in a batch
https://github.com/hharnisc/react-native/blob/master/packager/debugger.html#L150

The last 5 batches of JS calls are displayed in a list format.

<img width="951" alt="screen shot 2015-07-19 at 7 34 00 pm" src="https://cloud.githubusercontent.com/assets/1388079/8769257/edc42f70-2e4d-11e5-8813-e86ef530a446.png">

Charts are created with [Chart.JS](https://github.com/nnnick/Chart.js) (MIT licensed).
Closes https://github.com/facebook/react-native/pull/2050
Github Author: Harrison Harnisch <hharnisc@gmail.com>
2015-08-21 02:11:45 -07:00
Amjad Masad 6debfce374 [react-native] Update graceful-fs and use it in _build_bundle.js 2015-08-20 23:58:51 -07:00
Eric Vicenti 6f17dba39b [ReactNative] Remove POPAnimation
Summary:
Thanks to @vjeux' work on Animated, we have transitioned away from POPAnimation entirely
2015-08-20 22:24:28 -07:00
Emily Janzer 4b28a847e6 [android] fix crash if breadcrumb refs don't exist 2015-08-20 19:08:16 -07:00
Amjad Masad 3bfa90e433 [react-packager] Fix error in template string and bump timeout
Summary:
Fix error in the template string (no plus, thinks it's a function).
And bump the timeout to 30 seconds because a file is taking more than 10 seconds `js/RKJSModules/Libraries/FBComponents/FBFed/FeedStoryFragments.js`
2015-08-20 15:29:38 -07:00
Christopher Chedeau febc03a38b [Logs] Don't print flow error twice
Summary:
Flow errors are already throwing an exception in js, no need to also console.error in the packager
2015-08-20 14:05:47 -07:00
Andy Street a0168a8c62 [ReactNative] [SyncDiff] Create new non-coalesceable event for when native should take the responder lock 2015-08-20 13:56:23 -07:00
Martín Bigio c1f90c1ecf [react-packager] Integration test for runServerHere.sh 2015-08-20 12:00:06 -07:00
Spencer Ahrens 5f91d404e1 [RN] Fix Animated tests 2015-08-20 10:28:49 -07:00
Martín Bigio 5de0796126 [react-packager] Introduce bundle IDs and keep track of parent/child
Summary:
Since JS doesn't have the guarantee that once a bundle is loaded it will stay in memory (and this is something we actually don't want to enforce to keep memmory usage low), we need to keep track of parent/child relationships on the packager to pass it down to native. As part of this diff, we also introduced an ID for each bundle. The ID for a child bundle is shynthetized as the bundleID of the parent module + an index which gets incremented every time a new bundle is created. For instance given this tree:

       a,b
    c       f
  d   e       g

the ID for `d` will be `bundle.0.1.2`, the one for e will be `bundle.0.1.3` and the one for `g` will be `bundle.0.5.6`. This information will be useful to figure out which bundles need to be loaded when a `require.ensure` is re-written.
2015-08-20 10:19:09 -07:00
Dorota Kapturkiewicz ed9b8c8b3b [ReactNative] Disable accessibility of RootView when dialog appears. Apply it for AdsManager. 2015-08-20 10:16:13 -07:00
Christopher Chedeau 1ca1a44a07 [Logs] Remove already registered warning 2015-08-20 09:46:10 -07:00
Dorota Kapturkiewicz b888e8db40 [ReactNative] make sending accessibility events from JS possible and fix dialog 2015-08-20 08:41:22 -07:00
Martin Konicek 0b5952a454 [ReactNative][oss] Open source NetworkingModule 2015-08-20 07:19:34 -07:00
Alexsander Akers ee82a195f7 Set padding on ModalFullscreenView to offset status bar frame 2015-08-20 07:10:34 -07:00
Tadeu Zagallo 81fdf3e532 [ReactNative] Change RCTProfile API to be compatible with systrace 2015-08-20 00:47:23 -07:00
Christopher Chedeau 16ddb1962a [ReactNative] Remove warning for <Image source={require('./image.jpg')} />
Summary:
require('./image.jpg') returns a number and therefore the propType is wrong. Adding it to the propType to fix the warning and dealing with flow which is completely broken for this.
2015-08-19 22:53:25 -07:00
Spencer Ahrens 059e605e49 [RN] Mark some internal animated stuff as protected 2015-08-19 21:16:38 -07:00
Christopher Chedeau cf617640f3 [OpenSource] Fix 2048
Summary:
There were two issues:
(1) it was using /Users/sahrens as a path
(2) needed to remove RCTAnimationExperimental which doesn't exist anymore and add RCTWebSocket
2015-08-19 20:23:20 -07:00
Christopher Chedeau dd7945ae37 [OpenSource] Fix TicTacToe
Summary:
Needed to link RCTWebSocketManager to the project as instructed by the following issue:
https://github.com/facebook/react-native/issues/2256
2015-08-19 20:05:13 -07:00
Jing Chen cc96962e3d [react-native] Revert D2346396 to bring back JS stack traces 2015-08-19 18:07:15 -07:00
Amjad Masad ec82ffa52b [react-packger] Add a timeout on transform jobs
Summary:
There's been a case where Babel can hang indefinitely on a file parse/transform. Possibly related to https://github.com/babel/babel/issues/2211

This adds a timeout to transform jobs and throws an error informing the user of the offending file. The timeout interval defaults to 10 seconds, but can be changed via an option.
2015-08-19 17:42:28 -07:00
Alex Kotliarskyi c5c25c15ea [RN] Show only file name in RedBox 2015-08-19 17:35:25 -07:00
Amjad Masad 24689006ab [react-packager] Remove unnecessary 'chalk' module mock 2015-08-19 17:28:18 -07:00
Amjad Masad e76e60f88d [react-packager] Make the fs mock async 2015-08-19 17:17:15 -07:00
Ben Alpert 5a2d2007a4 [React Native] Fix infinite loop in css-layout
Summary:
Manual pick of https://github.com/facebook/css-layout/commit/9001a3d2 since we're still lagging behind the upstream. Fixes #1378.
2015-08-19 16:39:35 -07:00
Martin Bigio d9bd445940 Unbreak Catalyst 2015-08-19 16:25:14 -07:00
Amjad Masad b4100b8332 [react-packager] Wait for haste map before accepting any requests
Summary:
D2319999 introduced a regression where we stopped waiting for the "build haste map" step to finish before we accept any requests. This makes sure that we block on that.

Need to unbreak with this, but will follow up with a test to catch this in the future.
2015-08-19 16:17:37 -07:00
Tim Yung 966a3bbc66 RN: Style Tweaks to Chrome Debugger UI 2015-08-19 16:00:03 -07:00
Abhishek Sood 5fc2d67ee5 Revert "@build-break" 2015-08-19 15:21:16 -07:00
Abhishek Sood d64ac20119 Revert "[ReactNative] Open source NetworkingModule" 2015-08-19 15:20:09 -07:00
Ben Alpert 0f3ea9fb8c [ReactNative] Fix switching to null event listener 2015-08-19 15:02:25 -07:00
Martín Bigio f4c7bb1103 [react-packager] Fix bug on Bundles Layout algorithm
Summary:
The layout algorithm wasn't getting deep into the sync dependencies recursively to async dependencies.
2015-08-19 14:20:38 -07:00
Abhishek Sood 1aa29ceaf2 @build-break 2015-08-19 14:12:22 -07:00
Martin Konicek 9c32a7a940 [ReactNative] Prepare for putting RN Android OSS files in 2015-08-19 12:13:56 -07:00
Martin Konicek ade571065e [ReactNative] Open source NetworkingModule 2015-08-19 11:47:10 -07:00
Martin Konicek 3d0cd480d2 [ReactNative] Naming: RCTSwitch -> AndroidSwitch 2015-08-19 10:28:28 -07:00
James Ide deaef94471 [Podspec] Remove AnimationExperimental subspec and fix Image subspec
Summary:
AnimationExperimental is gone; remove it. The Image subspec now depends on the networking code, so we have to pull in those files. These changes were necessary to publish 0.10.0-rc to CocoaPods, so would be convenient to get them into master for 0.11.

Fixes #2354
Closes https://github.com/facebook/react-native/pull/2341
Github Author: James Ide <ide@jameside.com>
2015-08-19 09:59:49 -07:00
Nick Lockwood 26c4be62c8 Fixed test flakiness due to a race condition with RCTRedBox
Summary:
The test runner relied on checking the current error message in the RCTRedbox, which is a singleton (yay, shared mutable state!). This lead to some tests that worked individually but failed when run together due to error messages in RCTRedBox left over from previous tests.

I've replaced the call to -[RCTRedBox currentErrorMessage] by injecting a custom logging function to intercept the errors at source, which is a much more reliable solution.
2015-08-19 03:41:31 -07:00
Alex Kotliarskyi b18d73b568 [RN] Unbreak packager 2015-08-18 18:29:32 -07:00
Martín Bigio 291c8ff9ec [react-packager] Modernize Activity to ES6 2015-08-18 15:25:18 -07:00
Martín Bigio 51596f8674 [react-packager] Modernize AssetServer to ES6 2015-08-18 14:38:40 -07:00
Christopher Chedeau ede5fa7b39 Merge pull request #2374 from foghina/cli_contributing
[cli] add docs on how to contribute to the CLI
2015-08-18 11:22:08 -07:00
Krzysztof Magiera 67746fea2f [ReactNative] Use FbHttp for handling http requests from React Native. 2015-08-18 09:12:40 -07:00
Felix Oghină 621a2c486f [cli] add docs on how to contribute to the CLI 2015-08-18 15:56:26 +01:00
Nick Lockwood 76a9baaf2f Fixed bug where method calls containing struct arguments would fail silently
Summary:
The arg block for handling structs did not return a value, which was being intepreted as failure. This diff returns YES for success, and also adds an error log for this case so future regressions won't fail silently.
2015-08-18 07:35:26 -07:00
Felix Oghină e0e6fbfa8c Merge pull request #2373 from foghina/fix_e2e
[e2e] fix e2e tests
2015-08-18 12:10:54 +01:00
Felix Oghină 3b7bffa2a1 [e2e] fix e2e tests
* use new _flowconfig in generator template
* increase sinopia max_body_size
* remove breaking `cd` command from e2e-test.sh
2015-08-18 11:51:03 +01:00
Natthu Bharambe a4e64196bc Update GLOBAL.process instead of over-writing during initialization. 2015-08-17 16:47:10 -07:00
Ben Alpert 65692b7235 [ReactNative] Don't redbox for React warnings when not using Chrome executor 2015-08-17 16:02:10 -07:00
Nick Lockwood 8d1e02b8bd Convert alloc/init to new to please linter 2015-08-17 08:46:00 -07:00
Dorota Kapturkiewicz 869ff92dbc [ReactNative] add importantForAccessibility to accessibility sample app 2015-08-17 07:17:44 -07:00
Mike Armstrong bce7b9c638 generalise handling of uniforms and samplers 2015-08-17 07:13:17 -07:00
Pieter De Baets 65713992c4 Let native modules know when root views get added and removed 2015-08-17 07:12:06 -07:00
James Ide 12d5f0d6f4 [Views] Change rasterization scale to the main screen's scale
Summary:
`view.screen` can be nil if the view has not yet been added to the view hierarchy (e.g. new view), so we should use `[UIScreen mainScreen]` instead.

In the future, if we need to support multiple screens, one possible fix is to set the rasterization scale in didMoveToWindow/Superview. For now we have just one screen, though.
Closes https://github.com/facebook/react-native/pull/2334
Github Author: James Ide <ide@jameside.com>
2015-08-17 06:54:55 -07:00
Felix Oghină f0dd9fb358 Merge pull request #2298 from foghina/yo
[cli] convert project generation to use yeoman
2015-08-17 13:51:24 +01:00
Pieter De Baets 261f9434e5 Avoid dispatch_async in RCTRootView when bridge has already started
Summary:
There's no good reason for initialProperties to be mutable after the RCTRootView has been created. Passing it in through the constructor means we can skip one dispatch_async.
2015-08-17 05:34:25 -07:00
Ludo Fardel 8460db57bc Make flow check async 2015-08-17 03:13:16 -07:00
Amjad Masad ca38908423 [react-packager] In production resolve __DEV__ to NODE_ENV === 'development' 2015-08-15 17:07:41 -07:00
Amjad Masad 3388d8fe79 [reat-packager] Switch platform resolution based on query param
Summary:
Currently the platform selection is controlled by the blacklist. However, since we want to use the same server instance for cross-platform development, we need this to be controlled per request.

One outstanding issue, is that the DependencyGraph class wasn't designed that way and it doesn't have a per-request state. This means that with the current design race conditions is possible. If we got a request for a different platfrom while processing the previous request, we may change the outcome of the previous request.

To fix this a larger refactor is needed. I'll follow up a diff to do that.

Finally, so I don't break the universe like last time, I'll leave it up to the RN guys to update the call sites.
2015-08-15 13:28:18 -07:00
Amjad Masad 9eb5151bd2 [react-native] Set NODE_ENV and use node-env-inline plugin
Summary:
This sets NODE_ENV based on the value of the `dev` option when bundling the apps. This would then be inlined by the node-env-inline babel plugin. And finally -- if unreachable -- will be dead-code-eliminated by uglify.

This is not used in development because we set NODE_ENV to the value of __DEV__, which can be switched via a query param. However, the plugin has minimal overhead and to avoid complexity in the transformers I just enabled it by default.
2015-08-15 13:25:09 -07:00
Amjad Masad 9d96d00163 [react-native] Check in babel-plugin to inline __DEV__
Summary:
This plugin resolves __DEV__ to the value of `NODE_ENV === 'development'`. This can then be evaluated and dead code can be removed by uglifyjs.
2015-08-15 13:17:48 -07:00
James Ide 758ec76cb6 Merge pull request #2340 from chentsulin/patch-1
Add npm version badge
2015-08-14 20:55:09 -07:00
C. T. Lin 05b17a811e Add npm version badge 2015-08-15 11:42:33 +08:00
Christoph Pojer 5786a05e9e Merge pull request #2339 from ide/jest
[jest] Update jest-cli version to 0.5
2015-08-14 16:13:33 -07:00
Alex Kotliarskyi 324d154cf7 [ReactNative] Add ability to listen for Packager events 2015-08-14 14:28:45 -08:00
James Ide 5153ce0a03 [jest] Update jest-cli version to 0.5
npm install will get a little nicer since it can read from npm instead of always having to redownload from github.
2015-08-14 14:49:37 -07:00
Martín Bigio 3be2b1d966 [react-packager] Modernize Server to ES6 2015-08-14 12:34:23 -08:00
Martín Bigio 0623371814 [react-packager] Cache in which bundle is each module
Summary:
Not that at the moment a module can be present in multiple bundles, so the new API will return only one of them. In the near future we'll impose the invariant that a module can only be present in a single bundle so this API will return the exact bundle in which it is.
2015-08-14 12:30:30 -08:00
Martín Bigio 76e37c4423 [react-packager] Modernize Server-test by using ES6 features 2015-08-14 12:23:02 -08:00
Amjad Masad 8bd1cb8cce [react-native] Add babel-plugin-node-env-inline plugin
Summary:
Check in the `process.env.NODE_ENV` inline plugin. This will be used in conjuction with uglifyjs to eliminate dead code resulting from environment checks.
2015-08-14 10:46:05 -08:00
chirag04 3123f05f3b showcase link on React-native website 2015-08-14 14:34:02 -04:00
Alexsander Akers 91c8362176 Rename RCTReachability to RCTNetInfo 2015-08-14 08:20:01 -08:00
Nick Lockwood decf35c271 Fixed log prefixes to provide more context for prop binding errors 2015-08-14 08:01:34 -08:00
Nick Lockwood 3f5fcadbd5 Fix null values in network requests 2015-08-14 05:16:02 -08:00
Alexsander Akers 96277ca3f5 Add HSL/HSLA support 2015-08-14 04:48:20 -08:00
Alexsander Akers 0f14933948 Enable transparent modal presentation with <Modal />
Summary:
Enable transparent modal backgrounds using `UIModalPresentationCustom` modal presentation style.
2015-08-14 04:47:12 -08:00
Alexsander Akers dc01ecbc98 Remove now useless comment 2015-08-14 04:46:26 -08:00
Alex Akers 5c0805b071 Fix failing UIExplorer test (after isValid removal) 2015-08-14 04:27:27 -08:00
Dorota Kapturkiewicz a2c51b3b28 [ReactNative] expose importantForAccessibility to JS 2015-08-14 03:28:22 -08:00
Andrei Coman e9735556f6 [ReactNative] Sync [react_native] Fix keyboard behavior for android 2015-08-14 02:58:37 -08:00
Pieter De Baets fa07736ee1 Remove isValid from RCTInvalidating
Summary:
We only actually use it on RCTBridge and RCTJavaScriptExecutor, so add it to these interfaces explicitly
2015-08-14 01:57:18 -08:00
Zack Gomez f5d68f6ecb [ReactNative] Fix pixel rounding
Summary:
Too many rounds, we only want/need one.
2015-08-13 18:04:49 -08:00
Amjad Masad bc28a35bda [react-packager] Use module objects across the codebase (rid of getPlainObject etc)
Summary:
Instead of using plain objects and having to convert to and from them we just use the `Module` class across the codebase.
This seems cleaner and can enforce the type as opposed to fuzzy objects.
2015-08-13 15:52:31 -08:00
Amjad Masad 7bfc1baf7f [react-packager] Upgrade uglifyjs for Max call stack bug
Summary:
We're hitting an issue with large code size and `Maximum call stack size exceeded` error. https://github.com/mishoo/UglifyJS2/issues/414
We're seeing on inconsistently failing on landcastle.
2015-08-13 14:35:13 -08:00
Amjad Masad abce124198 [react-packager] Remove horribly outdated example_project
Summary:
Removes some old unused code.
2015-08-13 13:02:52 -08:00
Martín Bigio 5cad2e9370 [react-packager] Introduce Bundler
Summary:
Introduce a Bundler capable of generating the layout of modules for a given entry point. The current algorithm is the most trivial we could come up with: (1)it puts all the sync dependencies into the same bundle and (2) each group of async  dependencies with all their dependencies into a separate bundle. For async dependencies we do this recursivelly, meaning that async dependencies could have async dependencies which will end up on separate bundles as well.

The output of of the layout is an array of bundles. Each bundle is just an array for now with the dependencies in the order the requires where processed. Using this information we should be able to generate the actual bundles by using the `/path/to/entry/point.bundle` endpoint. We might change the structure of this json in the future, for instance to account for parent/child bundles relationships.

The next step will be to improve this algorithm to avoid repeating quite a bit dependencies across bundles.
2015-08-13 12:57:55 -08:00
Pieter De Baets c084793e91 Fix ModalFullScreenView's window not dismissing after being removed 2015-08-13 08:55:40 -08:00
Martino Luca 41a88c3eb1 Fixing typos in imports 2015-08-13 08:36:06 -08:00
Alex Akers f552495e7f Fix NavigatorIOS freeze when pushing before initialization completes
Summary:
This freezes the app in the UIExplorer because we try to push a new view controller onto the screen before the navigator finishes loading. This was exacerbated by @tadeuzagallo's diff that made the loading even faster. Hehe
2015-08-13 08:24:24 -08:00
Nick Lockwood 7232b1bbc7 Fixed image clipping / resizing logic 2015-08-13 08:13:55 -08:00
Alex Akers 672b77f355 Perform clip update on RCTScrollView in increments of 50 pt
Summary:
This diff removes calls to `-updateClippedSubviews` by only re-clipping when the scroll view moves by a certain number of pixels.

leeway = 50pt => 46.9% of calls removed
leeway = 10pt => 13.2% " " "
2015-08-13 07:56:41 -08:00
Tadeu Zagallo c9f5d229db Merge pull request #2323 from tadeuzagallo/Updates_Thu_13_Aug
Updates thu 13 aug
2015-08-13 14:50:09 +01:00
Tadeu Zagallo 12492d8d94 [ReactNative][Travis] Attempt to fix tests 2015-08-13 14:39:01 +01:00
Tadeu Zagallo b9dc29bcb3 [ReactNative] Fix SampleApp xcodeproj configuration
Summary:
Make SampleApp scheme shared.
2015-08-13 05:29:28 -08:00
Tadeu Zagallo eeb0adca43 [ReactNative][Website] Move bluebird to depencies instead of devDependencies 2015-08-13 14:10:56 +01:00
Tadeu Zagallo 28fb229266 [ReactNative] Fix e2e tests 2015-08-13 13:50:04 +01:00
Tadeu Zagallo 4daca092d2 [ReactNative][Website] Fix tests 2015-08-13 13:31:50 +01:00
Nick Lockwood 0487c55c25 Removed unnecessary overhead in RCTConvert functions 2015-08-13 04:08:17 -08:00
Nick Lockwood 1d072076db Reduce +[UIImage imageNamed:] overhead 2015-08-13 03:33:04 -08:00
Amjad Masad 7750db05e6 [react-packager] Set a lifetime on workers to avoid memory leaks 2015-08-12 19:26:26 -08:00
James Ide 08d1bc8c9f [TextInput] Fix multiline TextInput so text and cursor stay in bounds
Summary:
With a multiline TextInput, the text is initially rendered correctly but once you try to edit it, the cursor slides off the top of the view and out of its bounds. Also if the TextInput is scrollable, you can scroll the text out of the bounds of the view, which looks buggy unless you clip the overflow. This occurs because the top content inset is applied to the RCTTextView instead of the UITextView's text container.

This diff fixes both bugs by applying the vertical insets to the UITextView's textContainerInset instead of the RCTTextView's frame (which is a wrapper around a real UITextView).

The left inset is still applied to the frame because there is a bug with the text rendering when the left textContainerInset is negative: the initial text doesn't show up until you focus the text view. The bug doesn't occur when setting the right textContainerInset, so I apply this workaround to only the left inset.

Closes https://github.com/facebook/react-native/pull/2297
Github Author: James Ide <ide@jameside.com>
2015-08-12 14:50:42 -08:00
Martín Bigio cfcf604b3d [react-packager] Introduce require.ensure
Summary:
This is the first step to add support for splitting the JS bundle into multiple ones. This diff adds support for keeping track of the async dependencies each module has. To do so we introduce the following syntax:

  require.ensure(['dep1', 'dep2, ..., 'depN'], callback);

Where the callback function is asynchronously invoked once all the indicated modules are loaded.

Internally, the packager keeps track of every set of async dependencies a module has. So for instance if a module looks like this:
  require.ensure(['dep1'], () => {...});
  require.ensure(['dep2'], () => {...});

the `Module` object will keep track of each set of dependencies separately (because we might want to put them on separate bundles).
2015-08-12 12:23:42 -08:00
Amjad Masad 309326db2e [react-packager] Rename 'Package' to 'Bundle'
Summary:
The word Package is overloaded, it may mean npm package, or may mean a collection of bundles. Neither is what we mean. We mean `bundle`.

This renames it and modernize some of the Bundler code.
2015-08-12 12:09:01 -08:00
Martin Konicek c483db1b88 [ReactNative] Open source ProgressBarAndroid, remove example from the RN launcher 2015-08-12 12:02:17 -08:00
James Ide abdd0e09b3 [npm] Upgrade to stacktrace-parser 0.1.2, which supports io.js
Summary:
stacktrace-parser used to list only Node 0.10 under its list of supported engines. This new version includes Node 1.x and 2.x (i.e. io.js) as well, which addresses the warning during `npm install`.

There's no problem with using the older version of stacktrace-parser; this just clears the warning.

Closes https://github.com/facebook/react-native/pull/1738
Github Author: James Ide <ide@jameside.com>
2015-08-12 11:12:59 -08:00
Nick Lockwood a86e6b76fb Fixed fuzzer app and ensured that React does not crash when fuzzed 2015-08-12 06:14:36 -08:00
Felix Oghină f83675d191 [cli] convert project generation to use yeoman 2015-08-12 12:04:27 +01:00
Nick Lockwood 39230000de Fix ReactART 2015-08-11 22:44:45 -08:00
Alex Kotliarskyi 1e1efce69b Add .watchmanconfig
Summary:
This file tells watchman to watch this folder if "root_restrict_files"
is turned on.

Fixes #2042
Closes https://github.com/facebook/react-native/pull/2263
Github Author: Alex Kotliarskyi <alex.frantic@gmail.com>
2015-08-11 16:39:49 -08:00
Martín Bigio 70624dc347 [react-packager] Fix Cache-test 2015-08-11 11:27:15 -08:00
Chace Liang eb402d8c7d [e2e] Fix TouchableHighlight in e2e test 2015-08-11 10:53:50 -08:00
Christopher Chedeau 5ebe0ed717 Bust jest caching and fix tests 2015-08-11 11:02:19 -07:00
Nick Lockwood a5e9f83a0a Implemented lazy parsing of method signatures to improve TTI 2015-08-11 08:49:13 -08:00
Adam Roth 57a6a02dff [CameraRoll] Image orientation fix for #1845
Summary:
PR for #1845

Use ALAssetOrientationUp for image orientation.

Originally committed at https://github.com/facebook/react-native/commit/b34a85f4da87c62656ca9d29c5085a46e768d147
Closes https://github.com/facebook/react-native/pull/2214
Github Author: Adam Roth <adamjroth@gmail.com>
2015-08-11 08:44:57 -08:00
Christopher Chedeau 0d636a017d Updates from Tue 11 Aug 2015-08-11 08:42:07 -07:00
Nick Lockwood 4d817245f7 Fix crash when using alert() polyfill due to null callback 2015-08-11 07:31:19 -08:00
Tadeu Zagallo e2d9ddce4c [ReactNative] Fix cast warning in RCTProfile
Summary:
Buck is more strict than our current xcodeproj configuration is keeps warning
about this implicit cast, it's quite annoying.
2015-08-11 06:49:39 -08:00
Nick Lockwood 48af214216 Simplified event registration
Summary:
Our events all follow a common pattern, so there's no good reason why the configuration should be so verbose. This diff eliminates that redundancy, and gives us the freedom to simplify the underlying mechanism in future without further churning the call sites.
2015-08-11 06:41:04 -08:00
Yusef Napora 2fe1ac2a83 [Image] Fix invalid CGContext when one dimension of destination Image size == 0
Summary:
Addresses #1534

When an image has a known width, but a height of 0 (which can happen if `flex: 1` is set on the `Image` element), `RCTDownloadManager` attempts to scale it to an invalid size, which results in a `NULL` `CGContextRef` and some scary warnings from UIKit:

```
 <Error>: CGContextTranslateCTM: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context  and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.
```

This adds a check for zero width or height to the `RCTClipRect` function.  If either dimension is zero, it is calculated based on the aspect ratio of the source image.  This ensures that we don't try to create an invalid `CGContextRef`, and that images with an unknown dimension are still scaled, blended, etc.
Closes https://github.com/facebook/react-native/pull/2278
Github Author: Yusef Napora <yusef@napora.org>
2015-08-11 06:30:34 -08:00
Tom Hastjarjanto 2424a215e0 [Image] Fix default Image functionality
Summary:
In the latest 0.9.0-rc of React Native, the default image won't load due to a typo and a missing condition in `setImage`. This PR contains fixes for both of them.
Closes https://github.com/facebook/react-native/pull/2269
Github Author: Tom Hastjarjanto <tom@intellicode.nl>
2015-08-11 05:19:04 -08:00
Nick Lockwood f5d8e4d6e0 Fixed a strongSelf that was accidentally marked as __weak 2015-08-11 04:46:56 -08:00
Nick Lockwood 68f1a223fb Fixed bug when updaing props for RCTNetworkImageView 2015-08-11 04:19:28 -08:00
Evan Solomon 51ccdfa36a [Babel] Upgrade babel and regenerator to the latest version
Summary:
See https://github.com/babel/babel/commit/c0fd4c1f9e0b18231f585c4fa793e4cb0e01aed1
Closes https://github.com/facebook/react-native/pull/1753
Github Author: Evan Solomon <evan@evanalyze.com>

@allow-crlf-text
2015-08-10 20:37:39 -08:00
Dave Sibiski e163df3567 Adds process.env.NODE_ENV polyfill
Summary:
There are many libraries that use `NODE_ENV` to check whether the code is running in
"production" mode or not. This allows those library authors to not have to add conditionals
for React Native.

One such library is Redux: https://github.com/gaearon/react-redux/pull/40

Thanks to @brentvatne for providing the solution via this tweet (via his phone in the airport 😉): https://twitter.com/notbrent/status/630440250951749632

/cc @vjeux @gaearon @zpao @amasad
Closes https://github.com/facebook/react-native/pull/2279
Github Author: Dave Sibiski <dsibiski@gmail.com>
2015-08-10 19:51:05 -08:00
Martín Bigio a303a42e28 [react-packager] Add more granular Activity logging 2015-08-10 16:25:04 -08:00
Martín Bigio 2afeb8fbe6 [react-packager] Promote Cache to top level
Summary:
The cache is only used for JSTransformer at the moment. We're doing IO and some computation to get each module's name, whether is a haste or node module and it's dependencies. This work happens on startup so by caching this value we shouldbe able to reduce the start up time. Lets promote the Cache to the Packager level to be able to use it by any of the components of the packager. For now, on this diff we'll start using it to cache the mentioned fields.

Also we had to introduce the concept of fields in the cache as manually merging the date we had for each path is not possible as we're using promisses all around. With the new API, each field is a promise.

@amasad and I did some manual testing to measure the impact of this change and looks like it's saves 1 second when building the haste map (which represents 50% of the time). Overall this reduces 1 second of start up time which was currently about 8s on my mac book pro.
2015-08-10 16:25:03 -08:00
Christopher Chedeau 56059e92df Merge pull request #2288 from ide/iojs-docs
[docs] remove instructions to install node/io.js with brew
2015-08-10 15:46:36 -07:00
Nick Lockwood 5d20b9065d Fix RKHTTPRequestHandler crash 2015-08-10 13:46:47 -08:00
James Ide fd4e75644f [docs] remove instructions to install node/io.js with brew
nvm is way better than homebrew for managing node installations:

 - can install multiple versions
 - can choose which version of node to install
 - easy to clean up under ~/.nvm
 - there are still some rough edges with /usr/local on El Cap -- nvm avoids those altogether
2015-08-10 14:31:48 -07:00
Nick Lockwood 6e2e02ab08 Merge pull request #2281 from jacob-israel-turner/patch-2
Grammar
2015-08-10 22:00:03 +01:00
Nick Tuckett f309540f69 [react_native] JS files from D2327386: Simplified unimplemented SliderIOS on Android 2015-08-10 08:33:39 -08:00
Nick Lockwood b489c9aa43 Fixed perf issue due to use of regex in +[RCTConvert NSURL:] 2015-08-10 07:13:36 -08:00
Jacob Turner 5b5cadeb30 Grammar 2015-08-10 14:34:27 +01:00
Dorota Kapturkiewicz 59b974eafb [ReactNative] make AdsManager floater and TouchableHighlight accessible 2015-08-10 04:41:09 -08:00
Christopher Chedeau 50d5f86bf8 Merge pull request #2273 from vjeux/fix_az
[Website] Fix a-z order in props
2015-08-08 10:28:39 -07:00
Christopher Chedeau c1a0a72275 [Website] Fix a-z order in props 2015-08-08 10:28:05 -07:00
Nick Lockwood 94caefa9c2 Converted RCTDevLoadingView to a module and fixed url display when using delegate 2015-08-08 03:31:49 -08:00
Nick Lockwood b82ac9bf07 Reverted to pre-init of queues to fix UIExplorer tests. 2015-08-08 01:47:43 -08:00
Alex Kotliarskyi e21fb91786 [ReactNative] Show banner promoting DevTools
Summary:
When React DevTools is not installed, React prints a tiny warning to the console.
However, in debugger.html we have a lot of free space we could use to promote
React DevTools more actively.
2015-08-07 15:23:22 -08:00
Philipp von Weitershausen 0f5190e9f3 [React Native] Provide a way to get a list of registered apps in AppRegistry 2015-08-07 11:05:25 -08:00
Tadeu Zagallo 331e4a96e9 [ReactNative] Preload ModuleData queue
Summary:
The module's methodQueue wasn't being created when accessing the modules directly
on the bridge, without going through JS. Preload the queue for now to fix internal
breakages, but I'll figure out a better way to keep it lazy afterwards.
2015-08-07 11:05:09 -08:00
Ben Alpert 2d66e10ec4 [ReactNative] Delay sending touches to JS until dependent (native) gesture recognizers fail
Summary:
Previously, JS touches were being interpreted simultaneously with native gesture recognizers.
2015-08-07 10:56:26 -08:00
Alexander Kotliarskyi 3aec8ee72d Merge pull request #2267 from frantic/hide-npm-output
Hide npm output when doing react-native init
2015-08-07 11:37:49 -07:00
Felix Oghină 205a2c0bfc [react_native] JS files from D2318945: Implement a slider for React Native Android 2015-08-07 10:15:52 -08:00
Alex Kotliarskyi 2ddf3d942d Hide npm output when doing react-native init 2015-08-07 10:59:59 -07:00
Christopher Chedeau a91f44d7fd Merge pull request #2264 from vjeux/platform_props
[Website] Platform-specific props
2015-08-07 10:39:04 -07:00
Christopher Chedeau 6e9ceaa348 [Website] Platform-specific props
We are annotating platform-specific props with a special @platform tag in the docblocks. This pull request adds a little [ios] tag before the name and sorts the props such as generic ones are before platform-specific ones.
2015-08-07 10:31:07 -07:00
Tadeu Zagallo 6cd0709bc0 [ReactNative] Parellelise bridge startup
Summary:
Parallelise the bridge startup so we don't keep waiting for the source to load.
2015-08-07 06:48:30 -08:00
Nick Lockwood 3cef3010e6 Fix RCTAssert logic 2015-08-07 06:11:49 -08:00
Andy Street 1d452f3e4d [ReactNative] Remove testID from root view 2015-08-07 05:23:40 -08:00
Tj c933087567 CMD+R should post a refresh notification.
Summary:
For the sake of consistency, `cmd+r` should just post a refresh notification. This way other tools can also observe and react to the refresh without ugly hacks.
Closes https://github.com/facebook/react-native/pull/2175
Github Author: Tj <tfallon@mail.depaul.edu>
2015-08-07 04:39:21 -08:00
Vladislav Alexeev 9edad17a15 Use Dynamic Text Size Multipliers from Wilde in ReactNative Module 2015-08-07 03:18:20 -08:00
Nick Lockwood ffa7dbcbf1 Fixed onLayout redbox issue 2015-08-07 02:58:48 -08:00
Jason Zhekov a8211e32d2 Fix typo
Summary:
Closes https://github.com/facebook/react-native/pull/2055
Github Author: Jason Zhekov <jasssonpet@gmail.com>
2015-08-06 20:22:24 -08:00
Nick Lockwood deba13f698 Refactor RCTUIManager
Summary:
Moved the view creation & property binding logic out of RCTUIManager into a separate RCTComponentData class - this follows the pattern used with the bridge.

I've also updated the property  binding to use pre-allocated blocks for setting the values, which is more efficient than the previous system that re-contructed the selectors each time it was called. This should improve view update performance significantly.
2015-08-06 15:49:35 -08:00
James Ide 3309f6da80 Merge pull request #2252 from ide/iojs-docs
[Docs] Update setup instructions to install io.js 2.x instead of latest
2015-08-06 14:24:15 -07:00
James Ide 554f23276b [Docs] Update setup instructions to install io.js 2.x instead of latest
The ws module has not been updated to work with 3.x quite yet.
2015-08-06 14:22:45 -07:00
Martín Bigio aefdf82cdc [JSAppServer] Don't keep track of not found packages 2015-08-06 11:34:56 -08:00
Andrei Coman 327f84b967 [ReactNative] Sync [react_native] Implement TextInput editable 2015-08-06 11:07:06 -08:00
Tadeu Zagallo 48548fedbf [ReactNative] Fix RCTTextField crash on iOS7
Summary:
RCTTextField was its own delegate, that was causing a stall on the main thread,
see more here:
http://stackoverflow.com/questions/19758025/uitextfield-delegate-jumping-to-100-cpu-usage-and-crashing-upon-using-keyboard
2015-08-06 09:56:17 -08:00
Andrei Coman 0d981c06de [ReactNative] Sync [react_native] Text Input missing letters fix 2015-08-06 04:59:09 -08:00
Hedger Wang 8463625bd9 [Navigation]: Add a method to map the stack routes to an array.
Summary:
Add a method to map the stack routes to an array.
2015-08-06 02:01:59 -08:00
Thomas Aylott a6ff11f1d2 [react-packager] Fixes stack traces
Summary:
TransformErrors weren't showing stack traces, making it hard to debug problems in transformer code.
2015-08-05 12:46:30 -08:00
James Ide d4eac3ddca [RFC][Rendering] Add shouldRasterizeIOS to View components
Summary:
Exposes the `shouldRasterize` property. Fixes #1986.
Closes https://github.com/facebook/react-native/pull/2226
Github Author: James Ide <ide@jameside.com>
2015-08-04 15:37:38 -08:00
Tj d8f43105ed [ListView] Fix RCTScrollView stickyHeader touch passing.
Summary:
Point must be converted to the stickyHeader's coordinate space and then passed to the stickyHeaders hitTest:withEvent: method in order to be correctly routed to any subviews of the stickyHeader.

This resolves this [issue](https://github.com/facebook/react-native/issues/2075).
Closes https://github.com/facebook/react-native/pull/2224
Github Author: Tj <tfallon@Tjs-MBP.local>
2015-08-04 17:10:19 -08:00
Nick Lockwood f165bbaf4e Use +[RCTConvert NSURL:] everywhere instead of +[NSURL URLWithString:]
Summary:
RCTConvert's URL: method gracefully handles unescaped urls, local file urls, urls containing unicode, etc. URLWithString doesn't.
2015-08-04 16:26:16 -08:00
Hedger Wang 222594cb44 [Navigator] A method subtract to compute the diff between stack mutation.
Summary:
When mutation of a stack happens, we'd like to compute the diff of the stacks (before and after) so that
we can know which routes are removed in the new stack.

This diff adds a new method `substract` which does what we need.
2015-08-04 16:16:17 -08:00
Nick Lockwood 274769fd8c Added Unicode URL test 2015-08-04 15:37:05 -08:00
Nick Lockwood 9f81d6726c Merge pull request #2227 from harrykiselev/patch-1
Fix link to Apple Developer account registration.
2015-08-04 22:16:26 +01:00
Harry V. Kiselev 01deb0b03d Fix link to Apple Developer account registration. 2015-08-05 00:07:42 +03:00
Brent Vatne 257bbb5255 [Docs] Add newsletter to top-level header 2015-08-04 13:47:52 -07:00
Alex Akers bb883bfb61 Update offscreen image fix with window checking
Summary:
2015-08-04 08:05:12 -08:00
James Ide eab7b00cee [JSContext] Define ContextExecutor.setContextName for debugging
Summary:
Add a method that lets JS set the name of the JSContext for debugging purposes. I check `JSGlobalContextSetName` since it is not available on iOS 7.

Closes https://github.com/facebook/react-native/pull/2144
Github Author: James Ide <ide@jameside.com>
2015-08-04 06:08:14 -08:00
James Ide 47e1d1aef8 [Async] Enable async/await and update UIExplorer and tests
Summary:
- Enables async/await in .babelrc and transformer.js
- Adds regenerator to package.json. Users still need to explicitly require the regenerator runtime -- this is so that you only pay for what you use.
- Update AsyncStorage examples in UIExplorer to use async/await
- Update promise tests in UIExplorer to use async/await in addition to the promise API

Closes https://github.com/facebook/react-native/pull/1765
Github Author: James Ide <ide@jameside.com>
2015-08-04 05:35:13 -08:00
Amjad Masad 18452940f0 [react-packager] Add support for platform in the resolver
Summary:
Teach the resolver about platform-based resolution. The platform extension is inferred from the entry point.
It works for haste modules, as well as node-based resolution.
2015-08-03 18:29:20 -08:00
Christopher Chedeau afdeefc864 [Animated] Remove rebound dependency
Summary:
We already reimplement the spring computation, we were only using rebound for the tension/friction conversion. Turns out that it is quite small so we can just embed it. I'm doing this as I'm preparing for doing a web version of the feature and I'm trying to minimize the number of dependencies.

https://github.com/facebook/rebound-js/blob/master/rebound.js#L932
2015-08-03 15:24:40 -08:00
Nick Lockwood 6a4b83c16f Fixed retain cycle that caused RCTModuleMethods to leak
Summary:
Some of the log statements inside argument blocks in RCTModuleMethod were directly accessing ivars, thereby causing a retain cycle that retained the class. I've fixed this by making the access explicit via weakSelf.
2015-08-03 08:46:52 -08:00
Martin Konicek c63992437b [ReactNative] LayoutAnimation docs
Summary:
Improve https://facebook.github.io/react-native/docs/layoutanimation.html
2015-08-03 07:52:31 -08:00
=?UTF-8?q?=E9=9A=90=E9=A3=8E?= 44ce9194a2 Profiling will not work if the bundleURL has no port.
Summary:
If the bundleURL has no port(default 80) , the profile request URL will be `<scheme>://<host>:<null>/profile`, that will not work. So we should decide if the port exsits first.
Closes https://github.com/facebook/react-native/pull/2131
Github Author: =?UTF-8?q?=E9=9A=90=E9=A3=8E?= <yinfeng.fcx@alibaba-inc.com>
2015-08-03 07:51:33 -08:00
Alex Akers 3e21f39a77 Remove rendered RCTText contents when moving offscreen
Summary:
When an `RCTText` instance moves offscreen (possibly due to parent clipping), we unset the layer's contents until it comes onscreen again.
2015-08-03 05:43:16 -08:00
Alex Akers e9f69bc2e4 Reorganize SampleApp
Summary:
2015-08-03 03:32:03 -08:00
Dorota Kapturkiewicz e3ed572c01 [ReactNative] accessibility test app 2015-08-03 01:42:35 -08:00
Brent Vatne e2a2472af4 Merge pull request #2194 from ide/animation-docs
[Docs] Remove sections on AnimationExperimental and Pop
2015-08-02 16:16:13 -07:00
Brent Vatne 5222be0edf [Docs] Fix typo in docs index 2015-08-02 16:14:50 -07:00
James Ide 0b5e229ed2 Merge pull request #2205 from muan/title
[Docs] Add dynamic page title
2015-08-02 15:04:03 -07:00
Mu-An Chiou 129d1548a8 Add dynamic page title
Currently all the pages have the same title, making it hard to
tell which page is while when user has multiple tabs opened.
This adds 'title' to Site so a page title can be passed in and
prepended to the default title
2015-08-02 22:07:53 +08:00
James Ide bc56eb1439 Merge pull request #2201 from threepointone/patch-1
doc typo
2015-08-01 12:34:42 -07:00
Sunil Pai 5a918227f2 doc typo
match member names
2015-08-01 23:43:29 +05:30
Nick Lockwood 95d1fd142e Fixed null argument errors for timers and layout animations 2015-08-01 06:40:27 -08:00
Philipp von Weitershausen 3e79838a31 [React Native] sync JS for D2287297 2015-07-31 21:31:46 -08:00
Kevin Gozali ee8b50c955 [ReactNative] fix up XMLHttpRequest failures 2015-07-31 21:31:45 -08:00
James Ide 4a93d23af2 [Docs] Remove sections on AnimationExperimental and Pop
AnimationExperimental has been removed and Pop has been superseded by Animated.
2015-07-31 17:17:22 -07:00
Philipp von Weitershausen d858d0c4e0 [ReactNative][Android] JS for D2294884: Allow XHR to send native files, as HTTP body or via multipart FormData 2015-07-31 15:50:49 -08:00
Brent Vatne f41663a2df [WebView] Replace RKWebView with RCTWebView in log message
Summary:
Easy merge, just a small change in log message
Closes https://github.com/facebook/react-native/pull/2061
Github Author: Brent Vatne <brentvatne@gmail.com>
2015-07-31 13:49:14 -08:00
Nick Lockwood 1fb26d4319 Cleanup 2015-07-31 11:33:22 -08:00
Krzysztof Magiera b807c51bbe [ReactNative] Fix TextInput Focus issue 2015-07-31 11:03:41 -08:00
Vladislav Alexeev 53fb5b6cee Dynamic Text Sizes for Text component
Summary:
Dynamic Text Sizes for Text component.
Text gains new prop - allowFontScaling (false by default).
There is also AccessibilityManager module that allows you to tune multipliers per each content size category.
2015-07-31 07:42:41 -08:00
Nick Lockwood 407eb4ce85 NSNumber arguments must now be nonnull
Summary:
The bridge implementation on React Android does not currently support boxed numeric/boolean types (the equivalent of NSNumber arguments on iOS), nor does Java support Objective-C's nil messaging system that transparently casts nil to zero, false, etc for primitive types.

To avoid platform incompatibilities, we now treat all primitive arguments as non-nullable rather than silently converting NSNull -> nil -> 0/false.

We also now enforce that NSNumber * objects must be explicitly marked as `nonnull` (this restriction may be lifted in future if/when Android supports boxed numbers).

Other object types are still assumed to be nullable unless specifically annotated with `nonnull`.
2015-07-31 06:57:08 -08:00
Eric Vicenti 41dd6fe6ea [ReactNative][Navigator] Fix disabled scene height change
Summary:
Disabling the scene this way would make the scene height go to zero and mess up the scroll position. By setting the bottom to the same distance, the view does not get resized and the scroll position is preserved through a scene disable cycle.
2015-07-30 12:58:45 -08:00
Alex Akers f2b3057a7c Fix border width precedence issue 2015-07-30 06:18:17 -08:00
Felix Oghina 90b80e375c [reactnative] add launchAndroidPackager.command 2015-07-30 03:35:29 -08:00
Tadeu Zagallo cf22111cee [ReactNative] Prevent RCTDevLoadingView from creating UIWindow on unit tests
Summary:
`RCTDevLoadingView` was being created from a constructor function and creating
a `UIWindow` when the bridge started loading. The `UIWindow` was crashing on
the unit tests since there's no host app.
2015-07-30 03:10:53 -08:00
Dorota Kapturkiewicz 8a272bc873 [ReactNative] implement accessibilityLiveRegion and accessibilityComponentType 2015-07-30 01:40:37 -08:00
Gabe Levi d8a13ec3d5 [Flow] Deploy v0.14.0 2015-07-29 20:29:44 -08:00
Philipp von Weitershausen 4bfeeaa90d [ReactNative] Improve Flow definitions and code comments in XHR FormData polyfill 2015-07-29 20:03:57 -08:00
Zack Gomez 60c8abcc70 Revert "[ReactNative] revert "prevent ScrollView content offset from changing during layout"" 2015-07-29 17:23:18 -08:00
Hedger Wang 4b16e4d550 [Navigator]: Add a method keyOf to NavigationRouteStack.
Summary:
# Summary

Add a method `keyOf` to NavigationRouteStack.

The method `keyOf` returns a key that is associated with the route.
The a route is added to a stack, the stack creats an unique key for it and
will keep the key for the route until the route is rmeoved from the stack.

The stack also passes the keys to its derived stack (the new stack created by the
mutation API such as `push`, `pop`...etc).

The key for the route persists until the initial stack and its derived stack no longer
contains this route.

# Why Do We Need This?

Navigator has needs to use an unique key to manage the scenes rendered.
The problem is that `route` itself isn't a very reliable thing to be used as the key.

Consider this example:

```
// `scene_1` animates into the viewport.
navigator.push('scene_1');

setTimeout(() => {
 // `scene_1` animates off the viewport.
 navigator.pop();
}, 100);

setTimeout(() => {
 // Should we bring in a new scene or bring back the one that was previously popped?
 navigator.push('scene_1');
}, 200);

```

Because we currently use `route` itself as a key for the scene, we'd have to block a route
until its scene is completely off the components tree even the route itself is no longer
in the stack otherwise we'd see strange animation of jumping scenes.

# What's Next

We're hoping that we can build pure reactive view for NavigationRouteStack easily.
The naive implementation of  NavigationRouteStackView may look like this:

```
class NavigationRouteStackView {
  constructor() {
    this.state = {
      staleScenes: {},
    };
  }

  componentWillReceiveProps(nextProps) {
    if (nextProps.stack !== this.props.stack) {
      var stale;
      var staleScenes = {...this.state.staleScenes};
      this.props.stack.forEach((route, index, key) => {
        if (nextProps.stack.keyOf(route) !== key) {
          stale = true;
          staleScenes[key] = {route, index, key, stale};
        }
      });
      if (stale) {
        this.setState({
          staleScenes,
        });
      }
    }
  }

  render() {
    var scenes = [];

    this.props.stack.forEach((route, index, key) => {
      scenes.push({route, index, key});
    });

    Object.keys(this.state.staleScenes).forEach(key => {
      scenes.push(this.state.staleScenes[key]);
    });

    scenes.sort(stableSortByIndex);

    return <View>{scenes.map(renderScene)}</View>;
  }
}

```
2015-07-29 16:55:21 -08:00
Philipp von Weitershausen 37636fc59a [React Native] open source ImageEditingManager native module 2015-07-29 15:57:48 -08:00
Hedger Wang 809a2dc1d6 [Navigator: Prevent user from over-popping the routes.
Summary:
If user taps the back button quickly, the app crashes becuase "pop"
internally only checks `this.state.presentedIndex` which does not
always update when transtion happens.

This diff addresses this issue.
2015-07-29 11:42:34 -08:00
Jing Chen 8416691719 [events] Move start point of EventsDashboard to work with early boot 2015-07-29 10:47:13 -08:00
Pieter De Baets d6de865236 Cleanup AppRegistry types
Summary:
Found some missing/wrong types when playing around with the AppRegistry for routing work in the main app.
2015-07-29 09:55:24 -08:00
Dorota Kapturkiewicz e073fdc4c7 [ReactNative] add accessibilityComponentType 2015-07-29 09:20:23 -08:00
Felix Oghina dfa43f0ce5 [react_native] JS files from D2282690: make back button work in launcher app 2015-07-29 06:35:46 -08:00
Nick Lockwood 95b9dd3a88 Added support for method argument nullability
Summary:
This diff adds support for enforcing nullability in the arguments for exported methods.

We previously supported use of the nullable/nonnull attributes on method arguments, but didn't do anything to ensure that they were respected.

Now, if an argument is marked as nonnull, and a null value is sent for that argument, it will display a redbox.

In future, nonnull will be assumed by default, but for now we assume that un-annotated arguments can be null (to avoid breaking existing code).
2015-07-29 05:50:27 -08:00
Ben Alpert e0ea046092 [ReactNative] Fix ResponderEventPlugin after React upgrade 2015-07-29 02:47:55 -08:00
Kevin Gozali 87ce2d635b [ReactNative] revert "prevent ScrollView content offset from changing during layout" 2015-07-28 19:39:56 -08:00
Kevin Gozali f1b22e87f1 [madman] version mobile configs disk caching 2015-07-28 18:11:34 -08:00
Tadeu Zagallo 127f7095dc [ReactNative] Add RCTBridgeDelegate
Summary:
Add a new bridge delegate protocol to allow a more flexible bridge configuration.

For now it just support the pre-existent configurations + providing the JavaScript
source to the bridge, that should allow pre-loading sources.
2015-07-28 15:57:02 -08:00
Zack Gomez 068f396c9b [ReactNative] prevent ScrollView content offset from changing during layout
Summary:
-[UIScrollView setFrame:] changes the content offset, which we want to do manually.  Preserve the old offset during layout.
2015-07-28 14:36:27 -08:00
Nick Lockwood b812b0ee2e Added unit tests for RCTModuleMethod parsing, and fixed some edge cases 2015-07-28 13:07:52 -08:00
Alex Kotliarskyi e964e741ef [RN] Add loading view for development mode
Summary:
It's very useful to know where the app is being loaded from and
can help debug various issues.
2015-07-28 11:17:06 -08:00
Alex Akers 7d19ff3dcb Add <Modal /> component
Summary:
Create Modal component that can be used to present content modally.
2015-07-28 07:21:50 -08:00
Tadeu Zagallo f53c95c743 [ReactNative] Proxy bundleURL on RCTBatchedBridge
Summary:
Fixes #2126

`RCTBatchedBridge` didn't implement `bundleURL`, that was available on the public
bridge interface, so it'd always be `nil`, and setting it would just be ignored.
2015-07-28 05:59:45 -08:00
Nick Lockwood 1d852624fd Refactored RCTImageDownloader to use RCTNetworking instead of a separate download system 2015-07-27 13:47:52 -08:00
Leonardo YongUk Kim 01d93d294d Remove invariant of Sample.ios.js that is not used 2015-05-26 18:25:00 -07:00
Leonardo YongUk Kim 253461cb51 Use singlequote instead of doublequoe on Sample.android.js 2015-05-26 14:12:28 -07:00
1616 changed files with 123259 additions and 23412 deletions
+11
View File
@@ -0,0 +1,11 @@
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
+1 -6
View File
@@ -55,7 +55,6 @@
"no-debugger": 1, // disallow use of debugger
"no-dupe-keys": 1, // disallow duplicate keys when creating object literals
"no-empty": 0, // disallow empty statements
"no-empty-class": 1, // disallow the use of empty character classes in regular expressions
"no-ex-assign": 1, // disallow assigning to the exception in a catch block
"no-extra-boolean-cast": 1, // disallow double-negation boolean casts in a boolean context
"no-extra-parens": 0, // disallow unnecessary parentheses (off by default)
@@ -126,9 +125,7 @@
// Strict Mode
// These rules relate to using strict mode.
"global-strict": [2, "always"], // require or disallow the "use strict" pragma in the global scope (off by default in the node environment)
"no-extra-strict": 1, // disallow unnecessary use of "use strict"; when already in strict mode
"strict": 0, // require that all functions are run in strict mode
"strict": [2, "global"], // require or disallow the "use strict" pragma in the global scope (off by default in the node environment)
// Variables
// These rules have to do with variable declarations.
@@ -174,11 +171,9 @@
"no-lonely-if": 0, // disallow if as the only statement in an else block (off by default)
"no-new-object": 1, // disallow use of the Object constructor
"no-spaced-func": 1, // disallow space between function identifier and application
"no-space-before-semi": 1, // disallow space before semicolon
"no-ternary": 0, // disallow the use of ternary operators (off by default)
"no-trailing-spaces": 1, // disallow trailing whitespace at the end of lines
"no-underscore-dangle": 0, // disallow dangling underscores in identifiers
"no-wrap-func": 1, // disallow wrapping of non-IIFE statements in parens
"no-mixed-spaces-and-tabs": 1, // disallow mixed spaces and tabs for indentation
"quotes": [1, "single", "avoid-escape"], // specify whether double or single quotes should be used
"quote-props": 0, // require quotes around object literal property names (off by default)
+28 -13
View File
@@ -7,15 +7,26 @@
# Some modules have their own node_modules with overlap
.*/node_modules/node-haste/.*
# Ignore react-tools where there are overlaps, but don't ignore anything that
# react-native relies on
.*/node_modules/react-tools/src/React.js
.*/node_modules/react-tools/src/renderers/shared/reconciler/ReactInstanceHandles.js
.*/node_modules/react-tools/src/renderers/shared/event/EventPropagators.js
.*/node_modules/react-tools/src/renderers/shared/event/eventPlugins/ResponderEventPlugin.js
.*/node_modules/react-tools/src/renderers/shared/event/eventPlugins/ResponderSyntheticEvent.js
.*/node_modules/react-tools/src/renderers/shared/event/eventPlugins/ResponderTouchHistoryStore.js
.*/node_modules/react-tools/src/shared/vendor/core/ExecutionEnvironment.js
# Ugh
.*/node_modules/babel.*
.*/node_modules/babylon.*
.*/node_modules/invariant.*
# Ignore react and fbjs where there are overlaps, but don't ignore
# anything that react-native relies on
.*/node_modules/fbjs/lib/Map.js
.*/node_modules/fbjs/lib/Promise.js
.*/node_modules/fbjs/lib/fetch.js
.*/node_modules/fbjs/lib/ExecutionEnvironment.js
.*/node_modules/fbjs/lib/isEmpty.js
.*/node_modules/fbjs/lib/crc32.js
.*/node_modules/fbjs/lib/ErrorUtils.js
# Flow has a built-in definition for the 'react' module which we prefer to use
# over the currently-untyped source
.*/node_modules/react/react.js
.*/node_modules/react/lib/React.js
.*/node_modules/react/lib/ReactDOM.js
# Ignore commoner tests
.*/node_modules/commoner/test/.*
@@ -33,18 +44,22 @@
[libs]
Libraries/react-native/react-native-interface.js
Examples/UIExplorer/ImageMocks.js
[options]
module.system=haste
munge_underscores=true
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
module.name_mapper='^[./a-zA-Z0-9$_-]+\.png$' -> 'RelativeImageStub'
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FixMe
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(1[0-3]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(1[0-3]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
[version]
0.13.1
0.20.1
+6
View File
@@ -0,0 +1,6 @@
# Force LF line endings for Bash scripts. On Windows the rest of the source
# files will typically have CR+LF endings (Git default on Windows), but Bash
# scripts need to have LF endings to work (under Cygwin), thus override to force
# that.
gradlew text eol=lf
*.sh text eol=lf
+13 -3
View File
@@ -4,7 +4,6 @@
!**/*.xcworkspacedata
!**/*.xcsettings
!**/*.xcscheme
build/
*.pbxuser
!default.pbxuser
*.mode1v3
@@ -22,10 +21,21 @@ DerivedData
*.xcuserstate
project.xcworkspace
# OS X
.DS_Store
# Gradle
/build/
/Examples/**/android/app/build/
/ReactAndroid/build/
# Android
.idea
.gradle
local.properties
*.iml
# Node
node_modules
*.log
.nvm
# OS X
.DS_Store
+25 -25
View File
@@ -1,29 +1,25 @@
language: objective-c
osx_image: beta-xcode6.3
osx_image: xcode7
cache:
directories:
- node_modules
- .nvm
before_install:
- brew update
install:
- brew reinstall xctool nvm
- npm install -g flow-bin@`node -p "require('fs').readFileSync('.flowconfig', 'utf8').split('[version]')[1].trim()"`
- brew reinstall nvm
- mkdir -p .nvm
- cp $(brew --prefix nvm)/nvm-exec .nvm/
- export NVM_DIR=.nvm
- export NVM_DIR="$PWD/.nvm"
- source $(brew --prefix nvm)/nvm.sh
- nvm install iojs-v2
- nvm install 5
- rm -Rf "${TMPDIR}/jest_preprocess_cache"
- npm config set spin=false
- npm install -g flow-bin@`node -p "require('fs').readFileSync('.flowconfig', 'utf8').split('[version]')[1].trim()"`
- npm install
script:
- |
nvm use iojs-v2
if [ "$TEST_TYPE" = objc ]
then
@@ -32,26 +28,25 @@ script:
elif [ "$TEST_TYPE" = js ]
then
flow check && npm test
npm install github@0.2.4
cat <(echo eslint; npm run lint --silent -- --format=json; echo flow; flow --json) | GITHUB_TOKEN="af6ef0d15709bc91d""06a6217a5a826a226fb57b7" node bots/code-analysis-bot.js
flow check && npm test -- '\/Libraries\/'
elif [ "$TEST_TYPE" = build_website ]
elif [ "$TEST_TYPE" = packager ]
then
cd website
npm install
./setup.sh
if [ "$TRAVIS_PULL_REQUEST" = false ] && [ "$TRAVIS_BRANCH" = master ]; then
# Automatically publish the website
echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" >~/.netrc
./publish.sh
else
# Make sure the website builds without error
node server/generate.js
fi
npm test -- '\/packager\/'
elif [ "$TEST_TYPE" = cli ]
then
npm test -- '\/(local|private|react-native)-cli\/'
elif [ "$TEST_TYPE" = e2e ]
then
./scripts/e2e-test.sh
else
echo "Unknown test type: $TEST_TYPE"
exit 1
@@ -61,11 +56,16 @@ env:
matrix:
- TEST_TYPE=objc
- TEST_TYPE=js
- TEST_TYPE=build_website
- TEST_TYPE=packager
- TEST_TYPE=cli
- TEST_TYPE=e2e
global:
- secure: "HlmG8M2DmBUSBh6KH1yVIe/8gR4iibg4WfcHq1x/xYQxGbvleq7NOo04V6eFHnl9cvZCu+PKH0841WLnGR7c4BBf47GVu/o16nXzggPumHKy++lDzxFPlJ1faMDfjg/5vjbAxRUe7D3y98hQSeGHH4tedc8LvTaFLVu7iiGqvjU="
# $APPETIZE_TOKEN
- secure: "egsvVSpszTzrNd6bN62DsVAzMiSZI/OHgdizfPryqvqWBf655ztE6XFQSEFNpuIAzSKDDF25ioT8iPfVsbC1iK6HDWHfmqYxML0L+OoU0gi+hV2oKUBFZDZ1fwSnFoWuBdNdMDpLlUxvJp6N1WyfNOB2dxuZUt8eTt48Hi3+Hpc="
# $S3_TOKEN
- secure: "lY8JZPA0A7zT7L5KF9BBg34XYWIeR/RJiEvE7l7oVr88KnEPtyd//79eHhhVKnUnav7zsk5QJwkcX0MxKTp/dp4G0Am+zOX+sfA8kQrJ+2/+FzFW7AEsW/kHByfaIEIly9DQvUFt4I4oMm8nQZysJLahDgNWglyI3RTuJp//hcY="
branches:
only:
- master
- /^.*-stable$/
+38 -5
View File
@@ -19,9 +19,28 @@ The core team will be monitoring for pull requests. When we get one, we'll run s
1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests!
3. If you've changed APIs, update the documentation.
4. Ensure tests pass on Travis.
5. Make sure your code lints (`node linter.js <files touched>`).
6. If you haven't already, complete the CLA.
4. Add the copyright notice to the top of any new files you've added.
5. Ensure tests pass on Travis and Circle CI.
6. Make sure your code lints (`node linter.js <files touched>`).
7. Squash your commits (`git rebase -i`).
8. If you haven't already, sign the [CLA](https://code.facebook.com/cla).
#### Copyright Notice for files
Copy and paste this to the top of your new file(s):
```JS
/**
* 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.
*/
```
If you've added a new module, add a `@providesModule <moduleName>` at the end of the comment. This will allow the haste package manager to find it.
### Contributor License Agreement (CLA)
@@ -33,7 +52,7 @@ In order to accept your pull request, we need you to submit a CLA. You only need
### Where to Find Known Issues
We will be using GitHub Issues for our public bugs. We will keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn't already exist.
We are using GitHub Issues for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn't already exist.
### Reporting New Issues
@@ -45,8 +64,8 @@ Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe
## How to Get in Touch
* IRC - [#reactnative on freenode](http://webchat.freenode.net/?channels=reactnative)
* [Facebook group](https://www.facebook.com/groups/react.native.community/)
* Reactiflux — [#react-native](http://join.reactiflux.com/)
## Style Guide
@@ -66,6 +85,14 @@ Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe
* Do not use the optional parameters of `setTimeout` and `setInterval`
* 80 character line length
#### JSX
* Prefer `'` over `"` for string literal props
* When wrapping opening tags over multiple lines, place one prop per line
* `{}` of props should hug their values (no spaces)
* Place the closing `>` of opening tags on the same line as the last prop
* Place the closing `/>` of self-closing tags on their own line and left-align them with the opening `<`
#### Objective-C
* Space after `@property` declarations
@@ -74,6 +101,12 @@ Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe
* *Try* to keep it around 80 characters line length (sometimes it's just not possible...)
* `*` operator goes with the variable name (e.g. `NSObject *variableName;`)
#### Java
* If a method call spans multiple lines closing bracket is on the same line as the last argument.
* If a method header doesn't fit on one line each argument goes on a separate line.
* 100 character line length
### Documentation
* Do not wrap lines at 80 characters - configure your editor to soft-wrap when editing documentation.
+19 -25
View File
@@ -12,7 +12,7 @@
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
1461632D1AC3E23900C2F5AD /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1461632C1AC3E22900C2F5AD /* libReact.a */; };
58C1E40E1ACF54E9006D1A47 /* libRCTAnimationExperimental.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58C1E40B1ACF54B4006D1A47 /* libRCTAnimationExperimental.a */; };
5F82F1781B85785200FAE87E /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F82F1771B85784500FAE87E /* libRCTWebSocket.a */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
/* End PBXBuildFile section */
@@ -24,12 +24,12 @@
remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
remoteInfo = React;
};
58C1E40A1ACF54B4006D1A47 /* PBXContainerItemProxy */ = {
5F82F1761B85784500FAE87E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 13ACB66C1AC2113500FF4204 /* RCTAnimationExperimental.xcodeproj */;
containerPortal = 5F82F1721B85784500FAE87E /* RCTWebSocket.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RCTAnimationExperimental;
remoteGlobalIDString = 3C86DF461ADF2C930047B81A;
remoteInfo = RCTWebSocket;
};
832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
@@ -41,7 +41,6 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
13ACB66C1AC2113500FF4204 /* RCTAnimationExperimental.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimationExperimental.xcodeproj; path = ../../Libraries/Animation/RCTAnimationExperimental.xcodeproj; sourceTree = "<group>"; };
13B07F961A680F5B00A75B9A /* 2048.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = 2048.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = 2048/AppDelegate.h; sourceTree = "<group>"; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = 2048/AppDelegate.m; sourceTree = "<group>"; };
@@ -50,6 +49,7 @@
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = 2048/Info.plist; sourceTree = "<group>"; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = 2048/main.m; sourceTree = "<group>"; };
146163271AC3E22900C2F5AD /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = ../../React/React.xcodeproj; sourceTree = "<group>"; };
5F82F1721B85784500FAE87E /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = ../../Libraries/WebSocket/RCTWebSocket.xcodeproj; sourceTree = "<group>"; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = ../../Libraries/Text/RCTText.xcodeproj; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -58,8 +58,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5F82F1781B85785200FAE87E /* libRCTWebSocket.a in Frameworks */,
1461632D1AC3E23900C2F5AD /* libReact.a in Frameworks */,
58C1E40E1ACF54E9006D1A47 /* libRCTAnimationExperimental.a in Frameworks */,
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -88,10 +88,10 @@
name = Products;
sourceTree = "<group>";
};
58C1E4071ACF54B4006D1A47 /* Products */ = {
5F82F1731B85784500FAE87E /* Products */ = {
isa = PBXGroup;
children = (
58C1E40B1ACF54B4006D1A47 /* libRCTAnimationExperimental.a */,
5F82F1771B85784500FAE87E /* libRCTWebSocket.a */,
);
name = Products;
sourceTree = "<group>";
@@ -99,9 +99,9 @@
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup;
children = (
5F82F1721B85784500FAE87E /* RCTWebSocket.xcodeproj */,
146163271AC3E22900C2F5AD /* React.xcodeproj */,
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */,
13ACB66C1AC2113500FF4204 /* RCTAnimationExperimental.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
@@ -174,14 +174,14 @@
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = 58C1E4071ACF54B4006D1A47 /* Products */;
ProjectRef = 13ACB66C1AC2113500FF4204 /* RCTAnimationExperimental.xcodeproj */;
},
{
ProductGroup = 832341B11AAA6A8300B99B32 /* Products */;
ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */;
},
{
ProductGroup = 5F82F1731B85784500FAE87E /* Products */;
ProjectRef = 5F82F1721B85784500FAE87E /* RCTWebSocket.xcodeproj */;
},
{
ProductGroup = 146163281AC3E22900C2F5AD /* Products */;
ProjectRef = 146163271AC3E22900C2F5AD /* React.xcodeproj */;
@@ -202,11 +202,11 @@
remoteRef = 1461632B1AC3E22900C2F5AD /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
58C1E40B1ACF54B4006D1A47 /* libRCTAnimationExperimental.a */ = {
5F82F1771B85784500FAE87E /* libRCTWebSocket.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTAnimationExperimental.a;
remoteRef = 58C1E40A1ACF54B4006D1A47 /* PBXContainerItemProxy */;
path = libRCTWebSocket.a;
remoteRef = 5F82F1761B85784500FAE87E /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
832341B51AAA6A8300B99B32 /* libRCTText.a */ = {
@@ -266,10 +266,7 @@
);
INFOPLIST_FILE = "$(SRCROOT)/2048/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/sahrens/src/fbobjc-hg/Libraries/FBReactKit/js/react-native-github/Libraries/Animation/build/Debug-iphoneos",
);
LIBRARY_SEARCH_PATHS = "$(inherited)";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = 2048;
@@ -287,10 +284,7 @@
);
INFOPLIST_FILE = "$(SRCROOT)/2048/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/sahrens/src/fbobjc-hg/Libraries/FBReactKit/js/react-native-github/Libraries/Animation/build/Debug-iphoneos",
);
LIBRARY_SEARCH_PATHS = "$(inherited)";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = 2048;
+4 -3
View File
@@ -36,14 +36,14 @@
* on the same Wi-Fi network.
*/
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/Examples/2048/Game2048.includeRequire.runModule.bundle"];
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/Examples/2048/Game2048.bundle?platform=ios&dev=true"];
/**
* OPTION 2
* Load from pre-bundled file on disk. To re-generate the static bundle, `cd`
* to your Xcode project folder in the terminal, and run
*
* $ curl 'http://localhost:8081/Examples/2048/Game2048.includeRequire.runModule.bundle' -o main.jsbundle
* $ curl 'http://localhost:8081/Examples/2048/Game2048.bundle?platform=ios' -o main.jsbundle
*
* then add the `main.jsbundle` file to your project and uncomment this line:
*/
@@ -52,10 +52,11 @@
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"Game2048"
initialProperties:nil
launchOptions:launchOptions];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [[UIViewController alloc] init];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
+2 -2
View File
@@ -237,7 +237,7 @@ var styles = StyleSheet.create({
marginBottom: 20,
},
tryAgain: {
backgroundColor: '#887766',
backgroundColor: '#887761',
padding: 20,
borderRadius: 5,
},
@@ -279,7 +279,7 @@ var styles = StyleSheet.create({
backgroundColor: '#eeeecc',
},
tile8: {
backgroundColor: '#ffbb88',
backgroundColor: '#ffbb87',
},
tile16: {
backgroundColor: '#ff9966',
+1 -1
View File
@@ -17,7 +17,7 @@
'use strict';
// NB: Taken straight from: https://github.com/IvanVergiliev/2048-react/blob/master/src/board.js
// with no modificiation except to format it for CommonJS and fix lint/flow errors
// with no modification except to format it for CommonJS and fix lint/flow errors
var rotateLeft = function (matrix) {
var rows = matrix.length;
+8 -2
View File
@@ -19,9 +19,11 @@ var React = require('react-native');
var {
Image,
PixelRatio,
Platform,
StyleSheet,
Text,
TouchableHighlight,
TouchableNativeFeedback,
View
} = React;
@@ -32,9 +34,13 @@ var getTextFromScore = require('./getTextFromScore');
var MovieCell = React.createClass({
render: function() {
var criticsScore = this.props.movie.ratings.critics_score;
var TouchableElement = TouchableHighlight;
if (Platform.OS === 'android') {
TouchableElement = TouchableNativeFeedback;
}
return (
<View>
<TouchableHighlight
<TouchableElement
onPress={this.props.onSelect}
onShowUnderlay={this.props.onHighlight}
onHideUnderlay={this.props.onUnhighlight}>
@@ -59,7 +65,7 @@ var MovieCell = React.createClass({
</Text>
</View>
</View>
</TouchableHighlight>
</TouchableElement>
</View>
);
}
@@ -216,7 +216,7 @@
83CBB9F71A601CBA00E9B192 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0610;
LastUpgradeCheck = 0700;
ORGANIZATIONNAME = Facebook;
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Movies" */;
@@ -358,6 +358,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(inherited)";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = Movies;
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../Libraries/**";
};
@@ -376,6 +377,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "$(inherited)";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = Movies;
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../Libraries/**";
};
@@ -401,6 +403,7 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
LastUpgradeVersion = "0700"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -38,6 +38,8 @@
ReferencedContainer = "container:Movies.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
@@ -47,8 +49,10 @@
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable>
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
@@ -66,7 +70,8 @@
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<BuildableProductRunnable>
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
+4 -3
View File
@@ -37,14 +37,14 @@
* on the same Wi-Fi network.
*/
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/Examples/Movies/MoviesApp.includeRequire.runModule.bundle"];
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/Examples/Movies/MoviesApp.ios.bundle?platform=ios&dev=true"];
/**
* OPTION 2
* Load from pre-bundled file on disk. To re-generate the static bundle, `cd`
* to your Xcode project folder in the terminal, and run
*
* $ curl 'http://localhost:8081/Examples/Movies/MoviesApp.includeRequire.runModule.bundle' -o main.jsbundle
* $ curl 'http://localhost:8081/Examples/Movies/MoviesApp.ios.bundle?platform=ios&dev=true' -o main.jsbundle
*
* then add the `main.jsbundle` file to your project and uncomment this line:
*/
@@ -53,10 +53,11 @@
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"MoviesApp"
initialProperties:nil
launchOptions:launchOptions];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [[UIViewController alloc] init];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
+6 -7
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.facebook.$(PRODUCT_NAME:rfc1034identifier)</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
@@ -33,6 +33,11 @@
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
@@ -47,11 +52,5 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>NSAppTransportSecurity</key>
<dict>
<!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/-->
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
</plist>
+94
View File
@@ -0,0 +1,94 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @providesModule MoviesApp
* @flow
*/
'use strict';
var React = require('react-native');
var {
AppRegistry,
BackAndroid,
Navigator,
StyleSheet,
ToolbarAndroid,
View,
} = React;
var MovieScreen = require('./MovieScreen');
var SearchScreen = require('./SearchScreen');
var _navigator;
BackAndroid.addEventListener('hardwareBackPress', () => {
if (_navigator && _navigator.getCurrentRoutes().length > 1) {
_navigator.pop();
return true;
}
return false;
});
var RouteMapper = function(route, navigationOperations, onComponentRef) {
_navigator = navigationOperations;
if (route.name === 'search') {
return (
<SearchScreen navigator={navigationOperations} />
);
} else if (route.name === 'movie') {
return (
<View style={{flex: 1}}>
<ToolbarAndroid
actions={[]}
navIcon={require('image!android_back_white')}
onIconClicked={navigationOperations.pop}
style={styles.toolbar}
titleColor="white"
title={route.movie.title} />
<MovieScreen
style={{flex: 1}}
navigator={navigationOperations}
movie={route.movie}
/>
</View>
);
}
};
var MoviesApp = React.createClass({
render: function() {
var initialRoute = {name: 'search'};
return (
<Navigator
style={styles.container}
initialRoute={initialRoute}
configureScene={() => Navigator.SceneConfigs.FadeAndroid}
renderScene={RouteMapper}
/>
);
}
});
var styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'white',
},
toolbar: {
backgroundColor: '#a9a9a9',
height: 56,
},
});
AppRegistry.registerComponent('MoviesApp', () => MoviesApp);
module.exports = MoviesApp;
+42
View File
@@ -0,0 +1,42 @@
# Movies app
The Movies app is a demonstration of basic concepts, such as fetching data, rendering a list of data including images, and navigating between different screens.
## Running this app
Before running the app, make sure you ran:
git clone https://github.com/facebook/react-native.git
cd react-native
npm install
### Running on iOS
Mac OS and Xcode are required.
- Open `Examples/Movies/Movies.xcodeproj` in Xcode
- Hit the Run button
See [Running on device](https://facebook.github.io/react-native/docs/running-on-device-ios.html) if you want to use a physical device.
### Running on Android
You'll need to have all the [prerequisites](https://github.com/facebook/react-native/tree/master/ReactAndroid#prerequisites) (SDK, NDK) for Building React Native installed.
Start an Android emulator ([Genymotion](https://www.genymotion.com) is recommended).
cd react-native
./gradlew :Examples:Movies:android:app:installDebug
./packager/packager.sh
_Note: Building for the first time can take a while._
Open the Movies app in your emulator.
See [Running on Device](https://facebook.github.io/react-native/docs/running-on-device-android.html) in case you want to use a physical device.
## Built from source
Building the app on both iOS and Android means building the React Native framework from source. This way you're running the latest native and JS code the way you see it in your clone of the github repo.
This is different from apps created using `react-native init` which have a dependency on a specific version of React Native JS and native code, declared in a `package.json` file (and `build.gradle` for Android apps).
+104
View File
@@ -0,0 +1,104 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @providesModule SearchBar
* @flow
*/
'use strict';
var React = require('react-native');
var {
Image,
Platform,
ProgressBarAndroid,
TextInput,
StyleSheet,
TouchableNativeFeedback,
View,
} = React;
var IS_RIPPLE_EFFECT_SUPPORTED = Platform.Version >= 21;
var SearchBar = React.createClass({
render: function() {
var loadingView;
if (this.props.isLoading) {
loadingView = (
<ProgressBarAndroid
styleAttr="Large"
style={styles.spinner}
/>
);
} else {
loadingView = <View style={styles.spinner} />;
}
var background = IS_RIPPLE_EFFECT_SUPPORTED ?
TouchableNativeFeedback.SelectableBackgroundBorderless() :
TouchableNativeFeedback.SelectableBackground();
return (
<View style={styles.searchBar}>
<TouchableNativeFeedback
background={background}
onPress={() => this.refs.input && this.refs.input.focus()}>
<View>
<Image
source={require('image!android_search_white')}
style={styles.icon}
/>
</View>
</TouchableNativeFeedback>
<TextInput
ref="input"
autoCapitalize="none"
autoCorrect={false}
autoFocus={true}
onChange={this.props.onSearchChange}
placeholder="Search a movie..."
placeholderTextColor="rgba(255, 255, 255, 0.5)"
onFocus={this.props.onFocus}
style={styles.searchBarInput}
/>
{loadingView}
</View>
);
}
});
var styles = StyleSheet.create({
searchBar: {
flexDirection: 'row',
alignItems: 'center',
backgroundColor: '#a9a9a9',
height: 56,
},
searchBarInput: {
flex: 1,
fontSize: 20,
fontWeight: 'bold',
color: 'white',
height: 50,
padding: 0,
backgroundColor: 'transparent'
},
spinner: {
width: 30,
height: 30,
},
icon: {
width: 24,
height: 24,
marginHorizontal: 8,
},
});
module.exports = SearchBar;
+66
View File
@@ -0,0 +1,66 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @providesModule SearchBar
* @flow
*/
'use strict';
var React = require('react-native');
var {
ActivityIndicatorIOS,
TextInput,
StyleSheet,
View,
} = React;
var SearchBar = React.createClass({
render: function() {
return (
<View style={styles.searchBar}>
<TextInput
autoCapitalize="none"
autoCorrect={false}
onChange={this.props.onSearchChange}
placeholder="Search a movie..."
onFocus={this.props.onFocus}
style={styles.searchBarInput}
/>
<ActivityIndicatorIOS
animating={this.props.isLoading}
style={styles.spinner}
/>
</View>
);
}
});
var styles = StyleSheet.create({
searchBar: {
marginTop: 64,
padding: 3,
paddingLeft: 8,
flexDirection: 'row',
alignItems: 'center',
},
searchBarInput: {
fontSize: 15,
flex: 1,
height: 30,
},
spinner: {
width: 30,
},
});
module.exports = SearchBar;
+30 -45
View File
@@ -19,17 +19,20 @@ var React = require('react-native');
var {
ActivityIndicatorIOS,
ListView,
Platform,
ProgressBarAndroid,
StyleSheet,
Text,
TextInput,
View,
} = React;
var TimerMixin = require('react-timer-mixin');
var invariant = require('invariant');
var dismissKeyboard = require('dismissKeyboard');
var MovieCell = require('./MovieCell');
var MovieScreen = require('./MovieScreen');
var SearchBar = require('SearchBar');
/**
* This is for demo purposes only, and rate limited.
@@ -219,11 +222,20 @@ var SearchScreen = React.createClass({
},
selectMovie: function(movie: Object) {
this.props.navigator.push({
title: movie.title,
component: MovieScreen,
passProps: {movie},
});
if (Platform.OS === 'ios') {
this.props.navigator.push({
title: movie.title,
component: MovieScreen,
passProps: {movie},
});
} else {
dismissKeyboard();
this.props.navigator.push({
title: movie.title,
name: 'movie',
movie: movie,
});
}
},
onSearchChange: function(event: Object) {
@@ -237,7 +249,15 @@ var SearchScreen = React.createClass({
if (!this.hasMore() || !this.state.isLoadingTail) {
return <View style={styles.scrollSpinner} />;
}
return <ActivityIndicatorIOS style={styles.scrollSpinner} />;
if (Platform.OS === 'ios') {
return <ActivityIndicatorIOS style={styles.scrollSpinner} />;
} else {
return (
<View style={{alignItems: 'center'}}>
<ProgressBarAndroid styleAttr="Large"/>
</View>
);
}
},
renderSeparator: function(
@@ -250,7 +270,7 @@ var SearchScreen = React.createClass({
style = [style, styles.rowSeparatorHide];
}
return (
<View key={"SEP_" + sectionID + "_" + rowID} style={style}/>
<View key={'SEP_' + sectionID + '_' + rowID} style={style}/>
);
},
@@ -295,7 +315,8 @@ var SearchScreen = React.createClass({
<SearchBar
onSearchChange={this.onSearchChange}
isLoading={this.state.isLoading}
onFocus={() => this.refs.listview.getScrollResponder().scrollTo(0, 0)}
onFocus={() =>
this.refs.listview && this.refs.listview.getScrollResponder().scrollTo(0, 0)}
/>
<View style={styles.separator} />
{content}
@@ -323,27 +344,6 @@ var NoMovies = React.createClass({
}
});
var SearchBar = React.createClass({
render: function() {
return (
<View style={styles.searchBar}>
<TextInput
autoCapitalize="none"
autoCorrect={false}
onChange={this.props.onSearchChange}
placeholder="Search a movie..."
onFocus={this.props.onFocus}
style={styles.searchBarInput}
/>
<ActivityIndicatorIOS
animating={this.props.isLoading}
style={styles.spinner}
/>
</View>
);
}
});
var styles = StyleSheet.create({
container: {
flex: 1,
@@ -356,25 +356,10 @@ var styles = StyleSheet.create({
marginTop: 80,
color: '#888888',
},
searchBar: {
marginTop: 64,
padding: 3,
paddingLeft: 8,
flexDirection: 'row',
alignItems: 'center',
},
searchBarInput: {
fontSize: 15,
flex: 1,
height: 30,
},
separator: {
height: 1,
backgroundColor: '#eeeeee',
},
spinner: {
width: 30,
},
scrollSpinner: {
marginVertical: 20,
},
+31
View File
@@ -0,0 +1,31 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.facebook.react.movies"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
// Build React Native from source
compile project(':ReactAndroid')
}
@@ -0,0 +1 @@
android.useDeprecatedNdk=true
+17
View File
@@ -0,0 +1,17 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
@@ -0,0 +1,22 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react.movies">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/rotten_tomatoes_icon"
android:theme="@style/AppTheme">
<activity
android:name=".MoviesActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
@@ -0,0 +1,89 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.facebook.react.movies;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import com.facebook.react.LifecycleState;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactRootView;
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
import com.facebook.react.shell.MainReactPackage;
public class MoviesActivity extends Activity implements DefaultHardwareBackBtnHandler {
private ReactInstanceManager mReactInstanceManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("MoviesApp.android.bundle")
.setJSMainModuleName("Examples/Movies/MoviesApp.android")
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(true)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
((ReactRootView) findViewById(R.id.react_root_view))
.startReactApplication(mReactInstanceManager, "MoviesApp", null);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU && mReactInstanceManager != null) {
mReactInstanceManager.showDevOptionsDialog();
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
protected void onPause() {
super.onPause();
if (mReactInstanceManager != null) {
mReactInstanceManager.onPause();
}
}
@Override
protected void onResume() {
super.onResume();
if (mReactInstanceManager != null) {
mReactInstanceManager.onResume(this, this);
}
}
@Override
public void onBackPressed() {
if (mReactInstanceManager != null) {
mReactInstanceManager.onBackPressed();
} else {
super.onBackPressed();
}
}
@Override
public void invokeDefaultOnBackPressed() {
super.onBackPressed();
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

@@ -0,0 +1,12 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MoviesApp">
<com.facebook.react.ReactRootView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/react_root_view"/>
</RelativeLayout>
@@ -0,0 +1,3 @@
<resources>
<string name="app_name">MoviesApp</string>
</resources>
@@ -0,0 +1,8 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
+3 -1
View File
@@ -22,7 +22,9 @@ var {
var MAX_VALUE = 200;
function getStyleFromScore(score: number): {color: string} {
import type { StyleObj } from 'StyleSheetTypes';
function getStyleFromScore(score: number): StyleObj {
if (score < 0) {
return styles.noScore;
}
-27
View File
@@ -1,27 +0,0 @@
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# node.js
#
node_modules/
npm-debug.log
-47
View File
@@ -1,47 +0,0 @@
[ignore]
# We fork some components by platform.
.*/*.web.js
.*/*.android.js
# Some modules have their own node_modules with overlap
.*/node_modules/node-haste/.*
# Ignore react-tools where there are overlaps, but don't ignore anything that
# react-native relies on
.*/node_modules/react-tools/src/React.js
.*/node_modules/react-tools/src/renderers/shared/reconciler/ReactInstanceHandles.js
.*/node_modules/react-tools/src/renderers/shared/event/EventPropagators.js
.*/node_modules/react-tools/src/renderers/shared/event/eventPlugins/ResponderEventPlugin.js
.*/node_modules/react-tools/src/renderers/shared/event/eventPlugins/ResponderSyntheticEvent.js
.*/node_modules/react-tools/src/renderers/shared/event/eventPlugins/ResponderTouchHistoryStore.js
.*/node_modules/react-tools/src/shared/vendor/core/ExecutionEnvironment.js
# Ignore commoner tests
.*/node_modules/commoner/test/.*
# See https://github.com/facebook/flow/issues/442
.*/react-tools/node_modules/commoner/lib/reader.js
# Ignore jest
.*/react-native/node_modules/jest-cli/.*
[include]
[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
[options]
module.system=haste
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FixMe
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(1[0-3]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(1[0-3]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
[version]
0.13.1
-8
View File
@@ -1,8 +0,0 @@
// Offline JS
// To re-generate the offline bundle, run this from the root of your project:
//
// $ react-native bundle --minify
//
// See http://facebook.github.io/react-native/docs/runningondevice.html for more details.
throw new Error('Offline JS file is empty. See iOS/main.jsbundle for instructions');
@@ -14,6 +14,7 @@
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
144C5F691AC3E5E300B004E7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 144C5F681AC3E5D800B004E7 /* libReact.a */; };
58C572511AA6229D00CDF9C8 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58C5724D1AA6224400CDF9C8 /* libRCTText.a */; };
5FF8942E1B85571A007731BE /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FF8942D1B8556F8007731BE /* libRCTWebSocket.a */; };
832044981B492C2500E297FC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832044951B492C1E00E297FC /* libRCTSettings.a */; };
/* End PBXBuildFile section */
@@ -39,6 +40,13 @@
remoteGlobalIDString = 58B5119B1A9E6C1200147676;
remoteInfo = RCTText;
};
5FF8942C1B8556F8007731BE /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5FF894281B8556F8007731BE /* RCTWebSocket.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3C86DF461ADF2C930047B81A;
remoteInfo = RCTWebSocket;
};
832044941B492C1E00E297FC /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 8320448F1B492C1E00E297FC /* RCTSettings.xcodeproj */;
@@ -59,6 +67,7 @@
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = TicTacToe/main.m; sourceTree = "<group>"; };
144C5F631AC3E5D800B004E7 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = ../../React/React.xcodeproj; sourceTree = "<group>"; };
587650DA1A9EB0DB008B8F17 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = ../../Libraries/Text/RCTText.xcodeproj; sourceTree = "<group>"; };
5FF894281B8556F8007731BE /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = ../../Libraries/WebSocket/RCTWebSocket.xcodeproj; sourceTree = "<group>"; };
8320448F1B492C1E00E297FC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = ../../Libraries/Settings/RCTSettings.xcodeproj; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -67,6 +76,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5FF8942E1B85571A007731BE /* libRCTWebSocket.a in Frameworks */,
144C5F691AC3E5E300B004E7 /* libReact.a in Frameworks */,
1341803E1AA91802003F314A /* libRCTImage.a in Frameworks */,
58C572511AA6229D00CDF9C8 /* libRCTText.a in Frameworks */,
@@ -109,6 +119,7 @@
58C572071AA6126D00CDF9C8 /* Libraries */ = {
isa = PBXGroup;
children = (
5FF894281B8556F8007731BE /* RCTWebSocket.xcodeproj */,
144C5F631AC3E5D800B004E7 /* React.xcodeproj */,
134180381AA917ED003F314A /* RCTImage.xcodeproj */,
8320448F1B492C1E00E297FC /* RCTSettings.xcodeproj */,
@@ -125,6 +136,14 @@
name = Products;
sourceTree = "<group>";
};
5FF894291B8556F8007731BE /* Products */ = {
isa = PBXGroup;
children = (
5FF8942D1B8556F8007731BE /* libRCTWebSocket.a */,
);
name = Products;
sourceTree = "<group>";
};
832044901B492C1E00E297FC /* Products */ = {
isa = PBXGroup;
children = (
@@ -205,6 +224,10 @@
ProductGroup = 58C572481AA6224300CDF9C8 /* Products */;
ProjectRef = 587650DA1A9EB0DB008B8F17 /* RCTText.xcodeproj */;
},
{
ProductGroup = 5FF894291B8556F8007731BE /* Products */;
ProjectRef = 5FF894281B8556F8007731BE /* RCTWebSocket.xcodeproj */;
},
{
ProductGroup = 144C5F641AC3E5D800B004E7 /* Products */;
ProjectRef = 144C5F631AC3E5D800B004E7 /* React.xcodeproj */;
@@ -239,6 +262,13 @@
remoteRef = 58C5724C1AA6224400CDF9C8 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
5FF8942D1B8556F8007731BE /* libRCTWebSocket.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTWebSocket.a;
remoteRef = 5FF8942C1B8556F8007731BE /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
832044951B492C1E00E297FC /* libRCTSettings.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
+4 -3
View File
@@ -36,14 +36,14 @@
* on the same Wi-Fi network.
*/
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/Examples/TicTacToe/TicTacToeApp.includeRequire.runModule.bundle"];
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/Examples/TicTacToe/TicTacToeApp.bundle?platform=ios&dev=true"];
/**
* OPTION 2
* Load from pre-bundled file on disk. To re-generate the static bundle, `cd`
* to your Xcode project folder in the terminal, and run
*
* $ curl 'http://localhost:8081/Examples/TicTacToe/TicTacToeApp.includeRequire.runModule.bundle' -o main.jsbundle
* $ curl 'http://localhost:8081/Examples/TicTacToe/TicTacToeApp.bundle?platform=ios' -o main.jsbundle
*
* then add the `main.jsbundle` file to your project and uncomment this line:
*/
@@ -52,10 +52,11 @@
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"TicTacToeApp"
initialProperties:nil
launchOptions:launchOptions];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [[UIViewController alloc] init];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
-1
View File
@@ -89,7 +89,6 @@ class Board {
}
}
}
return this.winner() === null;
}
}
@@ -0,0 +1,213 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
'use strict';
var React = require('react-native');
var {
StyleSheet,
Text,
View,
ToastAndroid,
TouchableWithoutFeedback,
} = React;
var UIExplorerBlock = require('./UIExplorerBlock');
var UIExplorerPage = require('./UIExplorerPage');
var importantForAccessibilityValues = ['auto', 'yes', 'no', 'no-hide-descendants'];
var AccessibilityAndroidExample = React.createClass({
statics: {
title: 'Accessibility',
description: 'Examples of using Accessibility API.',
},
getInitialState: function() {
return {
count: 0,
backgroundImportantForAcc: 0,
forgroundImportantForAcc: 0,
};
},
_addOne: function() {
this.setState({
count: ++this.state.count,
});
},
_changeBackgroundImportantForAcc: function() {
this.setState({
backgroundImportantForAcc: (this.state.backgroundImportantForAcc + 1) % 4,
});
},
_changeForgroundImportantForAcc: function() {
this.setState({
forgroundImportantForAcc: (this.state.forgroundImportantForAcc + 1) % 4,
});
},
render: function() {
return (
<UIExplorerPage title={'Accessibility'}>
<UIExplorerBlock title="Nonaccessible view with TextViews">
<View>
<Text style={{color: 'green',}}>
This is
</Text>
<Text style={{color: 'blue'}}>
nontouchable normal view.
</Text>
</View>
</UIExplorerBlock>
<UIExplorerBlock title="Accessible view with TextViews wihout label">
<View accessible={true}>
<Text style={{color: 'green',}}>
This is
</Text>
<Text style={{color: 'blue'}}>
nontouchable accessible view without label.
</Text>
</View>
</UIExplorerBlock>
<UIExplorerBlock title="Accessible view with TextViews with label">
<View accessible={true}
accessibilityLabel="I have label, so I read it instead of embedded text.">
<Text style={{color: 'green',}}>
This is
</Text>
<Text style={{color: 'blue'}}>
nontouchable accessible view with label.
</Text>
</View>
</UIExplorerBlock>
<UIExplorerBlock title="Touchable with component type = button">
<TouchableWithoutFeedback
onPress={() => ToastAndroid.show('Toasts work by default', ToastAndroid.SHORT)}
accessibilityComponentType="button">
<View style={styles.embedded}>
<Text>Click me</Text>
<Text>Or not</Text>
</View>
</TouchableWithoutFeedback>
</UIExplorerBlock>
<UIExplorerBlock title="LiveRegion">
<TouchableWithoutFeedback onPress={this._addOne}>
<View style={styles.embedded}>
<Text>Click me</Text>
</View>
</TouchableWithoutFeedback>
<Text accessibilityLiveRegion="polite">
Clicked {this.state.count} times
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Overlapping views and importantForAccessibility property">
<View style={styles.container}>
<View
style={{
position: 'absolute',
left: 10,
top: 10,
right: 10,
height: 100,
backgroundColor: 'green'}}
accessible={true}
accessibilityLabel="First layout"
importantForAccessibility={
importantForAccessibilityValues[this.state.backgroundImportantForAcc]}>
<View accessible={true}>
<Text style={{fontSize: 25}}>
Hello
</Text>
</View>
</View>
<View
style={{
position: 'absolute',
left: 10,
top: 25,
right: 10,
height: 110,
backgroundColor: 'yellow', opacity: 0.5}}
accessible={true}
accessibilityLabel="Second layout"
importantForAccessibility={
importantForAccessibilityValues[this.state.forgroundImportantForAcc]}>
<View accessible={true}>
<Text style={{fontSize: 20}}>
world
</Text>
</View>
</View>
</View>
<TouchableWithoutFeedback onPress={this._changeBackgroundImportantForAcc}>
<View style={styles.embedded}>
<Text>
Change importantForAccessibility for background layout.
</Text>
</View>
</TouchableWithoutFeedback>
<View accessible={true}>
<Text>
Background layout importantForAccessibility
</Text>
<Text>
{importantForAccessibilityValues[this.state.backgroundImportantForAcc]}
</Text>
</View>
<TouchableWithoutFeedback onPress={this._changeForgroundImportantForAcc}>
<View style={styles.embedded}>
<Text>
Change importantForAccessibility for forground layout.
</Text>
</View>
</TouchableWithoutFeedback>
<View accessible={true}>
<Text>
Forground layout importantForAccessibility
</Text>
<Text>
{importantForAccessibilityValues[this.state.forgroundImportantForAcc]}
</Text>
</View>
</UIExplorerBlock>
</UIExplorerPage>
);
},
});
var styles = StyleSheet.create({
embedded: {
backgroundColor: 'yellow',
padding:10,
},
container: {
flex: 1,
backgroundColor: 'white',
padding: 10,
height:150,
},
});
module.exports = AccessibilityAndroidExample;
@@ -44,7 +44,7 @@ var AccessibilityIOSExample = React.createClass({
Accessibility label example
</Text>
</View>
<View accessibilityTraits={["button", "selected"]}
<View accessibilityTraits={['button', 'selected']}
accessible={true}>
<Text>
Accessibility traits example
+49 -6
View File
@@ -24,10 +24,10 @@ var {
} = React;
var BUTTONS = [
'Button Index: 0',
'Button Index: 1',
'Button Index: 2',
'Destruct',
'Option 0',
'Option 1',
'Option 2',
'Delete',
'Cancel',
];
var DESTRUCTIVE_INDEX = 3;
@@ -47,7 +47,7 @@ var ActionSheetExample = React.createClass({
Click to show the ActionSheet
</Text>
<Text>
Clicked button at index: "{this.state.clicked}"
Clicked button: {this.state.clicked}
</Text>
</View>
);
@@ -65,6 +65,40 @@ var ActionSheetExample = React.createClass({
}
});
var ActionSheetTintExample = React.createClass({
getInitialState() {
return {
clicked: 'none',
};
},
render() {
return (
<View>
<Text onPress={this.showActionSheet} style={style.button}>
Click to show the ActionSheet
</Text>
<Text>
Clicked button: {this.state.clicked}
</Text>
</View>
);
},
showActionSheet() {
ActionSheetIOS.showActionSheetWithOptions({
options: BUTTONS,
cancelButtonIndex: CANCEL_INDEX,
destructiveButtonIndex: DESTRUCTIVE_INDEX,
tintColor: 'green',
},
(buttonIndex) => {
this.setState({ clicked: BUTTONS[buttonIndex] });
});
}
});
var ShareActionSheetExample = React.createClass({
getInitialState() {
return {
@@ -88,6 +122,11 @@ var ShareActionSheetExample = React.createClass({
showShareActionSheet() {
ActionSheetIOS.showShareActionSheetWithOptions({
url: 'https://code.facebook.com',
message: 'message to go with the shared url',
subject: 'a subject to go in the email heading',
excludedActivityTypes: [
'com.apple.UIKit.activity.PostToTwitter'
]
},
(error) => {
console.error(error);
@@ -99,7 +138,7 @@ var ShareActionSheetExample = React.createClass({
} else {
text = 'You didn\'t share';
}
this.setState({text})
this.setState({text});
});
}
});
@@ -118,6 +157,10 @@ exports.examples = [
title: 'Show Action Sheet',
render(): ReactElement { return <ActionSheetExample />; }
},
{
title: 'Show Action Sheet with tinted buttons',
render(): ReactElement { return <ActionSheetTintExample />; }
},
{
title: 'Show Share Action Sheet',
render(): ReactElement { return <ShareActionSheetExample />; }
+137
View File
@@ -0,0 +1,137 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
'use strict';
var React = require('react-native');
var {
Alert,
Platform,
StyleSheet,
Text,
TouchableHighlight,
View,
} = React;
var UIExplorerBlock = require('./UIExplorerBlock');
// corporate ipsum > lorem ipsum
var alertMessage = 'Credibly reintermediate next-generation potentialities after goal-oriented ' +
'catalysts for change. Dynamically revolutionize.';
/**
* Simple alert examples.
*/
var SimpleAlertExampleBlock = React.createClass({
render: function() {
return (
<View>
<TouchableHighlight style={styles.wrapper}
onPress={() => Alert.alert(
'Alert Title',
alertMessage,
)}>
<View style={styles.button}>
<Text>Alert with message and default button</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
onPress={() => Alert.alert(
'Alert Title',
alertMessage,
[
{text: 'OK', onPress: () => console.log('OK Pressed!')},
]
)}>
<View style={styles.button}>
<Text>Alert with one button</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
onPress={() => Alert.alert(
'Alert Title',
alertMessage,
[
{text: 'Cancel', onPress: () => console.log('Cancel Pressed!')},
{text: 'OK', onPress: () => console.log('OK Pressed!')},
]
)}>
<View style={styles.button}>
<Text>Alert with two buttons</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
onPress={() => Alert.alert(
'Alert Title',
null,
[
{text: 'Foo', onPress: () => console.log('Foo Pressed!')},
{text: 'Bar', onPress: () => console.log('Bar Pressed!')},
{text: 'Baz', onPress: () => console.log('Baz Pressed!')},
]
)}>
<View style={styles.button}>
<Text>Alert with three buttons</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
onPress={() => Alert.alert(
'Foo Title',
alertMessage,
'..............'.split('').map((dot, index) => ({
text: 'Button ' + index,
onPress: () => console.log('Pressed ' + index)
}))
)}>
<View style={styles.button}>
<Text>Alert with too many buttons</Text>
</View>
</TouchableHighlight>
</View>
);
},
});
var AlertExample = React.createClass({
statics: {
title: 'Alert',
description: 'Alerts display a concise and informative message ' +
'and prompt the user to make a decision.',
},
render: function() {
return (
<UIExplorerBlock title={'Alert'}>
<SimpleAlertExampleBlock />
</UIExplorerBlock>
);
}
});
var styles = StyleSheet.create({
wrapper: {
borderRadius: 5,
marginBottom: 5,
},
button: {
backgroundColor: '#eeeeee',
padding: 10,
},
});
module.exports = {
AlertExample,
SimpleAlertExampleBlock,
}
+65 -46
View File
@@ -24,74 +24,92 @@ var {
AlertIOS,
} = React;
var { SimpleAlertExampleBlock } = require('./AlertExample');
exports.framework = 'React';
exports.title = 'AlertIOS';
exports.description = 'iOS alerts and action sheets';
exports.examples = [{
title: 'Alerts',
render() {
return <SimpleAlertExampleBlock />;
}
},
{
title: 'Alert Types',
render() {
return (
<View>
<TouchableHighlight style={styles.wrapper}
<TouchableHighlight
style={styles.wrapper}
onPress={() => AlertIOS.alert(
'Foo Title',
'My Alert Msg'
)}>
<View style={styles.button}>
<Text>Alert with message and default button</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
onPress={() => AlertIOS.alert(
null,
'Hello World',
null,
[
{text: 'Button', onPress: () => console.log('Button Pressed!')},
{text: 'OK', onPress: (text) => console.log('OK pressed'), type: 'default'}
]
)}>
<View style={styles.button}>
<Text>Alert with only one button</Text>
<Text>
{'default'}
</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
<TouchableHighlight
style={styles.wrapper}
onPress={() => AlertIOS.alert(
'Foo Title',
'My Alert Msg',
[
{text: 'Foo', onPress: () => console.log('Foo Pressed!')},
{text: 'Bar', onPress: () => console.log('Bar Pressed!')},
]
)}>
<View style={styles.button}>
<Text>Alert with two buttons</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
onPress={() => AlertIOS.alert(
'Foo Title',
'Plain Text Entry',
null,
[
{text: 'Foo', onPress: () => console.log('Foo Pressed!')},
{text: 'Bar', onPress: () => console.log('Bar Pressed!')},
{text: 'Baz', onPress: () => console.log('Baz Pressed!')},
{text: 'Submit', onPress: (text) => console.log('Text: ' + text), type: 'plain-text'},
{text: 'Cancel', onPress: () => console.log('Cancel'), style: 'cancel'}
]
)}>
<View style={styles.button}>
<Text>Alert with 3 buttons</Text>
<Text>
plain-text
</Text>
</View>
</TouchableHighlight>
<TouchableHighlight style={styles.wrapper}
<TouchableHighlight
style={styles.wrapper}
onPress={() => AlertIOS.alert(
'Foo Title',
'My Alert Msg',
'..............'.split('').map((dot, index) => ({
text: 'Button ' + index,
onPress: () => console.log('Pressed ' + index)
}))
'Secure Text Entry',
null,
[
{text: 'Submit', onPress: (text) => console.log('Password: ' + text), type: 'secure-text'},
{text: 'Cancel', onPress: () => console.log('Cancel'), style: 'cancel'}
]
)}>
<View style={styles.button}>
<Text>Alert with too many buttons</Text>
<Text>
secure-text
</Text>
</View>
</TouchableHighlight>
<TouchableHighlight
style={styles.wrapper}
onPress={() => AlertIOS.alert(
'Login & Password',
null,
[
{text: 'Submit', onPress: (details) => console.log('Login: ' + details.login + '; Password: ' + details.password), type: 'login-password'},
{text: 'Cancel', onPress: () => console.log('Cancel'), style: 'cancel'}
]
)}>
<View style={styles.button}>
<Text>
login-password
</Text>
</View>
</TouchableHighlight>
</View>
);
@@ -116,10 +134,11 @@ class PromptExample extends React.Component {
this.title = 'Type a value';
this.defaultValue = 'Default value';
this.buttons = [{
text: 'Custom cancel',
}, {
text: 'Custom OK',
onPress: this.promptResponse
}, {
text: 'Custom Cancel',
style: 'cancel',
}];
}
@@ -132,7 +151,7 @@ class PromptExample extends React.Component {
<TouchableHighlight
style={styles.wrapper}
onPress={this.prompt.bind(this, this.title, this.promptResponse)}>
onPress={this.prompt.bind(this, this.title, null, null, this.promptResponse)}>
<View style={styles.button}>
<Text>
@@ -143,7 +162,7 @@ class PromptExample extends React.Component {
<TouchableHighlight
style={styles.wrapper}
onPress={this.prompt.bind(this, this.title, this.buttons)}>
onPress={this.prompt.bind(this, this.title, null, this.buttons, null)}>
<View style={styles.button}>
<Text>
@@ -154,7 +173,7 @@ class PromptExample extends React.Component {
<TouchableHighlight
style={styles.wrapper}
onPress={this.prompt.bind(this, this.title, this.defaultValue, this.promptResponse)}>
onPress={this.prompt.bind(this, this.title, this.defaultValue, null, this.promptResponse)}>
<View style={styles.button}>
<Text>
@@ -165,7 +184,7 @@ class PromptExample extends React.Component {
<TouchableHighlight
style={styles.wrapper}
onPress={this.prompt.bind(this, this.title, this.defaultValue, this.buttons)}>
onPress={this.prompt.bind(this, this.title, this.defaultValue, this.buttons, null)}>
<View style={styles.button}>
<Text>
+231
View File
@@ -0,0 +1,231 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('react-native');
var {
Animated,
Easing,
StyleSheet,
Text,
View,
} = React;
var UIExplorerButton = require('./UIExplorerButton');
exports.framework = 'React';
exports.title = 'Animated - Examples';
exports.description = 'Animated provides a powerful ' +
'and easy-to-use API for building modern, ' +
'interactive user experiences.';
exports.examples = [
{
title: 'FadeInView',
description: 'Uses a simple timing animation to ' +
'bring opacity from 0 to 1 when the component ' +
'mounts.',
render: function() {
class FadeInView extends React.Component {
constructor(props) {
super(props);
this.state = {
fadeAnim: new Animated.Value(0), // opacity 0
};
}
componentDidMount() {
Animated.timing( // Uses easing functions
this.state.fadeAnim, // The value to drive
{
toValue: 1, // Target
duration: 2000, // Configuration
},
).start(); // Don't forget start!
}
render() {
return (
<Animated.View // Special animatable View
style={{
opacity: this.state.fadeAnim, // Binds
}}>
{this.props.children}
</Animated.View>
);
}
}
class FadeInExample extends React.Component {
constructor(props) {
super(props);
this.state = {
show: true,
};
}
render() {
return (
<View>
<UIExplorerButton onPress={() => {
this.setState((state) => (
{show: !state.show}
));
}}>
Press to {this.state.show ?
'Hide' : 'Show'}
</UIExplorerButton>
{this.state.show && <FadeInView>
<View style={styles.content}>
<Text>FadeInView</Text>
</View>
</FadeInView>}
</View>
);
}
}
return <FadeInExample />;
},
},
{
title: 'Transform Bounce',
description: 'One `Animated.Value` is driven by a ' +
'spring with custom constants and mapped to an ' +
'ordered set of transforms. Each transform has ' +
'an interpolation to convert the value into the ' +
'right range and units.',
render: function() {
this.anim = this.anim || new Animated.Value(0);
return (
<View>
<UIExplorerButton onPress={() => {
Animated.spring(this.anim, {
toValue: 0, // Returns to the start
velocity: 3, // Velocity makes it move
tension: -10, // Slow
friction: 1, // Oscillate a lot
}).start(); }}>
Press to Fling it!
</UIExplorerButton>
<Animated.View
style={[styles.content, {
transform: [ // Array order matters
{scale: this.anim.interpolate({
inputRange: [0, 1],
outputRange: [1, 4],
})},
{translateX: this.anim.interpolate({
inputRange: [0, 1],
outputRange: [0, 500],
})},
{rotate: this.anim.interpolate({
inputRange: [0, 1],
outputRange: [
'0deg', '360deg' // 'deg' or 'rad'
],
})},
]}
]}>
<Text>Transforms!</Text>
</Animated.View>
</View>
);
},
},
{
title: 'Composite Animations with Easing',
description: 'Sequence, parallel, delay, and ' +
'stagger with different easing functions.',
render: function() {
this.anims = this.anims || [1,2,3].map(
() => new Animated.Value(0)
);
return (
<View>
<UIExplorerButton onPress={() => {
var timing = Animated.timing;
Animated.sequence([ // One after the other
timing(this.anims[0], {
toValue: 200,
easing: Easing.linear,
}),
Animated.delay(400), // Use with sequence
timing(this.anims[0], {
toValue: 0,
easing: Easing.elastic(2), // Springy
}),
Animated.delay(400),
Animated.stagger(200,
this.anims.map((anim) => timing(
anim, {toValue: 200}
)).concat(
this.anims.map((anim) => timing(
anim, {toValue: 0}
))),
),
Animated.delay(400),
Animated.parallel([
Easing.inOut(Easing.quad), // Symmetric
Easing.back(1.5), // Goes backwards first
Easing.ease // Default bezier
].map((easing, ii) => (
timing(this.anims[ii], {
toValue: 320, easing, duration: 3000,
})
))),
Animated.delay(400),
Animated.stagger(200,
this.anims.map((anim) => timing(anim, {
toValue: 0,
easing: Easing.bounce, // Like a ball
duration: 2000,
})),
),
]).start(); }}>
Press to Animate
</UIExplorerButton>
{['Composite', 'Easing', 'Animations!'].map(
(text, ii) => (
<Animated.View
key={text}
style={[styles.content, {
left: this.anims[ii]
}]}>
<Text>{text}</Text>
</Animated.View>
)
)}
</View>
);
},
},
{
title: 'Continuous Interactions',
description: 'Gesture events, chaining, 2D ' +
'values, interrupting and transitioning ' +
'animations, etc.',
render: () => (
<Text>Checkout the Gratuitous Animation App!</Text>
),
}
];
var styles = StyleSheet.create({
content: {
backgroundColor: 'deepskyblue',
borderWidth: 1,
borderColor: 'dodgerblue',
padding: 20,
margin: 20,
borderRadius: 10,
alignItems: 'center',
},
});
@@ -38,9 +38,11 @@ class Circle extends React.Component {
super();
this._onLongPress = this._onLongPress.bind(this);
this._toggleIsActive = this._toggleIsActive.bind(this);
this.state = {isActive: false};
this.state.pan = new Animated.ValueXY(); // Vectors reduce boilerplate. (step1: uncomment)
this.state.pop = new Animated.Value(0); // Initial value. (step2a: uncomment)
this.state = {
isActive: false,
pan: new Animated.ValueXY(), // Vectors reduce boilerplate. (step1: uncomment)
pop: new Animated.Value(0), // Initial value. (step2a: uncomment)
};
}
_onLongPress(): void {
+2 -2
View File
@@ -40,7 +40,7 @@ var AppStateSubscription = React.createClass({
AppStateIOS.removeEventListener('memoryWarning', this._handleMemoryWarning);
},
_handleMemoryWarning: function() {
this.setState({memoryWarnings: this.state.memoryWarnings + 1})
this.setState({memoryWarnings: this.state.memoryWarnings + 1});
},
_handleAppStateChange: function(appState) {
var previousAppStates = this.state.previousAppStates.slice();
@@ -92,7 +92,7 @@ exports.examples = [
},
{
title: 'Memory Warnings',
description: "In the simulator, hit Shift+Command+M to simulate a memory warning.",
description: 'In the simulator, hit Shift+Command+M to simulate a memory warning.',
render(): ReactElement { return <AppStateSubscription showMemoryWarnings={true} />; }
},
];
+31 -22
View File
@@ -29,18 +29,23 @@ var COLORS = ['red', 'orange', 'yellow', 'green', 'blue'];
var BasicStorageExample = React.createClass({
componentDidMount() {
AsyncStorage.getItem(STORAGE_KEY)
.then((value) => {
if (value !== null){
this.setState({selectedValue: value});
this._appendMessage('Recovered selection from disk: ' + value);
} else {
this._appendMessage('Initialized with no selection on disk.');
}
})
.catch((error) => this._appendMessage('AsyncStorage error: ' + error.message))
.done();
this._loadInitialState().done();
},
async _loadInitialState() {
try {
var value = await AsyncStorage.getItem(STORAGE_KEY);
if (value !== null){
this.setState({selectedValue: value});
this._appendMessage('Recovered selection from disk: ' + value);
} else {
this._appendMessage('Initialized with no selection on disk.');
}
} catch (error) {
this._appendMessage('AsyncStorage error: ' + error.message);
}
},
getInitialState() {
return {
selectedValue: COLORS[0],
@@ -75,24 +80,28 @@ var BasicStorageExample = React.createClass({
</Text>
<Text>{' '}</Text>
<Text>Messages:</Text>
{this.state.messages.map((m) => <Text>{m}</Text>)}
{this.state.messages.map((m) => <Text key={m}>{m}</Text>)}
</View>
);
},
_onValueChange(selectedValue) {
async _onValueChange(selectedValue) {
this.setState({selectedValue});
AsyncStorage.setItem(STORAGE_KEY, selectedValue)
.then(() => this._appendMessage('Saved selection to disk: ' + selectedValue))
.catch((error) => this._appendMessage('AsyncStorage error: ' + error.message))
.done();
try {
await AsyncStorage.setItem(STORAGE_KEY, selectedValue);
this._appendMessage('Saved selection to disk: ' + selectedValue);
} catch (error) {
this._appendMessage('AsyncStorage error: ' + error.message);
}
},
_removeStorage() {
AsyncStorage.removeItem(STORAGE_KEY)
.then(() => this._appendMessage('Selection removed from disk.'))
.catch((error) => { this._appendMessage('AsyncStorage error: ' + error.message) })
.done();
async _removeStorage() {
try {
await AsyncStorage.removeItem(STORAGE_KEY);
this._appendMessage('Selection removed from disk.');
} catch (error) {
this._appendMessage('AsyncStorage error: ' + error.message);
}
},
_appendMessage(message) {
+26 -2
View File
@@ -82,7 +82,7 @@ var styles = StyleSheet.create({
},
border7: {
borderWidth: 10,
borderColor: 'rgba(255,0,0,0.5)',
borderColor: '#f007',
borderRadius: 30,
overflow: 'hidden',
},
@@ -91,10 +91,17 @@ var styles = StyleSheet.create({
width: 100,
height: 100
},
border8: {
width: 60,
height: 60,
borderColor: 'black',
marginRight: 10,
backgroundColor: 'lightgrey',
},
});
exports.title = 'Border';
exports.description = 'View borders';
exports.description = 'Demonstrates some of the border styles available to Views.';
exports.examples = [
{
title: 'Equal-Width / Same-Color',
@@ -134,6 +141,7 @@ exports.examples = [
{
title: 'Custom Borders',
description: 'border*Width & border*Color',
platform: 'ios',
render() {
return <View style={[styles.box, styles.border5]} />;
}
@@ -141,6 +149,7 @@ exports.examples = [
{
title: 'Custom Borders',
description: 'border*Width & border*Color',
platform: 'ios',
render() {
return <View style={[styles.box, styles.border6]} />;
}
@@ -148,6 +157,7 @@ exports.examples = [
{
title: 'Custom Borders',
description: 'borderRadius & clipping',
platform: 'ios',
render() {
return (
<View style={[styles.box, styles.border7]}>
@@ -156,4 +166,18 @@ exports.examples = [
);
}
},
{
title: 'Single Borders',
description: 'top, left, bottom right',
render() {
return (
<View style={{flexDirection: 'row'}}>
<View style={[styles.box, styles.border8, {borderTopWidth: 5}]} />
<View style={[styles.box, styles.border8, {borderLeftWidth: 5}]} />
<View style={[styles.box, styles.border8, {borderBottomWidth: 5}]} />
<View style={[styles.box, styles.border8, {borderRightWidth: 5}]} />
</View>
);
}
},
];
+2 -2
View File
@@ -79,8 +79,8 @@ var CameraRollExample = React.createClass({
var location = asset.node.location.longitude ?
JSON.stringify(asset.node.location) : 'Unknown location';
return (
<TouchableOpacity onPress={ this.loadAsset.bind( this, asset ) }>
<View key={asset} style={styles.row}>
<TouchableOpacity key={asset} onPress={ this.loadAsset.bind( this, asset ) }>
<View style={styles.row}>
<Image
source={asset.node.image}
style={imageStyle}
+60
View File
@@ -0,0 +1,60 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('react-native');
var {
Clipboard,
View,
Text,
} = React;
var ClipboardExample = React.createClass({
getInitialState: function() {
return {
content: 'Content will appear here'
};
},
_setContentToClipboard:function(){
Clipboard.setString('Hello World');
Clipboard.getString(content => {
this.setState({content});
});
},
render() {
return (
<View>
<Text onPress={this._setContentToClipboard} style={{color: 'blue'}}>
Tap to put "Hello World" in the clipboard
</Text>
<Text style={{color: 'red', marginTop: 20}}>
{this.state.content}
</Text>
</View>
);
}
});
exports.title = 'Clipboard';
exports.description = 'Show Clipboard contents.';
exports.examples = [
{
title: 'Clipboard.setString() and getString()',
render(): ReactElement { return <ClipboardExample />; }
}
];
+3
View File
@@ -14,11 +14,14 @@
* @providesModule ExampleTypes
* @flow
*/
'use strict';
export type Example = {
title: string,
/* $FlowFixMe(>=0.16.0) */
render: () => ?ReactElement<any, any, any>,
description?: string,
platform?: string;
};
export type ExampleModule = {
+8 -4
View File
@@ -49,11 +49,15 @@ var GeolocationExample = React.createClass({
componentDidMount: function() {
navigator.geolocation.getCurrentPosition(
(initialPosition) => this.setState({initialPosition}),
(position) => {
var initialPosition = JSON.stringify(position);
this.setState({initialPosition});
},
(error) => alert(error.message),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
);
this.watchID = navigator.geolocation.watchPosition((lastPosition) => {
this.watchID = navigator.geolocation.watchPosition((position) => {
var lastPosition = JSON.stringify(position);
this.setState({lastPosition});
});
},
@@ -67,11 +71,11 @@ var GeolocationExample = React.createClass({
<View>
<Text>
<Text style={styles.title}>Initial position: </Text>
{JSON.stringify(this.state.initialPosition)}
{this.state.initialPosition}
</Text>
<Text>
<Text style={styles.title}>Current position: </Text>
{JSON.stringify(this.state.lastPosition)}
{this.state.lastPosition}
</Text>
</View>
);
+1 -1
View File
@@ -35,6 +35,7 @@ var ImageCapInsetsExample = React.createClass({
<Image
source={require('image!story-background')}
style={styles.storyBackground}
resizeMode={Image.resizeMode.stretch}
capInsets={{left: 0, right: 0, bottom: 0, top: 0}}
/>
</View>
@@ -66,7 +67,6 @@ var styles = StyleSheet.create({
width: 250,
height: 150,
borderWidth: 1,
resizeMode: Image.resizeMode.stretch,
},
text: {
fontSize: 13.5,
+310
View File
@@ -0,0 +1,310 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('react-native');
var {
CameraRoll,
Image,
ImageEditor,
NativeModules,
ScrollView,
StyleSheet,
Text,
TouchableHighlight,
UIManager,
View,
} = React;
var RCTScrollViewConsts = UIManager.RCTScrollView.Constants;
var PAGE_SIZE = 20;
type ImageOffset = {
x: number;
y: number;
};
type ImageSize = {
width: number;
height: number;
};
type ImageCropData = {
offset: ImageOffset;
size: ImageSize;
displaySize?: ?ImageSize;
resizeMode?: ?any;
};
class SquareImageCropper extends React.Component {
_isMounted: boolean;
_transformData: ImageCropData;
constructor(props) {
super(props);
this._isMounted = true;
this.state = {
randomPhoto: null,
measuredSize: null,
croppedImageURI: null,
cropError: null,
};
this._fetchRandomPhoto();
}
_fetchRandomPhoto() {
CameraRoll.getPhotos(
{first: PAGE_SIZE},
(data) => {
if (!this._isMounted) {
return;
}
var edges = data.edges;
var edge = edges[Math.floor(Math.random() * edges.length)];
var randomPhoto = edge && edge.node && edge.node.image;
if (randomPhoto) {
this.setState({randomPhoto});
}
},
(error) => undefined
);
}
componentWillUnmount() {
this._isMounted = false;
}
render() {
if (!this.state.measuredSize) {
return (
<View
style={styles.container}
onLayout={(event) => {
var measuredWidth = event.nativeEvent.layout.width;
if (!measuredWidth) {
return;
}
this.setState({
measuredSize: {width: measuredWidth, height: measuredWidth},
});
}}
/>
);
}
if (!this.state.croppedImageURI) {
return this._renderImageCropper();
}
return this._renderCroppedImage();
}
_renderImageCropper() {
if (!this.state.randomPhoto) {
return (
<View style={styles.container} />
);
}
var error = null;
if (this.state.cropError) {
error = (
<Text>{this.state.cropError.message}</Text>
);
}
return (
<View style={styles.container}>
<Text>Drag the image within the square to crop:</Text>
<ImageCropper
image={this.state.randomPhoto}
size={this.state.measuredSize}
style={[styles.imageCropper, this.state.measuredSize]}
onTransformDataChange={(data) => this._transformData = data}
/>
<TouchableHighlight
style={styles.cropButtonTouchable}
onPress={this._crop.bind(this)}>
<View style={styles.cropButton}>
<Text style={styles.cropButtonLabel}>
Crop
</Text>
</View>
</TouchableHighlight>
{error}
</View>
);
}
_renderCroppedImage() {
return (
<View style={styles.container}>
<Text>Here is the cropped image:</Text>
<Image
source={{uri: this.state.croppedImageURI}}
style={[styles.imageCropper, this.state.measuredSize]}
/>
<TouchableHighlight
style={styles.cropButtonTouchable}
onPress={this._reset.bind(this)}>
<View style={styles.cropButton}>
<Text style={styles.cropButtonLabel}>
Try again
</Text>
</View>
</TouchableHighlight>
</View>
);
}
_crop() {
ImageEditor.cropImage(
this.state.randomPhoto.uri,
this._transformData,
(croppedImageURI) => this.setState({croppedImageURI}),
(cropError) => this.setState({cropError})
);
}
_reset() {
this.setState({
randomPhoto: null,
croppedImageURI: null,
cropError: null,
});
this._fetchRandomPhoto();
}
}
class ImageCropper extends React.Component {
_scaledImageSize: ImageSize;
_contentOffset: ImageOffset;
componentWillMount() {
// Scale an image to the minimum size that is large enough to completely
// fill the crop box.
var widthRatio = this.props.image.width / this.props.size.width;
var heightRatio = this.props.image.height / this.props.size.height;
if (widthRatio < heightRatio) {
this._scaledImageSize = {
width: this.props.size.width,
height: this.props.image.height / widthRatio,
};
} else {
this._scaledImageSize = {
width: this.props.image.width / heightRatio,
height: this.props.size.height,
};
}
this._contentOffset = {
x: (this._scaledImageSize.width - this.props.size.width) / 2,
y: (this._scaledImageSize.height - this.props.size.height) / 2,
};
this._updateTransformData(
this._contentOffset,
this._scaledImageSize,
this.props.size
);
}
_onScroll(event) {
this._updateTransformData(
event.nativeEvent.contentOffset,
event.nativeEvent.contentSize,
event.nativeEvent.layoutMeasurement
);
}
_updateTransformData(offset, scaledImageSize, croppedImageSize) {
var offsetRatioX = offset.x / scaledImageSize.width;
var offsetRatioY = offset.y / scaledImageSize.height;
var sizeRatioX = croppedImageSize.width / scaledImageSize.width;
var sizeRatioY = croppedImageSize.height / scaledImageSize.height;
var cropData: ImageCropData = {
offset: {
x: this.props.image.width * offsetRatioX,
y: this.props.image.height * offsetRatioY,
},
size: {
width: this.props.image.width * sizeRatioX,
height: this.props.image.height * sizeRatioY,
},
};
this.props.onTransformDataChange && this.props.onTransformDataChange(cropData);
}
render() {
var decelerationRate =
RCTScrollViewConsts && RCTScrollViewConsts.DecelerationRate ?
RCTScrollViewConsts.DecelerationRate.Fast :
0;
return (
<ScrollView
alwaysBounceVertical={true}
automaticallyAdjustContentInsets={false}
contentOffset={this._contentOffset}
decelerationRate={decelerationRate}
horizontal={true}
maximumZoomScale={3.0}
onMomentumScrollEnd={this._onScroll.bind(this)}
onScrollEndDrag={this._onScroll.bind(this)}
showsHorizontalScrollIndicator={false}
showsVerticalScrollIndicator={false}
style={this.props.style}
scrollEventThrottle={16}>
<Image source={this.props.image} style={this._scaledImageSize} />
</ScrollView>
);
}
}
exports.framework = 'React';
exports.title = 'ImageEditor';
exports.description = 'Cropping and scaling with ImageEditor';
exports.examples = [{
title: 'Image Cropping',
render() {
return <SquareImageCropper/>;
}
}];
var styles = StyleSheet.create({
container: {
flex: 1,
alignSelf: 'stretch',
},
imageCropper: {
alignSelf: 'center',
marginTop: 12,
},
cropButtonTouchable: {
alignSelf: 'center',
marginTop: 12,
},
cropButton: {
padding: 12,
backgroundColor: 'blue',
borderRadius: 4,
},
cropButtonLabel: {
color: 'white',
fontSize: 16,
fontWeight: '500',
},
});
+138 -21
View File
@@ -24,11 +24,50 @@ var {
ActivityIndicatorIOS
} = React;
var base64Icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAQAAACSR7JhAAADtUlEQVR4Ac3YA2Bj6QLH0XPT1Fzbtm29tW3btm3bfLZtv7e2ObZnms7d8Uw098tuetPzrxv8wiISrtVudrG2JXQZ4VOv+qUfmqCGGl1mqLhoA52oZlb0mrjsnhKpgeUNEs91Z0pd1kvihA3ULGVHiQO2narKSHKkEMulm9VgUyE60s1aWoMQUbpZOWE+kaqs4eLEjdIlZTcFZB0ndc1+lhB1lZrIuk5P2aib1NBpZaL+JaOGIt0ls47SKzLC7CqrlGF6RZ09HGoNy1lYl2aRSWL5GuzqWU1KafRdoRp0iOQEiDzgZPnG6DbldcomadViflnl/cL93tOoVbsOLVM2jylvdWjXolWX1hmfZbGR/wjypDjFLSZIRov09BgYmtUqPQPlQrPapecLgTIy0jMgPKtTeob2zWtrGH3xvjUkPCtNg/tm1rjwrMa+mdUkPd3hWbH0jArPGiU9ufCsNNWFZ40wpwn+62/66R2RUtoso1OB34tnLOcy7YB1fUdc9e0q3yru8PGM773vXsuZ5YIZX+5xmHwHGVvlrGPN6ZSiP1smOsMMde40wKv2VmwPPVXNut4sVpUreZiLBHi0qln/VQeI/LTMYXpsJtFiclUN+5HVZazim+Ky+7sAvxWnvjXrJFneVtLWLyPJu9K3cXLWeOlbMTlrIelbMDlrLenrjEQOtIF+fuI9xRp9ZBFp6+b6WT8RrxEpdK64BuvHgDk+vUy+b5hYk6zfyfs051gRoNO1usU12WWRWL73/MMEy9pMi9qIrR4ZpV16Rrvduxazmy1FSvuFXRkqTnE7m2kdb5U8xGjLw/spRr1uTov4uOgQE+0N/DvFrG/Jt7i/FzwxbA9kDanhf2w+t4V97G8lrT7wc08aA2QNUkuTfW/KimT01wdlfK4yEw030VfT0RtZbzjeMprNq8m8tnSTASrTLti64oBNdpmMQm0eEwvfPwRbUBywG5TzjPCsdwk3IeAXjQblLCoXnDVeoAz6SfJNk5TTzytCNZk/POtTSV40NwOFWzw86wNJRpubpXsn60NJFlHeqlYRbslqZm2jnEZ3qcSKgm0kTli3zZVS7y/iivZTweYXJ26Y+RTbV1zh3hYkgyFGSTKPfRVbRqWWVReaxYeSLarYv1Qqsmh1s95S7G+eEWK0f3jYKTbV6bOwepjfhtafsvUsqrQvrGC8YhmnO9cSCk3yuY984F1vesdHYhWJ5FvASlacshUsajFt2mUM9pqzvKGcyNJW0arTKN1GGGzQlH0tXwLDgQTurS8eIQAAAABJRU5ErkJggg==';
var ImageCapInsetsExample = require('./ImageCapInsetsExample');
var NetworkImageExample = React.createClass({
watchID: (null: ?number),
var NetworkImageCallbackExample = React.createClass({
getInitialState: function() {
return {
events: [],
mountTime: new Date(),
};
},
componentWillMount() {
this.setState({mountTime: new Date()});
},
render: function() {
var { mountTime } = this.state;
return (
<View>
<Image
source={this.props.source}
style={[styles.base, {overflow: 'visible'}]}
onLoadStart={() => this._loadEventFired(`✔ onLoadStart (+${new Date() - mountTime}ms)`)}
onLoad={() => this._loadEventFired(`✔ onLoad (+${new Date() - mountTime}ms)`)}
onLoadEnd={() => this._loadEventFired(`✔ onLoadEnd (+${new Date() - mountTime}ms)`)}
/>
<Text style={{marginTop: 20}}>
{this.state.events.join('\n')}
</Text>
</View>
);
},
_loadEventFired(event) {
this.setState((state) => {
return state.events = [...state.events, event];
});
}
});
var NetworkImageExample = React.createClass({
getInitialState: function() {
return {
error: false,
@@ -56,6 +95,38 @@ var NetworkImageExample = React.createClass({
}
});
var ImageSizeExample = React.createClass({
getInitialState: function() {
return {
width: 0,
height: 0,
};
},
componentDidMount: function() {
Image.getSize(this.props.source.uri, (width, height) => {
this.setState({width, height});
});
},
render: function() {
return (
<View style={{flexDirection: 'row'}}>
<Image
style={{
width: 60,
height: 60,
backgroundColor: 'transparent',
marginRight: 10,
}}
source={this.props.source} />
<Text>
Actual dimensions:{'\n'}
Width: {this.state.width}, Height: {this.state.height}
</Text>
</View>
);
},
});
exports.displayName = (undefined: ?string);
exports.framework = 'React';
exports.title = '<Image>';
@@ -90,6 +161,14 @@ exports.examples = [
);
},
},
{
title: 'Image Loading Events',
render: function() {
return (
<NetworkImageCallbackExample source={{uri: 'http://facebook.github.io/origami/public/images/blog-hero.jpg?r=1'}}/>
);
},
},
{
title: 'Error Handler',
render: function() {
@@ -97,6 +176,7 @@ exports.examples = [
<NetworkImageExample source={{uri: 'http://TYPO_ERROR_facebook.github.io/react/img/logo_og.png'}} />
);
},
platform: 'ios',
},
{
title: 'Image Download Progress',
@@ -105,6 +185,7 @@ exports.examples = [
<NetworkImageExample source={{uri: 'http://facebook.github.io/origami/public/images/blog-hero.jpg?r=1'}}/>
);
},
platform: 'ios',
},
{
title: 'Border Color',
@@ -146,17 +227,12 @@ exports.examples = [
return (
<View style={styles.horizontal}>
<Image
style={[styles.base, styles.background, {borderRadius: 5}]}
source={smallImage}
style={[styles.base, {borderRadius: 5}]}
source={fullImage}
/>
<Image
style={[
styles.base,
styles.background,
styles.leftMargin,
{borderRadius: 19}
]}
source={smallImage}
style={[styles.base, styles.leftMargin, {borderRadius: 19}]}
source={fullImage}
/>
</View>
);
@@ -245,19 +321,19 @@ exports.examples = [
<View style={styles.horizontal}>
<Image
source={require('image!uie_thumb_normal')}
style={[styles.icon, {tintColor: '#5ac8fa' }]}
style={[styles.icon, {borderRadius: 5, tintColor: '#5ac8fa' }]}
/>
<Image
source={require('image!uie_thumb_normal')}
style={[styles.icon, styles.leftMargin, {tintColor: '#4cd964' }]}
style={[styles.icon, styles.leftMargin, {borderRadius: 5, tintColor: '#4cd964' }]}
/>
<Image
source={require('image!uie_thumb_normal')}
style={[styles.icon, styles.leftMargin, {tintColor: '#ff2d55' }]}
style={[styles.icon, styles.leftMargin, {borderRadius: 5, tintColor: '#ff2d55' }]}
/>
<Image
source={require('image!uie_thumb_normal')}
style={[styles.icon, styles.leftMargin, {tintColor: '#8e8e93' }]}
style={[styles.icon, styles.leftMargin, {borderRadius: 5, tintColor: '#8e8e93' }]}
/>
</View>
<Text style={styles.sectionText}>
@@ -266,19 +342,19 @@ exports.examples = [
<View style={styles.horizontal}>
<Image
source={smallImage}
style={[styles.base, {tintColor: '#5ac8fa' }]}
style={[styles.base, {borderRadius: 5, tintColor: '#5ac8fa' }]}
/>
<Image
source={smallImage}
style={[styles.base, styles.leftMargin, {tintColor: '#4cd964' }]}
style={[styles.base, styles.leftMargin, {borderRadius: 5, tintColor: '#4cd964' }]}
/>
<Image
source={smallImage}
style={[styles.base, styles.leftMargin, {tintColor: '#ff2d55' }]}
style={[styles.base, styles.leftMargin, {borderRadius: 5, tintColor: '#ff2d55' }]}
/>
<Image
source={smallImage}
style={[styles.base, styles.leftMargin, {tintColor: '#8e8e93' }]}
style={[styles.base, styles.leftMargin, {borderRadius: 5, tintColor: '#8e8e93' }]}
/>
</View>
</View>
@@ -326,6 +402,30 @@ exports.examples = [
);
},
},
{
title: 'Animated GIF',
render: function() {
return (
<Image
style={styles.gif}
source={{uri: 'http://38.media.tumblr.com/9e9bd08c6e2d10561dd1fb4197df4c4e/tumblr_mfqekpMktw1rn90umo1_500.gif'}}
/>
);
},
platform: 'ios',
},
{
title: 'Base64 image',
render: function() {
return (
<Image
style={styles.base64}
source={{uri: base64Icon, scale: 3}}
/>
);
},
platform: 'ios',
},
{
title: 'Cap Insets',
description:
@@ -336,11 +436,19 @@ exports.examples = [
render: function() {
return <ImageCapInsetsExample />;
},
platform: 'ios',
},
{
title: 'Image Size',
render: function() {
return <ImageSizeExample source={fullImage} />;
},
platform: 'ios',
},
];
var fullImage = {uri: 'http://facebook.github.io/react/img/logo_og.png'};
var smallImage = {uri: 'http://facebook.github.io/react/img/logo_small.png'};
var smallImage = {uri: 'http://facebook.github.io/react/img/logo_small_2x.png'};
var styles = StyleSheet.create({
base: {
@@ -384,5 +492,14 @@ var styles = StyleSheet.create({
},
horizontal: {
flexDirection: 'row',
}
},
gif: {
flex: 1,
height: 200,
},
base64: {
flex: 1,
height: 50,
resizeMode: 'contain',
},
});
-56
View File
@@ -1,56 +0,0 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
declare module 'image!story-background' {
/* $FlowIssue #7387208 - There's a flow bug preventing this type from flowing
* into a proptype shape */
declare var uri: string;
declare var isStatic: boolean;
}
declare module 'image!uie_comment_highlighted' {
/* $FlowIssue #7387208 - There's a flow bug preventing this type from flowing
* into a proptype shape */
declare var uri: string;
declare var isStatic: boolean;
}
declare module 'image!uie_comment_normal' {
/* $FlowIssue #7387208 - There's a flow bug preventing this type from flowing
* into a proptype shape */
declare var uri: string;
declare var isStatic: boolean;
}
declare module 'image!uie_thumb_normal' {
/* $FlowIssue #7387208 - There's a flow bug preventing this type from flowing
* into a proptype shape */
declare var uri: string;
declare var isStatic: boolean;
}
declare module 'image!uie_thumb_selected' {
/* $FlowIssue #7387208 - There's a flow bug preventing this type from flowing
* into a proptype shape */
declare var uri: string;
declare var isStatic: boolean;
}
declare module 'image!NavBarButtonPlus' {
declare var uri: string;
declare var isStatic: boolean;
}
@@ -0,0 +1,90 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
'use strict';
var React = require('react-native');
var {
IntentAndroid,
StyleSheet,
Text,
TouchableNativeFeedback,
View,
} = React;
var UIExplorerBlock = require('./UIExplorerBlock');
var OpenURLButton = React.createClass({
propTypes: {
url: React.PropTypes.string,
},
handleClick: function() {
IntentAndroid.canOpenURL(this.props.url, (supported) => {
if (supported) {
IntentAndroid.openURL(this.props.url);
} else {
console.log('Don\'t know how to open URI: ' + this.props.url);
}
});
},
render: function() {
return (
<TouchableNativeFeedback
onPress={this.handleClick}>
<View style={styles.button}>
<Text style={styles.text}>Open {this.props.url}</Text>
</View>
</TouchableNativeFeedback>
);
}
});
var IntentAndroidExample = React.createClass({
statics: {
title: 'IntentAndroid',
description: 'Shows how to use Android Intents to open URLs.',
},
render: function() {
return (
<UIExplorerBlock title="Open external URLs">
<OpenURLButton url={'https://www.facebook.com'} />
<OpenURLButton url={'http://www.facebook.com'} />
<OpenURLButton url={'http://facebook.com'} />
<OpenURLButton url={'geo:37.484847,-122.148386'} />
</UIExplorerBlock>
);
},
});
var styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'white',
padding: 10,
paddingTop: 30,
},
button: {
padding: 10,
backgroundColor: '#3B5998',
marginBottom: 10,
},
text: {
color: 'white',
},
});
module.exports = IntentAndroidExample;
+27 -14
View File
@@ -24,19 +24,30 @@ var {
View,
} = React;
type Layout = {
x: number;
y: number;
width: number;
height: number;
};
type LayoutEvent = {
nativeEvent: {
layout: {
x: number;
y: number;
width: number;
height: number;
};
layout: Layout,
};
};
type State = {
containerStyle?: { width: number },
extraText?: string,
imageLayout?: Layout,
textLayout?: Layout,
viewLayout?: Layout,
viewStyle: { margin: number },
};
var LayoutEventExample = React.createClass({
getInitialState: function() {
getInitialState(): State {
return {
viewStyle: {
margin: 20,
@@ -49,8 +60,7 @@ var LayoutEventExample = React.createClass({
() => {
console.log('layout animation done.');
this.addWrapText();
},
(error) => { throw new Error(JSON.stringify(error)); }
}
);
this.setState({
viewStyle: {
@@ -86,8 +96,7 @@ var LayoutEventExample = React.createClass({
return (
<View style={this.state.containerStyle}>
<Text>
onLayout events are called on mount and whenever layout is updated,
including after layout animations complete.{' '}
layout events are called on mount and whenever layout is recalculated. Note that the layout event will typically be received <Text style={styles.italicText}>before</Text> the layout has updated on screen, especially when using layout animations.{' '}
<Text style={styles.pressText} onPress={this.animateViewLayout}>
Press here to change layout.
</Text>
@@ -137,13 +146,17 @@ var styles = StyleSheet.create({
pressText: {
fontWeight: 'bold',
},
italicText: {
fontStyle: 'italic',
},
});
exports.title = 'onLayout';
exports.description = 'Layout events can be used to measure view size and position.';
exports.title = 'Layout Events';
exports.description = 'Examples that show how Layout events can be used to ' +
'measure view size and position.';
exports.examples = [
{
title: 'onLayout',
title: 'LayoutEventExample',
render: function(): ReactElement {
return <LayoutEventExample />;
},
+17 -4
View File
@@ -21,6 +21,7 @@ var {
ListView,
TouchableHighlight,
StyleSheet,
RecyclerViewBackedScrollView,
Text,
View,
} = React;
@@ -55,6 +56,7 @@ var ListViewSimpleExample = React.createClass({
<ListView
dataSource={this.state.dataSource}
renderRow={this._renderRow}
renderScrollComponent={props => <RecyclerViewBackedScrollView {...props} />}
/>
</UIExplorerPage>
);
@@ -62,9 +64,7 @@ var ListViewSimpleExample = React.createClass({
_renderRow: function(rowData: string, sectionID: number, rowID: number) {
var rowHash = Math.abs(hashCode(rowData));
var imgSource = {
uri: THUMB_URLS[rowHash % THUMB_URLS.length],
};
var imgSource = THUMB_URLS[rowHash % THUMB_URLS.length];
return (
<TouchableHighlight onPress={() => this._pressRow(rowID)}>
<View>
@@ -97,7 +97,20 @@ var ListViewSimpleExample = React.createClass({
},
});
var THUMB_URLS = ['https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851549_767334479959628_274486868_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851561_767334496626293_1958532586_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851579_767334503292959_179092627_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851589_767334513292958_1747022277_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851563_767334559959620_1193692107_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851593_767334566626286_1953955109_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851591_767334523292957_797560749_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851567_767334529959623_843148472_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851548_767334489959627_794462220_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851575_767334539959622_441598241_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851573_767334549959621_534583464_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851583_767334573292952_1519550680_n.png'];
var THUMB_URLS = [
require('./Thumbnails/like.png'),
require('./Thumbnails/dislike.png'),
require('./Thumbnails/call.png'),
require('./Thumbnails/fist.png'),
require('./Thumbnails/bandaged.png'),
require('./Thumbnails/flowers.png'),
require('./Thumbnails/heart.png'),
require('./Thumbnails/liking.png'),
require('./Thumbnails/party.png'),
require('./Thumbnails/poke.png'),
require('./Thumbnails/superlike.png'),
require('./Thumbnails/victory.png'),
];
var LOREM_IPSUM = 'Lorem ipsum dolor sit amet, ius ad pertinax oportere accommodare, an vix civibus corrumpit referrentur. Te nam case ludus inciderint, te mea facilisi adipiscing. Sea id integre luptatum. In tota sale consequuntur nec. Erat ocurreret mei ei. Eu paulo sapientem vulputate est, vel an accusam intellegam interesset. Nam eu stet pericula reprimique, ea vim illud modus, putant invidunt reprehendunt ne qui.';
/* eslint no-bitwise: 0 */
@@ -26,18 +26,18 @@ var {
} = React;
var THUMB_URLS = [
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851549_767334479959628_274486868_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851561_767334496626293_1958532586_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851579_767334503292959_179092627_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851589_767334513292958_1747022277_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851563_767334559959620_1193692107_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851593_767334566626286_1953955109_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851591_767334523292957_797560749_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851567_767334529959623_843148472_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851548_767334489959627_794462220_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851575_767334539959622_441598241_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851573_767334549959621_534583464_n.png',
'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851583_767334573292952_1519550680_n.png',
require('./Thumbnails/like.png'),
require('./Thumbnails/dislike.png'),
require('./Thumbnails/call.png'),
require('./Thumbnails/fist.png'),
require('./Thumbnails/bandaged.png'),
require('./Thumbnails/flowers.png'),
require('./Thumbnails/heart.png'),
require('./Thumbnails/liking.png'),
require('./Thumbnails/party.png'),
require('./Thumbnails/poke.png'),
require('./Thumbnails/superlike.png'),
require('./Thumbnails/victory.png'),
];
var ListViewGridLayoutExample = React.createClass({
@@ -74,9 +74,7 @@ var ListViewGridLayoutExample = React.createClass({
_renderRow: function(rowData: string, sectionID: number, rowID: number) {
var rowHash = Math.abs(hashCode(rowData));
var imgSource = {
uri: THUMB_URLS[rowHash % THUMB_URLS.length],
};
var imgSource = THUMB_URLS[rowHash % THUMB_URLS.length];
return (
<TouchableHighlight onPress={() => this._pressRow(rowID)} underlayColor="transparent">
<View>
+27 -4
View File
@@ -11,6 +11,7 @@
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @provides ListViewPagingExample
* @flow
*/
'use strict';
@@ -26,8 +27,26 @@ var {
View,
} = React;
var NativeModules = require('NativeModules');
var {
UIManager,
} = NativeModules;
var PAGE_SIZE = 4;
var THUMB_URLS = ['https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851549_767334479959628_274486868_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851561_767334496626293_1958532586_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851579_767334503292959_179092627_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851589_767334513292958_1747022277_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851563_767334559959620_1193692107_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851593_767334566626286_1953955109_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851591_767334523292957_797560749_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851567_767334529959623_843148472_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851548_767334489959627_794462220_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851575_767334539959622_441598241_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/t39.1997/p128x128/851573_767334549959621_534583464_n.png', 'https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-prn1/t39.1997/p128x128/851583_767334573292952_1519550680_n.png'];
var THUMB_URLS = [
require('./Thumbnails/like.png'),
require('./Thumbnails/dislike.png'),
require('./Thumbnails/call.png'),
require('./Thumbnails/fist.png'),
require('./Thumbnails/bandaged.png'),
require('./Thumbnails/flowers.png'),
require('./Thumbnails/heart.png'),
require('./Thumbnails/liking.png'),
require('./Thumbnails/party.png'),
require('./Thumbnails/poke.png'),
require('./Thumbnails/superlike.png'),
require('./Thumbnails/victory.png'),
];
var NUM_SECTIONS = 100;
var NUM_ROWS_PER_SECTION = 10;
@@ -35,6 +54,10 @@ var Thumb = React.createClass({
getInitialState: function() {
return {thumbIndex: this._getThumbIdx(), dir: 'row'};
},
componentWillMount: function() {
UIManager.setLayoutAnimationEnabledExperimental &&
UIManager.setLayoutAnimationEnabledExperimental(true);
},
_getThumbIdx: function() {
return Math.floor(Math.random() * THUMB_URLS.length);
},
@@ -51,9 +74,9 @@ var Thumb = React.createClass({
<TouchableOpacity
onPress={this._onPressThumb}
style={[styles.buttonContents, {flexDirection: this.state.dir}]}>
<Image style={styles.img} source={{uri: THUMB_URLS[this.state.thumbIndex]}} />
<Image style={styles.img} source={{uri: THUMB_URLS[this.state.thumbIndex]}} />
<Image style={styles.img} source={{uri: THUMB_URLS[this.state.thumbIndex]}} />
<Image style={styles.img} source={THUMB_URLS[this.state.thumbIndex]} />
<Image style={styles.img} source={THUMB_URLS[this.state.thumbIndex]} />
<Image style={styles.img} source={THUMB_URLS[this.state.thumbIndex]} />
{this.state.dir === 'column' ?
<Text>
Oooo, look at this new text! So awesome it may just be crazy.
+158 -24
View File
@@ -17,10 +17,13 @@
var React = require('react-native');
var {
Image,
MapView,
PropTypes,
StyleSheet,
Text,
TextInput,
TouchableOpacity,
View,
} = React;
@@ -34,22 +37,20 @@ var regionText = {
var MapRegionInput = React.createClass({
propTypes: {
region: React.PropTypes.shape({
latitude: React.PropTypes.number.isRequired,
longitude: React.PropTypes.number.isRequired,
latitudeDelta: React.PropTypes.number.isRequired,
longitudeDelta: React.PropTypes.number.isRequired,
region: PropTypes.shape({
latitude: PropTypes.number.isRequired,
longitude: PropTypes.number.isRequired,
latitudeDelta: PropTypes.number,
longitudeDelta: PropTypes.number,
}),
onChange: React.PropTypes.func.isRequired,
onChange: PropTypes.func.isRequired,
},
getInitialState: function() {
getInitialState() {
return {
region: {
latitude: 0,
longitude: 0,
latitudeDelta: 0,
longitudeDelta: 0,
}
};
},
@@ -91,7 +92,9 @@ var MapRegionInput = React.createClass({
{'Latitude delta'}
</Text>
<TextInput
value={'' + region.latitudeDelta}
value={
region.latitudeDelta == null ? '' : String(region.latitudeDelta)
}
style={styles.textInput}
onChange={this._onChangeLatitudeDelta}
selectTextOnFocus={true}
@@ -102,7 +105,9 @@ var MapRegionInput = React.createClass({
{'Longitude delta'}
</Text>
<TextInput
value={'' + region.longitudeDelta}
value={
region.longitudeDelta == null ? '' : String(region.longitudeDelta)
}
style={styles.textInput}
onChange={this._onChangeLongitudeDelta}
selectTextOnFocus={true}
@@ -135,10 +140,12 @@ var MapRegionInput = React.createClass({
_change: function() {
this.setState({
latitude: parseFloat(regionText.latitude),
longitude: parseFloat(regionText.longitude),
latitudeDelta: parseFloat(regionText.latitudeDelta),
longitudeDelta: parseFloat(regionText.longitudeDelta),
region: {
latitude: parseFloat(regionText.latitude),
longitude: parseFloat(regionText.longitude),
latitudeDelta: parseFloat(regionText.latitudeDelta),
longitudeDelta: parseFloat(regionText.longitudeDelta),
},
});
this.props.onChange(this.state.region);
},
@@ -149,10 +156,10 @@ var MapViewExample = React.createClass({
getInitialState() {
return {
mapRegion: null,
mapRegionInput: null,
annotations: null,
isFirstLoad: true,
mapRegion: undefined,
mapRegionInput: undefined,
annotations: [],
};
},
@@ -163,12 +170,12 @@ var MapViewExample = React.createClass({
style={styles.map}
onRegionChange={this._onRegionChange}
onRegionChangeComplete={this._onRegionChangeComplete}
region={this.state.mapRegion || undefined}
annotations={this.state.annotations || undefined}
region={this.state.mapRegion}
annotations={this.state.annotations}
/>
<MapRegionInput
onChange={this._onRegionInputChanged}
region={this.state.mapRegionInput || undefined}
region={this.state.mapRegionInput}
/>
</View>
);
@@ -208,6 +215,42 @@ var MapViewExample = React.createClass({
});
var AnnotationExample = React.createClass({
getInitialState() {
return {
isFirstLoad: true,
annotations: [],
mapRegion: undefined,
};
},
render() {
if (this.state.isFirstLoad) {
var onRegionChangeComplete = (region) => {
this.setState({
isFirstLoad: false,
annotations: [{
longitude: region.longitude,
latitude: region.latitude,
...this.props.annotation,
}],
});
};
}
return (
<MapView
style={styles.map}
onRegionChangeComplete={onRegionChangeComplete}
region={this.state.mapRegion}
annotations={this.state.annotations}
/>
);
},
});
var styles = StyleSheet.create({
map: {
height: 150,
@@ -242,12 +285,103 @@ exports.description = 'Base component to display maps';
exports.examples = [
{
title: 'Map',
render(): ReactElement { return <MapViewExample />; }
render() {
return <MapViewExample />;
}
},
{
title: 'Map shows user location',
render() {
return <MapView style={styles.map} showsUserLocation={true} />;
return <MapView style={styles.map} showsUserLocation={true} />;
}
}
},
{
title: 'Callout example',
render() {
return <AnnotationExample style={styles.map} annotation={{
title: 'More Info...',
rightCalloutView: (
<TouchableOpacity
onPress={() => {
alert('You Are Here');
}}>
<Image
style={{width:30, height:30}}
source={require('image!uie_thumb_selected')}
/>
</TouchableOpacity>
),
}}/>;
}
},
{
title: 'Draggable pin',
render() {
return <AnnotationExample style={styles.map} annotation={{
draggable: true,
onDragStateChange: (event) => {
console.log('Drag state: ' + event.state);
},
}}/>;
}
},
{
title: 'Custom pin color',
render() {
return <AnnotationExample style={styles.map} annotation={{
title: 'You Are Purple',
tintColor: MapView.PinColors.PURPLE,
}}/>;
}
},
{
title: 'Custom pin image',
render() {
return <AnnotationExample style={styles.map} annotation={{
title: 'Thumbs Up!',
image: require('image!uie_thumb_big'),
}}/>;
}
},
{
title: 'Custom pin view',
render() {
return <AnnotationExample style={styles.map} annotation={{
title: 'Thumbs Up!',
view: <View style={{
alignItems: 'center',
}}>
<Text style={{fontWeight: 'bold', color: '#f007'}}>
Thumbs Up!
</Text>
<Image
style={{width: 90, height: 65, resizeMode: 'cover'}}
source={require('image!uie_thumb_big')}
/>
</View>,
}}/>;
}
},
{
title: 'Custom overlay',
render() {
return <MapView
style={styles.map}
region={{
latitude: 39.06,
longitude: -95.22,
}}
overlays={[{
coordinates:[
{latitude: 32.47, longitude: -107.85},
{latitude: 45.13, longitude: -94.48},
{latitude: 39.27, longitude: -83.25},
{latitude: 32.47, longitude: -107.85},
],
strokeColor: '#f007',
lineWidth: 3,
}]}
/>;
}
},
];
+174
View File
@@ -0,0 +1,174 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('react-native');
var {
Modal,
StyleSheet,
SwitchIOS,
Text,
TouchableHighlight,
View,
} = React;
exports.displayName = (undefined: ?string);
exports.framework = 'React';
exports.title = '<Modal>';
exports.description = 'Component for presenting modal views.';
var Button = React.createClass({
getInitialState() {
return {
active: false,
};
},
_onHighlight() {
this.setState({active: true});
},
_onUnhighlight() {
this.setState({active: false});
},
render() {
var colorStyle = {
color: this.state.active ? '#fff' : '#000',
};
return (
<TouchableHighlight
onHideUnderlay={this._onUnhighlight}
onPress={this.props.onPress}
onShowUnderlay={this._onHighlight}
style={[styles.button, this.props.style]}
underlayColor="#a9d9d4">
<Text style={[styles.buttonText, colorStyle]}>{this.props.children}</Text>
</TouchableHighlight>
);
}
});
var ModalExample = React.createClass({
getInitialState() {
return {
animated: true,
modalVisible: false,
transparent: false,
};
},
_setModalVisible(visible) {
this.setState({modalVisible: visible});
},
_toggleAnimated() {
this.setState({animated: !this.state.animated});
},
_toggleTransparent() {
this.setState({transparent: !this.state.transparent});
},
render() {
var modalBackgroundStyle = {
backgroundColor: this.state.transparent ? 'rgba(0, 0, 0, 0.5)' : '#f5fcff',
};
var innerContainerTransparentStyle = this.state.transparent
? {backgroundColor: '#fff', padding: 20}
: null;
return (
<View>
<Modal
animated={this.state.animated}
transparent={this.state.transparent}
visible={this.state.modalVisible}>
<View style={[styles.container, modalBackgroundStyle]}>
<View style={[styles.innerContainer, innerContainerTransparentStyle]}>
<Text>This modal was presented {this.state.animated ? 'with' : 'without'} animation.</Text>
<Button
onPress={this._setModalVisible.bind(this, false)}
style={styles.modalButton}>
Close
</Button>
</View>
</View>
</Modal>
<View style={styles.row}>
<Text style={styles.rowTitle}>Animated</Text>
<SwitchIOS value={this.state.animated} onValueChange={this._toggleAnimated} />
</View>
<View style={styles.row}>
<Text style={styles.rowTitle}>Transparent</Text>
<SwitchIOS value={this.state.transparent} onValueChange={this._toggleTransparent} />
</View>
<Button onPress={this._setModalVisible.bind(this, true)}>
Present
</Button>
</View>
);
},
});
exports.examples = [
{
title: 'Modal Presentation',
description: 'Modals can be presented with or without animation',
render: () => <ModalExample />,
},
];
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
padding: 20,
},
innerContainer: {
borderRadius: 10,
alignItems: 'center',
},
row: {
alignItems: 'center',
flex: 1,
flexDirection: 'row',
marginBottom: 20,
},
rowTitle: {
flex: 1,
fontWeight: 'bold',
},
button: {
borderRadius: 5,
flex: 1,
height: 44,
alignSelf: 'stretch',
justifyContent: 'center',
overflow: 'hidden',
},
buttonText: {
fontSize: 18,
margin: 5,
textAlign: 'center',
},
modalButton: {
marginTop: 10,
},
});
@@ -21,8 +21,7 @@ var {
ScrollView,
Text,
TouchableHighlight,
TouchableOpacity,
View,
TouchableOpacity
} = React;
var _getRandomRoute = function() {
@@ -82,19 +81,19 @@ var BreadcrumbNavSample = React.createClass({
return (
<ScrollView style={styles.scene}>
<NavButton
onPress={() => { navigator.push(_getRandomRoute()) }}
onPress={() => { navigator.push(_getRandomRoute()); }}
text="Push"
/>
<NavButton
onPress={() => { navigator.immediatelyResetRouteStack([_getRandomRoute(), _getRandomRoute()]) }}
onPress={() => { navigator.immediatelyResetRouteStack([_getRandomRoute(), _getRandomRoute()]); }}
text="Reset w/ 2 scenes"
/>
<NavButton
onPress={() => { navigator.popToTop() }}
onPress={() => { navigator.popToTop(); }}
text="Pop to top"
/>
<NavButton
onPress={() => { navigator.replace(_getRandomRoute()) }}
onPress={() => { navigator.replace(_getRandomRoute()); }}
text="Replace"
/>
<NavButton
@@ -23,7 +23,6 @@ var {
Text,
TouchableHighlight,
TouchableOpacity,
View,
} = React;
var cssVar = require('cssVar');
@@ -134,7 +134,7 @@ var TabBarExample = React.createClass({
<Navigator
ref={this._setNavigatorRef}
style={styles.container}
initialRoute={{ message: "First Scene", }}
initialRoute={{ message: 'First Scene', }}
renderScene={this.renderScene}
configureScene={(route) => {
if (route.sceneConfig) {
@@ -66,7 +66,7 @@ var NavigatorIOSColors = React.createClass({
tintColor="#FFFFFF"
barTintColor="#183E63"
titleTextColor="#FFFFFF"
translucent="true"
translucent={true}
/>
);
},
+78 -43
View File
@@ -15,83 +15,84 @@
*/
'use strict';
var React = require('react-native');
var {
const React = require('react-native');
const {
NetInfo,
Text,
View
View,
TouchableWithoutFeedback,
} = React;
var ReachabilitySubscription = React.createClass({
const ConnectionInfoSubscription = React.createClass({
getInitialState() {
return {
reachabilityHistory: [],
connectionInfoHistory: [],
};
},
componentDidMount: function() {
NetInfo.addEventListener(
'change',
this._handleReachabilityChange
'change',
this._handleConnectionInfoChange
);
},
componentWillUnmount: function() {
NetInfo.removeEventListener(
'change',
this._handleReachabilityChange
'change',
this._handleConnectionInfoChange
);
},
_handleReachabilityChange: function(reachability) {
var reachabilityHistory = this.state.reachabilityHistory.slice();
reachabilityHistory.push(reachability);
_handleConnectionInfoChange: function(connectionInfo) {
const connectionInfoHistory = this.state.connectionInfoHistory.slice();
connectionInfoHistory.push(connectionInfo);
this.setState({
reachabilityHistory,
connectionInfoHistory,
});
},
render() {
return (
<View>
<Text>{JSON.stringify(this.state.reachabilityHistory)}</Text>
</View>
<View>
<Text>{JSON.stringify(this.state.connectionInfoHistory)}</Text>
</View>
);
}
});
var ReachabilityCurrent = React.createClass({
const ConnectionInfoCurrent = React.createClass({
getInitialState() {
return {
reachability: null,
connectionInfo: null,
};
},
componentDidMount: function() {
NetInfo.addEventListener(
'change',
this._handleReachabilityChange
'change',
this._handleConnectionInfoChange
);
NetInfo.fetch().done(
(reachability) => { this.setState({reachability}); }
(connectionInfo) => { this.setState({connectionInfo}); }
);
},
componentWillUnmount: function() {
NetInfo.removeEventListener(
'change',
this._handleReachabilityChange
'change',
this._handleConnectionInfoChange
);
},
_handleReachabilityChange: function(reachability) {
_handleConnectionInfoChange: function(connectionInfo) {
this.setState({
reachability,
connectionInfo,
});
},
render() {
return (
<View>
<Text>{this.state.reachability}</Text>
</View>
<View>
<Text>{this.state.connectionInfo}</Text>
</View>
);
}
});
var IsConnected = React.createClass({
const IsConnected = React.createClass({
getInitialState() {
return {
isConnected: null,
@@ -99,17 +100,17 @@ var IsConnected = React.createClass({
},
componentDidMount: function() {
NetInfo.isConnected.addEventListener(
'change',
this._handleConnectivityChange
'change',
this._handleConnectivityChange
);
NetInfo.isConnected.fetch().done(
(isConnected) => { this.setState({isConnected}); }
(isConnected) => { this.setState({isConnected}); }
);
},
componentWillUnmount: function() {
NetInfo.isConnected.removeEventListener(
'change',
this._handleConnectivityChange
'change',
this._handleConnectivityChange
);
},
_handleConnectivityChange: function(isConnected) {
@@ -119,9 +120,37 @@ var IsConnected = React.createClass({
},
render() {
return (
<View>
<Text>{this.state.isConnected ? 'Online' : 'Offline'}</Text>
</View>
<View>
<Text>{this.state.isConnected ? 'Online' : 'Offline'}</Text>
</View>
);
}
});
const IsConnectionExpensive = React.createClass({
getInitialState() {
return {
isConnectionExpensive: (null : ?boolean),
};
},
_checkIfExpensive() {
NetInfo.isConnectionExpensive(
(isConnectionExpensive) => { this.setState({isConnectionExpensive}); }
);
},
render() {
return (
<View>
<TouchableWithoutFeedback onPress={this._checkIfExpensive}>
<View>
<Text>Click to see if connection is expensive:
{this.state.isConnectionExpensive === true ? 'Expensive' :
this.state.isConnectionExpensive === false ? 'Not expensive'
: 'Unknown'}
</Text>
</View>
</TouchableWithoutFeedback>
</View>
);
}
});
@@ -135,13 +164,19 @@ exports.examples = [
render(): ReactElement { return <IsConnected />; }
},
{
title: 'NetInfo.reachabilityIOS',
description: 'Asynchronously load and observe iOS reachability',
render(): ReactElement { return <ReachabilityCurrent />; }
title: 'NetInfo.update',
description: 'Asynchronously load and observe connectionInfo',
render(): ReactElement { return <ConnectionInfoCurrent />; }
},
{
title: 'NetInfo.reachabilityIOS',
description: 'Observed updates to iOS reachability',
render(): ReactElement { return <ReachabilitySubscription />; }
title: 'NetInfo.updateHistory',
description: 'Observed updates to connectionInfo',
render(): ReactElement { return <ConnectionInfoSubscription />; }
},
{
platform: 'android',
title: 'NetInfo.isConnectionExpensive (Android)',
description: 'Asynchronously check isConnectionExpensive',
render(): ReactElement { return <IsConnectionExpensive />; }
},
];
+20 -12
View File
@@ -11,27 +11,27 @@
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
* @flow weak
*/
'use strict';
var React = require('react-native');
var {
StyleSheet,
PanResponder,
StyleSheet,
View,
processColor,
} = React;
var CIRCLE_SIZE = 80;
var CIRCLE_COLOR = 'blue';
var CIRCLE_HIGHLIGHT_COLOR = 'green';
var PanResponderExample = React.createClass({
statics: {
title: 'PanResponder Sample',
description: 'Basic gesture handling example',
description: 'Shows the use of PanResponder to provide basic gesture handling.',
},
_panResponder: {},
@@ -52,8 +52,10 @@ var PanResponderExample = React.createClass({
this._previousLeft = 20;
this._previousTop = 84;
this._circleStyles = {
left: this._previousLeft,
top: this._previousTop,
style: {
left: this._previousLeft,
top: this._previousTop
}
};
},
@@ -77,14 +79,20 @@ var PanResponderExample = React.createClass({
},
_highlight: function() {
this.circle && this.circle.setNativeProps({
backgroundColor: CIRCLE_HIGHLIGHT_COLOR
const circle = this.circle;
circle && circle.setNativeProps({
style: {
backgroundColor: processColor(CIRCLE_HIGHLIGHT_COLOR)
}
});
},
_unHighlight: function() {
this.circle && this.circle.setNativeProps({
backgroundColor: CIRCLE_COLOR
const circle = this.circle;
circle && circle.setNativeProps({
style: {
backgroundColor: processColor(CIRCLE_COLOR)
}
});
},
@@ -106,8 +114,8 @@ var PanResponderExample = React.createClass({
this._highlight();
},
_handlePanResponderMove: function(e: Object, gestureState: Object) {
this._circleStyles.left = this._previousLeft + gestureState.dx;
this._circleStyles.top = this._previousTop + gestureState.dy;
this._circleStyles.style.left = this._previousLeft + gestureState.dx;
this._circleStyles.style.top = this._previousTop + gestureState.dy;
this._updatePosition();
},
_handlePanResponderEnd: function(e: Object, gestureState: Object) {
+43 -12
View File
@@ -87,24 +87,21 @@ var PickerExample = React.createClass({
key={carMake}
value={carMake}
label={CAR_MAKES_AND_MODELS[carMake].name}
/>
)
)}
/>
))}
</PickerIOS>
<Text>Please choose a model of {make.name}:</Text>
<PickerIOS
selectedValue={this.state.modelIndex}
key={this.state.carMake}
onValueChange={(modelIndex) => this.setState({modelIndex})}>
{CAR_MAKES_AND_MODELS[this.state.carMake].models.map(
(modelName, modelIndex) => (
<PickerItemIOS
key={this.state.carmake + '_' + modelIndex}
value={modelIndex}
label={modelName}
/>
))
}
{CAR_MAKES_AND_MODELS[this.state.carMake].models.map((modelName, modelIndex) => (
<PickerItemIOS
key={this.state.carMake + '_' + modelIndex}
value={modelIndex}
label={modelName}
/>
))}
</PickerIOS>
<Text>You selected: {selectionString}</Text>
</View>
@@ -112,6 +109,34 @@ var PickerExample = React.createClass({
},
});
var PickerStyleExample = React.createClass({
getInitialState: function() {
return {
carMake: 'cadillac',
modelIndex: 0,
};
},
render: function() {
var make = CAR_MAKES_AND_MODELS[this.state.carMake];
var selectionString = make.name + ' ' + make.models[this.state.modelIndex];
return (
<PickerIOS
itemStyle={{fontSize: 25, color: 'red', textAlign: 'left', fontWeight: 'bold'}}
selectedValue={this.state.carMake}
onValueChange={(carMake) => this.setState({carMake, modelIndex: 0})}>
{Object.keys(CAR_MAKES_AND_MODELS).map((carMake) => (
<PickerItemIOS
key={carMake}
value={carMake}
label={CAR_MAKES_AND_MODELS[carMake].name}
/>
))}
</PickerIOS>
);
},
});
exports.displayName = (undefined: ?string);
exports.title = '<PickerIOS>';
exports.description = 'Render lists of selectable options with UIPickerView.';
@@ -121,4 +146,10 @@ exports.examples = [
render: function(): ReactElement {
return <PickerExample />;
},
},
{
title: '<PickerIOS> with custom styling',
render: function(): ReactElement {
return <PickerStyleExample />;
},
}];
+2 -2
View File
@@ -250,6 +250,6 @@ var styles = StyleSheet.create({
exports.framework = 'React';
exports.title = 'Pointer Events';
exports.description = '`pointerEvents` is a prop of View that gives control ' +
'of how touches should be handled.';
exports.description = 'Demonstrates the use of the pointerEvents prop of a ' +
'View to control how touches should be handled.';
exports.examples = exampleClasses.map(infoToExample);
@@ -0,0 +1,107 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var ProgressBar = require('ProgressBarAndroid');
var React = require('React');
var UIExplorerBlock = require('UIExplorerBlock');
var UIExplorerPage = require('UIExplorerPage');
var TimerMixin = require('react-timer-mixin');
var MovingBar = React.createClass({
mixins: [TimerMixin],
getInitialState: function() {
return {
progress: 0
};
},
componentDidMount: function() {
this.setInterval(
() => {
var progress = (this.state.progress + 0.02) % 1;
this.setState({progress: progress});
}, 50
);
},
render: function() {
return <ProgressBar progress={this.state.progress} {...this.props} />;
},
});
var ProgressBarAndroidExample = React.createClass({
statics: {
title: '<ProgressBarAndroid>',
description: 'Visual indicator of progress of some operation. ' +
'Shows either a cyclic animation or a horizontal bar.',
},
render: function() {
return (
<UIExplorerPage title="ProgressBar Examples">
<UIExplorerBlock title="Default ProgressBar">
<ProgressBar />
</UIExplorerBlock>
<UIExplorerBlock title="Small ProgressBar">
<ProgressBar styleAttr="Small" />
</UIExplorerBlock>
<UIExplorerBlock title="Large ProgressBar">
<ProgressBar styleAttr="Large" />
</UIExplorerBlock>
<UIExplorerBlock title="Inverse ProgressBar">
<ProgressBar styleAttr="Inverse" />
</UIExplorerBlock>
<UIExplorerBlock title="Small Inverse ProgressBar">
<ProgressBar styleAttr="SmallInverse" />
</UIExplorerBlock>
<UIExplorerBlock title="Large Inverse ProgressBar">
<ProgressBar styleAttr="LargeInverse" />
</UIExplorerBlock>
<UIExplorerBlock title="Horizontal Indeterminate ProgressBar">
<ProgressBar styleAttr="Horizontal" />
</UIExplorerBlock>
<UIExplorerBlock title="Horizontal ProgressBar">
<MovingBar styleAttr="Horizontal" indeterminate={false} />
</UIExplorerBlock>
<UIExplorerBlock title="Large Red ProgressBar">
<ProgressBar styleAttr="Large" color="red" />
</UIExplorerBlock>
<UIExplorerBlock title="Horizontal Black Indeterminate ProgressBar">
<ProgressBar styleAttr="Horizontal" color="black" />
</UIExplorerBlock>
<UIExplorerBlock title="Horizontal Blue ProgressBar">
<MovingBar styleAttr="Horizontal" indeterminate={false} color="blue" />
</UIExplorerBlock>
</UIExplorerPage>
);
},
});
module.exports = ProgressBarAndroidExample;
@@ -0,0 +1,127 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
'use strict';
const React = require('react-native');
const {
ScrollView,
StyleSheet,
PullToRefreshViewAndroid,
Text,
TouchableWithoutFeedback,
View,
} = React;
const styles = StyleSheet.create({
row: {
borderColor: 'grey',
borderWidth: 1,
padding: 20,
backgroundColor: '#3a5795',
margin: 5,
},
text: {
alignSelf: 'center',
color: '#fff',
},
layout: {
flex: 1,
},
scrollview: {
flex: 1,
},
});
const Row = React.createClass({
_onClick: function() {
this.props.onClick(this.props.data);
},
render: function() {
return (
<TouchableWithoutFeedback onPress={this._onClick} >
<View style={styles.row}>
<Text style={styles.text}>
{this.props.data.text + ' (' + this.props.data.clicks + ' clicks)'}
</Text>
</View>
</TouchableWithoutFeedback>
);
},
});
const PullToRefreshViewAndroidExample = React.createClass({
statics: {
title: '<PullToRefreshViewAndroid>',
description: 'Container that adds pull-to-refresh support to its child view.'
},
getInitialState() {
return {
isRefreshing: false,
loaded: 0,
rowData: Array.from(new Array(20)).map(
(val, i) => {return {text: 'Initial row' + i, clicks: 0}}),
};
},
_onClick(row) {
row.clicks++;
this.setState({
rowData: this.state.rowData,
});
},
render() {
const rows = this.state.rowData.map((row, ii) => {
return <Row key={ii} data={row} onClick={this._onClick}/>;
});
return (
<PullToRefreshViewAndroid
style={styles.layout}
refreshing={this.state.isRefreshing}
onRefresh={this._onRefresh}
colors={['#ff0000', '#00ff00', '#0000ff']}
progressBackgroundColor={'#ffff00'}
>
<ScrollView style={styles.scrollview}>
{rows}
</ScrollView>
</PullToRefreshViewAndroid>
);
},
_onRefresh() {
this.setState({isRefreshing: true});
setTimeout(() => {
// prepend 10 items
const rowData = Array.from(new Array(10))
.map((val, i) => {return {
text: 'Loaded row' + (+this.state.loaded + i),
clicks: 0,
}})
.concat(this.state.rowData);
this.setState({
loaded: this.state.loaded + 10,
isRefreshing: false,
rowData: rowData,
});
}, 5000);
},
});
module.exports = PullToRefreshViewAndroidExample;
@@ -0,0 +1,98 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
const React = require('react-native');
const {
StyleSheet,
Text,
View,
} = React;
const requireNativeComponent = require('requireNativeComponent');
class AppPropertiesUpdateExample extends React.Component {
render() {
// Do not require this unless we are actually rendering.
const UpdatePropertiesExampleView = requireNativeComponent('UpdatePropertiesExampleView');
return (
<View style={styles.container}>
<Text style={styles.text}>
Press the button to update the field below by passing new properties to the RN app.
</Text>
<UpdatePropertiesExampleView style={styles.nativeView}>
<Text style={styles.text}>
Error: This demo is accessible only from UIExplorer app
</Text>
</UpdatePropertiesExampleView>
</View>
);
}
}
class RootViewSizeFlexibilityExample extends React.Component {
render() {
// Do not require this unless we are actually rendering.
const FlexibleSizeExampleView = requireNativeComponent('FlexibleSizeExampleView');
return (
<View style={styles.container}>
<Text style={styles.text}>
Press the button to resize it. On resize, RCTRootViewDelegate is notified. You can use it to handle content size updates.
</Text>
<FlexibleSizeExampleView style={styles.nativeView}>
<Text style={styles.text}>
Error: This demo is accessible only from UIExplorer app
</Text>
</FlexibleSizeExampleView>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#F5FCFF',
},
text: {
marginBottom: 20
},
nativeView: {
height: 140,
width: 280
}
});
exports.title = 'RCTRootView';
exports.description = 'Examples that show useful methods when embedding React Native in a native application';
exports.examples = [
{
title: 'Updating app properties in runtime',
render(): React.Component {
return (
<AppPropertiesUpdateExample/>
);
},
},
{
title: 'RCTRootView\'s size flexibility',
render(): React.Component {
return (
<RootViewSizeFlexibilityExample/>
);
},
}];
+42
View File
@@ -0,0 +1,42 @@
# UIExplorer
The UIExplorer is a sample app that showcases React Native views and modules.
## Running this app
Before running the app, make sure you ran:
git clone https://github.com/facebook/react-native.git
cd react-native
npm install
### Running on iOS
Mac OS and Xcode are required.
- Open `Examples/UIExplorer/UIExplorer.xcodeproj` in Xcode
- Hit the Run button
See [Running on device](https://facebook.github.io/react-native/docs/running-on-device-ios.html) if you want to use a physical device.
### Running on Android
You'll need to have all the [prerequisites](https://github.com/facebook/react-native/tree/master/ReactAndroid#prerequisites) (SDK, NDK) for Building React Native installed.
Start an Android emulator ([Genymotion](https://www.genymotion.com) is recommended).
cd react-native
./gradlew :Examples:UIExplorer:android:app:installDebug
./packager/packager.sh
_Note: Building for the first time can take a while._
Open the UIExplorer app in your emulator.
See [Running on Device](https://facebook.github.io/react-native/docs/running-on-device-android.html) in case you want to use a physical device.
## Built from source
Building the app on both iOS and Android means building the React Native framework from source. This way you're running the latest native and JS code the way you see it in your clone of the github repo.
This is different from apps created using `react-native init` which have a dependency on a specific version of React Native JS and native code, declared in a `package.json` file (and `build.gradle` for Android apps).
@@ -0,0 +1,125 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
'use strict';
const React = require('react-native');
const {
ScrollView,
StyleSheet,
RefreshControl,
Text,
TouchableWithoutFeedback,
View,
} = React;
const styles = StyleSheet.create({
row: {
borderColor: 'grey',
borderWidth: 1,
padding: 20,
backgroundColor: '#3a5795',
margin: 5,
},
text: {
alignSelf: 'center',
color: '#fff',
},
scrollview: {
flex: 1,
},
});
const Row = React.createClass({
_onClick: function() {
this.props.onClick(this.props.data);
},
render: function() {
return (
<TouchableWithoutFeedback onPress={this._onClick} >
<View style={styles.row}>
<Text style={styles.text}>
{this.props.data.text + ' (' + this.props.data.clicks + ' clicks)'}
</Text>
</View>
</TouchableWithoutFeedback>
);
},
});
const RefreshControlExample = React.createClass({
statics: {
title: '<RefreshControl>',
description: 'Adds pull-to-refresh support to a scrollview.'
},
getInitialState() {
return {
isRefreshing: false,
loaded: 0,
rowData: Array.from(new Array(20)).map(
(val, i) => ({text: 'Initial row' + i, clicks: 0})),
};
},
_onClick(row) {
row.clicks++;
this.setState({
rowData: this.state.rowData,
});
},
render() {
const rows = this.state.rowData.map((row, ii) => {
return <Row key={ii} data={row} onClick={this._onClick}/>;
});
return (
<ScrollView
style={styles.scrollview}
refreshControl={
<RefreshControl
refreshing={this.state.isRefreshing}
onRefresh={this._onRefresh}
tintColor="#ff0000"
title="Loading..."
colors={['#ff0000', '#00ff00', '#0000ff']}
progressBackgroundColor="#ffff00"
/>
}>
{rows}
</ScrollView>
);
},
_onRefresh() {
this.setState({isRefreshing: true});
setTimeout(() => {
// prepend 10 items
const rowData = Array.from(new Array(10))
.map((val, i) => ({
text: 'Loaded row' + (+this.state.loaded + i),
clicks: 0,
}))
.concat(this.state.rowData);
this.setState({
loaded: this.state.loaded + 10,
isRefreshing: false,
rowData: rowData,
});
}, 5000);
},
});
module.exports = RefreshControlExample;
-136
View File
@@ -1,136 +0,0 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('react-native');
var {
StyleSheet,
PanResponder,
View,
} = React;
var CIRCLE_SIZE = 80;
var CIRCLE_COLOR = 'blue';
var CIRCLE_HIGHLIGHT_COLOR = 'green';
var NavigatorIOSExample = React.createClass({
statics: {
title: 'PanResponder Sample',
description: 'Basic gesture handling example',
},
_panResponder: {},
_previousLeft: 0,
_previousTop: 0,
_circleStyles: {},
circle: (null : ?{ setNativeProps(props: Object): void }),
componentWillMount: function() {
this._panResponder = PanResponder.create({
onStartShouldSetPanResponder: this._handleStartShouldSetPanResponder,
onMoveShouldSetPanResponder: this._handleMoveShouldSetPanResponder,
onPanResponderGrant: this._handlePanResponderGrant,
onPanResponderMove: this._handlePanResponderMove,
onPanResponderRelease: this._handlePanResponderEnd,
onPanResponderTerminate: this._handlePanResponderEnd,
});
this._previousLeft = 20;
this._previousTop = 84;
this._circleStyles = {
left: this._previousLeft,
top: this._previousTop,
};
},
componentDidMount: function() {
this._updatePosition();
},
render: function() {
return (
<View
style={styles.container}>
<View
ref={(circle) => {
this.circle = circle;
}}
style={styles.circle}
{...this._panResponder.panHandlers}
/>
</View>
);
},
_highlight: function() {
this.circle && this.circle.setNativeProps({
backgroundColor: CIRCLE_HIGHLIGHT_COLOR
});
},
_unHighlight: function() {
this.circle && this.circle.setNativeProps({
backgroundColor: CIRCLE_COLOR
});
},
_updatePosition: function() {
this.circle && this.circle.setNativeProps(this._circleStyles);
},
_handleStartShouldSetPanResponder: function(e: Object, gestureState: Object): boolean {
// Should we become active when the user presses down on the circle?
return true;
},
_handleMoveShouldSetPanResponder: function(e: Object, gestureState: Object): boolean {
// Should we become active when the user moves a touch over the circle?
return true;
},
_handlePanResponderGrant: function(e: Object, gestureState: Object) {
this._highlight();
},
_handlePanResponderMove: function(e: Object, gestureState: Object) {
this._circleStyles.left = this._previousLeft + gestureState.dx;
this._circleStyles.top = this._previousTop + gestureState.dy;
this._updatePosition();
},
_handlePanResponderEnd: function(e: Object, gestureState: Object) {
this._unHighlight();
this._previousLeft += gestureState.dx;
this._previousTop += gestureState.dy;
},
});
var styles = StyleSheet.create({
circle: {
width: CIRCLE_SIZE,
height: CIRCLE_SIZE,
borderRadius: CIRCLE_SIZE / 2,
backgroundColor: CIRCLE_COLOR,
position: 'absolute',
left: 0,
top: 0,
},
container: {
flex: 1,
paddingTop: 64,
},
});
module.exports = NavigatorIOSExample;
+2 -2
View File
@@ -33,9 +33,9 @@ exports.examples = [
render: function() {
return (
<ScrollView
automaticallyAdjustContentInsets={false}
onScroll={() => { console.log('onScroll!'); }}
scrollEventThrottle={200}
contentInset={{top: -50}}
style={styles.scrollView}>
{THUMBS.map(createThumbRow)}
</ScrollView>
@@ -47,8 +47,8 @@ exports.examples = [
render: function() {
return (
<ScrollView
automaticallyAdjustContentInsets={false}
horizontal={true}
contentInset={{top: -50}}
style={[styles.scrollView, styles.horizontalScrollView]}>
{THUMBS.map(createThumbRow)}
</ScrollView>
@@ -0,0 +1,82 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('react-native');
var {
ScrollView,
StyleSheet,
Text,
TouchableOpacity
} = React;
var NUM_ITEMS = 20;
var ScrollViewSimpleExample = React.createClass({
statics: {
title: '<ScrollView>',
description: 'Component that enables scrolling through child components.'
},
makeItems: function(nItems: number, styles): Array<any> {
var items = [];
for (var i = 0; i < nItems; i++) {
items[i] = (
<TouchableOpacity key={i} style={styles}>
<Text>{'Item ' + i}</Text>
</TouchableOpacity>
);
}
return items;
},
render: function() {
// One of the items is a horizontal scroll view
var items = this.makeItems(NUM_ITEMS, styles.itemWrapper);
items[4] = (
<ScrollView key={'scrollView'} horizontal={true}>
{this.makeItems(NUM_ITEMS, [styles.itemWrapper, styles.horizontalItemWrapper])}
</ScrollView>
);
var verticalScrollView = (
<ScrollView style={styles.verticalScrollView}>
{items}
</ScrollView>
);
return verticalScrollView;
}
});
var styles = StyleSheet.create({
verticalScrollView: {
margin: 10,
},
itemWrapper: {
backgroundColor: '#dddddd',
alignItems: 'center',
borderRadius: 5,
borderWidth: 5,
borderColor: '#a52a2a',
padding: 30,
margin: 5,
},
horizontalItemWrapper: {
padding: 50
}
});
module.exports = ScrollViewSimpleExample;
@@ -0,0 +1,43 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('React');
var Text = require('Text');
var View = require('View');
var SetPropertiesExampleApp = React.createClass({
render: function() {
var wrapperStyle = {
backgroundColor: this.props.color,
flex: 1,
alignItems: 'center',
justifyContent: 'center'
};
return (
<View style={wrapperStyle}>
<Text>
Embedded React Native view
</Text>
</View>
);
},
});
module.exports = SetPropertiesExampleApp;
+57 -4
View File
@@ -37,7 +37,7 @@ var SliderExample = React.createClass({
{this.state.value}
</Text>
<SliderIOS
style={styles.slider}
{...this.props}
onValueChange={(value) => this.setState({value: value})} />
</View>
);
@@ -62,7 +62,60 @@ exports.displayName = 'SliderExample';
exports.description = 'Slider input for numeric values';
exports.examples = [
{
title: 'SliderIOS',
render(): ReactElement { return <SliderExample />; }
}
title: 'Default settings',
render(): ReactElement {
return <SliderExample />;
}
},
{
title: 'minimumValue: -1, maximumValue: 2',
render(): ReactElement {
return (
<SliderExample
minimumValue={-1}
maximumValue={2}
/>
);
}
},
{
title: 'step: 0.25',
render(): ReactElement {
return <SliderExample step={0.25} />;
}
},
{
title: 'Custom min/max track tint color',
render(): ReactElement {
return (
<SliderExample
minimumTrackTintColor={'red'}
maximumTrackTintColor={'green'}
/>
);
}
},
{
title: 'Custom thumb image',
render(): ReactElement {
return <SliderExample thumbImage={require('./uie_thumb_big.png')} />;
}
},
{
title: 'Custom track image',
render(): ReactElement {
return <SliderExample trackImage={require('./slider.png')} />;
}
},
{
title: 'Custom min/max track image',
render(): ReactElement {
return (
<SliderExample
minimumTrackImage={require('./slider-left.png')}
maximumTrackImage={require('./slider-right.png')}
/>
);
}
},
];
+3 -3
View File
@@ -33,7 +33,7 @@ exports.examples = [{
return (
<View>
{['default', 'light-content'].map((style) =>
<TouchableHighlight style={styles.wrapper}
<TouchableHighlight key={style} style={styles.wrapper}
onPress={() => StatusBarIOS.setStyle(style)}>
<View style={styles.button}>
<Text>setStyle('{style}')</Text>
@@ -49,7 +49,7 @@ exports.examples = [{
return (
<View>
{['default', 'light-content'].map((style) =>
<TouchableHighlight style={styles.wrapper}
<TouchableHighlight key={style} style={styles.wrapper}
onPress={() => StatusBarIOS.setStyle(style, true)}>
<View style={styles.button}>
<Text>setStyle('{style}', true)</Text>
@@ -65,7 +65,7 @@ exports.examples = [{
return (
<View>
{['none', 'fade', 'slide'].map((animation) =>
<View>
<View key={animation}>
<TouchableHighlight style={styles.wrapper}
onPress={() => StatusBarIOS.setHidden(true, animation)}>
<View style={styles.button}>
@@ -0,0 +1,70 @@
/**
* Copyright 2004-present Facebook. All Rights Reserved.
*/
'use strict';
var React = require('React');
var SwitchAndroid = require('SwitchAndroid');
var Text = require('Text');
var UIExplorerBlock = require('UIExplorerBlock');
var UIExplorerPage = require('UIExplorerPage');
var SwitchAndroidExample = React.createClass({
statics: {
title: '<SwitchAndroid>',
description: 'Standard Android two-state toggle component.'
},
getInitialState : function() {
return {
trueSwitchIsOn: true,
falseSwitchIsOn: false,
colorTrueSwitchIsOn: true,
colorFalseSwitchIsOn: false,
eventSwitchIsOn: false,
};
},
render: function() {
return (
<UIExplorerPage title="<SwitchAndroid>">
<UIExplorerBlock title="Switches can be set to true or false">
<SwitchAndroid
onValueChange={(value) => this.setState({falseSwitchIsOn: value})}
style={{marginBottom: 10}}
value={this.state.falseSwitchIsOn} />
<SwitchAndroid
onValueChange={(value) => this.setState({trueSwitchIsOn: value})}
value={this.state.trueSwitchIsOn} />
</UIExplorerBlock>
<UIExplorerBlock title="Switches can be disabled">
<SwitchAndroid
disabled={true}
style={{marginBottom: 10}}
value={true} />
<SwitchAndroid
disabled={true}
value={false} />
</UIExplorerBlock>
<UIExplorerBlock title="Change events can be detected">
<SwitchAndroid
onValueChange={(value) => this.setState({eventSwitchIsOn: value})}
style={{marginBottom: 10}}
value={this.state.eventSwitchIsOn} />
<SwitchAndroid
onValueChange={(value) => this.setState({eventSwitchIsOn: value})}
style={{marginBottom: 10}}
value={this.state.eventSwitchIsOn} />
<Text>{this.state.eventSwitchIsOn ? 'On' : 'Off'}</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Switches are controlled components">
<SwitchAndroid />
<SwitchAndroid value={true} />
</UIExplorerBlock>
</UIExplorerPage>
);
}
});
module.exports = SwitchAndroidExample;
+2 -2
View File
@@ -107,7 +107,7 @@ var EventSwitchExample = React.createClass({
onValueChange={(value) => this.setState({eventSwitchIsOn: value})}
style={{marginBottom: 10}}
value={this.state.eventSwitchIsOn} />
<Text>{this.state.eventSwitchIsOn ? "On" : "Off"}</Text>
<Text>{this.state.eventSwitchIsOn ? 'On' : 'Off'}</Text>
</View>
<View>
<SwitchIOS
@@ -118,7 +118,7 @@ var EventSwitchExample = React.createClass({
onValueChange={(value) => this.setState({eventSwitchRegressionIsOn: value})}
style={{marginBottom: 10}}
value={this.state.eventSwitchRegressionIsOn} />
<Text>{this.state.eventSwitchRegressionIsOn ? "On" : "Off"}</Text>
<Text>{this.state.eventSwitchRegressionIsOn ? 'On' : 'Off'}</Text>
</View>
</View>
);
+5 -1
View File
@@ -23,6 +23,8 @@ var {
View,
} = React;
var base64Icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAQAAACSR7JhAAADtUlEQVR4Ac3YA2Bj6QLH0XPT1Fzbtm29tW3btm3bfLZtv7e2ObZnms7d8Uw098tuetPzrxv8wiISrtVudrG2JXQZ4VOv+qUfmqCGGl1mqLhoA52oZlb0mrjsnhKpgeUNEs91Z0pd1kvihA3ULGVHiQO2narKSHKkEMulm9VgUyE60s1aWoMQUbpZOWE+kaqs4eLEjdIlZTcFZB0ndc1+lhB1lZrIuk5P2aib1NBpZaL+JaOGIt0ls47SKzLC7CqrlGF6RZ09HGoNy1lYl2aRSWL5GuzqWU1KafRdoRp0iOQEiDzgZPnG6DbldcomadViflnl/cL93tOoVbsOLVM2jylvdWjXolWX1hmfZbGR/wjypDjFLSZIRov09BgYmtUqPQPlQrPapecLgTIy0jMgPKtTeob2zWtrGH3xvjUkPCtNg/tm1rjwrMa+mdUkPd3hWbH0jArPGiU9ufCsNNWFZ40wpwn+62/66R2RUtoso1OB34tnLOcy7YB1fUdc9e0q3yru8PGM773vXsuZ5YIZX+5xmHwHGVvlrGPN6ZSiP1smOsMMde40wKv2VmwPPVXNut4sVpUreZiLBHi0qln/VQeI/LTMYXpsJtFiclUN+5HVZazim+Ky+7sAvxWnvjXrJFneVtLWLyPJu9K3cXLWeOlbMTlrIelbMDlrLenrjEQOtIF+fuI9xRp9ZBFp6+b6WT8RrxEpdK64BuvHgDk+vUy+b5hYk6zfyfs051gRoNO1usU12WWRWL73/MMEy9pMi9qIrR4ZpV16Rrvduxazmy1FSvuFXRkqTnE7m2kdb5U8xGjLw/spRr1uTov4uOgQE+0N/DvFrG/Jt7i/FzwxbA9kDanhf2w+t4V97G8lrT7wc08aA2QNUkuTfW/KimT01wdlfK4yEw030VfT0RtZbzjeMprNq8m8tnSTASrTLti64oBNdpmMQm0eEwvfPwRbUBywG5TzjPCsdwk3IeAXjQblLCoXnDVeoAz6SfJNk5TTzytCNZk/POtTSV40NwOFWzw86wNJRpubpXsn60NJFlHeqlYRbslqZm2jnEZ3qcSKgm0kTli3zZVS7y/iivZTweYXJ26Y+RTbV1zh3hYkgyFGSTKPfRVbRqWWVReaxYeSLarYv1Qqsmh1s95S7G+eEWK0f3jYKTbV6bOwepjfhtafsvUsqrQvrGC8YhmnO9cSCk3yuY984F1vesdHYhWJ5FvASlacshUsajFt2mUM9pqzvKGcyNJW0arTKN1GGGzQlH0tXwLDgQTurS8eIQAAAABJRU5ErkJggg==';
var TabBarExample = React.createClass({
statics: {
title: '<TabBarIOS>',
@@ -55,6 +57,7 @@ var TabBarExample = React.createClass({
barTintColor="darkslateblue">
<TabBarIOS.Item
title="Blue Tab"
icon={{uri: base64Icon, scale: 3}}
selected={this.state.selectedTab === 'blueTab'}
onPress={() => {
this.setState({
@@ -76,7 +79,8 @@ var TabBarExample = React.createClass({
{this._renderContent('#783E33', 'Red Tab', this.state.notifCount)}
</TabBarIOS.Item>
<TabBarIOS.Item
systemIcon="more"
icon={require('./flux.png')}
title="More"
selected={this.state.selectedTab === 'greenTab'}
onPress={() => {
this.setState({
+385
View File
@@ -0,0 +1,385 @@
/**
* The examples provided by Facebook are for non-commercial testing and
* evaluation purposes only.
*
* Facebook reserves all rights not expressly granted.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL
* FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @flow
*/
'use strict';
var React = require('react-native');
var {
Image,
StyleSheet,
Text,
View,
} = React;
var UIExplorerBlock = require('./UIExplorerBlock');
var UIExplorerPage = require('./UIExplorerPage');
var Entity = React.createClass({
render: function() {
return (
<Text style={{fontWeight: 'bold', color: '#527fe4'}}>
{this.props.children}
</Text>
);
}
});
var AttributeToggler = React.createClass({
getInitialState: function() {
return {fontWeight: 'bold', fontSize: 15};
},
toggleWeight: function() {
this.setState({
fontWeight: this.state.fontWeight === 'bold' ? 'normal' : 'bold'
});
},
increaseSize: function() {
this.setState({
fontSize: this.state.fontSize + 1
});
},
render: function() {
var curStyle = {fontWeight: this.state.fontWeight, fontSize: this.state.fontSize};
return (
<View>
<Text style={curStyle}>
Tap the controls below to change attributes.
</Text>
<Text>
<Text>See how it will even work on <Text style={curStyle}>this nested text</Text></Text>
</Text>
<Text>
<Text onPress={this.toggleWeight}>Toggle Weight</Text>
{' (with highlight onPress)'}
</Text>
<Text onPress={this.increaseSize} suppressHighlighting={true}>
Increase Size (suppressHighlighting true)
</Text>
</View>
);
}
});
var TextExample = React.createClass({
statics: {
title: '<Text>',
description: 'Base component for rendering styled text.',
},
render: function() {
return (
<UIExplorerPage title="<Text>">
<UIExplorerBlock title="Wrap">
<Text>
The text should wrap if it goes on multiple lines.
See, this is going to the next line.
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Padding">
<Text style={{padding: 10}}>
This text is indented by 10px padding on all sides.
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Font Family">
<Text style={{fontFamily: 'sans-serif'}}>
Sans-Serif
</Text>
<Text style={{fontFamily: 'sans-serif', fontWeight: 'bold'}}>
Sans-Serif Bold
</Text>
<Text style={{fontFamily: 'serif'}}>
Serif
</Text>
<Text style={{fontFamily: 'serif', fontWeight: 'bold'}}>
Serif Bold
</Text>
<Text style={{fontFamily: 'monospace'}}>
Monospace
</Text>
<Text style={{fontFamily: 'monospace', fontWeight: 'bold'}}>
Monospace Bold (After 5.0)
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Android Material Design fonts">
<View style={{flexDirection: 'row', alignItems: 'flex-start'}}>
<View style={{flex: 1}}>
<Text style={{fontFamily: 'sans-serif'}}>
Roboto Regular
</Text>
<Text style={{fontFamily: 'sans-serif', fontStyle: 'italic'}}>
Roboto Italic
</Text>
<Text style={{fontFamily: 'sans-serif', fontWeight: 'bold'}}>
Roboto Bold
</Text>
<Text style={{fontFamily: 'sans-serif', fontStyle: 'italic', fontWeight: 'bold'}}>
Roboto Bold Italic
</Text>
<Text style={{fontFamily: 'sans-serif-light'}}>
Roboto Light
</Text>
<Text style={{fontFamily: 'sans-serif-light', fontStyle: 'italic'}}>
Roboto Light Italic
</Text>
<Text style={{fontFamily: 'sans-serif-thin'}}>
Roboto Thin (After 4.2)
</Text>
<Text style={{fontFamily: 'sans-serif-thin', fontStyle: 'italic'}}>
Roboto Thin Italic (After 4.2)
</Text>
<Text style={{fontFamily: 'sans-serif-condensed'}}>
Roboto Condensed
</Text>
<Text style={{fontFamily: 'sans-serif-condensed', fontStyle: 'italic'}}>
Roboto Condensed Italic
</Text>
<Text style={{fontFamily: 'sans-serif-condensed', fontWeight: 'bold'}}>
Roboto Condensed Bold
</Text>
<Text style={{
fontFamily: 'sans-serif-condensed',
fontStyle: 'italic',
fontWeight: 'bold'}}>
Roboto Condensed Bold Italic
</Text>
<Text style={{fontFamily: 'sans-serif-medium'}}>
Roboto Medium (After 5.0)
</Text>
<Text style={{fontFamily: 'sans-serif-medium', fontStyle: 'italic'}}>
Roboto Medium Italic (After 5.0)
</Text>
</View>
</View>
</UIExplorerBlock>
<UIExplorerBlock title="Custom Fonts">
<View style={{flexDirection: 'row', alignItems: 'flex-start'}}>
<View style={{flex: 1}}>
<Text style={{fontFamily: 'notoserif'}}>
NotoSerif Regular
</Text>
<Text style={{fontFamily: 'notoserif', fontStyle: 'italic', fontWeight: 'bold'}}>
NotoSerif Bold Italic
</Text>
<Text style={{fontFamily: 'notoserif', fontStyle: 'italic'}}>
NotoSerif Italic (Missing Font file)
</Text>
</View>
</View>
</UIExplorerBlock>
<UIExplorerBlock title="Font Size">
<Text style={{fontSize: 23}}>
Size 23
</Text>
<Text style={{fontSize: 8}}>
Size 8
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Color">
<Text style={{color: 'red'}}>
Red color
</Text>
<Text style={{color: 'blue'}}>
Blue color
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Font Weight">
<Text style={{fontWeight: 'bold'}}>
Move fast and be bold
</Text>
<Text style={{fontWeight: 'normal'}}>
Move fast and be bold
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Font Style">
<Text style={{fontStyle: 'italic'}}>
Move fast and be bold
</Text>
<Text style={{fontStyle: 'normal'}}>
Move fast and be bold
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Font Style and Weight">
<Text style={{fontStyle: 'italic', fontWeight: 'bold'}}>
Move fast and be bold
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Nested">
<Text onPress={() => console.log('1st')}>
(Normal text,
<Text style={{fontWeight: 'bold'}} onPress={() => console.log('2nd')}>
(and bold
<Text style={{fontStyle: 'italic', fontSize: 11, color: '#527fe4'}} onPress={() => console.log('3rd')}>
(and tiny bold italic blue
<Text style={{fontWeight: 'normal', fontStyle: 'normal'}} onPress={() => console.log('4th')}>
(and tiny normal blue)
</Text>
)
</Text>
)
</Text>
)
</Text>
<Text style={{fontFamily: 'serif'}} onPress={() => console.log('1st')}>
(Serif
<Text style={{fontStyle: 'italic', fontWeight: 'bold'}} onPress={() => console.log('2nd')}>
(Serif Bold Italic
<Text
style={{fontFamily: 'monospace', fontStyle: 'normal', fontWeight: 'normal'}}
onPress={() => console.log('3rd')}>
(Monospace Normal
<Text
style={{fontFamily: 'sans-serif', fontWeight: 'bold'}}
onPress={() => console.log('4th')}>
(Sans-Serif Bold
<Text style={{fontWeight: 'normal'}} onPress={() => console.log('5th')}>
(and Sans-Serif Normal)
</Text>
)
</Text>
)
</Text>
)
</Text>
)
</Text>
<Text style={{fontSize: 12}}>
<Entity>Entity Name</Entity>
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Text Align">
<Text>
auto (default) - english LTR
</Text>
<Text>
أحب اللغة العربية auto (default) - arabic RTL
</Text>
<Text style={{textAlign: 'left'}}>
left left left left left left left left left left left left left left left
</Text>
<Text style={{textAlign: 'center'}}>
center center center center center center center center center center center
</Text>
<Text style={{textAlign: 'right'}}>
right right right right right right right right right right right right right
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Unicode">
<View style={{flex: 1}}>
<View style={{flexDirection: 'row'}}>
<Text style={{backgroundColor: 'red'}}>
星际争霸是世界上最好的游戏
</Text>
</View>
<View style={{flex: 1}}>
<Text style={{backgroundColor: 'red'}}>
星际争霸是世界上最好的游戏
</Text>
</View>
<View style={{flex: 1, alignItems: 'center'}}>
<Text style={{backgroundColor: 'red'}}>
星际争霸是世界上最好的游戏
</Text>
</View>
<View style={{flex: 1}}>
<Text style={{backgroundColor: 'red'}}>
星际争霸是世界上最好的游戏星际争霸是世界上最好的游戏星际争霸是世界上最好的游戏星际争霸是世界上最好的游戏
</Text>
</View>
</View>
</UIExplorerBlock>
<UIExplorerBlock title="Spaces">
<Text>
A {'generated'} {' '} {'string'} and some &nbsp;&nbsp;&nbsp; spaces
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Line Height">
<Text style={{lineHeight: 35}}>
Holisticly formulate inexpensive ideas before best-of-breed benefits. <Text style={{fontSize: 20}}>Continually</Text> expedite magnetic potentialities rather than client-focused interfaces.
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Empty Text">
<Text />
</UIExplorerBlock>
<UIExplorerBlock title="Toggling Attributes">
<AttributeToggler />
</UIExplorerBlock>
<UIExplorerBlock title="backgroundColor attribute">
<Text style={{backgroundColor: '#ffaaaa'}}>
Red background,
<Text style={{backgroundColor: '#aaaaff'}}>
{' '}blue background,
<Text>
{' '}inherited blue background,
<Text style={{backgroundColor: '#aaffaa'}}>
{' '}nested green background.
</Text>
</Text>
</Text>
</Text>
<Text style={{backgroundColor: 'rgba(100, 100, 100, 0.3)'}}>
Same alpha as background,
<Text>
Inherited alpha from background,
<Text style={{backgroundColor: 'rgba(100, 100, 100, 0.3)'}}>
Reapply alpha
</Text>
</Text>
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="containerBackgroundColor attribute">
<View style={{flexDirection: 'row', height: 85}}>
<View style={{backgroundColor: '#ffaaaa', width: 150}} />
<View style={{backgroundColor: '#aaaaff', width: 150}} />
</View>
<Text style={[styles.backgroundColorText, {top: -80}]}>
Default containerBackgroundColor (inherited) + backgroundColor wash
</Text>
<Text style={[styles.backgroundColorText, {top: -70, backgroundColor: 'transparent'}]}>
{"containerBackgroundColor: 'transparent' + backgroundColor wash"}
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="numberOfLines attribute">
<Text numberOfLines={1}>
Maximum of one line no matter now much I write here. If I keep writing it{"'"}ll just truncate after one line
</Text>
<Text numberOfLines={2} style={{marginTop: 20}}>
Maximum of two lines no matter now much I write here. If I keep writing it{"'"}ll just truncate after two lines
</Text>
<Text style={{marginTop: 20}}>
No maximum lines specified no matter now much I write here. If I keep writing it{"'"}ll just keep going and going
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Inline images">
<Text>
This text contains an inline image <Image source={require('./flux.png')}/>. Neat, huh?
</Text>
</UIExplorerBlock>
<UIExplorerBlock title="Text shadow">
<Text style={{fontSize: 20, textShadowOffset: {width: 2, height: 2}, textShadowRadius: 1, textShadowColor: '#00cccc'}}>
Demo text shadow
</Text>
</UIExplorerBlock>
</UIExplorerPage>
);
}
});
var styles = StyleSheet.create({
backgroundColorText: {
left: 5,
backgroundColor: 'rgba(100, 100, 100, 0.3)'
},
});
module.exports = TextExample;

Some files were not shown because too many files have changed in this diff Show More