Commit Graph
7390 Commits
Author SHA1 Message Date
Flarnie Marchan 3f62cd557f Improve deprecation warnings by more info and links (#9768)
* Improve deprecation warnings by more info and links

**what is the change?:**
Updates the warnings for -
 - `React.createMixin` (was never implemented!)
 - `React.PropTypes`
 - `React.createClass`
 - `React.DOM.*`

We never added the warning for `React.createClass` to the 15.5 line, so
a follow-up PR will add that, with a link to docs etc.

Does *not* update the older warnings for -
 - Factory.type
 - 'isMounted' and 'replaceState'
 - ReactPerf

We could do a second pass if we want to improve those three warnings, but for now I don't think they are as hi-pri.

Still TODO:
 - Do an initial release of the [`react-addons-dom-factories`](https://github.com/facebook/react/tree/master/packages/react-dom-factories#react-addons-dom-factories) package on npm, making it 1.0.
 - Improve the docs for `react-addons-dom-factories` adding documentation and mention the [codemod](https://github.com/reactjs/react-codemod/blob/master/transforms/React-DOM-to-react-dom-factories.js)

**why make this change?:**
 - We want to make updating as easy as possible. Warning messages should increase clarity, and in the past they have caused confusion.

**test plan:**
`yarn test` and running these messages past some folks who use React.

**issue:**
https://github.com/facebook/react/issues/9398

* Rephrase deprecation messages for clarity

**what is the change?:**
We rephrased the deprecation messages to clarify that
 - these APIs are currently deprecated
 - they will be removed in React v16.0

The previous wording implied that they would be deprecated in v16.0.

**why make this change?:**
To make the messages easier to understand.

**test plan:**
Visual inspection
2017-05-25 07:22:54 -07:00
Flarnie Marchan 16a62c248b Improve low priority warning (#9754)
* Add back caught error and other checks to 'lowPriorityWarning'

**what is the change?:**
This change makes 'lowPriorityWarning' an exact copy of 'warning.js' from
https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
where before we had skipped some checks from that module.

- Adds an error which we catch, in order to let people find the error and resulting stack trace when using devtools with 'pause on caught errors' checked.
- Adds check that 'format' argument is passed

**why make this change?:**
- To maintain a closer fork to 'warning.js'
- To allow easier debugging using 'pause on caught errors'
- To validate inputs to 'lowPriorityWarning'

**test plan:**
`yarn test`
2017-05-24 08:25:30 -07:00
Flarnie Marchan d97317e806 Remove stray reference to React.PropTypes in ReactLink (#9757)
**what is the change?:**
It looks like we missed updating this callsite in https://github.com/facebook/react/commit/12a96b94823d6b6de6b1ac13bd576864abd50175

**why make this change?:**
We are deprecating the `React.PropTypes` syntax and splitting that functionality into [a separate module](https://github.com/facebook/react/commit/12a96b94823d6b6de6b1ac13bd576864abd50175).
@acdlite please correct me if there is a reason we left this here.

**test plan:**
`yarn test`

**issue:**
https://github.com/facebook/react/issues/9755
2017-05-23 18:39:17 -07:00
Flarnie Marchan 413c7b548a Cherrypick commit to downgrade deprecations to warnings (#9753)
* Downgrade deprecation warnings from errors to warnings (#9650)

* Downgrade deprecation warnings from errors to warnings

**what is the change?:**
Swapping out `warning` module for a fork that uses `console.warn`.
It looks like we were using the `warning` module for deprecation notices, *but* there is also a 'deprecated' module designed specifically for deprecation notices.

However, we could not find any place that it was currently used.

Since React's build process is not 100% clear to me, I assume it could still be used somewhere by something and just updated it along with other deprecation notices.

We might consider a follow-up diff that does some clean up here;
 - remove 'deprecated' module if it's unused, OR
 - use 'deprecated' module for all our current deprecation warnings

**why make this change?:**
- We have had complaints about noisy warnings, in particular after introducing new deprecations
- They potentially cause CI failures
- Deprecations are not really time-sensitive, can ship without breaking your app, etc.

For more context - https://github.com/facebook/react/issues/9395

**test plan:**
`npm run test`
and unit tests for the new modules
and manual testing (WIP)

**issue:**
https://github.com/facebook/react/issues/9395

* Add 'lowPriorityWarning' to ReactExternals

**what is the change?:**
We won't bundle 'lowPriorityWarning' with the rest of React when building for Facebook.
NOTE: A parallel commit will introduce an internal implementation of 'lowPriorityWarning' in Facebook's codebase, to compensate. Will post a comment with the diff number once that is up.

**why make this change?:**
So that the sync between github and Facebook can go more smoothly!

**test plan:**
We will see when I run the sync! But this is a reasonable first step imo.

**issue:**
https://github.com/facebook/react/issues/9398

* Tweaks to get tests passing after cherry-picking PR#9650

**what is the change?:**
- adds 'lowPriorityWarning' for deprecation of '__spread' and 'createMixin'
- tweaks test to check for 'warn' and not 'error'

**why make this change?:**
Both these issues were introduced by merge conflict resolution when cherry-picking this change from master onto 15.6.

**test plan:**
`yarn test`

**issue:**

* Fix mis-written 'require' for 'warning' module

**what is the change?:**
Fixes 'warning' to be required from 'warning'

**why make this change?:**
It was causing the browserify build to crash, because we don't expect to have a path to 'warning'.

**test plan:**
CI
2017-05-23 15:11:51 -07:00
Flarnie Marchan 1d7971a85a Run prettier 2017-05-20 11:19:21 -07:00
Jason Quense 68347c9985 Backport input fix (#8575)
* Only fire input value change events when the value changes (#5746)

* Allow simulated native events to propagate

fixes #7211 fixes #6822 fixes #6614

we should make sure it doesn't break #3926 any worse (or works with #8438)
2017-05-20 11:15:12 -07:00
Dan Abramov 5c415d1e64 Provide non-standard stack with invalid type warnings (#9679)
* Provide non-standard stack with invalid type warnings

* Include parent stack but mark owner chain as pertinent

* Just parent stack is enough for my needs

Because to avoid noise it is enough to collapse too close frames in the UI.

* functionName => name

* Hide behind a feature flag
2017-05-15 20:39:39 +01:00
Michael Ridgway 2bbe02456b Add browserify transform (#9642)
* Add loose-envify browserify transform

* Add transform to react-addons-create-fragment
2017-05-10 00:49:58 +01:00
Flarnie Marchan 4f7136e1d7 Minor tweak to adjust ReactDOM-test for #8356
**what is the change?:**
Changed a test to look for the warning we added in https://github.com/facebook/react/pull/8356/files

**why make this change?:**
To update our tests for new behavior.

**test plan:**
`npm run test`

**issue:**
https://github.com/facebook/react/issues/9398
2017-05-09 14:27:48 +01:00
Nathan Hunzaker 0001036d35 Move ReactDOMFactories into separate package (#8356)
- Update examples to no longer use React.DOM
- Add package and documentation entries for react-addons-dom-factories
- Update dom-factories readme
- Set up proxy to intercept React.DOM usage
- Update ReactDOM children tests to use createElement
- Add more specific warning assertion for React DOM factories
- Do not use expectDev in ReactDOMFactories tests
2017-05-09 13:51:22 +01:00
Flarnie Marchan 850231c6da Remove tests which use dependency that is missing in 15.6
**what is the change?:**
Removed some tests which were added in https://github.com/facebook/react/commit/e29871e6bed28676815aaf9259d33a99520a10d8

**why make this change?:**
These tests use `inputValueTracking`, which was only added on the master branch and has not yet been added to the 15.* branch.
[There is a PR out](https://github.com/facebook/react/pull/8575) to add this and related bug fixes to the 15.* branch, but there are some unresolved issues there. We plan to follow up on this after releasing 15.6.
For now, we are removing these to unblock releasing 15.6.

**test plan:**
`npm run test`

**issue:**
https://github.com/facebook/react/issues/9410
2017-05-09 13:51:21 +01:00
Nathan Hunzaker e29871e6be Remove loose check on non-number controlled inputs. Fix trailing dot issue. (#9584)
* Remove loose check when assigning non-number inputs

This commit removes a check I added when working on number input
issues where we perform a loose check on an input's value before we
assign it. This prevented controlled text inputs from disallowing
numeric text entry.

I also added a DOM fixture text case.

Related issues:

https://github.com/facebook/react/issues/9561#issuecomment-298394312

* Use strict equality as a guard before assigning input.value

This commit adds back the guard around assigning the value property to
an input, however it does it using a strict equals. This prevents
validated inputs, like emails and urls from losing the cursor
position.

It also adds associated test fixtures.

* Add copy command after build for interup with surge.sh
2017-05-03 11:45:52 -07:00
Brandon Dail 115452f87e Use setProperty when setting style properties (#9302)
* Use setProperty when setting style properties

setProperty is faster in all/most modern browsers. It also lets us support CSS variables.

* Only use setProperty when setting CSS variables

* Add test to ensure setting CSS variables do not warn

* Make this PR pretty again

* Run fiber test script
2017-05-03 11:04:25 -07:00
Flarnie Marchan 009c9f7201 Update tests to not warn due to moved PropTypes and shallowRenderer (#9486)
* Update tests to not warn due to moved PropTypes and shallowRenderer

We added some warnings in v15.5 for calling `React.PropTypes` and
calling the shallow renderer from the wrong place. These warnings were
causing test failures, and now they are fixed.

Most of these were for the `React.PropTypes` change.

* tweak from running prettier

* Final tweaks to get tests passing

**what is the change?:**
Updated 'PropTypes' and 'shallow renderer' syntax in a couple more
places to get tests passing.

**why make this change?:**
In order to verify any changes to the 15.6 and 15.* branches in general
we should have tests passing.

**test plan:**
`npm run test`

**issue:**
https://github.com/facebook/react/issues/9410
2017-04-24 18:48:20 -07:00
Flarnie Marchan ad1d3526f5 Run 'prettier' on the v15.6 branch (#9487)
* Run 'prettier' on the v15.6 branch

This is an easy fix and I'd like this branch to be as similar to master
(v16.0) as possible.

* `npm install --save-dev prettier && yarn prettier`

Checking in the updated `package.json` and `yarn.lock` for the 15.6
branch.

Oddly, running `yarn prettier` updated more files. I thought the
previous commit had covered all `prettier` syntax updates. Will commit
the new changes in a separate commit.

* Ran prettier

More syntax updates to get `prettier` checks passing on the `15.6-dev`
branch, and eventually, on 15-stable.

* Tweak eslint ignore comments to get linter passing

Something with running `prettier` moves or changes these comments in a
way that they were no longer being applied. We tweaked them so that both
'prettier' and 'eslint' pass.
2017-04-22 11:36:25 -07:00
Flarnie Marchan 1926f9ab06 Quick fix for flowconfig
We had a merge conflict sneak in somewhere, and also want to ignore the
'addons' directory.
2017-04-21 13:03:01 -07:00
Chris Pearce a6b51ed8fb Only attempt to clear measures if we created the measure (#9451)
This fixes an issue where if we decided not to create a measurement we would clear ALL measurements from the performance entry buffer due to passing `undefined` as the entry name.
2017-04-20 11:26:25 -07:00
Eric Sakmar 25177ec4ea Adds CSS Grid properties to list of unitless numbers (#9185) 2017-04-20 11:21:14 -07:00
Flarnie Marchan 6428cf7359 Quick fix for eslint on 15.6-dev branch
The `.eslintignore` had gotten a merge conflict committed accidentally
at some point, and also was not ignoring the `addons` directory. This
fixes that.

We also had a couple of missing commas that snuck in, and those are
fixed here too.
2017-04-13 11:42:48 -07:00
Brandon Dail ddd8260e4b Update deprecation wording to be less aggressive 2017-04-13 11:42:48 -07:00
Brandon Dail 16c4f9006a Add test for deprecation warnings 2017-04-13 11:42:48 -07:00
Brandon Dail 8a011282a0 Deprecate React.createMixin
This API was never fully implemented. Since mixins are no longer considered part of the future React API, it will be removed.
2017-04-13 11:07:09 -07:00
Dominic Gannaway e78b192e14 Update typechecking-with-proptypes.md (#9392)
* Update typechecking-with-proptypes.md

* Update typechecking-with-proptypes.md

* Use consistent style for PropTypes import
2017-04-12 00:05:11 +01:00
Denis Pismenny fd6eece6af Fix minor typo in lifting-state-up.md (#9408) 2017-04-11 22:06:30 +01:00
Maciej Kasprzyk 9e9e0c700c Delete examples dir from codebase overview (#9397)
Removes doc about folder that no longer exists.
2017-04-11 22:05:47 +01:00
Luke Belliveau 8f951556e1 Amended implementation-notes.md with link to Dan Abramov's post describing difference between React components, elements, and instances (#9388)
* Amended implementation-notes.md to include a link to a blog post by Dan Abramov, explaining the difference between components, elements, and instances. An understanding of this distinction is crucial in tracing through Implementation pseudocode, and reading Dan's blog first may ease newcomers into understanding the implementation.

* adjusted wording to maintain stylistic consistency with rest of content, per @aweary's request
2017-04-11 22:05:23 +01:00
Dan Abramov 7256081ae3 Use caret range in blog instructions
The release was a bit broken.
2017-04-11 22:05:03 +01:00
Dan Abramov cef396d092 15.5.4 v15.5.4 2017-04-11 20:23:39 +01:00
Dan Abramov e0da5edd58 Merge branch '15.5-dev' into 15-stable 2017-04-11 20:12:14 +01:00
Dan Abramov 88b5c1401b Delete prop-types folder as it has moved 2017-04-11 20:12:05 +01:00
Dan Abramov fec0004a31 Merge branch '15.5-dev' into 15-stable 2017-04-11 20:11:38 +01:00
Dan Abramov 545c87fdc3 Update prop-types version 2017-04-11 20:10:53 +01:00
Dan Abramov 53a3b46fa9 Update prop-types version 2017-04-11 20:08:49 +01:00
Andrew Clark 88bb4a2b50 create-react-class version 15.5.2 2017-04-10 09:51:38 -07:00
Andrew Clark 0b716b8896 Merge branch '15-stable' of https://github.com/facebook/react into 15-stable 2017-04-10 09:47:18 -07:00
Brian Vaughn 26b0530302 Bumped react-linked-input version from 15.5.0 to 15.5.1 2017-04-08 21:56:18 -07:00
Dan Abramov 63d98abeb3 Bump addons I have permissions for 2017-04-09 04:26:41 +01:00
Dan Abramov 80b862395d Fixes for 15.5 addons (#9385)
* Add missing object-assign dep to create-react-class

* Remove unnecessary inlines and irrelevant tests in createFragment

* Uninline shallowEqual in shallowCompare

* Uninline invariant in update

* Uninline invariant/warning and remove unreachable code in react-linked-input

* Envify and collapse createClass UMD

* Envify and collapse createFragment

* ReactLink doesn't really need PropTypes dep

It is unnecessary because it is not explicitly exposed and was never public API.

* Rebuild, envify and collapse LinkedStateMixin UMD

* Collapse PureRenderMixin UMD

* Rebuild shallowCompare

* Envify and collapse update UMD

* Remove unused prop-types dep from linked-input

* Fix change handling in LinkedInput

* Compile LinkedInput to ES5

* Rebuild, collapse, and fix LinkedInput UMD

* Add full README for react-addons-create-fragment

* Mention compat version of transition-group so we can delete those docs

* README for react-addons-linked-state-mixin

* More docs

* Fix devDeps for createClass

* docs
2017-04-09 04:01:35 +01:00
Dan Abramov 9609cb7402 Merge branch '15.5-dev' into 15-stable 2017-04-08 23:15:35 +01:00
Derrick Yeung c2ca2f57f6 Fix the react-addons-create-fragment package to properly export the createReactFragment() function (#9383) 2017-04-08 23:03:18 +01:00
Dan Abramov 69933e25c3 Expose batchedUpdates on shallow renderer (#9382) 2017-04-08 22:46:04 +01:00
Brian Vaughn b563af4b4c Merge branch '15-stable' of github.com:facebook/react into 15-stable 2017-04-08 11:13:15 -07:00
Andrew Clark 0a7c4b3858 15.5.3 v15.5.3 2017-04-07 21:08:39 -07:00
Andrew Clark 32c04c038f 15.5.2 v15.5.2 2017-04-07 21:08:22 -07:00
Andrew Clark 6456fa71d9 Add README to create-react-class 2017-04-07 21:08:21 -07:00
Andrew Clark e2db791e75 15.5.1 v15.5.1 2017-04-07 21:08:21 -07:00
Dan Abramov 6c74952077 Build shallow renderer independently (#9375) 2017-04-07 21:06:47 -07:00
Brian Vaughn 7c0e407e44 Merge branch '15-stable' of github.com:facebook/react into 15-stable 2017-04-07 20:28:42 -07:00
Dan Abramov 7dbf2b348c Bump React version on doc website 2017-04-08 04:11:04 +01:00
Aaron Ackerman 129956a65d Point users to the npm page instead of the github project for prop-types (#9373) 2017-04-08 04:07:19 +01:00