* 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:
Thanks for submitting a pull request! Please provide enough information so that others can review your pull request:
(You can skip this if you're fixing a typo or adding an app to the Showcase.)
Explain the **motivation** for making this change. What existing problem does the pull request solve?
Prefer **small pull requests**. These are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it.
**Test plan (required)**
Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.
Make sure tests pass on both Travis and Circle CI.
**Code formatting**
Look around. Match the style of the rest of the codebase. See also the simple [style guide](https://github.com/facebook/react-native/blob/master/CONTRIBUTING.md#style-guide).
For more info, see the ["Pull Requests" section of our "Contributing" guidelines](https://github.com/facebook/react-native/blob/mas
Closes https://github.com/facebook/react-native/pull/8071
Differential Revision: D3453372
Pulled By: ericvicenti
fbshipit-source-id: 3494faee1a83574c3937a6545b246713ec38e0d0
Summary:
Remove prop `onNavigate` from these views.
- NavigationAnimatedView
- NavigationCardStack
- NavigationCard
Also, the `sceneProps` onject that is passed to the `renderScene` function
no longer contains `onNavigate`.
The contract that `onNavigate` expects has been vague. Different data flow
system may expect complete different params for such function
For instance,
* onNavigate({type: 'back'});
* onNavigate({type: 'BACK'});
* onNavigate('back'});
We have no intention to unify such generic API since it's more likely to be
constrained by the data flow frameworks such as redux or flux.
Also, passing the prop `onNavigate` all the way down to the component that
invokes the navigation action can be really tedious. We'd expect developer
to either pass such callback (onNavigate) via context or just set up some
kind of static actions that any component can call directly.
`onNavigate` was previously added as a part of (redux-like) reducers-friendly
feature but that's no longer the case.
This new prop `onNavigateBack` is used to explicitly handle the case when the back button or back gesture
is performed.
Reviewed By: ericvicenti
Differential Revision: D3410873
fbshipit-source-id: a703cf0debd474cff33d6610e858b9c4bb3ecbf5
Summary:
NavigationCard is wrapped in a container, which breaks statics so apply the statics to the wrapped class instead.
Closes https://github.com/facebook/react-native/pull/7483
Differential Revision: D3336226
Pulled By: ericvicenti
fbshipit-source-id: ae28e7be7a6227700c2c11081c5605f3667d1494
Summary:
[public / experimental API breaking change]
The data type of `scene.navigationState` is `NavigationRoute`. Rename `scene.navigationState` to
`scene.route` to avoid confusion such as treating `scene.navigationState` as the actual global navigation
state (type: NavigationState).
Reviewed By: ericvicenti
Differential Revision: D3331076
fbshipit-source-id: 3ed989cc8492d398cbeb1b12186459deb261d1fb
Summary:
This is the first step to clarify and simplify the type definations about navigation state.
For now, `NavigationParentState` is actually used as the real navigation state and `NavigationState` is used
as a route in navigation, which has been confusion among the APIs.
To be clear, our APIs has no intention and interest in dealing with nested or hierarchical navigation states,
and we should avoid have the name like `ParentState` or `children`.
To fully migrate the types, theer will be a lot of code changes and this is just the first step to rename.
= What's Next?
1. rename `navigationState.children` to `navigationState.routes` (breaking change!)
2. remove `navigationState.key` from its type defination.
Reviewed By: ericvicenti
Differential Revision: D3321403
fbshipit-source-id: 3e39b60f736c1135bc85d8bf2b89027d665e28d4
Summary:
... used as both a shape and plain object.
this splits them out so both parts can be used as needed.
NavigationPropTypes.SceneRenderer is a PropTypes shape
NavigationPropTypes.SceneRendererProps is the plain object that makes up the shape.
Closes https://github.com/facebook/react-native/pull/7518
Differential Revision: D3317322
Pulled By: ericvicenti
fbshipit-source-id: e8a31e05130e6647b63f68dbef31bc874550948c
Summary:
Sometimes list view row components(even the ones unseen) have a frame but its x and y is 0 or uninitialized at view loading time, which will lead to _updateVisibleRows firing for all the row components incorrectly at loading time.
This is to make the code more defensive.
Reviewed By: sahrens
Differential Revision: D3308515
fbshipit-source-id: 0e30fdf10345629bfd9de3fe0ad641bb1903fe00
Summary:
The function should have optional arguments, but not nullable types.
Closes https://github.com/facebook/react-native/pull/7580
Differential Revision: D3304994
Pulled By: davidaurelio
fbshipit-source-id: 9918817429126ea16dd3076b61a3493c3a3a8388
Summary:
For now, we emit `didFocus` event before fully resetting the transition and
hiding the stale scenes, so handler for `didFocus` event does not get the right
scenes in place. We should emit the didFocus event after resetting the transition and
hiding the stale scenes.
Reviewed By: ericvicenti
Differential Revision: D3299002
fbshipit-source-id: 6a79528097aabc4f61d4dba322820c228c889a84
Summary:
The containers in NavigationExperimental are not appropraite because the state should be held by the app's architecture, be it redux, flux, or simple component state.
This diff moves the examples over to simple component state, but there are several other examples of how to use NavigationAnimatedView and the navigation reducers with redux:
- https://github.com/jlyman/RN-NavigationExperimental-Redux-Example
- Switching the f8 app with redux to navigation experimental: https://github.com/fbsamples/f8app/pull/14
Reviewed By: hedgerwang
Differential Revision: D3219911
fb-gh-sync-id: eb0b323e2c165c32027fbd00dc6197ad441d6552
fbshipit-source-id: eb0b323e2c165c32027fbd00dc6197ad441d6552
Summary:
This code change allows changing the transition velocity of the navigator
when switching views.
Whats the use case? If you have different types of
animations your animations might also need different transition velocities.
Closes https://github.com/facebook/react-native/pull/5439
Differential Revision: D3264719
Pulled By: ericvicenti
fb-gh-sync-id: 1bc0a1191ed3bd51b624acd161c3ee77fd748d72
fbshipit-source-id: 1bc0a1191ed3bd51b624acd161c3ee77fd748d72
Summary:
the prop type check for NavigationCard -> SceneView -> sceneRendererProps is wrong.
Fix it.
Reviewed By: ericvicenti
Differential Revision: D3265049
fb-gh-sync-id: 16e89c932f0f962db4b6a647d62d255ba98f6156
fbshipit-source-id: 16e89c932f0f962db4b6a647d62d255ba98f6156
Summary:
NavigationLegacyNavigator was originally created to help people to migrate to the new
navigation library without API changes. Therefore we'd have to port all the old APIs that
don't necessarily seem align well with the new navigation library.
Consider the production usage of NavigationLegacyNavigator does not exist, it's better
to kill it and we'd just rename the `Navigator` to `NavigatorDeprecated` later instead.
Reviewed By: ericvicenti
Differential Revision: D3263704
fb-gh-sync-id: a851fda1516d694cb7d119f5a1344f8fc676f7fd
fbshipit-source-id: a851fda1516d694cb7d119f5a1344f8fc676f7fd
Summary:
Explain the **motivation** for making this change. What existing problem does the pull request solve?
> From the existing documentation, it's not clear how one would make use of the highlightRow attribute of ListView.renderRow. Special thanks to halilb for his assistance.
Example: When "Adding a function to do X", explain why it is necessary to have a way to do X.
**Test plan (required)**
Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.
> Here's a screenshot of the UIExplorer with a row highlighted (using the FB Blue Color)
> <img width="466" alt="2016-03-16_1944" src="https://cloud.githubusercontent.com/assets/1640318/13835020/49b5b38c-ebb1-11e5-98fa-17201fd3db92.png">
Make sure tests pass on both Travis and Circle CI.
**Code formatting**
Look around. Match the style of the rest of the codebase. See also the simple [style guide](https://github.com/facebook/react-native/blob/master/CONTRIBUTIN
Closes https://github.com/facebook/react-native/pull/6495
Differential Revision: D3264092
Pulled By: nicklockwood
fb-gh-sync-id: 9608e8a66387f527b872928a3595ca4d17736b82
fbshipit-source-id: 9608e8a66387f527b872928a3595ca4d17736b82
Summary: This adds a new SceneView with a shouldComponentUpdate policy of only re-rendering when the scene's state changes. This allows avoidance of extra re-renders. Results in a much smoother back-swipe gesture because we no longer re-render scenes as we transition from gesture to animation.
Reviewed By: hedgerwang
Differential Revision: D3219545
fb-gh-sync-id: 7c04e0e4ebb40d1e57ef7af11e2e54adf4f52aa0
fbshipit-source-id: 7c04e0e4ebb40d1e57ef7af11e2e54adf4f52aa0
Summary:
THis addresses the issue as reported at
https://github.com/facebook/react-native/issues/6732
Use a higher order component `NavigationPointerEventsContainer` to manager the
prop `pointerEvents` for `NavigationCard`.
The idea is that the scene's content should not be interactive while the scene is
transitioning.
Reviewed By: ericvicenti
Differential Revision: D3205106
fb-gh-sync-id: db7172941155f34447495199d2c029f5c7e75f30
fbshipit-source-id: db7172941155f34447495199d2c029f5c7e75f30
Summary:
THis addresses the issue as reported at
https://github.com/facebook/react-native/issues/6732
Use a higher order component `NavigationPointerEventsContainer` to manager the
prop `pointerEvents` for `NavigationCard`.
The idea is that the scene's content should not be interactive while the scene is
transitioning.
Reviewed By: ericvicenti
Differential Revision: D3205106
fb-gh-sync-id: c0fd22e8c8b83a5952351c5a3a302b2fca5ba5de
fbshipit-source-id: c0fd22e8c8b83a5952351c5a3a302b2fca5ba5de
Summary:
The initial layout used to render scenes does not contain the actual
width and height measured and causes the issue as described at
https://github.com/ericvicenti/navigation-rfc/issues/61
The fix is to update the layout and re-render scenes once layout
is modified. Also scenes renderer should also consider the case that
when the layout is not measured yet.
Reviewed By: ericvicenti
Differential Revision: D3203245
fb-gh-sync-id: 4de89b9b43bc993d7c970c831458bd31c094073e
fbshipit-source-id: 4de89b9b43bc993d7c970c831458bd31c094073e
Summary:The initial layout used to render scenes does not contain the actual
width and height measured and causes the issue as described at
https://github.com/ericvicenti/navigation-rfc/issues/61
The fix is to update the layout and re-render scenes once layout
is modified. Also scenes renderer should also consider the case that
when the layout is not measured yet.
Reviewed By: ericvicenti
Differential Revision: D3162143
fb-gh-sync-id: 197574329d3849cad2a21e07e1bd5e800f74c3ea
fbshipit-source-id: 197574329d3849cad2a21e07e1bd5e800f74c3ea
Summary:The animation looks ok now.
However, the original iOS navigator adds transparent overlay and shadow. Any idea how to implement it? I'd like to add it.
Closes https://github.com/facebook/react-native/pull/5061
Differential Revision: D3129246
Pulled By: ericvicenti
fb-gh-sync-id: ee86261a49ea4b8f6854abf69bef3ebfd6878852
fbshipit-source-id: ee86261a49ea4b8f6854abf69bef3ebfd6878852
Summary:Fixes an issue where if you implement `renderScrollComponent` and have a `ref` callback on the returned element, the ref used to be clobbered by the ref that ListView adds to the element.
This is accomplished by converting the ref from a legacy string-based ref to a callback-based ref, and then using `cloneReferencedElement`, which is a simple utility to compose callback refs.
Closes https://github.com/facebook/react-native/pull/6441
Differential Revision: D3064250
Pulled By: mkonicek
fb-gh-sync-id: 2d55d04e2144a1cc08900a57a1fc0dab07c87eea
fbshipit-source-id: 2d55d04e2144a1cc08900a57a1fc0dab07c87eea
Summary:**Issue:**
In the Navigator if a user attempts to navigate backwards (or forwards) through the route stack by swiping and they perform the gesture too quickly, the gesture is lost and nothing happens.
**Cause:**
In the `_matchGestureAction` function, the variable `moveStartedInRegion` is created and evaluates the gesture to determine if it was initiated in a valid region, (a.k.a. within the `edgeHitWidth`). The issue arises because `moveStartedInRegion` uses `currentLoc` (which is created from `gestureState.moveX`/`Y`) and when the gesture is performed using a flick of the finger, the first value of the `currentLoc` is outside of the `edgeHitWidth`.
**Solution:**
The solution is to track the coordinates of the initial grant (`gestureState.x0`/`y0`), and use that value instead of the `currentLoc` when evaluating `moveStartedInRegion`. The `currentLoc` is still needed however, for when the gestureState does not have a an initial x and y value, because the pan responder has not been granted.
Closes https://github.com/facebook/react-native/pull/6249
Differential Revision: D3168726
Pulled By: ericvicenti
fb-gh-sync-id: f2ac462e59bdc38536b99cac6a4877c99fa4e869
fbshipit-source-id: f2ac462e59bdc38536b99cac6a4877c99fa4e869
Summary:I basically want to build a transparent NavigationHeader, so I need to be able to set the pointerEvents of the NavigationHeader.
Closes https://github.com/facebook/react-native/pull/6881
Differential Revision: D3168620
Pulled By: ericvicenti
fb-gh-sync-id: 679f3f5858142f468be329771ea281c31e1f0d40
fbshipit-source-id: 679f3f5858142f468be329771ea281c31e1f0d40
Summary:The website now displays public methods on components. This was implemented mostly in react-docgen via #66. This adds a <Method> component that is used by the component and API doc pages to display documentation for a method.
It also adds some missing documentation and tweak some existing one to integrate with this feature. I also prefixed some component methods with an '_' so they don't show up in the doc.
**Test plan (required)**
Tested every component page locally to make sure the methods doc was displayed properly.
Tested an API page to make sure it still worked properly.
Closes https://github.com/facebook/react-native/pull/6890
Differential Revision: D3159911
Pulled By: vjeux
fb-gh-sync-id: 1e6a4640cda6794496d9844c1af6a1451c017dcc
fbshipit-source-id: 1e6a4640cda6794496d9844c1af6a1451c017dcc
Summary:First I searched for special cases that destructor PropTypes:
```
(?s)React\s*=\s*require\('react\-native'\).*(Children|PropTypes)[^\{\}]*\}\s*=\s*React;
```
I split them up manually.
Then I replaced the React = require('react-native') + destructuring pattern...
```
(?s)(const|var)\s+React\s*=\s*require\('react\-native'\)(.*[^\{\}]*\}\s*=\s*)React;
```
...with...
```
$1 React = require('react');
$1 ReactNative = require('react-native')$2ReactNative;
```
I used lint to figure out if I left some unnecessary imports.
Finally I grepped for just
```
React\s*=\s*require\('react\-native'\)
```
to catch any remaining patterns.
Also, `} = React.NativeModules` -> `} = ReactNative.NativeModules`.
Reviewed By: spicyj
Differential Revision: D3158991
fb-gh-sync-id: f97e8e921e193d6ea1a49d8d1bf3f09be7bed5c3
fbshipit-source-id: f97e8e921e193d6ea1a49d8d1bf3f09be7bed5c3
Summary:Since the React 0.14 split of modules, the findNodeHandle feature is part of the
renderer and not the generic React API.
This just greps for React.findNodeHandle and replace them with ReactNative.findNodeHandle. I fixed up the imports manually.
I also found two callers each of ReactNative.createClass and React.render with the exception of downstream and examples will fix them separately.
I'll need to find more things like `var { PropTypes } = ReactNative;` separately. I think this is a good start though.
Reviewed By: vjeux
Differential Revision: D3149356
fb-gh-sync-id: 50ed60bc67270b16f561d4c641f2f19e85724d3b
fbshipit-source-id: 50ed60bc67270b16f561d4c641f2f19e85724d3b
Summary:When navigating from one view to another you can still interact with
the current view. This means that a user can tap a button multiple times and trigger multiple transitions.
The view that is being transitioned off the screen should not be allowed to
receive any user interaction while it is being transitioned.
Reviewed By: javache
Differential Revision: D3143202
fb-gh-sync-id: cc033bbdf0cb9e717f62d2fcf751155406da846c
fbshipit-source-id: cc033bbdf0cb9e717f62d2fcf751155406da846c
Summary:There was an issue where the title component could overlap the left component and it would block the left component from receiving touches.
I only stumbled across this because we have a default title component which stretches most of the width and it was covering the edge of the left component. I think left/right components are more likely to be actionable than the title component so they should take priority in the touch order (ie. be rendered last).
Closes https://github.com/facebook/react-native/pull/6618
Differential Revision: D3144191
fb-gh-sync-id: 9ccd31714b2401d02eaaf4b5b24ed6afb60041c7
fbshipit-source-id: 9ccd31714b2401d02eaaf4b5b24ed6afb60041c7
Summary: The iOS native card stack only responds if the gesture starts on the left 30 px on the screen.
Reviewed By: hedgerwang
Differential Revision: D3137201
fb-gh-sync-id: 40e28d5696870b98731e92d6e42d00638b9bb15f
fbshipit-source-id: 40e28d5696870b98731e92d6e42d00638b9bb15f
Summary:Currently, if the Navigator with the default `NavigatorNavigationBar` has two scenes on its `routeStack` and the bottom one defines a `RightButton` but the top one doesn't, a touch to the location of the underlying `RightButton` will trigger its action.
This fix checks if the button's opacity is set to 0 (indicating it has been transitioned off the scene and shouldn't be interacted with) and ignores touch events if so.
Closes https://github.com/facebook/react-native/pull/5624
Differential Revision: D3139553
fb-gh-sync-id: 6d6da1459e289499b6d8769120a3b6114548c090
fbshipit-source-id: 6d6da1459e289499b6d8769120a3b6114548c090
Summary:At the beginning of the navigator docs it says " See Navigator.SceneConfigs for default animations and more info on scene config options."
but then this is the only information available:
<img width="658" alt="screen shot 2016-03-23 at 2 40 49 am" src="https://cloud.githubusercontent.com/assets/1247834/13977670/733cdaa6-f0a1-11e5-92e6-fc98725f65e0.png">
And the only way of knowing about the available options is to look at the source code. I think a lot of people will appreciate this...
If you think this is too much, maybe adding a link to the source code would help.
Closes https://github.com/facebook/react-native/pull/6599
Differential Revision: D3088592
fb-gh-sync-id: f11025b76441e9394ce42ed6c796fa1ace3e8c27
fbshipit-source-id: f11025b76441e9394ce42ed6c796fa1ace3e8c27
Summary: This will make the code more readable.
Reviewed By: ericvicenti
Differential Revision: D3096663
fb-gh-sync-id: 540d2107ea3cd4c60aabdf7a6503c8c22bc4a985
fbshipit-source-id: 540d2107ea3cd4c60aabdf7a6503c8c22bc4a985
Summary:The doc of props "navigationBar" in Navigator is not detailed enough. I make an improvement to it.
Closes https://github.com/facebook/react-native/pull/6615
Differential Revision: D3102065
fb-gh-sync-id: da96e3c422e053d0a8203bbd160ea10ed590878a
fbshipit-source-id: da96e3c422e053d0a8203bbd160ea10ed590878a