* Separate Out Core Components Into Individual Parts
Summary:
Will create new issue to add more information to the `Components` section of the Tutorial
since that was gutted by this change.
Fixes#8156
Closes https://github.com/facebook/react-native/pull/8256
Differential Revision: D3459601
Pulled By: JoelMarcey
fbshipit-source-id: 4038afc463bffcf8efda36d29bc7c443bbc8f4bd
* Cleanup troubleshooting and debugging docs.
Summary:
This is a followup to #8010. Troubleshooting has been updated to list only those issues that may affect a user that is setting up their environment. Any issues related to day to day use have been moved or merged into a more relevant doc.
Closes https://github.com/facebook/react-native/pull/8254
Reviewed By: caabernathy
Differential Revision: D3459018
Pulled By: JoelMarcey
fbshipit-source-id: dd76097af34bd33dda376fab39fb0f71061ef3e4
* Remove survey link
Summary:
We have enough responses now and we are in the lockdown for improving the documentation.
We can add another "did we improve?" survey after lockdown sometime.
Closes https://github.com/facebook/react-native/pull/8260
Differential Revision: D3463284
Pulled By: JoelMarcey
fbshipit-source-id: f2d585a8aa6308de0cce0bea3974b1e7f14d5a6f
* Add docs to show how to select specific simulator.
Summary:
Add a message to let people know they can use the `--simulator` flag to run their apps on different simulators instead of the default "iPhone 6"
Closes https://github.com/facebook/react-native/pull/8078
Differential Revision: D3464912
Pulled By: JoelMarcey
fbshipit-source-id: b59d5061d2b3501618602932fcc285bac99b7573
* Add ScrollView to Basics docs
Summary:
Add basic information about the generic `ScrollView` -- talk a bit about how it renders elements and a quick compare against something like a `ListView`. Provide a simple example.
Fixes#8261
Closes https://github.com/facebook/react-native/pull/8266
Differential Revision: D3465105
Pulled By: JoelMarcey
fbshipit-source-id: 3a2e1eac6e877669763fc6b8bb0fc78ebe870ab1
* Improve autogen for reference docs including jsdoc support
Summary:
As part of improving the API and Component reference docs #8154 this pull request adds the following:
- jsdoc support for API docs. See the AlertIOS changes as an example.
- type definitions support and added to both API and Component docs. This is supported via react-docgen and jsdoc.
- better formatting of method properties (now shown in a table).
FYI, API and Component docs were previously generated in two different ways. Components were using react-docgen and that basically remains as-is. APIs were using custom parsing code and that's been switched to use a jsdoc parser + react-docgen as an option for typedefs (it could also use the jsdoc parser).
Two docs have been updated to showcase how we'd like the new docs to look:
- AlertIOS (API): showing method parameters, examples, typedefs, more details overall.
- Statusbar (Component): showing method parameters, typedefs, more details overall.
**Note**: To convert new API docs to use the new format, add `jsdoc` to the initial file comment. C
Closes https://github.com/facebook/react-native/pull/8196
Differential Revision: D3465037
Pulled By: lacker
fbshipit-source-id: 78415d44bc5be02db802f5b1f7a0b249689abdf7
* overhaul showcase
Summary:
The motivation is that the showcase is becoming far too large to be useful. I filtered the apps for, basically, "apps that have some sort of interesting news coverage or technical blog post about them". The UI is a bit updated to also mention something about the information link. I also added the FB app itself.
Closes https://github.com/facebook/react-native/pull/8263
Differential Revision: D3463856
Pulled By: JoelMarcey
fbshipit-source-id: cdd309ba85edca417868f14dee7c772f73af654b
* New React Native Landing Page
Summary:
The motivation is that we haven't changed the copy on the initial React Native landing page since launching, and we have a much clearer view of the React Native value prop now.
Themes:
1. React Native is like React but for mobile apps
2. A React Native app is a "real native app"
3. Development is fast
4. You can drop down to normal native development if you need
Closes https://github.com/facebook/react-native/pull/8291
Differential Revision: D3466855
Pulled By: JoelMarcey
fbshipit-source-id: d1a5035640bcd795704d5f830b79e7c3d2e3ab02
* Move Videos and Newsletter to Support
Summary:
Simplify the sidebar. We have Twitter feed in support. These have
a community feel as well.
Closes https://github.com/facebook/react-native/pull/8287
Differential Revision: D3467042
Pulled By: lacker
fbshipit-source-id: 60749d0cb31f284dae7c5402bfcde7b4d01aa32f
* Include info about console.log
Summary:
I spent so much time trying to optimize my JS without noticing this.
Closes https://github.com/facebook/react-native/pull/8285
Differential Revision: D3468707
fbshipit-source-id: bd5ff38ca2501891318b4be3c75bdaa10a4c64da
* Add a new Handling Touches guide
Summary:
The new Handling Touches guide provides an overall view of how touches can be handled. It is meant to be a higher level discussion of basic touch handling, e.g. "how do I implement a button?". The existing Gesture Responder System guide has been moved to the end of the docs and is still available for reference when building custom gesture handlers.
Reference: #8160

Closes https://github.com/facebook/react-native/pull/8299
Differential Revision: D3469681
Pulled By: JoelMarcey
fbshipit-source-id: 3bc18e759b26c2d5c141b626acb433c5e973cef0
* Remove Polyfills section from sidebar
Summary:
Some of these will be in basics, guides and apis instead. One less layer
of confusion.
> Note: APIs are not totally alphabetical any longer -- but neither were
Polyfills. We can fix that in `extractDocs.js` maybe. But not worth doing
in this pull request, imho.
Closes https://github.com/facebook/react-native/pull/8293
Differential Revision: D3469684
Pulled By: JoelMarcey
fbshipit-source-id: 4f7830ca10b8e4406df9cec8bf13ff150e355250
* Docs: Basic Components Update
Summary:
This is an improvement to basic components docs.
* I updated the basic components example code to better render components on iOS (added paddingTop).
* I also modified the code to allow reader to easily copy, paste, and then run the code in their project if they followed the 'Getting Started' quick start guide.
* I also added additional copy to clarify suggested usage/guidelines.
Closes https://github.com/facebook/react-native/pull/8292
Differential Revision: D3469943
Pulled By: JoelMarcey
fbshipit-source-id: 21ff6ee13b59741c43d80aab68a38aace0fbfca6
* Add react-native-web-player to core components docs
Summary:
This PR adds the interactive [React Native Web Player](http://dabbott.github.io/react-native-web-player/) to the docs. The web player is an embeddable iframe which runs React Native code using components from [react-native-web](https://github.com/necolas/react-native-web). For now, it's primarily for educational purposes, since only the basic components are implemented.
Some details:
- The iframe is loaded from MaxCDN using rawgit, locked down to a git tag.
- Asset paths (i.e. images) are resolved relative to `//facebook.github.io/react-native/`
- When viewed on mobile, it falls back to the syntax-highlighted code blocks.
The WebPlayer can be inserted into markdown by using the fences:
```
```ReactNativeWebPlayer
import ...
AppRegistry.registerComponent ...
`` `
```

I didn't actually add the WebPlayer to any docs pages in this PR. That we c
Closes https://github.com/facebook/react-native/pull/8328
Differential Revision: D3471527
Pulled By: lacker
fbshipit-source-id: 704da41cd77e08c7e2bc820557a74d36e88e8eb7
* More Resources doc, updating Support doc and quickstart too
Summary:
TLDR even more docs changes
So I created a More Resources doc that aggregates the high-quality-but-off-site stuff. Let's try to put more outlinks there. Also I removed the stuff on Support that was not support, and some misc changes to clean stuff up.
Closes https://github.com/facebook/react-native/pull/8329
Differential Revision: D3471669
Pulled By: JoelMarcey
fbshipit-source-id: 54edd543ced1b3a8f3d0baca5475ac96bae6e487
* Add React Native Web Player to most component basics
Summary:
> ListView is not supported by React Native Web as of yet, so it will not have it.
Closes https://github.com/facebook/react-native/pull/8331
Differential Revision: D3472019
Pulled By: lacker
fbshipit-source-id: e5fb430b6c8f4d437943c159beb00b9d9252c92d
* Update Navigator component doc
Summary:
Related to #8203 to update the Navigator component reference doc.
**Test plan (required)**
Started up the website and checked:
http://localhost:8079/react-native/docs/navigator.html

**Note**
The code is not Flow-ified so depended on jsdoc formatting to get the method parameter types. There's a current issue with handling optional types via react-docgen which parses components. There's an open PR to look into this: https://github.com/reactjs/react-docgen/pull/89. When that's resolved the `replaceAtIndex` method parameter type that's documented for `cb` needs to be updated to make it optional.
Closes https://github.com/facebook/react-native/pull/8318
Differential Revision: D3471185
Pulled By: JoelMarcey
fbshipit-source-id: 99f85ee2ab00dc200cf2812cce5b3ccec743d6a0
* fix Firefox bug
Summary:
The motivation is that the getting started page was not working in some cases in Firefox.
This line of code appears to be at best a no-op, at worst fails in Firefox, since "event" is undefined.
Closes https://github.com/facebook/react-native/pull/8335
Differential Revision: D3473333
Pulled By: JoelMarcey
fbshipit-source-id: 40581e83126675aa072c6ee25609cfb787015ce7
* Fix guides docs to es2015 classes and remove flowtype from Animation example
Summary:
1. Animation guide page is the only place where Flowtype is used, it would be better to remove it to prevent some confusion.
2. ES2015 classes in guidelines docs pages and fixed some typos
**Test plan (required)**
Should i write any tests for this?
Closes https://github.com/facebook/react-native/pull/8339
Differential Revision: D3474192
Pulled By: bestander
fbshipit-source-id: 5531d1e399eaed0952732ac2e0bd1effc72d00a8
* Update Views API documentation
Summary:
Ensure all `props` have documentation. Add more details to current `props`.
Provide more information to the API in general.
> Would like to try to integrate the React Native Web Player for the initial
> example, but not right now.
Closes https://github.com/facebook/react-native/pull/8341
Differential Revision: D3475105
Pulled By: caabernathy
fbshipit-source-id: 00ad30b2359831740715517278bec1d0231e089d
* Fixes#8252: Document how to connect to a non-default packager port o…
Summary:
Added some documentation to the `RunningOnDeviceAndroid.md` with screenshots to set custom port
Closes https://github.com/facebook/react-native/pull/8355
Differential Revision: D3475846
Pulled By: mkonicek
fbshipit-source-id: 73675b19e2bb93c859bda239f228da0883f0e305
* Add docs pages for basics: Dimensions and Layout
Summary:
These pages should sufficiently give a beginner enough information to make most layouts in React Native. They should go after the basics-style page, whenever that is ready.
Having a single page for Layout was too much, so I split it into two: Dimensions and Layout.


lacker
Closes https://github.com/facebook/react-native/pull/8364
Differential Revision: D3477147
Pulled By: lacker
fbshipit-source-id: 1ef31ac0a64e43166a7581b38fa8263282672eeb
* ES6-ify ListView Basics
Summary:
Fixes#8184
Closes https://github.com/facebook/react-native/pull/8370
Differential Revision: D3477196
Pulled By: caabernathy
fbshipit-source-id: 929f84b3f8edaf03f918bb04fb9dbb48b4884b18
* Fix nits in update View API documentation
Summary:
Ref comments in #8341
Ref #8203
Closes https://github.com/facebook/react-native/pull/8361
Differential Revision: D3477174
Pulled By: caabernathy
fbshipit-source-id: 495011c2d370d06d355e966d6ba2c52880146183
* ES6-ify ScrollView basics
Summary: Closes https://github.com/facebook/react-native/pull/8368
Differential Revision: D3477381
Pulled By: caabernathy
fbshipit-source-id: 0c43a9b8309db8f268a2776ebff2b4e52df559df
* ES6-ify View Basics
Summary: Closes https://github.com/facebook/react-native/pull/8366
Differential Revision: D3477409
Pulled By: caabernathy
fbshipit-source-id: 5906e8dffc7884a6ed527fada5f907702a72c08f
* ES6-ify Image Basics
Summary: Closes https://github.com/facebook/react-native/pull/8365
Differential Revision: D3477411
Pulled By: caabernathy
fbshipit-source-id: 26214fcf13c9e1352e198f34fcd6f5e88f1fe2da
* ES6-ify TextInput Basics
Summary: Closes https://github.com/facebook/react-native/pull/8367
Differential Revision: D3477404
Pulled By: caabernathy
fbshipit-source-id: 16c279853b5c7a2d24033ef0d987da52dd148b24
* ES6-ify Text Basics
Summary: Closes https://github.com/facebook/react-native/pull/8363
Differential Revision: D3477431
Pulled By: caabernathy
fbshipit-source-id: 86ee5efb84e50609fbfae82102b1dc61fea69f05
* Update NavigatorIOS component doc
Summary:
Reference: #8203
Changes made:
- Added more to the intro section and updated the intro examples to ES6
- Added more details to prop explanations
- Added parameter descriptions for methods
**Test plan (required)**
Ran the website locally and checked: http://localhost:8079/react-native/docs/navigatorios.html

Closes https://github.com/facebook/react-native/pull/8334
Differential Revision: D3476066
Pulled By: JoelMarcey
fbshipit-source-id: 9fcefe3f9d59008d8c72683c57cb004d1f185f62
* Update webview doc
Summary:
Reference: #8203
Changes made:
Added a webview example to the intro section
Added more details to prop explanations
Test plan (required)
Ran the website locally and checked: http://localhost:8079/react-native/docs/webview.html

Closes https://github.com/facebook/react-native/pull/8372
Differential Revision: D3477685
Pulled By: JoelMarcey
fbshipit-source-id: a624f5c6c12a8367aea2a6e7c2e520da7a074bbd
* Move everything out of Known Issues and into more appropriate locations.
Summary:
Two of the known issues have been moved to the issue tracker:
* #8315
* #8316
Others have been moved into more appropriate locations, such as the `TextInput` issue to the API doc itself, and the React debugging issue to the Debugging doc.
The Android-specific compatibility concerns have been dropped entirely as it does not seem like people would find these in the docs.
Closes https://github.com/facebook/react-native/pull/8321
Differential Revision: D3477999
Pulled By: JoelMarcey
fbshipit-source-id: dfffc9910ebf5514eb14c6aa8a9a3e70761db874
* Make a new "Style" doc that's in The Basics and uses the RNWP
Summary:
The example uses StyleSheet.create and also arrays-of-styles. I think this covers everything the old one did, but in simple-enough-for-the-basics form, so I removed the old one. I also reordered so that "Style -> Dimensions -> Layout" is the flow for learning "Styley" things.
Closes https://github.com/facebook/react-native/pull/8379
Differential Revision: D3478384
Pulled By: caabernathy
fbshipit-source-id: 158f0f0367c8eb8b2b24feda0d8d7a533fd7af4d
* Add `extends Component` to Dimensions and Layout Basics Examples
Summary:
It works without out the `extends`, but I do not really understand why,
unless there is some magic implicit `extends` if you don't put it and
you call `registerComponent`. But, I figure we should be explicit unless
there is a good reason not to be.
Closes https://github.com/facebook/react-native/pull/8377
Differential Revision: D3478950
Pulled By: JoelMarcey
fbshipit-source-id: 05ea4367c3c8c34aea6c092639ee51d8761bca3f
* Bring out prop descriptions, for Flexbox
Summary:
For Flexbox API docs would like to tease out the prop descriptions. This PR makes that feasible by exposing the description for style.
**Test plan (required)**
1. Temporarily modified the flexbox source doc: Libraries/StyleSheet/LayoutPropTypes.js to add a description.
2. Checked it out on local webpage: http://localhost:8079/react-native/docs/flexbox.html

Closes https://github.com/facebook/react-native/pull/8382
Differential Revision: D3478796
Pulled By: lacker
fbshipit-source-id: 49f3b7876ff1ccec9ee837921a78ee0dfb915453
* Update web player in docs for custom registerComponent names
Summary:
In the web player in the docs, allows `AppRegistry.registerComponent('name', App)` to use *anything* for `'name'`. It is ignored by the web player - last registration wins.
Closes https://github.com/facebook/react-native/pull/8383
Differential Revision: D3478922
Pulled By: JoelMarcey
fbshipit-source-id: 3d1d96e0ad41216d29134ba384896e86d0cd2b32
* Networking Guide
Summary:
Simplified Networking Guide, based on the old Network polyfill doc.
This guide strongly recommends using fetch, while still informing the user about React Native's support for other libraries.
In order to provide an actual working networking example, a `movies.json` file is added at the root of the site, allowing the user to fetch a small blob of JSON:
```
fetch('http://facebook.github.io/react-native/movies.json')
```

Closes https://github.com/facebook/react-native/pull/8381
Differential Revision: D3479018
Pulled By: lacker
fbshipit-source-id: 1f2078bf2414a13f7f77d5af55b08948909093a3
* Move Component Embedded Simulator next to its example
Summary:
Right now the embedded simulator is always at the top right corner.
This can be confusing as to what code is associated with the simulation.
So, move the simulator next to its actual code.
This has the added benefit of allowing us to use the React Native
Web Player for the simpler examples in the components.
Closes https://github.com/facebook/react-native/pull/8384
Differential Revision: D3479056
Pulled By: bestander
fbshipit-source-id: f400d8387ec771b94d5e798c1e955b25f9a0f1bf
* fix bugs on landing page code, make the url an easter egg
Summary:
This is just improving a bit of lameness on the homepage - Devin pointed out the <>'s don't work within a Text tag, so I removed them, and someone else pointed out that nonexistent fake urls are suboptimal, so I improved that too.
Closes https://github.com/facebook/react-native/pull/8387
Differential Revision: D3479087
Pulled By: JoelMarcey
fbshipit-source-id: 45a2d21a9073b58b869e8b344550c28f849e0185
* Api documentation update for modal.js
Summary:
Related to #8203 to update the Modal API reference doc.
**Test plan (required)**
Started up the website and checked:
http://localhost:8079/react-native/docs/modal.html

**Note, copied from a previous PR**
The code is not Flow-ified so depended on jsdoc formatting to get the method parameter types. There's a current issue with handling optional types via react-docgen which parses components. There's an open PR to look into this: https://github.com/reactjs/react-docgen/pull/89. When that's resolved the `replaceAtIndex` method parameter type that's documented for `cb` needs to be updated to make it optional.
Closes https://github.com/facebook/react-native/pull/8375
Differential Revision: D3479536
Pulled By: caabernathy
fbshipit-source-id: de2db3aa221e4adce0c0c5f3d94a1fad528a60da
* Update MapView doc
Summary:
Reference: #8203
Changes made:
- Added a MapView example to the intro section
- Added more details to prop explanations
- Added more info to an exported type, even if it's not used anywhere I can see
- Removed mention of ios platform in props. Left an android one in there as I didn't want to touch code.
**Test plan (required)**
Ran the website locally and checked: http://localhost:8079/react-native/docs/mapview.html

Closes https://github.com/facebook/react-native/pull/8389
Differential Revision: D3481609
Pulled By: JoelMarcey
fbshipit-source-id: 71e35ce49193dc09d40546ff16bc48559135d63f
* Accessing console logs
Summary:
Instructions for accessing the output of a `console.log`.

Closes https://github.com/facebook/react-native/pull/8323
Differential Revision: D3480718
Pulled By: JoelMarcey
fbshipit-source-id: 4185d2e730277b8ad986d3c8904420e7ae1ceb21
* Add Navigation Overview
Summary:
Initial stab at writing a high level guide on navigation. Its main focus is on Navigator due to it being cross-platform and fairly simple to use.
This guide should be expanded to cover tabbed applications in a future pull request.
The Navigation (Experimental) section will be similarly expanded upon as the API stabilizes.

Closes https://github.com/facebook/react-native/pull/8390
Differential Revision: D3480304
Pulled By: caabernathy
fbshipit-source-id: 280da9185fca295bc107a2df20106c783b461be7
* Update AsyncStorage doc
Summary:
Relates to #8203 for AsyncStorage API update.
- Added a small example to the intro section.
- Added jsdoc format tags to show up class description, parameter descriptions.
- Word-smithed many of the method descriptions.
I also made a bug fix to the autogen. It wasn't handling the scenario where a method may have no parameters.
**Test plan (required)**
Wrote a small sample app to test the snippet added to the intro section.
Ran website locally: http://localhost:8079/react-native/docs/asyncstorage.html

Ran changed files through the linter.
Closes https://github.com/facebook/react-native/pull/8396
Differential Revision: D3481783
Pulled By: JoelMarcey
fbshipit-source-id: ebc4b9695482ada8a3455e621534d2a7fb11edf4
* Fix errors related to typehint when generating docs
Summary:
After pulling in AsyncStorage doc changes, getting typehint errors when running docs. This fixes that issue.
**Test plan (required)**
Opened http://localhost:8079/react-native/index.html
Clicked around. No errors. Also successfully ran:
```
node server/generate.js
```
Closes https://github.com/facebook/react-native/pull/8412
Differential Revision: D3482007
Pulled By: JoelMarcey
fbshipit-source-id: 7b0da2b2b38fd1f1bdec1b7c810ee70c536dd2bb
* Update Image API
Summary:
- Provide runnable examples
- Add more details to properties and jsdoc-ify the methods
Ref #8203
Closes https://github.com/facebook/react-native/pull/8413
Differential Revision: D3482168
Pulled By: caabernathy
fbshipit-source-id: 04fce5133317af282cced5850a53858e3f5b72f2
* Replace NavigatorComparison with the new Navigation guide.
Summary:
Several external sites link back to docs/navigator-comparison.html when talking about React Native's navigation. The Navigation guide added in #8390 is meant to replace this content, but it was added at docs/navigation.html.
This pull request removes the comparison guide and replaces it with the Navigation guide's content. There is no content update in this PR. For review purposes, note that the next link from the previous document (JS Environment) has been updated to point to navigator-comparison, and the content of the Navigation guide remain unchanged from #8390.
Closes https://github.com/facebook/react-native/pull/8417
Differential Revision: D3482273
Pulled By: caabernathy
fbshipit-source-id: 9e04e11a5829d48541f8612fb65c01fe319e768b
* Overhaul the Flexbox documentation
Summary: Closes https://github.com/facebook/react-native/pull/8395
Differential Revision: D3482652
Pulled By: lacker
fbshipit-source-id: 0bf8955341221b74f69ba24dcf5ab332c910a52c
* Update TextInput API
Summary:
- Make the examples runnable (both copy/paste and with the web player)
- Add a bit more information in props where needed.
Closes https://github.com/facebook/react-native/pull/8392
Differential Revision: D3482747
Pulled By: caabernathy
fbshipit-source-id: 8f2d812efc1efb3f14db45b5c054ce0d5c14f5f5
* Make "The Basics" flow like a linear tutorial
Summary: Closes https://github.com/facebook/react-native/pull/8429
Differential Revision: D3487369
Pulled By: lacker
fbshipit-source-id: 59b32f2a2a67370192c91dc43da3d4b76a43b810
* map -> object
Summary: Closes https://github.com/facebook/react-native/pull/8450
Differential Revision: D3488018
fbshipit-source-id: a30269c89e87b546f77da7a32b1c4c65d978459d
* Make the method signatures stand out more
Summary:
And more delineated from other parts of the method
information.
Hopefully this makes it easier to parse through.
Closes https://github.com/facebook/react-native/pull/8421
Differential Revision: D3488251
Pulled By: JoelMarcey
fbshipit-source-id: 44f2ed00b16849396cac94fd46567eaab48c50f3
* Use npmcdn in docs instead of rawgit for web player
Summary:
Switch web player cdn to npmcdn per discussion with lacker. This will make the url agnostic to who owns the git repo.
Closes https://github.com/facebook/react-native/pull/8426
Differential Revision: D3488755
Pulled By: lacker
fbshipit-source-id: b54dd4428a48c8a5a15b0b38ee0564d119916f9b
* Update instructions for pointing Gradle to Android SDK
Summary:
Closes#8439
Closes https://github.com/facebook/react-native/pull/8446
Differential Revision: D3489034
fbshipit-source-id: 7cb50a43e64e216512294eaec06690dc9f3d6895
* Update RunningOnDeviceAndroid.md
Summary:
Add note associating error message to "adb reverse" command. When I first ran a React Native app on my Android phone, I received a cryptic "bridge configuration isn't available" error. After some research, I discovered that the "adb reverse" command mentioned further down on the page resolved the problem.
Closes https://github.com/facebook/react-native/pull/7725
Differential Revision: D3491577
Pulled By: JoelMarcey
fbshipit-source-id: 34c580acd6bf3e7788b674bd0b41bc5a1023b010
* improve text input docs
Summary:
Not a big deal, I was just going through the tutorial trying to figure out which doc was the most boring, and improve it a bit. IMO now the example is slightly funnier, and it mentions onSubmitEditing which in practice is probably a more useful callback.
Closes https://github.com/facebook/react-native/pull/8447
Differential Revision: D3491938
Pulled By: JoelMarcey
fbshipit-source-id: 3bd0f5762dc4db4a85c9d5badb6c005f4b8c52f4
* Update Text Component
Summary:
This updates the documentation for the `Text` component itself and the embedded `Text.md` that goes with it.
- React Native Web Player
- Document all props
- NOTE: I actually added a new prop to `Text` called `accessible` since it was set by default and thus shown in the Props list
in the original documentation (but with an empty description).
- Stylistic fixes
Closes https://github.com/facebook/react-native/pull/8445
Differential Revision: D3493112
Pulled By: JoelMarcey
fbshipit-source-id: b428d4eb09065db5c6cb1ae5524ad22084fd2a82
* Fix TextInput API update nits
Summary:
Ref: 7e7c2b5d57 (r68444537)
Ref: 7e7c2b5d57 (r68444442)
Closes https://github.com/facebook/react-native/pull/8476
Differential Revision: D3494641
Pulled By: JoelMarcey
fbshipit-source-id: 9a75ff66ccb895deb2f5027bdffe5d5bfe898e41
Summary:
This replaces ActivityIndicatorIOS and indeterminate ProgressBar that were deprecated recently with ActivityIndicator across the codebase and examples and a few other cleanups.
This also make a small tweak to ActivityIndicator so it uses the Android theme color instead of gray when no color is specified.
Use Slider instead of SliderIOS in CameraRoll example.
Remove the line about unifying ActivityIndicator and ProgressBar.
**Test plan**
Tested the affected components in UIExplorer on iOS and Android, tested the changes made in Movies example on iOS and Android.
Closes https://github.com/facebook/react-native/pull/8082
Differential Revision: D3429770
fbshipit-source-id: 3b2e1196a8b9fe00d47a7aa1bbc079b094796421
Summary: ImageCropper is broken on iOS. Can not scroll up and down
Differential Revision: D3413397
fbshipit-source-id: 75096fc1d5dd14764c0ddd4fd3888a9576c1d1ce
Summary:
KeyboardAvoidingView is a component we built internally to solve the common problem of views that need to move out of the way of the virtual keyboard.
KeyboardAvoidingView can automatically adjust either its position or bottom padding based on the position of the keyboard.
Reviewed By: javache
Differential Revision: D3398238
fbshipit-source-id: 493f2d2dec76667996250c011a1c5b7a14f245eb
Summary:
Reduce the public surface area of TextInput. It only exposes a secureTextEntry property, but on Android was also accepting password as a prop.
This removes that.
Reviewed By: javache
Differential Revision: D3392223
fbshipit-source-id: 67c36fbe16fe493e2841d5d9deb78e3be2209ebd
Summary:
The propTypes of RCTDatePickerIOS do not fit with the propTypes of DatePickerIOS.
All dates (date, minimumDate, maximumDate) are a timestamp (check line 126), so they should have propType number.
OnDateChange function should not be required since it is called onChange in the iOS implementation.
The problem currently causes warnings that the given types are wrong, while they were added correctly.
Closes https://github.com/facebook/react-native/pull/7833
Differential Revision: D3371324
Pulled By: nicklockwood
fbshipit-source-id: bca5b2bbe7e9dd2e045288bfbd268578848c7bff
Summary: The DatePicker had a hard-coded width of 320 for no reason I can think of. Removing it allows the DatePicker to naturally scale to fit the width of the container, which is how the regular Picker works already.
Reviewed By: lexs
Differential Revision: D3371355
fbshipit-source-id: e06d31f7275de41bb00226232cf47ad022d25b4d
Summary:
The API for `ActivityIndiatorIOS` and `ProgressBarAndroid` is very similar and can be merged in a cross platform component that displays a circular indeterminate loading indicator.
This deprecates `ActivityIndiatorIOS` and non-horizontal `ProgressBarAndroid` in favor of this new component.
**Test plan (required)**
Tested with the ActivityIndicator example in UIExplorer on android and ios. Also made sure that `ActivityIndicatorIOS` still works and displays a deprecation warning. Also tested that `ProgressBarAndroid` with `indeterminate == true` and `styleAttr != 'Horizontal'` displays a deprecation warning.
Closes https://github.com/facebook/react-native/pull/6897
Differential Revision: D3351607
Pulled By: dmmiller
fbshipit-source-id: b107ce99d966359003e8b3118cd97b90fa1d3d7d
Summary:
Autocorrect was broken for controlled TextInput components by a change to batch event handling in React Native:
9f11f8c263
For example, a TextInput like this would be affected by this bug:
```javascript
<TextInput
autoCorrect={true}
style={{height: 26, width: 100}}
onChangeText={(text) => this.setState({ text })}
value={this.state.text}
/>
```
This fix uses the same approach as
0cd2904b23
The problem is that TextInput's _onChange handler relied on this.props.value being updated synchronously when calling this.props.onChangeText(text). However, this assumption was broken when React Native event handling started being batched.
The fix is to move the code that relies on this.props.value being up-to-date to componentDidUpdate.
**Test plan (required)**
Tested autocorrect now works on iOS in a small app and a large app. Also tested t
Closes https://github.com/facebook/react-native/pull/7676
Differential Revision: D3346221
Pulled By: nicklockwood
fbshipit-source-id: 715df3e8a03aa58cb0a462de4add02289d42782f
Summary:
Removes the deprecated APIs that were replaced by `RefreshControl`. Those API have been deprecated for a while already so I think it's fine to remove them at this point. Also ported the `SwipeRefreshLayoutTestModule` test to use `RefreshControl` instead of `PullToRefreshViewAndroid`.
**Test plan (required)**
Made sure no references are left in the codebase to `PullToRefreshViewAndroid`, `onRefreshStart` and `endRefreshing`.
Tested that `ScrollView` examples in UIExplorer still work properly.
Check that the `SwipeRefreshLayoutTestModule` passes on CI.
Closes https://github.com/facebook/react-native/pull/7447
Reviewed By: mkonicek
Differential Revision: D3292391
Pulled By: bestander
fbshipit-source-id: 27eb2443861e04a9f7319586ce2ada381b714d47
Summary:
The default itemPositioning is `automatic` (referred to `auto` in this pull request) - you can check its behaviour in the docs attached.
Sometimes that value has to be modified to have more predictable appearance as described in #4136.
Closes https://github.com/facebook/react-native/pull/7217
Differential Revision: D3220958
Pulled By: mkonicek
fbshipit-source-id: d4bf648b16e71825cd31c06d6b6396479767d19f
Summary:
We want to give people the ability to log scroll performance (including Fb).
This adds an interface that can be enabled and disabled from the react scroll views.
This is a prerequisite to implementing the actual framerate logger that will log dropped
frames while scrolling in prod.
Reviewed By: astreet
Differential Revision: D3283588
fbshipit-source-id: ed9736cb9ed3f441511647f36b1460092bd91e56
Summary:
This is a nice feature to have.
I've tested this by copying and renaming the ViewPager java and javascript files from the react-native repo and including them in a project. Whats the best way to test this directly from the repo?
Closes https://github.com/facebook/react-native/pull/5968
Differential Revision: D3240651
Pulled By: mkonicek
fbshipit-source-id: 5f1d157216df4f3314915496188a92aec1b85e91
Summary:
This is a solution for the problem I raised in https://www.facebook.com/groups/react.native.community/permalink/768218933313687/
I've added a new native base class, `RCTEventEmitter` as well as an equivalent JS class/module `NativeEventEmitter` (RCTEventEmitter.js and EventEmitter.js were taken already).
Instead of arbitrary modules sending events via `bridge.eventDispatcher`, the idea is that any module that sends events should now subclass `RCTEventEmitter`, and provide an equivalent JS module that subclasses `NativeEventEmitter`.
JS code that wants to observe the events should now observe it via the specific JS module rather than via `RCTDeviceEventEmitter` directly. e.g. to observer a keyboard event, instead of writing:
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
RCTDeviceEventEmitter.addListener('keyboardWillShow', (event) => { ... });
You'd now write:
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', (event) => { ... });
Within a component, you can also use the `Subscribable.Mixin` as you would previously, but instead of:
this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', ...);
Write:
this.addListenerOn(Keyboard, 'keyboardWillShow', ...);
This approach allows the native `RCTKeyboardObserver` module to be created lazily the first time a listener is added, and to stop sending events when the last listener is removed. It also allows us to validate that the event strings being observed and omitted match the supported events for that module.
As a proof-of-concept, I've converted the `RCTStatusBarManager` and `RCTKeyboardObserver` modules to use the new system. I'll convert the rest in a follow up diff.
For now, the new `NativeEventEmitter` JS module wraps the `RCTDeviceEventEmitter` JS module, and just uses the native `RCTEventEmitter` module for bookkeeping. This allows for full backwards compatibility (code that is observing the event via `RCTDeviceEventEmitter` instead of the specific module will still work as expected, albeit with a warning). Once all legacy calls have been removed, this could be refactored to something more elegant internally, whilst maintaining the same public interface.
Note: currently, all device events still share a single global namespace, since they're really all registered on the same emitter instance internally. We should move away from that as soon as possible because it's not intuitive and will likely lead to strange bugs if people add generic events such as "onChange" or "onError" to their modules (which is common practice for components, where it's not a problem).
Reviewed By: javache
Differential Revision: D3269966
fbshipit-source-id: 1412daba850cd373020e1086673ba38ef9193050
Summary:
- getScrollResponder returns a...ScrollView!
- no more var
- no more string refs
Reviewed By: spicyj
Differential Revision: D3286596
fbshipit-source-id: d9e6e0a318eadd2521c9f5c69d2ec368f1d7b626
Summary:
React.PropTypes.oneOf accepts array as parameter, non-array given. this make the app throw a warning.
Closes https://github.com/facebook/react-native/pull/7498
Differential Revision: D3285737
fbshipit-source-id: 3d86b4b36d696e054f9225d7e3a9eddf91477813
Summary: Move all requires of UIManager to UIManager.js, so we can load the view manager configuration lazily when UIManager is required.
Reviewed By: majak
Differential Revision: D3270147
fb-gh-sync-id: 8208ee8d5919102ea5345e7031af47ee78162fe0
fbshipit-source-id: 8208ee8d5919102ea5345e7031af47ee78162fe0
Summary:
Add the possibility to define a progress view top offset to RefreshControl on android. As i comment in #6740, contentInset does the trick on IOS.
Looking android documentation seems that exists a possible solution:
http://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html#setProgressViewOffset(boolean, int, int)
This pull request implement that but keeping it simple, only a top offset.
For example, now we could put navigation bar over the scrollview (or listview) and define a progressViewOffset on RefreshView in order to start behind the navigation. At this point we could make some kind of coordinator layout to hide/show navigation on scroll.
To maintain the default behavior, start point is equal to start point minus progress circle diameter in order to create that progress circle before the start point.
Closes https://github.com/facebook/react-native/pull/6759
Differential Revision: D3240664
Pulled By: mkonicek
fb-gh-sync-id: ccf866272e871811c1c6dcc2a34f5c217967feee
fbshipit-source-id: ccf866272e871811c1c6dcc2a34f5c217967feee
Summary:
There was an issue with the way we made `RefreshControl` a controlled component when react doesn't render synchronously. This fixes the issue by using the same technique used in the commit 0cd2904b23 for`PickerAndroid`
**Test plan (required)**
Tested normal behaviour and tested that if not setting the `refreshing` prop to `true` during the `onRefresh` callback that the `RefreshControl` stops refreshing immediately. Also made sure that `setNativeProps` is only called if needed when the native refreshing state is not in sync with JS.
Fix#7414
Closes https://github.com/facebook/react-native/pull/7445
Differential Revision: D3274981
fb-gh-sync-id: a1b9d46329f552984e33d11fa0e29ad6da689511
fbshipit-source-id: a1b9d46329f552984e33d11fa0e29ad6da689511
Summary:
Previously, the back swipe navigation gesture would be enabled when the navigation bar is shown and disabled when the navigation bar is hidden.
This change enables developers to control the back swipe gesture independently of the visibility of the navigation bar. An example use case would be that an app wants to render a custom navigation bar so it sets `navigationBarHidden` to true and it wants to enable the back swipe gesture so it sets `interactivePopGestureEnabled` to true.
**Test plan (required)**
- Created a test app to verify setting `interactivePopGestureEnabled` to `true` and `false` with the navigation bar both hidden and shown.
- Verified prop works in a larger app.
Adam Comella
Microsoft Corp.
Closes https://github.com/facebook/react-native/pull/7369
Differential Revision: D3269304
Pulled By: javache
fb-gh-sync-id: ec4324f6517cec4b4fc4f62c4394dc9208a8af6a
fbshipit-source-id: ec4324f6517cec4b4fc4f62c4394dc9208a8af6a
Summary:
This adds support for pagingEnabled to the HorizontalScrollView.
This is an initial implementation.
Because Android doesn't provide great details about what is happening with a scroll view after you are done touching it, we have some post touch handling. This is kicked off either by touch up or a fling call.
Once we are doing that handling, we start a runnable that basically checks if we are still scrolling. If we are, we just schedule that runnable again and check a frame later. If we are done scrolling (no onScrollChanged since we last fired), we could be in one of two states, the fling is done or we are done snapping to the page boundary. If we are in the fling done case, we then check if we need to scroll to a page boundary. If so, we call smoothScrollTo and schedule ourself to check onScroll events again until done with that scroll. If we are done with both (either we only did momentum scroll or we did that and then snapped to page), we can then fire the final event and stop checking. This logic is all in handlePostTouchScrolling.
Because of the decision to only do page scrolling after momentum ends, we do allow you to scroll through with momentum a number of pages and the transition can be a little strange where it stops a sec and then slides to be page aligned. As a follow up, we can probably smooth that up by changing the value we pass to super.fling() that would adjust it to be let momentum carry it to the page boundary.
Reviewed By: weicool
Differential Revision: D3207608
fb-gh-sync-id: 02f62970ed9a5e3a5f9c0d959402756bc4b3699e
fbshipit-source-id: 02f62970ed9a5e3a5f9c0d959402756bc4b3699e
Summary:
Hi,
This PR Solves this issue #3083.
This PR solves the problem of default color on TabBar being always grey. Which looks great if the barTintColor is unchanged. However if we set the barTintColor to something else (like blue in example) text and icons become quite unreadable.

Commit (c206417) - Enable setting color of unselected tabs
Solves this issue with a prop (unselectedTintColor) on TabBarIOS to which you just pass a color like you can for barTintColor and tintColor.
This leaves us with a result that is on second picture. Notice the color of text on tabs.

Or change it to yellow for demonstrating purposes
, though I could be wrong.
I added [an example to UIExplorer (TouchableExample)](http://i.imgur.com/CHY9xjW.png). This is my first PR to this repo so let me know if something's wrong. Cheers!
Closes https://github.com/facebook/react-native/pull/6515
Differential Revision: D3126513
Pulled By: AaaChiuuu
fb-gh-sync-id: 4a00e7177ee4ffd8dffeca143f4f43f08c99b5a1
fbshipit-source-id: 4a00e7177ee4ffd8dffeca143f4f43f08c99b5a1
Summary:Using TouchableNativeFeedback has been a problem for me because the ripples it makes don't follow the child view's border radii so the ripples stick out of the child view's rounded corners. This PR should fix this problem with a minor caveat: this only works for TouchableNativeFeedback.Ripple and not TouchableNativeFeedback.SelectableBackground. I searched how I could apply corner radius to selectableItemBackground and it doesn't seem to be possible (the prevalent advice is to create the ripple manually which is equivalent to using TNF.Ripple in our case), though I could be wrong.
I added [an example to UIExplorer (TouchableExample)](http://i.imgur.com/CHY9xjW.png). This is my first PR to this repo so let me know if something's wrong. Cheers!
Closes https://github.com/facebook/react-native/pull/6515
Differential Revision: D3126513
Pulled By: mkonicek
fb-gh-sync-id: 1d3e92243abf9706132ae47c485d9e04a9b47d81
fbshipit-source-id: 1d3e92243abf9706132ae47c485d9e04a9b47d81
Summary:**Motivation:** In my app, I'm using a WebView that loads content from my mobile site. What I want to do is when a user presses a link on the loaded page, I want to stop the WebView's request, hijack the URL and open the URL in a new WebView, pushed to the top of the navigator stack. To me, this gives the overall app a more native feel, instead of implementing a rudimentary navbar on the main WebView to go back.
**Attempted Workarounds:** I've attempted to get similar functionality by capturing the onNavigationStateChange event in the WebView, and then within calling goBack + pushing the new view to the navigator stack. From a functionality standpoint, this works. However, from a UI standpoint, the user can clearly see the webview change states to a new page + go back before having the new view pushed on top of their nav stack.
Closes https://github.com/facebook/react-native/pull/6886
Differential Revision: D3212447
Pulled By: mkonicek
fb-gh-sync-id: 05911e583d9ba54ddbd54a772153c80ed227731e
fbshipit-source-id: 05911e583d9ba54ddbd54a772153c80ed227731e
Summary: Similar to ScrollView, adds ability to set scrollEnabled={false}, which prevents dragging. Paging is still possible by updating initialPage.
Reviewed By: AaaChiuuu
Differential Revision: D3209743
fb-gh-sync-id: ce4140323a03f2257a9bb310c7285418b01abae7
fbshipit-source-id: ce4140323a03f2257a9bb310c7285418b01abae7
Summary:This fixes autocomplete for CJK text input by making sure that the `<Text>` nodes that JS controls to produce attributed text matches the text view's attributed text as much as possible. This is done by giving the disconnected `<Text>` child the same style as the `<TextInput>` parent.
This works because `-[RKTextView performPendingTextUpdate]` avoids setting the attributedText property on textView if the JS attributedText and textView attributedText are equal. This is important because setting attributedText on a text view clears the autocomplete state (markedText property) on a text view, breaking autocomplete for multistage input styles like CJK with a phonetic keyboard.
Reviewed By: nicklockwood
Differential Revision: D3207513
fb-gh-sync-id: 02e582ea5f15191974f15a65ebc1820401715f8d
fbshipit-source-id: 02e582ea5f15191974f15a65ebc1820401715f8d