Compare commits

...

4973 Commits

Author SHA1 Message Date
Brian Vaughn
834d2c6954 Updated package versions and Rollup results 2017-07-26 12:55:31 -07:00
Dan Abramov
f3b4aaf388 Fix process override in ErrorUtils test (#10293) 2017-07-26 20:40:09 +01:00
Brian Vaughn
36a7d5b326 Fix error utils test failure caused by updating error codes (#10291) 2017-07-26 12:39:58 -07:00
Brian Vaughn
52849c94a7 Updated error codes (after merging in missing code from 15 stable) (#10290) 2017-07-26 12:18:02 -07:00
Dan Abramov
9a290fb1a7 Link warning to error boundary post (#10289) 2017-07-26 19:59:07 +01:00
Brian Vaughn
8d5f2c4324 Regenerate error codes and update bundle size stats (#10287) 2017-07-26 11:21:43 -07:00
Brian Vaughn
e2d1bc8a71 Update pre-release instructions for generating error-codes (#10286) 2017-07-26 11:18:32 -07:00
Dan Abramov
ac76c95fbc Add a disclaimer to internal invariants (#10285) 2017-07-26 19:08:22 +01:00
Andrew Clark
6c66d38d25 Remove feature test from invokeGuardedCallbackDev (#10283)
The critical semantics are resilient to browser flakiness, so we don't
need this feature test.

Also added comments explaining how invokeGuardedCallback dev works.
2017-07-26 10:01:31 -07:00
Dan Abramov
77e1129628 Delete react-dom-factories package (#10279) 2017-07-26 13:00:58 +01:00
Dan Abramov
66065115dc Update sizes 2017-07-26 12:27:29 +01:00
Dan Abramov
dea43046ef Dedupe unknown tag name warning and ignore <time> (#10275)
* Deduplicate unknown DOM tag warning

* Don't warn about <time> because it is widely used

Other browsers implement it, and Chrome will ship it soon too.

* Use hasOwnProperty

* Fix corner case: hasOwnProperty as a tag

* Update comments to be more correct factually
2017-07-26 11:57:29 +01:00
Dan Abramov
5495a7f24a Fix event name check to be more exact (#10274) 2017-07-26 11:56:38 +01:00
Andrew Clark
812cf1c6a3 [invokeGuardedCallback] Handle nested errors across separate renderers (#10270)
invokeGuardedCallback is a function we use in place of try-catch
statement. It accepts a function, and if the function throws, it
captures the error. In production, the implementation is a normal try-
catch. In development, we swap out the prod implementation for a special
version designed to preserve "Pause on all exceptions" behavior of the
browser DevTools.

invokeGuardedCallbackDev works by dispatching an event to a dummy DOM
node and calling the provided function inside a handler for that event.
We also attach an error event handler to the window object. If the
function throws, the global event handler is called and we can access
the error.

The global event handler is added and removed right before and after the
fake event is dispatched. But if invokeGuardedCallbackDev is nested --
 that is, if it's invoked inside the body of another
invokeGuardedCallbackDev -- multiple error event handlers will attached
simultaneously. We only want the handler that corresponds to the deepest
level to handle the error. So we keep track of a depth counter, and
within the event handler, we only handle the error if the current depth
matches the depth at the time the function was invoked.

The problem that we discovered, and that this PR fixes, is that the
depth counter is local to each renderer. So if you nest separate copies
of invokeGuardedCallback from separate renderers, each renderer will
have its own depth counter, and multiple error handlers will fire for a
single, nested error.
2017-07-25 09:44:43 -07:00
Dan Abramov
4c46b6c98a Fix false "unknown property" warnings for events in SSR (#10272)
* Reset modules between importing client and server modules in the test

Client and server renderers still share some modules, including injections.
This means they have shared state in this test, potentially missing issues that would occur in real world.

After this change, the client and server modules are completely isolated in the test.
This makes the tests fail due to https://github.com/facebook/react/issues/10265 (a real issue that was missed).

* Don't validate events if no plugins are injected
2017-07-25 17:01:48 +01:00
Brian Vaughn
171149a4b0 Fix failing Prettier command (#10268)
* Ran prettier over non-modified files to change them
* Fixed output of failing Prettier message to show invalid files
* Failing Prettier command now suggests 'yarn prettier-all'
2017-07-24 13:59:16 -07:00
Brian Vaughn
8d2fdc8e76 Don't add dangling commas to functions for packaging fixtures (#10264) 2017-07-24 09:09:40 -07:00
Andrew Clark
4fcc25a229 Support throwing null (#10213)
* Support throwing null

In JavaScript, you can throw values of any type, not just errors. That
includes null. We currently rely on null checks to determine if a user-
provided function has thrown. This refactors our error handling code to
keep track of an explicit boolean flag instead.

* Add DOM fixture test case for break on exception behavior

* preventDefault error events during feature test

We call invokeGuardedCallbackDev at startup as part of a feature test.
But we don't want those errors to log to the console.

* Add throwing null test case

* Use ReactFeatureFlags instead of ReactDOMFeatureFlags

React ART uses this, too.

* Non-errors in error logger

If a non-error is thrown, we'll coerce the value to a string and use
that as the message.
2017-07-21 15:34:41 -07:00
Andrew Clark
b3943497c2 Upgrade to Flow v0.50.0 (#10249)
No particular reason, just hoping memory usage is maybe better.
2017-07-21 15:30:32 -07:00
Andrew Clark
0a24255475 ReactDOM.activeUpdates (#10225)
ReactDOM.flushSync(batch)
2017-07-21 13:22:11 -07:00
Flarnie Marchan
1f74eca993 Add warning for rendering into container that was updated manually (#10210)
* RFC Add warning for rendering into container that was updated manually

RFC because we still need to tidy this up and verify that all tests
pass.

**what is the change?:**
We want to warn when users render into a container which was manually
emptied or updated outside of React. This can lead to the cryptic error
about not being able to remove a node, or just lead to silent failures
of render. This warning should make things more clear.

Note that this covers the case where the contents of the root container
are manually updated, but does not cover the case where something was
manually updated deeper in the tree.

**why make this change?:**
To maintain parity and increase clarity before releasing v16.0 beta.

**test plan:**
`yarn test`

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

last item under the '16 beta' checklist.

* Add test and tweak check for rendering into manually updated container

STILL TODO: figure out how to skip this warning when the component
renders to a portal.

Unfortunately 'ReactPortal.isPortal(children)' returns false, even in
the failing test where we are rendering to a portal.

**what is the change?:**
- added a test for the case where we call 'ReactDOM.render' with a new
  container, using a key or a different type, after the contents of the
  first container were messed with outside of React. This case throws,
  and now at least there will be an informative warning along with the
  error.
- We updated the check to compare the parent of the 'hostInstance' to
  the container; this seems less fragile
- tweaked some comments

**why make this change?:**
Continue improving this to make it more final.

**test plan:**
`yarn test`

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

* Stub our `console.error` in one of the portal tests

**what is the change?:**
See title

**why make this change?:**
See comment in the code

**test plan:**
`yarn test`

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

* Skip warning in 'ReactDOMFiberEntry' when mounting to Comment node

**what is the change?:**
We have a warning for cases when the container doesn't match the parent
which we remembered the previously rendered content being rendered into.

We are skipping that warning when you render into a 'comment' node.

**why make this change?:**
Basically, if you render into a 'comment' node, then the parent of the
comment node is the container for your rendered content. We could check
for similarity there but rendering into a comment node seems like a
corner case and I'd rather skip the warning without knowing more about
what could happen in that case.

**test plan:**
`yarn test`

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

* Improve warning message, remove dedup check, and unmock console.error

**what is the change?:**
Various changes to get this closer to being finished;
- Improved warning message (thanks @spicyj!!!)
- Removed dedup check on warning
- Remove mocking of 'console.error' in portals test

**why make this change?:**
- warning message improvement: communicates better with users
- Remove dedup check: it wasn't important in this case
- Remove mocking of 'console.error'; we don't want to ignore an
  inaccurate warning, even for an "unstable" feature.

**test plan:**
`yarn test` -> follow-up commits will fix the remaining tests

**issue:**
issue #8854

* Possible fix for issue of incorrect warning for portal re-render

**what is the change?:**
Add a property to a container which was rendered into using
`ReactDOM.unstable_createPortal`.

**why make this change?:**
We don't want to warn for mismatching container nodes in this case - the
user intentionally rendered into the portal container instead of the
original container.

concerns;
- will this affect React Native badly?
- will this add bloat to the portal code? seems small enough but not
  sure.

**test plan:**
`yarn test`

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

* Fix logic for checking if the host instance container is a portal

**what is the change?:**
When focusing on fixing the warning to not check when we are using
portals, I missed checking for the existence of the host instance parent
before checking if it was a portal. This adds the missing null checks.

**why make this change?:**
To fix a bug that the previous commit introduced.

**test plan:**
`yarn test`
-> follow-up commits fix more of the test failures

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

* Clean up new tests in ReactDOMFiber-test

**what is the change?:**
- removed extra single quotes, downgrade double quotes to single
- update expected warning message to match latest warning message
- fix indentation

**why make this change?:**
- get tests passing
- code maintainability/readability

**test plan:**
`yarn test`
follow up commits will fix the remaining tests

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

* Add 'unmountComponentAtNode' call in test for reconciling pre-rendered markup

**what is the change?:**
We have a test that verifies React can reconcile text from pre-rendered
mark-up. It tests React doing this for three strings and three empty
strings.

This adds a call to 'unmountComponentAtNode' between the two
expectations for strings and empty strings.

**why make this change?:**
We now warn when someone messes with the DOM inside of a node in such a
way that removes the React-rendered content. This test was doing that. I
can't think of a situation where this would happen with server-side
rendering without the need to call 'unmountComponentAtNode' before
inserting the server-side rendered content.

**test plan:**
`yarn test`

Only one more failing test, will fix that in the next commit.

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

* ran prettier

* remove unused variable

* run scripts/fiber/record-tests

* Fix type error and improve name of portal container flag

**NOTE:** I am still looking for a good place to move this flag
assignment to, or a better approach. This does some intermediate fixes.

**what is the change?:**
- fixed flow error by allowing optional flag on a DOMContainer that
  indicates it was used as a portal container.
- renamed the flag to something which makes more sense

**why make this change?:**
- get Flow passing
- make this change make more sense

We are still not sure about adding this flag; a follow-up diff may move
it or take a different approach.

**test plan:**
`yarn test`

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

* Add flag to portalContainer on mount instead of in `createPortal`

**what is the change?:**
We add a flag to the container of a 'portal' in the 'commit work' phase
in Fiber. This is right before we call `appendChildToContainer`.

**why make this change?:**
- Sometimes people call `ReactDOM.render(... container)`, then manually
clear the content of the `container`, and then try to call another
`ReactDOM.render(... container)`.
- This leads to cryptic errors or silent failure because we hold a
  reference to the node that was rendered the first time, and expect it
  to still be inside the container.
- We added a warning for this issue in `renderSubtreeIntoContainer`, but
  when a component renders something returned by
  `ReactDOM.unstable_createPortal(<Component />, portalContainer);`,
  then the child is inside the `portalContainer` and not the `container,
  but that is valid and we want to skip warning in that case.

Inside `renderSubtreeIntoContainer` we don't have the info to determine
if a child was rendered into a `portalContainer` or a `container`, and
adding this flag lets us figure that out and skip the warning.

We originally added the flag in the call to
`ReactDOM.unstable_createPortal` but that seemed like a method that
should be "pure" and free of side-effects. This commit moves the
flag-adding to happen when we mount the portal component.

**test plan:**
`yarn test`

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

* Force an 'any' type for the `hostInstance.parentNode` in warning check

**what is the change?:**
This is awful. :(
I'm not sure how else to let Flow know that we expect that this might be
a sort of `DOMContainer` type and not just a normal `Node` type.

To at least make the type information clear we added a comment.

**why make this change?:**
To get `flow` passing. Looks like we have `any` types sprinkled
throughout this file. phooey. :(

**test plan:**
`yarn flow`

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

* Ignore portals in `DOMRenderer.findHostInstance`

**what is the change?:**
We want to ignore portals when firing a certain warning.

This allows us to get the host instance and ignore portals.

Also added a new snapshot recording while fixing things.

**why make this change?:**
Originally we had added a flag to the DOM node which was used for

rendering the portal, and then could notice and ignore children rendered
into those nodes.

However, it's better to just ignore portals in
`DOMRenderer.findHostInstance` because
 - we will not ignore a non-portal second child with this approach
 - we meant to ignore portals in this method anyway (according to a
   'TODO' comment)
 - this change only affects the DOM renderer, instead of changing code
   which is shared with RN and other renderers
 - we avoid adding unneeded expandos

**test plan:**
`yarn test`

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

* Ran prettier

* Remove error snapshot test

I think there is a bug where an empty snapshot is treated as an 'outdated snapshot'.

If I delete the obsolute snapshot, and run ReactDOMFiber-test.js it generates a new snapshot.
But then when I run the test with the newly generated snapshot, it says "1 obsolete snapshot found",
At some point I will file an issue with Jest. For now going to skip the snapshot generation for the error message in the new test.

* Remove expando that we were adding to portal container

**what is the change?:**
see title

**why make this change?:**
this is part of an old approach to detecting portals, and we have
instead added a check in the `findHostInstance` method to filter out
portals.

**test plan:**
`yarn test`

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

* Fork `findHostInstance` to make `findHostInstanceWithNoPortals`

**what is the change?:**
We need to get host instances, but filter out portals. There is not
currently a method for that.

**why make this change?:**
Rather than change the existing `findHostInstance` method, which would
affect the behavior of the public `findDOMNode` method, we are forking.

**test plan:**
`yarn test`

**issue:**
https://github.com/facebook/react/issues/8854
2017-07-21 08:48:46 -07:00
Andrew Clark
ae430b7913 React.unstable_AsyncComponent (#10239)
Alternative to using the static class property unstable_asyncUpdates.
Everything inside <AsyncComponent /> has async updates by default. You
can also extend it like PureComponent or Component.
2017-07-20 18:00:53 -07:00
Sebastian Markbåge
9d248e0616 Remove record-tests step from contribution guides (#10223) 2017-07-20 14:16:35 -07:00
Dan Abramov
240b84ed8e Remove PooledClass from isomorphic build (#10227)
* Inline traverseAllChildren into ReactChildren

* Remove ForEachBookKeeping

* Inline traversal pooling logic into ReactChildren

* Reuse emptyFunction for dummy callback

* Move code around

* Record sizes
2017-07-20 15:56:49 +01:00
Dan Abramov
9cf888f661 Delete flattenChildren (#10224)
* Delete flattenChildren

* Stop exporting mapIntoWithKeyPrefixInternal

* Remove unescapeInDev()

flattenChildren() was the only traverseAllChildren() caller that relied on it.
2017-07-20 01:25:53 +01:00
Sebastian Markbåge
7b9f64307d Fix lint (#10222) 2017-07-19 11:12:47 -07:00
Sebastian Markbåge
1b4776f319 In SSR, Store Elements of Composites on the Stack for Warnings (#10187)
In DEV mode this keeps an additional sub-stack within the stack of the
server renderer. This substack keeps track of all the elements that we
resolved to get to to the next processing frame.

This lets us recreate the full composite component stack for warnings.
Normally the stack only contains host components.

We reset this every time we're going to resolve another sibling.
2017-07-19 10:36:57 -07:00
Sebastian Markbåge
9011182c55 Configure Jest with Stack and Fiber as separate projects (#10214)
* Disable Fiber specific test run in CI

This disables the comparison against previously recorded test. Instead,
we'll rely on jest failures to fail tests.

* Extract jest config into two separate projects for Fiber and Stack

Allows us to run both in the same jest run. The setupMocks file is forked into
specific environment configuration for each project. This replaces the
environment variable.

I used copy pasta here to make it clear. We can abstract this later. It's clear
to me that simply extracting shared stuff is not the best way to abstract this.
setupMocks for example didn't need all the code in both branches.

I think that some of the stuff that is shared such as error message extracting
etc. should probably be lifted out into a stand-alone jest project instead of
being shared.

* Fix class equivalence test

There's a behavior change when projects are used which makes
setupTestFrameworkScriptFile not override the normal config.

This test should probably just move to a separate CI script or something
less hacky.

* Only run Fiber tests with scripts/fiber/record-tests
2017-07-19 10:35:45 -07:00
Jason Quense
acd9818b90 Move input valueTracker to DOM nodes (#10208)
* Move input valueTracker to DOM nodes

This moves the storage of the input value tracker to the DOM node
instead of the wrapperState. This makes it easier to support both Stack
and Fiber without out a lot of ugly type casting and logic branches.

related: #10207

* run prettier

* remove instance accepting methods

* rm unused trst method

* address feedback

* fix naming

* fix lint
2017-07-19 12:10:13 -04:00
Dominic Gannaway
357925a84e Move DEV only module requires into __DEV__ blocks (#10185)
* modulesToStub cleaned up and DEV only modules put into __DEV__ blocks

* prettier run

* Prettier + new build run for bundle sizes
2017-07-19 17:28:55 +02:00
Dan Abramov
9254ce27a8 Split markup generation from DOM property management (#10197)
* Replace SSR unit test with integration test

* Remove unit test that is already covered by integration suite

* Replace unit tests for boolean attrs with integration tests

* Replace unit test for aria attrs with integration test

* Replace unit tests for numeric 0 with integration tests

* Remove unit test covered by integration tests

* Replace unit test for injection with integration test

It still touches internals but it tests both renderers.

* Fork DOMPropertyOperations into DOMMarkupOperations

* Trim down DOMPropertyOperations and DOMMarkupOperations

* Record SSR sizes

* Record them tests

* Fix false positive warning for overloaded booleans when passing numbers

* Remove stray import

* Replace CSS markup tests with public API tests

Some of these are handy as integration tests so I moved them there.
But some test markup specifically so I changed them to use DOMServer.

* Make CSSPropertyOperations client-only

I forked createMarkupForStyles() into ReactDOMComponent and ReactPartialRenderer. Duplication is fine because one of them will soon be gone (guess which one!)

The warnInvalidStyle helper is used by both server and client, unlike other client-only stuff in CSSPropertyOperations, so I moved it to a separately module used in both.

* Record server bundle size

* Add an early exit to validation

* Clarify what is being duplicated
2017-07-19 14:06:53 +01:00
Sebastian Markbåge
12d5c7a842 Upgrade jest to 20.1.0-delta.1 (#10211)
* Upgrade jest to 20.1.0-delta.1

This includes multi-project support.

* Use isSpy polyfill that is not available in jest 20

* Remove use of jasmine.createSpyObj

We don't really need this and it's not in jest 20.

* Upgrade record-tests script to use the new jest 20 APIs
2017-07-18 17:24:54 -07:00
Andrew Clark
71f591501b Fix scheduler control flow (#10015)
* Use performFailedUnitOfWork

instead of beginFailedWork and completeUnitOfWork separately. Also, we
unwind the context stack *before* beginning work again.

* Only use error loop directly after a commit

We have a special, forked version of work loop that checks if a fiber is
in a failed state (needs to be unmounted). This is only relevant right
after a commit -- begin phase errors are handled differently, by
unwinding the stack.

Also renamed findNextUnitOfWork to resetNextUnitOfWork and made it a
void function to signal that it's impure.

* Reset nextUnitOfWork after every commit

* Include the error boundary when unwinding a failed subtree

Also added a warning to the error boundary to show that it failed.

* Push context providers in beginFailedWork to avoid push/pop mismatch

Added a test that demonstrates how an error boundary that is also a
context provider could pop its context too many times if you neglect
to push it in beginFailedWork. This happens because we've already
popped the context once in unwindContext.

The solution is a code smell. I don't like how we push/pop context in
so many places. Shouldn't they all happen in the same location?

* Refactor work loop

- Optimizes the normal, non-error path by reducing the number of checks
needed to begin performing work.
- Prevents control flow from oscillating between fast normal loop and
slower error loop.

* Improve context unwinding test

Tests that we correctly unwind an error boundary that is also a
context provider.

* Triangle tester should assert the tree is consistent after every action

...not just at the end.

* Better implementation of infinite loop error

Infinite loops should only be possible if a while loop never terminates.
Now that we've refactored to avoid oscillation between different
work loops, we can count updates local to each loop.

The two loops that could infinite loop are the sync work loop and the
loop that surrounds the body of the render phase catch block. The
async loop could also fall into an infinite loop if the deadline never
terminates, but we'll assume that it always eventually does.

This change also creates better error stack traces because the error is
thrown from inside the first setState that exceeds the limit.

Added a test case for an error boundary whose parent remounts it
on recovery.

* Use invokeGuardedCallback in DEV
2017-07-18 16:31:49 -07:00
Dan Abramov
c2ed1b87dc Record sizes 2017-07-18 20:06:17 +01:00
Dan Abramov
9043ad6b9d Fix crash on master introduced during the radio bugfix (#10207)
* Add a regression test that passes in Stack but fails in Fiber

The failure happens because trackValueOnNode() can exit early if it detects an existing descriptor on node, or if it sees a "broken" Safari descriptor (which is how we encountered this bug in the wild).

As a result, the tracker field was not set, and subsequent updateValueIfChanged() call went into the branch that initializes the tracker lazily. That branch has a bug in Fiber mode where it passes the wrong type.

We did not see this issue before because that branch is relatively hard to hit (you have to either run it in Safari or define a custom DOM value descriptor which is what I did in the test).

In the future, we will likely remove the lazy branch altogether since if we bailed out of setting up the tracker once, we will likely bail out every time. But for now I'm just focused on a minimal fix to unbreak master.

* Fix updateValueIfChanged() lazy path to work with DOM argument

* Slightly reorder lines for clarity and record tests

* Also test the change event code path

This makes it go through the Fiber argument code path.
2017-07-18 16:31:04 +01:00
Brian Vaughn
197e184859 Replaced "unstable_handleError" with "componentDidCatch" (#10200)
Ran new codemod to rename all identifiers. Searched-and-replaced strings occurrences.
2017-07-17 14:38:37 -07:00
Sebastian Markbåge
3b5e3b5a23 Refactor Debug Frames to Enable Renderers to Provide Custom Logic (#10105)
* Extract the top element frame from ReactDebugCurrentFrame

This is part of a larger refactor to decouple stack addendums. All
renderers have their own way of getting the stack of the currently
executing components.

There is one special case in Element Validator that adds an additional line
for the element being validated. This commit moves that special case in
into the validator.

There is another case where it looked like this was used in shallow
renderer but this is actually something different. It is part of the
component stack. It just happens to be that shallow renderer has a simpler
implementation of the component stack that just happens to be a single
element.

This will let us decouple the implementation to get a stack from
ReactDebugCurrentFrame and put that in each renderer.

* Stop using ReactComponentTreeHook for Fiber

Currently we fall back to ReactCurrentOwner in ReactComponentTreeHook for
stack addendums. We shouldn't need to because we should use
ReactDebugCurrrentFiber.

Ensure we always set both ReactDebugCurrentFiber and ReactDebugCurrentFrame
so that we can rely on these for all stacks.

* Make ReactDebugCurrentFrame implementation independent

Introduced ReactDebugCurrentStack for the Stack renderer which does the
same thing as ReactDebugCurrentFiber.

ReactDebugCurrentFrame no longer keeps track of the current fiber/debug id.
That's handled by the individual renderers.

Instead, it is now used to keep track of the current *implementation* of
the current stack frame. That way it is decoupled from the specifics of
the renderers. There can be multiple renderers in a context. What matters
is which one is currently executing a debuggable context (such as a render
function).

* Add debug frames to ReactPartialRenderer (ssr)

Basic functionality.

* Add shared modules to shallow renderer

This is now needed because we share describeComponentFrame.
2017-07-14 15:36:24 -07:00
Andrew Clark
fb30d235db Remove didCommit from scheduler (#10182)
Don't actually need to track this, now that we removed the infinite
loop check to findNextUnitOfWork
2017-07-13 22:11:35 -07:00
Andrew Clark
b1a2ac89ca Uhhhh remove the extra space I literally just added (#10180)
0 spaces -> 2 spaces -> 1 space yay!
2017-07-13 16:19:40 -07:00
Andrew Clark
7c63d0178d Add missing space to key warning (#10179)
Found this when running the warnings script.
2017-07-13 16:14:45 -07:00
Andrew Clark
4dabdd2a30 Limit the number of nested synchronous updates (#10178)
* Limit the number of nested synchronous updates

In Stack, an infinite update loop would result in a stack overflow. This
gives the same behavior to Fiber.

Conceptually, I think this check belongs in findNextUnitOfWork, since
that is what we call right before starting a new stack. I've put it
in scheduleUpdate for now so I have access to the component that
triggered the nested update. But we could track that explicitly instead.

I've chosen 1000 as the limit rather arbitrarily. Most legit use cases
should really have a much smaller limit, but a smaller limit could break
existing code. For now I'm only concerned with preventing an infinite
loop. We could add a warning that fires at the smaller limit.

* Move check to findNextUnitOfWork

Including the name of the component in the message probably isn't
necessary. The JS stack will include either componentDidUpdate or
componentWillUpdate. And the component that's updating won't
necessarily be the component whose lifecycle triggered it.

So let's move the infinite loop check to findNextUnitWork as I
originally wanted to.
2017-07-13 15:56:02 -07:00
Jason Quense
999df3e777 Fix uncontrolled radios (#10156)
* Add fixture

* Fix Uncontrolled radio groups

* address feedback

* fix tests; prettier

* Update TestCase.js
2017-07-13 16:02:31 -04:00
Dan Abramov
2dcdc3c633 Simplify environment injections (#10175)
* Remove unnecessary injection guard

* Remove inject() indirection for global injections

It was necessary when they shared global state. But now these are flat bundles so we can inject as side effect.
This feels a bit less convoluted to me.

Ideally we can get rid of this somehow soon.
2017-07-13 20:44:52 +01:00
Dan Abramov
0070925a4f Don't use Stack-only helper in new SSR (#10174) 2017-07-13 19:55:48 +01:00
Dan Abramov
7dd7c1702b Remove dependency to event system on the server (#10173)
I do this by splitting ReactDOMInjection into generic and client-only injection.
2017-07-13 19:32:27 +01:00
Flarnie Marchan
309412d8b6 Improve error message thrown in Fiber with multiple copies of React (#10151)
* WIP Improve error message thrown in Fiber with multiple copies of React

**what is the change?:**
Adding an 'invariant' with detailed error message for the problem that
occurs when you load two copies of React with the Fiber reconciler.

WIP:
 - Is there any other likely cause for this error besides two copies of
   React?
 - How can we make the message more clear?

Still TODO:
 - Write a unit test
 - Write a documentation page and create the link to the page, similar
   to https://facebook.github.io/react/warnings/refs-must-have-owner.html

It would also be nice to have a page with instructions on how to fix
common cases of accidental double-loading of React, but we can open a
separate issue on that and let the community do it.

**why make this change?:**
This error comes up relatively often and we want to make things clear
when it happens in v16.0+

**test plan:**
WIP

**issue:**
Fixes #9962

* Add improved warning and docs for 'refs must have owner' in Fiber

**what is the change?:**
 - Added warning in the place where this error is thrown in Fiber, to
   get parity with older versions of React.
 - Updated docs to mention new error message as well as old one.

I started to write a new docs page for the new error, and realized the
content was the same as the old one. So then I just updated the existing
error page.

**why make this change?:**
We want to avoid confusion when this error is thrown from React v16.

**test plan:**
- manually inspected docs page
- manually tested in a CRA to trigger the error message

(Flarnie will insert screenshots)

**issue:**
Fixes #9962
Related to #8854

* Add test for the informative warning around multiple react copies

@gaearon debugged the test for this and now it works!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :)

**what is the change?:**
We now test for the warning that the previous commits add in Fiber, and
also test for the old warning in the stack reconciler.

**why make this change?:**
This is an especially important warning, and we want to know that it
will fire correctly.

**test plan:**
`yarn test src/renderers/__tests__/multiple-copies-of-react-test.js`
`REACT_DOM_JEST_USE_FIBER=1 yarn test src/renderers/__tests__/multiple-copies-of-react-test.js`

* Fix up test for 'multiple copies of react'

**what is the change?:**
refactor test for 'multiple copies of React' to be simpler and remove
some copypasta

* run prettier

* Fix conditionals in 'multiple copies of react' test

**what is the change?:**
When moving the 'fiber' and 'non-fiber' conditions from two assertions
into one, we copy pasted the wrong message into the 'fiber' condition.

This wasn't caught because we were using an outdated name for the
'fiber' constant when running the tests locally with fiber enabled.

This fixes the copy-paste error and we now are actually running the
tests with fiber enabled locally.

* Run scripts/fiber/record-tests
2017-07-13 10:41:32 -07:00
Brian Vaughn
5495e495de Remove conditional __DEV__ wrapper from RN bundles (#10171)
This causes an error with the older version of JSC packaged for Android.
2017-07-13 09:26:45 -07:00
Flarnie Marchan
3b43f3190b Reword duplicate key warning (#10148)
* Reword duplicate key warning

**what is the change?:**
 - Removes the now-inaccurate description of behavior around duplicate
   keys
 - Adds link to 'key' docs page
 - Changes tone to be more casual and friendly

Alternative wording idea;
'Encountered two children with the same key, ${key}
Child keys must be unique; using duplicate keys is not supported and
will cause unexpected behavior in some versions of React.
See https://fb.me/react-warning-keys for more information on how to
fix this.'

**why make this change?:**
Mainly this change was needed because in React 16, duplicate keys will
not cause omission of items with duplicate keys. All items will be
rendered. It could happen that in future versions of React we will have
different behavior though.

**test plan:**
`yarn test`

**issue:**
Wishlist item on https://github.com/facebook/react/issues/8854

* Further improve wording of duplicate key error

**what is the change?:**
Another tweak to the wording of this error to make it more clear and
accurate.

**why make this change?:**
The previous tweak was too casual in tone and still not clear enough.

**test plan:**
`yarn test` and `REACT_DOM_JEST_USE_FIBER=1 yarn run test`

**issue:**
Wishlist item on https://github.com/facebook/react/issues/8854

* Run prettier

* Fix typo in error message for duplicate keys

**what is the change?:**
Fixed a typo in the updated message

* Fix two more typo spots
2017-07-12 15:49:41 -07:00
Garrett McCullough
50d905b083 change the argument passed to CallbackQueue.getPooled (#10101)
* change the argument passed to CallbackQueue.getPooled

* remove undefined from function call

* add test for ReactNativeReconcileTransaction

* update log of tests

* change test to one that operates on setState

* added new tests and fixed another instance of the bug

* run prettier

* update names of tests and minor clean up

* remove arg from CallbackQueue and update tests
2017-07-12 18:49:13 +01:00
Michiya
5d5589b295 Update conferences.md (#10160) 2017-07-12 12:31:45 -05:00
Brandon Dail
d04618b28b Run all fixtures through Prettier (#10157)
* Include fixtures in prettier default pattern

* Run all fixtures through Prettier
2017-07-12 11:19:24 -05:00
Peter Ruibal
cff012fc16 Add react-dom-unstable-native-dependencies (#10138)
* Add react-dom-unstable-native-dependencies

react-native-web and react-primitives currently access a few internals
for shimming DOM events into native ones.  Changes in react@16 packaging
hide these internals completely.  This change adds a submodule to react-dom,
unstable-native-dependencies that includes the necessary modules to
continue enabling that method of dom-native event injection.

* Update ResponderEventPlugin to use "public" interfaces for test

In order to get some sort of smoke testing on
react-dom-unstable-native-dependencies, update ResponderEventPlugin-test
to use the "public" interfaces provided by react-dom and the new
react-dom/unstable-native dependencies

Also adds the missing references in package.json as well as missing
files required for unittests to do imports correctrly

Also exports injectComponentTree() which is required for the unittests
to re-set the shared component state between runs.

* Tweak bundle comment

* Bundle content updates from exporting injectComponentTree

* Added FB_DEV, FB_PROD to bundle types

* Run yarn prettier for -unstable-native-dependencies updates
2017-07-12 02:27:26 +01:00
Dan Abramov
2e2f503cb8 Tweak deprecation messages to be less scary (#10145) 2017-07-11 14:05:27 +01:00
walrusfruitcake
b79619e52a move augmentClass definition above SyntheticEvent Proxy replacement (#10011) 2017-07-11 11:37:11 +01:00
Brandon Dail
ab4ddf6493 Add columns to isUnitlessNumber list (#10115) 2017-07-11 11:28:57 +01:00
Eli White
8ca40630e6 Adding missing assertion to ReactDOMComponent-test (#10131) 2017-07-10 18:51:44 -06:00
Dheeraj Kumar
5ac6209599 Fix shallow renderer callbacks (#10106)
* Add failing test to show that shallow test renderer doesn't call setState's callback arg
* Record tests
* Fix shallow renderer's setState/replaceState/forceUpdate to execute any callbacks passed. (#10089)
* Ensure shallow renderer callbacks are called with the correct  binding.
2017-07-10 14:41:50 -07:00
Eli White
5bc25cb186 Fixing typo in ReactDOMComponent test name (#10132) 2017-07-09 19:34:39 -04:00
Martin V
242929bac1 Add Node v8.x support to devEngines in package.json (#10129) 2017-07-09 20:24:33 +01:00
Andrew Clark
ce7c01429c Don't increase priority when cloning current children (#10123)
This fixes a snapshot test regression introduced by #10008. I had
noticed this change and believe the new behavior was correct, but upon
further investigation I was wrong. This reverts the snapshot test and
fixes it accordingly.
2017-07-07 15:34:27 -07:00
Nick Kasten
8f4d30737d Updated Immutable Data Stuctures Docs (#9845)
* updated immutable data structures section

* improved immutable clarifications

* changes to example immutable code
2017-07-05 19:08:43 -05:00
Ilya Gelman
b22387d4fe Add ReactNext 2017 to conference list (#10114) 2017-07-05 18:44:04 -05:00
Andrew Rota
a39858f399 Add React Boston 2017 to upcoming conferences (#10099) 2017-07-03 21:07:09 -04:00
Guilherme Ruiz
83f56370e6 Fix the data-height of Step 5 CodePen embed (#10083) 2017-07-03 21:05:35 -04:00
Kiho · Cham
03db57aa71 doc: fix the order of lint and prettier (#10095) 2017-07-02 17:39:09 +01:00
Kiho · Cham
4880eb0fbc doc: switch the order of lint and prettier (#10094)
Ref #9876

Thanks to @wdhorton bring it up.
2017-07-02 13:24:45 +01:00
Andrew Clark
f9af9aacd3 Down-prioritize children of hidden host components
To make sure we don't reset the priority of a down-prioritized fiber,
we compare the priority we're currently rendering at to the fiber's
work priority. If the work priority is lower, then we know not to reset
the work priority.
2017-06-30 18:39:04 -07:00
Andrew Clark
de08c2af15 Ignore incremental tests that assert on work reuse
it -> xit

The diff looks messier than it actually is because of Prettier.
2017-06-30 18:39:04 -07:00
Andrew Clark
5a32e89b3d Failed error boundaries are a special case of resuming work
When an error in thrown in the begin phase, we begin work on the
error boundary a second time to unmount the children. This is a special
case of "resuming" work that we need to account for. The children are
set to the current children so that we can delete them.
2017-06-30 18:39:04 -07:00
Andrew Clark
ccbb92f9ef Enable the fuzz tester
Now that we've removed the buggy implementation of resuming work, the
fuzz tester passes consistently.
2017-06-30 18:39:04 -07:00
Andrew Clark
264a921054 Clear pending props when cloning from current
When we create a new work-in-progress, the existing pending props are
no longer valid.
2017-06-30 18:39:04 -07:00
Andrew Clark
a0af1e1317 Remove ability to resume work
The current implementation of resuming work is buggy. The underlying
model is also flawed. Rather than attempt to fix a flawed model, we'll
scrap the feature entirely and add it back later.
2017-06-30 18:39:04 -07:00
Andrew Clark
9749a6ea6a Update fuzz tester to not use animation priority
Neglected to fix this earlier because these tests were ignored.
2017-06-30 18:39:04 -07:00
Sebastian Markbåge
e6f1d29f07 Warn for inline style mismatches (#10084)
I use the technique of generating a style string and comparing that against the
attribute.
2017-06-30 18:24:04 -07:00
Almero Steyn
79868a978d docs(a11y): Small fixes (#10079) 2017-06-30 07:39:46 -04:00
Sebastian Markbåge
8d61138186 Warn When The HTML Mismatches in DEV (#10026)
* Warn for text content

* Warn for different attributes/properties values

Warns if there are unknown extra attributes in the hydrated node.

It also tries to compare the existing property or attribute against the
expected value. It does this by reading the property and comparing it to
the prop. Except it's not that simple because multiple prop values can
yield the same output. For this we pass an extra expected value that is
a hint as to which one was used. This is a bit weird but I'm not sure the
alternatives were much better.

* Warn when there is an insertion or deletion during hydration

This warns if there is ever an insertion or deletion due to hydration
failing to find a match.

Currently we can't warn for insertions required into the root because
that's how we do all non-hydrating renders atm. Left a todo.

This strategy is a bit unfortunate that it leads to so much plumbing code.
And we have to add three extra methods to the HostConfig that are only used
in DEV and not for anything else. I don't really have a better idea.

* Don't try to delete children of a textarea

Textareas are special cases. The initial mount inserts children
as the default value, but we should leave that untouched. This is the same
as the special case where we set text content of children so I'll use that
mechanism.

* Change expected format for text differences

In Stack this is presented as HTML which needs to have normalized escaping
rules. In Fiber it is currently not presented as HTML but a raw string
so we don't escape it.

* Unmount component in between tests

In Fiber, the second warning isn't issued because it's considered an update
not a new initial render and we don't fire the warning for those.

* Change expectation of white space text behavior in Fiber

In Fiber we don't expect empty strings to be different from rendering null.
In fact, in a follow up I plan on formalizing this by never creating text
Fibers for empty strings.

* Warn for different dangerouslySetInnerHTML

We can't just compare the raw innerHTML value because it will have been
normalized. Instead, we'll create another element, set its innerHTML and
read it back.

Since there can be custom elements registered with this document, we want
to avoid any side-effects they might cause. So I do this in a fresh new
document.

I'm not sure how this would affect controlled components and other stuff
that could have changed after runtime. I think for those cases maybe we
just need a general way of opting out of the diff.
2017-06-29 19:47:44 -07:00
Nathan Hunzaker
9d13557244 Add test to ensure extra zeros are covered by tests (#10033)
* Add test to ensure extra zeros are covered by tests

* Add DOM test fixture for trailing zeros

* Drop quotes to improve clarity
2017-06-29 12:44:05 -05:00
Henry Harris
dccc3850dc Tiny changes to tutorial (#10048)
* Initial commit

* PR feedback
2017-06-29 16:00:04 +01:00
Ben Alpert
21df484f25 Don't build ReactDOMNodeStream for FB (#10065)
require('stream') doesn't work for us right now.
2017-06-28 16:13:58 -07:00
Toru Kobayashi
85f3498fda Types Fiber as an exact object type (#10063) 2017-06-28 13:01:46 -05:00
Ben Alpert
864ae8fa98 Support comment node as a mount point (#9835)
This means you don't need an extra wrapper div for each component root you need. Rendered stuff is inserted before the comment you pass in.
2017-06-27 17:22:07 -07:00
Sebastian Markbåge
52a2365f19 Fix mount and unmount warnings in Fiber (#10056)
* Warn if unmounting a non-container

* Warn if the 2nd+ child is a "root" element but not first

This triggers our non-reuse mode. This is covered by ReactMount already but
the test doesn't pass yet without also landing #10026.
2017-06-27 17:15:53 -07:00
Sasha Aickin
f8a3a3989a Removed ReactMarkupChecksum from renderToString (#10053)
* Removed ReactMarkupChecksum from renderToString

* Oops. I messed up the merge in the previous commit.
2017-06-27 14:20:45 -07:00
Sebastian Markbåge
e955008b9b Remove most comments from HTML generation output (#10029)
Simplifies markup generation by only inserting a simple comments between
consecutive text nodes.

I also skip past comments and other nodes while hydrating. This leaves them
in place instead of being removed by the hydration mechanism. This is more
efficient but will also be needed by hydration validator.

There's a special case for empty strings. We probably shouldn't have nodes
for those at all. For now I special case it by assuming there won't be one
so if we need one, we'll insert an empty text node.

I also dropped the ID from the react ID.
2017-06-27 10:43:27 -07:00
Sebastian Markbåge
3c5b515286 Update yarn.lock (#10046) 2017-06-27 10:41:54 -07:00
Jack Ford
7831440dc9 Fix Typo in ReactFiberTreeReflection (#10055) 2017-06-27 17:53:16 +01:00
Jack Ford
15d3f2852f Fix Typo in ReactDOMFiberEntry (#10054) 2017-06-27 17:53:10 +01:00
Sebastian Markbåge
90b7facd52 Don't use the render callback with promises (#10050)
This covers up errors that are thrown in Fiber, because callback gets
fired *and* an error is thrown. Created a follow up #10049 to reevaluate
these semantics.

# Conflicts:
#	scripts/fiber/tests-passing-except-dev.txt
#	scripts/fiber/tests-passing.txt
2017-06-27 08:24:31 -07:00
Brian Vaughn
cb32253d2f ReactNativeFiberErrorDialog mutates error message (#10045)
This ensures that custom properties that are required by Facebook's error tooling (eg 'framesToPop') don't get dropped.

I also improved the handling/messaging of thrown strings.
2017-06-26 12:34:29 -07:00
Almero Steyn
2675ce13b8 [Docs: A11y] Add accessibility docs (#9519)
* [Docs: A11y] Add accessibility docs

* Fix the link

* Replace link image

* Tweak style
2017-06-26 18:17:05 +01:00
Sasha Aickin
8e2b70c772 Add node-stream.js to react-dom's package.json files entry, enabling the file to be uploaded to npm. (#10044) 2017-06-26 17:17:15 +01:00
Sasha Aickin
167f54c949 Documentation: added info about streaming character encoding. (#10039) 2017-06-26 16:32:11 +01:00
Sasha Aickin
c01d3061bb Pin prettier to a specific version so that it produces the same output on dev machines and CI. (#10038) 2017-06-26 16:30:45 +01:00
Simen Bekkhus
b629b78350 Remove Travis badge from readme (#10041) 2017-06-26 11:22:21 +01:00
Sasha Aickin
411e04bd71 Add ReactDOMNodeStream, adding streaming rendering. (#10024)
* Add ReactDOMNodeStream, adding ability to stream generated HTML.

* Forgot to rename a documentation page.

* Tests are passing locally but failing on CI; attempt to fix that with this tweak.

* Adding some debugging info to try to track down CI problem.

* More debugging of CI. Yay for printf debugging.

* More printf debugging of CI to figure out what is going on with includes during tests.

* I made a truly stupid error with my printf debugging statements for CI. Fixing that.

* And another dumb copy and paste typo.

* The node-stream.js stub for tests wasn't being added because of .gitignore.

* Fix for code review coment https://github.com/facebook/react/pull/10024#discussion_r123606138 . Thanks to @razh for helping me out.

* Removing all the console.logs I put in to debug the build problems on the CI server.

* Fix for code review coment https://github.com/facebook/react/pull/10024#discussion_r123628227 . Thanks to @aweary for the suggestion.

* Response to code review comment https://github.com/facebook/react/pull/10024#discussion_r123649131 . Thanks, @gaearon.

* Responding to code comments https://github.com/facebook/react/pull/10024#pullrequestreview-46104491 , https://github.com/facebook/react/pull/10024#pullrequestreview-46104616 , and https://github.com/facebook/react/pull/10024#pullrequestreview-46104822 . Thanks to @sebmarkbage for the help.

* Attempt to tweak spacing to see if it makes the prettier build step happy.

* Found a prettier bug that wasn't being reported by npm run prettier for some reason.

* Fixed a small prettier issue
2017-06-24 22:31:42 -07:00
Sasha Aickin
55c5cc264b As pointed out by @gaearon in code review comment https://github.com/facebook/react/pull/10024#discussion_r123649131 , ReactDOMServer is an object, not a class. (#10027) 2017-06-23 16:07:25 +01:00
Sasha Aickin
a494741b21 Excluding src/node_modules from .gitignore. (#10028) 2017-06-23 08:05:09 -07:00
Dan Abramov
fa98ecba9f Remove Stack-only www shim code (#10019) 2017-06-22 02:38:02 +01:00
Dan Abramov
8e251c5416 Remove unused www shims (#10018)
* Remove unused www shims

* Delete ReactElement.js
2017-06-21 19:10:45 +01:00
Dan Abramov
df10073f7d Remove "unstable" warning from ReactDOM (#10017)
* Remove "unstable" warning from ReactDOM

* Remove assertion about the warning

* There's more!
2017-06-21 19:06:25 +01:00
Dan Abramov
e68e95284b Remove more isomorphic www shims (#10007) 2017-06-21 17:54:11 +01:00
Michael Ridgway
7b05946776 [#9627] Fix componentWillUnmount test case in isMounted tests (#9629)
* Fix componentWillUnmount test case in isMounted tests and add mixin tests

* Upgrade create-react-class to 15.6.0
2017-06-20 23:37:01 +01:00
Toru Kobayashi
e817e8c95a Fix to work fiber-debugger (#10000) 2017-06-19 21:30:00 +01:00
Andrew Clark
11d67115f3 Update flow to 0.48 (#10006) 2017-06-19 11:45:36 -07:00
Andrew Clark
443ab45835 Only check minPriorityLevel after a commit 2017-06-19 09:53:19 -07:00
Andrew Clark
dcc02dd0f1 Task work inside batched updates is always sync, even for initial mounts
Behavior now matches Stack. It's unfortunate that this prevents us
from unifying SynchronousPriority and TaskPriority.
2017-06-19 09:53:19 -07:00
Andrew Clark
812244b57a Remove Animation priority
There's no advantage to scheduling updates with animation priority
versus scheduling sync work inside requestAnimationCallback. So we can
remove all the animation-specific code. Now there's only one type of
callback.
2017-06-19 09:53:19 -07:00
Andrew Clark
6a0c56cffc ReactNoop.flush methods return an array of yielded values
Allows us to make assertions on the values that are yielded when
performing work. In our existing tests, we do this manually by pushing
into an array.

ReactNoop.flushThrough extends this concept. It accepts an array of
expected values and flushes until those values are yielded.
2017-06-19 09:53:19 -07:00
newvlad
390fda7260 Create higher-order-components.md (#9976) 2017-06-19 10:06:54 -04:00
tokikuch
00ba97a354 Use KeyboardEvent.char in the fallback logic if available (#9792)
When a user types an emoji via Touch keyboard in IE, React's fallback logic
creates the `BeforeInput` event based on the `keypress`.  However, the length
of an emoji character (e.g. `\uD83D\uDE0A`) is two, so the `which` property
does not represent an emoji correctly.

Because IE's KeyboardEvent has the `char` property holding an entire emoji,
we can use it directly instead of converting from the `which`.
2017-06-16 15:14:09 -07:00
Ben Alpert
5029c3d6bc Split out container methods in host config (#9983)
This makes it so you don't need to pattern-match manually to build a renderer where the container and instance types are not the same. Prerequisite to #9835.
2017-06-16 15:00:38 -07:00
Dominic Gannaway
54e8478a3d Move out more ReactDOM FB shims (#9987)
* move out further ReactDOM shims from FB

* fixed a typo
2017-06-16 15:41:47 +02:00
Dominic Gannaway
52e13922b5 removes Synthetic event forwarding module shims (#9945) 2017-06-15 17:07:34 +01:00
Dan Abramov
ca83e3d321 Changelog for 15.6.1 (#9977) 2017-06-15 15:09:13 +01:00
Dan Abramov
310a6c4fc1 Wrap all non-UMD DEV bundles into a condition (#9969)
* Wrap all non-UMD DEV bundles into a condition

* Update header.js

* Create header.js
2017-06-15 00:53:22 +01:00
Bogdan Chadkin
29eb21dd04 Prevents adding units to css custom properties (#9966)
* Prevents adding units to css custom properties

* Fix code style

* Optimize custom property checking

* Prevents adding units to css custom properties in markup creation

* Update passing tests

* Fix argument name and reuse check in DEV
2017-06-14 23:15:09 +01:00
Dan Abramov
7dc27d35c1 Streamline Fiber/Stack testing and bundling setup a little bit (#9964)
* Remove internal forwarding modules for /lib/

* Add *Entry suffix to all entry points

* Don't bundle ReactNativeFeatureFlags since it's shimmed

* Delete TestRendererStack

* Switch tests at forwarding modules rather than via Jest

* Share mocks between regular and equivalence fixtures

* Rename environment flag to be more generic

* Remove accidental variable name change

* Minor naming changes for consistency

Files that have two versions get the engine in variable name.
2017-06-14 22:10:33 +01:00
Andrew Clark
462f4debfe Fuzz tester that simulates Sierpinski Triangle demo (#9952)
* Add ReactNoop.yield, ReactNoop.flushAndYield, ReactNoop.flushUnitsOfWork

Incremental tests often rely on yielding at a specific point. Using an
explicit API should make our tests more resilient to changes
in implementation.

* Fuzz tester that simulates Sierpinski Triangle demo

The tests only assert that the output of the tree is consistent after
each action, and that the final result after all work has flushed is
the expected value. It does not assert how work is reused, which means
it can't detect starvation issues. However, this also means that it
is fairly resilient to changes in our incremental algorithm.
2017-06-14 10:54:18 -07:00
Dan Abramov
14c0fd562d Add addon changes to 15.6.0 changelog (#9958)
* Add addon changes to 15.6.0 changelog

* Oops

* Add to blogpost
2017-06-14 13:57:00 +01:00
Dan Abramov
e2cf6f61c2 Add future changelog for 15.6.0 addon release (#9953) 2017-06-14 13:52:25 +01:00
Dan Abramov
d1445d42ed Reword animation documentation deprecation (#9957) 2017-06-14 13:04:04 +01:00
Dan Abramov
4f19558c6b Use public API in tests wherever possible (#9954)
* Use public API in tests wherever possible

* Add missing src/node_modules files
2017-06-14 00:58:35 +01:00
Flarnie Marchan
ce6108dac3 Blog post for 15.6.0 (#9950)
* Blog post for 15.6.0

**what is the change?:**
A short and sweet summary of 15.6.0 changes

**why make this change?:**
To thank community contributors and call out important changes.

**test plan:**
Visual inspection.
I also looked it over in a markdown viewer - http://dillinger.io/

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

* Add 'Installation' and 'Changelog' to 15.6.0 blog post

**what is the change?:**
Added the 'Installation' section we have on most release blog posts,
customized for the 15.6.0 version of React.
Added the 'Changelog' from master to the blog post.

**why make this change?:**
To show folks how to install React and what changes are in this release.

**test plan:**
Visual inspection

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

* Improvements to blog post, and add self to `authors.yml`

**what is the change?:**
- Add self to contributors so my name turns into a link
- Use backticks for code-ish things
- Second header to ##, not #
- Change production mode link to the new address per @bvaughn's comment
- Update changelog with fixes from https://github.com/facebook/react/pull/9951

**why make this change?:**
Make things more clear and accurate.

**test plan:**
Visual inspect - @flarnie will paste an image of how it appears in the
actual docs.

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

* Further improvements to 15.6 blog post

**what is the change?:**
- Reword heading about deprecation warning changes
- add 'br' s to the list of installation options
- add some stray missing backticks

**why make this change?:**
Clarity and readability

**test plan:**
Visual inspection

**issue:**
https://github.com/facebook/react/issues/9398
2017-06-13 15:51:45 -07:00
Dan Abramov
00340f436b Minor fixes to 15.6.0 changelog (#9951)
* Minor fixes to 15.6.0 changelog

* Remove remaining double space

* Backticks
2017-06-13 13:25:08 -07:00
Flarnie Marchan
ac2f142729 Update changelog for 15.6 (#9949) 2017-06-13 10:53:57 -07:00
Nathan Hunzaker
d7157651f7 Add controlList to DOM property whitelist (#9940)
See:

- https://github.com/WICG/controls-list/blob/gh-pages/explainer.md
- https://developers.google.com/web/updates/2017/03/chrome-58-media-updates#controlslist
2017-06-12 21:09:33 -04:00
Taehwan, No
35ae38db2f Remove addons path deleted in #9209 (#9921) 2017-06-11 20:23:40 +01:00
Dan Abramov
7cd6fd2bc1 Don't build ReactDOMServerStack (#9916) 2017-06-10 18:08:05 +01:00
Jack Ford
a0534fb5c9 Initial commit (#9917) 2017-06-10 15:51:13 +01:00
Brian Vaughn
4aea7c3fad RN Inspector guard against clicks outside of RN (#9911) 2017-06-09 16:10:40 -07:00
Dan Abramov
107d6228db Fix doc styling and formatting issues 2017-06-10 00:04:50 +01:00
Danilo Vitoriano
a8d5b2b329 Move Past Confs, add React Conf Brazil 2017 (#9697)
* move past confs, add React Conf Brazil 2017

* move react europe to past confs

* resolve react europe conflicts

* Create conferences.md
2017-06-09 22:55:18 +01:00
Mario Souto
2b3a7df8d8 Remove extra brace (#9910) 2017-06-09 14:48:59 -07:00
Dan Abramov
2d9d4f6349 Return empty static markup for null components (#9907) 2017-06-09 16:32:00 +01:00
Dominic Gannaway
d13f07925f Add support for implicitly mocked components using ReactServerRenderer (#9906)
* adds the fix (from stack) and adds a test

* updated name of test and ran fiber script
2017-06-09 16:27:00 +01:00
Dan Abramov
47731c9f74 16.0.0-alpha.13 2017-06-09 15:00:01 +01:00
Dominic Gannaway
eadc2b1b7f remove alder32.js (#9905) 2017-06-09 15:19:16 +02:00
Dan Abramov
5c6a496d98 Inline some internals, reduce shared/ utilities between isomorphic and renderers (#9903)
* Make ReactControlledValuePropTypes DEV-only

* Remove canDefineProperty

This breaks IE8. We don't support it.

* Remove getNextDebugID

It was added temporarily to avoid Stack shared state issues across renderers.
Not a problem anymore.

* Make KeyEscapeUtils.unescape() DEV-only

* Remove unused deprecated() module

It's unlikely we'll deprecate anything else on React.* object soon.

* Inline getIteratorFn at the call sites

* Inline ReactElementSymbol

* Inline KeyEscapeUtils into Children and move the file into Stack

It's only used in one place in isomorphic.
It's used more broadly in Stack so we move it there to die.

* Update artifacts

* Reorder declarations for consistency

* Fix Flow
2017-06-09 12:41:50 +01:00
Nathan Hunzaker
cd7ee0f770 Revert "Add React Riot hackathon (#9861)"
This reverts commit 3daabf1efe.
2017-06-08 21:43:37 -04:00
pingan1927
8ab56e5c8b [#9712] fix <input type="number" /> value '.98' should not be equal to '0.98'. (#9714)
* [#9712] fix <input type="number" /> value ".98" should not be equal to "0.98".

* fix eslint error

* fix label error
2017-06-08 21:27:17 -04:00
Sakina Crocker
3daabf1efe Add React Riot hackathon (#9861)
React Riot is the first online worldwide hackathon for React! No cost to enter and teams can win some cool prizes. It's a community event to build the best React app in 48 hours.
2017-06-08 21:18:49 -04:00
Victoria Quirante
b8f32d7a3a Adding React Alicante 2017 to upcoming conferences (#9897) 2017-06-08 21:14:20 -04:00
Dan Abramov
9ff53dd0f4 Rebuild sizes 2017-06-09 00:47:49 +01:00
Dan Abramov
a37012a6b5 Add Bailout effectTag for React DevTools (#9887)
* Add Bailout effectTag for React DevTools

* Instead of tracking bailout, track performed work
2017-06-08 21:23:34 +01:00
Dan Abramov
6ab0531d68 Exclude Stack from DOMServerStream (#9896) 2017-06-08 19:41:02 +01:00
Dan Abramov
6f1d2c940d Delete ReactARTStack (#9895) 2017-06-08 17:05:21 +01:00
Dan Abramov
80fffbe0de Fix a bug with memoizedState affecting React DevTools (#9886)
* Fix a bug with memoizedState affecting React DevTools

* Restructure to avoid duplication
2017-06-07 19:54:57 +01:00
Flarnie Marchan
045e5bce35 Add check for string and null 'rootElement' in ReactDOMFiber (#9869)
* Add check for string and null 'rootElement' in ReactDOMFiber

**what is the change?:**
Before we call 'rootElement.getAttribute' we check that the method is
defined.

**why make this change?:**
There is an internal use case I found where 'rootElement' is a string
and null at different points as the page is rendered.

It looks like this method was added as part of support for re-hydration
of server-side rendered content. I can't imagine we would want to reuse
content if the rootnode is a string or null. Not sure if we want an
earlier check that it's an element before this point.

**test plan:**
`yarn test`
and I manually tested this fix in the internal case where it was
breaking

* Add test and improve check for non-element rootElement

**what is the change?:**
We use the nodeType to check that we have the correct type of
rootElement, and we added a unit test.

**why make this change?:**
Improve this solution to the problem.

**test plan:**
`yarn test`

* run ./scripts/fiber/record-tests
2017-06-07 07:51:05 -07:00
Dan Abramov
34927ea04f Remove useCreateElement flag (#9873)
* Remove useCreateElement flag

* Use Circle node #3 for ESLint
2017-06-07 13:22:26 +01:00
Dan Abramov
fc15d702b8 Delete .travis.yml (#9874) 2017-06-06 23:42:37 +01:00
Dan Abramov
b840229286 Remove prepareNewChildrenBeforeUnmountInStack flag (#9872) 2017-06-06 23:22:34 +01:00
Sebastian Markbåge
262b9c72f5 Don't hydrate any properties other than event listeners and text content (#9858)
* Don't hydrate any properties other than event listeners and text content

This strategy assumes that the rendered HTML is correct if the tree lines
up. Therefore we don't diff any attributes of the rendered HTML.

However, as a precaution I ensure that textContent *is* updated. This
ensures that if something goes wrong with keys lining up etc. at least
there is some feedback that the event handlers might not line up. With
what you expect. This might not be what you want e.g. for date formatting
where it can different between server and client.

It is expected that content will line up. To ensure that I will in a follow
up ensure that the warning is issued if it doesn't line up so that in
development this can be addressed.

The text content updates are now moved to the commit phase so if the tree
is asynchronously hydrated it doesn't start partially swapping out. I use
the regular update side-effect with payload if the content doesn't match up.

Since we no longer guarantee that attributes is correct I changed the
bad mark up SSR integration tests to only assert on the textContent
instead.

* Hydrate text node if possible

Currently we're never matching text nodes so we need to properly branch.
2017-06-06 15:19:38 -07:00
Brian Vaughn
7b16a46e0c Updated label in build-script (#9871)
Changed from "STARTING" to "BUILDING"
2017-06-06 14:54:35 -07:00
Dan Abramov
f50c4c9a43 Stop building ReactTestRendererStack (#9870)
* Stop building ReactTestRendererStack

We no longer use it.

* Remove now-unused sizes in JSON stats
2017-06-06 22:23:16 +01:00
Kurt Furbush
0966e77a2e Update reference-react-component.md (#9863)
Grammatical edit to match same statement in state-and-lifecycle.html
2017-06-06 09:59:44 -07:00
Garmash Nikolay
54ca9181ce Fix url to ng-animate (#9859) 2017-06-06 08:16:27 -07:00
Flarnie Marchan
30e6c6c9c9 Tweak syntax in rollup build script (#9852)
* Tweak syntax in rollup build script

@bvaughn and I already discussed this.

**test plan:**
`yarn build`

* Remove JSDoc comments

**what is the change?:**
removing some comments

**why make this change?:**
The code is basically self explanatory and these comments could get out
of sync.

**test plan:**
Visual inspection, `yarn build` and `yarn test`

**issue:**
https://github.com/facebook/react/issues/9398
2017-06-06 07:26:47 -07:00
Flarnie Marchan
467dda6863 Add PR #9302 to 15.6RC CHANGELOG (#9857)
Just keeping things updated.

https://github.com/facebook/react/issues/9398
2017-06-06 07:26:24 -07:00
Ben Alpert
9d07ea7105 Remove reactComponentExpect (#9856)
Legacy.
2017-06-05 16:42:56 -07:00
Dan Abramov
1710e6c231 Fix CI (#9854) 2017-06-05 22:44:52 +01:00
Sebastian Markbåge
195aa65198 Disable tests of recovering from node.normalize() (#9853)
According to #9836 we're intentionally chosing to not support this until
we have better proof of this being a big need. E.g. to protect against
extensions. In a way that it's not better to push extensions to be fixed.
2017-06-05 16:46:26 -04:00
Arthur Gunn
5aa31534cd Avoid adding trailing semicolons to inline styles. (#9550)
* Avoid adding trailing semicolons to inline styles.

* Prettify.

* For sake of performance, avoid messing around with arrays.

* Change approach to avoid calling .substring.
2017-06-05 10:17:41 -05:00
Fernando Montoya
bc23cc31de Update webpack according to brand guidelines (#9595)
* Update webpack according to brand guidelines

* Change all ocurrences to webpack
2017-06-05 10:01:43 -05:00
Lipis
f4c9ad5791 Remove commented out code (#9795) 2017-06-05 09:59:18 -05:00
Ricardo
9d8519fc0d Insert blockquote on prop value explanation. (#9770)
While reading the page, the "chain of thought" is broken by stating that the `tempertature` and `onTemperatureChange` don't have any special meaning. Making this a blockquote makes that note look more like a comment and keep the "chain of thought" intact.
2017-06-05 09:51:59 -05:00
cjshawMIT
550b0220ca Clarifying how to apply aria-* attributes (#9843)
Provide explicit example of what "keep lowercase" means for `aria-*` attributes.
2017-06-05 09:48:21 -05:00
António Nuno Monteiro
d2824165ae changed -> changes in Changelog (#9833) 2017-06-05 09:37:01 -05:00
Edvin Erikson
b9ddd206f9 Fiber SSR tests (#9846) 2017-06-04 15:44:24 -07:00
Dan Abramov
28e89cfa2d Don't expose internal instance to React Native Inspector (#9840) 2017-06-02 19:34:26 +01:00
Brian Vaughn
a5d659d07e shouldSetTextContent accepts type parameter in addition to props (#9841) 2017-06-02 10:40:29 -07:00
Brian Vaughn
8b6b2f26c4 Add NPM 5 to devEngines (#9838) 2017-06-02 08:03:28 -07:00
Brian Vaughn
5f5cfe80f2 Removed unnecessary RN fiber "topsecret-" prefix (#9837)
* Removed RN fiber 'topsecret-' prefix
* Added a test to ensure that duplicate view-names can't be registered with createReactNativeComponentClass
2017-06-02 07:57:28 -07:00
Dustan Kasten
5f99a48229 Update to Flow 0.47 (#9815)
* bump flow to 0.47

* Fix variadic function flow issues in fiber

* Fix variadic function flow issues in ReactFiberNative

* fix ReactDOM type issues with flow 0.47

* getChildHostContext *does* take an `instance` argument

* change recently added anys to mixedies

* HydrationContext needs a handle on the rootContainerInstance

* prettier
2017-06-01 12:17:21 -07:00
Sebastian Markbåge
9dcc60af33 Delete logTopLevelRenders flag and console timing (#9825)
This was mostly used for timing of initial mounts. However, we haven't
implemented that in Fiber and yet nobody has complained despite running
without it. Further more the update tracks any update within the tree,
not just updates to the props of the top level. This is much less useful
due to the variation.

I could make this track initial mounts too but it's a bit awkward so I'd
rather just delete it if possible. We can run the full profiling mode if
we want more coverage.
2017-06-01 13:00:45 -04:00
Flarnie Marchan
f3dd489f36 Update CHANGELOG for unreleased 15.6 branch (#9827)
* Update CHANGELOG for unreleased 15.6 branch

**what is the change?:**
Added entries for the latest changes.

**why make this change?:**
We are about to do an RC release and folks can look at these notes to
see what is in the planned release.

**test plan:**
Visual inspection

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

* Update changelog regarding `createClass` dep. warning

**what is the change?:**
We decided to strike through the previous changelog item and add it to
the more recent changelog section, since this is the release where the
deprecation warning will actually go out.

**why make this change?:**
To make things clear for everyone using 15.6

**test plan:**
Visual inspection

**issue:**
https://github.com/facebook/react/issues/9398
2017-06-01 09:23:28 -07:00
Nathan Hunzaker
e796d77004 Remove ensureScrollValueMonitoring (#9819)
I never actually removed the rest of this when I got rid of
ViewportMetrics. We no longer need `ReactDOMEventListener.monitorScrollValue`.
2017-06-01 07:18:51 -04:00
Timothy Yung
3f75ea8cdc Create ReactNativeComponent Abstract Class (#9814)
This creates `ReactNativeComponent`, the modern replacement for `NativeMethodsMixin`.

This class is going to allow us to start migrating React Native off `React.createClass(...)` into a typesafe, class-based brave new world.

This also introduces `IReactNativeComponent`, an interface that enforces consistency between `ReactNativeComponent` and `ReactNativeFiberHostComponent`.
2017-05-30 21:55:24 -07:00
Lipis
b88c42d970 Rename Javascript to JavaScript (#9796) 2017-05-30 21:35:22 -05:00
Brian Vaughn
8ca82e1df6 Fixed arity issues in advance of Flow strict checking being enabled (#9816) 2017-05-30 13:50:11 -07:00
Nathan Hunzaker
74044e0eba Inputs should not mutate value on type conversion (#9806)
This is a follow-up on
https://github.com/facebook/react/pull/9584#discussion_r115642293. There
is no need to assign the value property of an input if the value
property of the React component changes types, but stringifies to the
same value. For example:

```javascript
DOM.render(<input value="true" />, el)
DOM.render(<input value={true} />, el)
```

In this case, the assignment to `input.value` will always be
cast to the string "true". There is no need to perform this
assignment. Particularly when we already cast the value to a string
later:

```javascript
// Cast `value` to a string to ensure the value is set correctly. While
// browsers typically do this as necessary, jsdom doesn't.
node.value = '' + value;
```
2017-05-30 15:25:44 -05:00
Dustan Kasten
80bdebc1f9 Fix ReactFiberReconciler annotation to include PI (#8751)
* Fix ReactFiberReconciler annotation to include `PI`

https://github.com/facebook/react/pull/8628#issuecomment-271970297

* Make getPublicInstance type safe

* attempting to trigger the issue @sebmarkbage described

https://github.com/facebook/react/pull/8751#discussion_r95669118

* Unify renderer-specific getPublicInstance with getRootInstance

* Switch on fiber type HostComponent for getPublicRootInstance

* Fix test that was too dynamic (and failing)

* Use PI in reconciler public API

* Prettier
2017-05-30 20:15:48 +01:00
Dan Abramov
af3ba36c7f Add bench remote repo to eslintignore 2017-05-30 16:43:03 +01:00
Dan Abramov
2b44565fca Don't build some stack bundles (#9812)
* Don't build ReactDOMStack and ReactARTStack bundles

* Regenerate results.json
2017-05-30 15:49:32 +01:00
Dan Abramov
fedb2ff8ec Remove createClass, PropTypes, DOM factories, and createMixin from React object (#9788) 2017-05-30 15:35:30 +01:00
Dominic Gannaway
319ba0bba9 adds getName() to base component, to be used by RN inspector (#9811) 2017-05-30 15:27:41 +02:00
Lipis
07d229b28e Rename Github to GitHub (#9797) 2017-05-29 07:36:14 -04:00
Ben Alpert
ba7ba84ec3 Ignore events on not-yet-mounted fibers (#9742)
This isn't necessarily what we want long-term especially with more async, but currently we crash in jsdom in some cases when an img load event gets dispatched synchronously. (Needed for FB-internal D5060180.)
2017-05-26 16:46:46 -07:00
Erik Hellman
d30bc9807e Add Videos link to React Europe 2017 (#9751) 2017-05-27 00:06:28 +02:00
Flarnie Marchan
4ef8865120 Fix externalization of 'lowPriorityWarning' in fb builds (#9790)
**what is the change?:**
 - Add two more special cases for 'lowPriorityWarning' in 'modules.js',
   treating it the same as 'ReactCurrentOwner'.

**why make this change?:**
Without this, the build was including 'lowPriorityWarning' seemingly both as an external module and as part of the bundle.

**test plan:**
Ran `yarn build` and inspected the `React-dev` build. `lowPriorityWarning` did not get bundled in this time.

**issue:**
None yet - @gaearon flagged this for me directly.
2017-05-26 10:35:39 -07:00
Flarnie Marchan
e6af1580fa Update print warning script for low priority warning (#9756)
* Add back caught error and other checks to 'lowPriorityWarning'

**what is the change?:**
This change makes 'lowPriorityWarning' an exact copy of 'warning.js' from
e66ba20ad5/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`

**issue:**

* Update 'print-warnings' script to include 'lowPriorityWarning' output

**what is the change?:**
We print the logs from 'lowPriorityWarning' as well as 'warning' from the 'print-warnings' script.

NOTE: This PR is branching off of https://github.com/facebook/react/pull/9754

**why make this change?:**
We want to use the same process of white/blacklisting warnings with 'lowPriorityWarning' that we do with 'warning'.

**test plan:**
This is not super easy to test unless we are doing a sync with FB afaik. I plan on running a sync in the next few days, or next week at latest, for the sake of not landing big things on a Friday. That will be the actual test of this.

**issue:**
https://github.com/facebook/react/issues/9398
2017-05-26 07:47:49 -07:00
Flarnie Marchan
114b9c5500 Add 'Test Utils' docs back to main navigation (#9676)
* Add 'Test Utils' docs back to main navigation

**why make this change?:**
We accidentally removed this - still supporting the use of Test Utilities, so we should have them in the docs.

**test plan:**
Manually tested the website - will insert a screenshot.

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

* Move test-utils docs to reference section

**what is the change?:**
Moved from 'advanced guides' to 'reference'

**why make this change?:**
It makes more sense as a reference

**test plan:**
Visual inspection (flarnie may add a screenshot)

**issue:**

* Add back the shallow renderer docs and remove outdated docs

**what is the change?:**
- Remove outdated 'shallow renderer' docs on 'test utils' page, and point to the updated 'shallow renderer' docs.
- Re-add a link to the updated 'shallow renderer' docs on the main navigation.

**why make this change?:**
This was already approved in https://github.com/facebook/react/pull/9331 which was then cherry-picked to https://github.com/facebook/react/pull/9359/commits and landed on master.

I'm not sure why some of these changes didn't persist. For now just adding back the changes we need.

**test plan:**
Manually inspected website - will insert screenshots.

**issue:**

* Further improvements to 'shallow rendering' and 'test utils' docs

Thanks @gaearon for the improvements!

**what is the change?:**
- Remove <hr/> from end of 'shallow rendering' docs
- 'documents' -> 'documentation'
- Move 'shallow rendering' redirection section to top of 'test utils' docs
- Add intro sentence about testing to 'shallow rendering' docs

**why make this change?:**
Documentation helps people learn.

**test plan:**
Visual inspection
2017-05-26 07:47:18 -07:00
Will Myers
546e7721ec Update blog post which creates unhandled promise rejection (#9668)
* Update 2015-12-16-ismounted-antipattern.md

In case anybody else stumbles across this old blog post, I wanted to submit a patch to help with unhandled rejections.  

`#then` and `#catch` each return new Promise instances, so here we actually create two new promises (that aren't assigned).  If the argument promise to `#makeCancelable` rejects, the promise created by `#then` will be an unhandled rejection, which in Node 7 will be an uncaught error.  

By using the second argument of `#then` to handle rejections instead, we don't need to worry about the runtime finding any unhandled rejections here.

* Style updates

* Add update notice
2017-05-26 14:35:19 +01:00
Dan Abramov
c632e58da6 Update numbers 2017-05-26 14:32:26 +01:00
Max Donchenko
43f2ea079c Fix typo (#9786) 2017-05-26 12:37:35 +01:00
Brian Vaughn
3630bf3559 Corrected a stubbed modules problem for RN fiber bundle (#9784) 2017-05-26 11:15:37 +01:00
Sebastian Markbåge
9c7a312d7c Hydration of previously rendered server markup (#9580)
* Don't double validate the DOM container

The warnings need to check a valid container but that should happen in
unstable_renderSubtreeIntoContainer too so might as well move it in.

* Hydrating DOM

Hydrates a server-rendered DOM tree by traversing it and connecting up the nodes if they match. Attributes are not diffed. They're assumed to be accurate on matching nodes.

* Remove meta data filtering from test

Because the current server renderer includes the meta data, it remains in a revived tree.

* Annotate because Flow

* Don't track insertion effects if we're going to hydrate

During initial mount, we should not track Placement

* Fix up test cases to ignore errors that we no longer throw

TODO make these warnings instead.

* Correctly track hydration state inside a newly inserted tree

When we don't match the first hydration node, we'll do an insertion.
Currently we keep the next hydratable sibling so that we know where to
pick up once we're done with the insertion. Unfortunately this makes the
nodes inside the insertion think that there's a node to hydrate.

I used to check for the direct parent but that doesn't work on nested host components.

We need to instead keep track of that we're in an hydration context but
we're not currently hydrating. Once we pop passed the inserted node can
we resume hydrating.

* Hacky fix to isMounted

isMounted checks whether a component is inside a Placement. During
hydration we ideally don't do any Placements if hydration matches the tree.

To work around this I use the Placement flag on the root, which isn't used
for anything else. But only temporarily while we're hydrating. Then reset
it before committing.

* Record tests

* Comments
2017-05-25 15:19:19 -04:00
Dan Abramov
63cd93af07 Fix Prettier 2017-05-25 19:34:14 +01:00
Dan Abramov
7494e0485d Don't strip error messages from builds (#9778) 2017-05-25 18:56:18 +01:00
Dominic Gannaway
492f7a8200 extractErrors -> extract-errors (#9777) 2017-05-25 19:49:58 +02:00
Brian Vaughn
824d22c9d9 Prevent fiber from leaking into RN stack renderer (#9775)
Since stripEnvVariables was used to replace __DEV__ references, I assumed it (and other plugins) we run before requires statements were processed. Obviously I was wrong 😬 and as a result, the RN Stack and Fiber builds were way too large. This is an attempt to mimic the approach taken with DOM renderer and stub out modules that we explicitly don't want to include.

The alternative to this would have been to fork findNodeHandle, NativeMethodsMixin, ReactNativeBaseComponent, etc. and essentially avoid using the feature flag. That didn't seem tenable. The previous injection approach also doesn't work here because the circular references it resulted in caused Rollup to choke when creating the modules.
2017-05-25 18:14:46 +01:00
Tom Occhino
7b5bdc14d8 Remove build time extractErrors message when error codes can't be found (#9555)
* Remove error message when error codes cannot be found

* Re-record fiber tests to fix CI
2017-05-25 17:07:55 +01:00
Brian Vaughn
108a395f4e Strip comments from UMD_PROD and NODE_PROD builds, not FB_PROD (#9776)
This regressed with the recent addition of RN_* bundles. I was accidentally stripping comments from FB_PROD when I meant to do the opposite. This corrects that mistake.

No significant bundle size change occurs when re-running this build against the version prior to the RN_* bundles.
2017-05-25 16:24:05 +01:00
Toru Kobayashi
cbef3fd412 Warn it only in DEV (#9772) 2017-05-25 07:31:35 -07:00
Danny Hurlburt
1f667fd37f Bind handleChange Instead of Calling (#9764) 2017-05-24 17:26:44 +01:00
Brian Vaughn
c22b94f14a ReactNative flat renderer bundles (#9626)
* Split ReactNativeFiber into separate ReactNativeFiberRenderer module
Hopefully this is sufficient to work around Rollup circular dependency problems. (To be seen in subsequent commits...)

* Split findNodeHandle into findNodeHandleFiber + findNodeHandleStack
This allowed me to remove the ReactNative -> findNodeHandle injections, which should in turn allow me to require a fully-functional findNodeHandle without going through ReactNative. This will hopefully allow ReactNativeBaseomponent to avoid a circular dependency.

* Un-forked findNodeHandle in favor of just inlining the findNode function impl

* takeSnapshot no longer requires/depends-on ReactNative for findNodeHandle
Instead it uses the new, renderer-specific wrappers (eg findNodeHandleFiberWrapper and findNodeHandleStackWrapper) to ensure the returned value is numeric (or null). This avoids a circular dependency that would trip up Rollup.

* NativeMethodsMixin requires findNodeHandler wrapper(s) directly rather than ReactNative
This works around a potential circular dependency that would break the Rollup build

* Add RN_* build targets to hash-finle-name check

* Strip @providesModule annotations from headers for RN_* builds

* Added process.env.REACT_NATIVE_USE_FIBER to ReactNativeFeatureFlags
This is kind of a hacky solution, but it is temporary. It works around the fact that ReactNativeFeatureFlag values need to be set at build time in order to avoid a mismatch between runtime flag values. DOM avoids the need to do this by using injection but Native is not able to use this same approach due to circular dependency issues.

* Moved a couple of SECRET exports to dev-only. Removed SyntheticEvent and PooledClass from SECRET exports. Converted Rollup helper function to use named params.

* Split NativeMethodsMixins interface and object-type

* Add @noflow header to flat-bundle template to avoid triggering Flow problems
When Flow tries to infer such a large file, it consumes massive amounts of CPU/RAM and can often lead to programs crashing. It is better for such large files to use .flow.js types instead.

* NativeMethodsMixin and ReactNativeFiberHostComponent now share the same Flow type

* Collocated (externally exposed) ReactTypes and ReactNativeTypes into single files to be synced to fbsource. ReactNativeFiber and ReactNativeStack use ReactNativeType Flow type

* Build script syncs RN types and PooledClass automatically

* Added optional sync-RN step to Rollup build script

* Added results.json for new RN bundles
2017-05-24 17:06:30 +01:00
Flarnie Marchan
6ac91d24c4 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
e66ba20ad5/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`

**issue:**

* Update results.json

* Run prettier
2017-05-24 07:55:00 -07:00
Flarnie Marchan
e5f4327993 Add #8575 to changelog for 15.6 (#9740)
Just two more items before we will have an RC ready. :)
2017-05-23 15:43:38 -07:00
Dominic Gannaway
0ea4674d08 Adds a ReactNativeInspector API to ReactNativeRenderer (#9691)
* fixed conflicts with master

* splits fiber and stack implementations

* prettier run

* updated fiber implementation based on feedback

* updated fiber implementation for selecting inspector hierarchy

* run of prettier

* fixed flow issues

* updated stack implementation

* fixes an implementation difference where before it wasnt properly understoof

* addresses comments in PR feedback

* updated stack inspector to use emptyObject

* Update ReactNativeFiberInspector.js

Fixes a flow error

* fixes last flow error

* prettier

* applied changes to how viewConfig works for fibers and extracted measure out

* fixed bad paste

* fixes flow errors

* prettyify

* revmoed getComponentName changes

* updated logic for getHostProps and addressed other PR feedback

* improved throwing to invariant and update stack implemenation based on feedback

* prettier
2017-05-23 22:22:21 +02:00
Flarnie Marchan
964c263d8f Downgrade deprecation warnings from errors to warnings (#9650)
* Initial regeneration of results.json

**what is the change?:**
We ran `yarn build` and updated the perf. stats record.

**why make this change?:**
Some commits have landed without updating this. By getting an initial update, I can run the build script again after my changes and see any size regressions.

* 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

* Make state mutations an error, not low-pri warning

**what is the change?:**
Even though this is a "deprecation" warning, we still want to use 'console.error' for it.

**why make this change?:**
- It's not likely to come up now, hopefully, because this warning has been present for some time
- This will cause real issues in production if ignored

**test plan:**
`yarn test` - we did fix one test which failed bc of this change

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

* Fix test of assigning to this.state that was only passing in fiber

**what is the change?:**
updated a unit test for assigning directly to state; it once again raises an error and not a warning.

**why make this change?:**
So that tests pass

**test plan:**
 REACT_DOM_JEST_USE_FIBER=1 yarn run test

**issue:**

* Update results.json
2017-05-23 09:35:42 -07:00
Samuel Hapák
1f80931d32 Add ReactiveConf (#9723) 2017-05-22 16:12:52 +02:00
Erik Hellman
5b7e81579d Move ReactEurope 2017 from Upcoming Conferences to Past Conferences (#9726) 2017-05-22 13:52:46 +02:00
Hikaru Suido
3d6d641a8c Move previous events to the end (#9729) 2017-05-22 11:45:57 +02:00
Ben Alpert
f1abc3cd12 Expose ReactFiberTreeReflection in FB build (#9741)
I need this for some hacky stuff I'm doing (D5060180).
2017-05-21 16:37:17 -07:00
Ben Alpert
f0a0999c3b Add test for key warning at top level (#9473) 2017-05-21 15:39:25 -07:00
Dave Lunny
5cf571839e "Timeline" => "Performance" (#9602)
As of Chrome 58, the Timeline tab is now called the Performance tab, this updates the "Optimizing Performance > Profiling Components with Chrome Performance" section of the docs to reflect that.
2017-05-21 15:28:25 -04:00
Paul Manta
4b53dd0e6b Disable ESLint's no-extend-native for two lines (#9625) 2017-05-20 19:58:23 -04:00
Flarnie Marchan
91459086a9 Add PR #9642 to 15.6 change log (#9649)
Just keeping this fresh.

Issue:
2017-05-20 09:22:07 -07:00
Dan Abramov
bb89c11788 New blog post: What's New in Create React App (#9719) 2017-05-19 05:31:35 +01:00
Dylan Kirby
c1d4c8bc60 fix typo in benchmark docs (#9706) 2017-05-18 19:13:59 -04:00
Billy Shih
6ee701d18a Fix typo (#9717)
The example explaining how redux's connect works doesn't use the same component name. Line 264 references (Comment) while 274 referenced (CommentList). Changed 264 to match 274.
2017-05-18 19:06:29 -04:00
Sebastian Markbåge
39671ba45b Move some tests from failing to passing except dev (#9711)
These throw because we're asserting on the warnings. Make this not throw
so that they instead only fail to assert the warnings.
2017-05-17 23:54:26 -07:00
Sebastian Markbåge
e5e874d0e8 Add package builds for new server renderer and enable tests (#9710)
* Adjust some expectations of the server markup format of Fiber

Currently this case is using the stack renderer.

* Ensure debug hooks are injected into the Stack server renderer

In our tests this normally happens because ReactDOM.js injects them into
the shared module, but when Fiber is enabled or this is its own flat
bundle, that doesn't happen.

* Add package builds for new server renderer and enable tests

ReactServer -> ReactDOMServerStream

This file is going to be the replacement for ReactDOMServer.

I mock ReactDOMServer and user ReactDOMServerStream when we have
the fiber flag enabled. I'm now also enabling this as the default for
distributions builds (react-dom/server on npm and
react-dom-server.production.min.js as umd bundle).

I'm using traverseStackChildren instead of traverseAllChildren because
traverseAllChildren is now only in the isomorphic package and we don't
want to build all of that that into the server package.

I also have to require lower case react for the builds to work.
2017-05-17 17:19:11 -07:00
Tom Occhino
8af729231b Initial Stack-Free SSR Implementation (#9673)
* Server Rendering initial commit

Originally authored by spicyj, tweakes to rebase it and make it run by tomocchino.

Adding ReactDOMServerRendering and a createTagMarkup utility function which will be used in it.

* Fix build system, add shortcut scripts

* Make more ReactServerRendering-test unit tests pass

* Make ReactServerRendering-test pass with copious help from Ben

This is pretty hacky and I just inlined everything, but at least I sort of understand how it works now, and all of the tests are passing. There are also only 68 tests failing in the integration test suite.

* remove some unnecessary cruft

* Run prettier on ReactDOMServerRendering.js

* Fix more unit tests with Ben

* Add support for input and textarea by copy pasting a bunch of code from ReactDOMInput/ReactDOMTextarea

* Fix context unit tests with more copy paste :)

* progress on select

* Holy shit, 100% of ReactDOMServerIntegration tests are passing

* Checkpoint to fix some of the ReactDOMComponent-test tests

* Fix missing checkPropTypes

* Fix some unit tests in ReactDOMComponent-test

* Run prettier on everything, thanks Ben

* get rid of ssr tests that are looking for component file names

* add assertValidProps check

* rename flattenChildren to flattenOptionChildren per Ben

* Fix all the lint crap

* Move things around in the file and turn ReactDOMServerRenderer into a class

* remove changes I added to package.json

* remove separate createOpenTagMarkup file for now since everything should be copy pasted into a single file

* re-record Fiber tests

* Revert ReactDOMServer.js and the fiber tests per Sebastian

This also reverts the changes I made to ReactDOMComponent-test.js which removed the stack which is missing in the new server renderer"

* Rename files based on feedback

Moving src/renderers/dom/server/ReactDOMServerRendering.js to src/renderers/server/ReactServerRenderer.js and add src/renderers/server/ReactServer.js which makes this new codepath completely separate.

* Change throw to invariant, even though we probably need to remove this at some point

* fix prettier.. sigh
2017-05-17 14:53:59 -07:00
Nathan Hunzaker
7deb12fdde Remove invalid css from DOMFixtures (#9600) 2017-05-17 17:22:32 +02:00
Michal Srb
1c449cea34 Make the world a better place by placing closing /> on a new line (#9699) 2017-05-16 15:42:48 -07:00
Toru Kobayashi
17ab69c1ec [Fiber] Fix to call deferred callbackQueue even if updates are aborted (#9634)
* Fix to call deferred callbackQueue even if updates are aborted

* Add an assertion to make sure the update processed, but wasn't committed yet
2017-05-12 10:45:51 -07:00
Flarnie Marchan
0f129973ea Move 'lighthouse' and 'nodegit' to 'optionalDependencies' (#9675)
**what is the change?:**
See title.

**why make this change?:**
Both these dependencies were causing issues when working on React internally at
FB.

'lighthouse' requires node >=6 and we don't want to folks working on React to
using that version of node.
https://github.com/GoogleChrome/lighthouse/blob/master/package.json#L11

'nodegit' for me throws an error related to libssh2 and it's annoying to make
this work in every OS. See https://github.com/nodegit/nodegit/issues/1266

**test plan:**
`npm/yarn install`
Runs with no errors on my CentOS machine and also on MacOSX laptop.

**issue:**
This is blocking work related to https://github.com/facebook/react/issues/9398
2017-05-12 15:41:30 +01:00
Ben Alpert
f0df495f9a Run prettier on scripts/bench (#9671) 2017-05-11 16:14:17 -07:00
Ben Alpert
e736b4c4b9 "yarn prettier" only checks changed files (#9670)
CI still checks all of them.
2017-05-11 14:47:29 -07:00
Tom Occhino
fe750c9d5d Move assertValidProps into shared/utils since it will be used by the … (#9669)
* Move assertValidProps into shared/utils since it will be used by the server renderer

* Extract getCurrentOwnerName from assertValidProps and pass it in
2017-05-11 14:43:35 -07:00
Flarnie Marchan
bec0f736df Wrap fiber-only test in feature flag (#9665)
**what is the change?:**
A test was added for a change to Fiber's behavior in #9608, and because of a
bug in our CirclCI script it landed when failing for non-fiber runs of the
tests.

This just wraps the test in a feature flag because it seems clear it was
only intended to test the new fiber behavior.

Thanks to @gaearon for pairing on this! :)

**why make this change?:**
So that tests are passing on master.

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

**issue:**
None - figured it out before anyone opened an issue afaik.
2017-05-11 13:32:04 +01:00
Dan Abramov
cc2450b7bf Always pass error code to CI (#9663) 2017-05-11 13:13:01 +01:00
shifengchen
d7e6ef0f88 Edit two errors in docs (#9659) 2017-05-11 11:34:35 +01:00
Tom Occhino
ffcbb0bfc2 Move small utility modules out of ReactDOM(Fiber)?Component (#9658)
* Move small utility modules out of ReactDOM(Fiber)?Component

These are all going to be needed in the server renderer, so I'm moving them out now so I can use them from in there.

* Fix `didWarnShadyDOM = false;` line
2017-05-10 22:01:48 -07:00
Philipp Spieß
b48107ed57 Remove injectReactDOMEventListener from ReactBrowserEventEmitter (#9656)
* Remove injectReactDOMEventListener from ReactBrowserEventEmitter

This PR removes the injection of ReactDOMEventListener from
ReactBrowserEventEmitter. Instead, the required initialization will
happen directly in ReactDOMInjection.

This injection was (probably) originally implemented for React Native
but never used, so we can clean it up.

* Mention how to see the full ouput of fiber tests
2017-05-10 17:05:38 -07:00
Carolina Powers
7c1e971e7f Fix typo on tutorial.md. (#9644)
The absence of the word `this` will cause CodePen
to scream at you. This fix should avoid that.
2017-05-10 08:23:53 +01:00
Dan Abramov
c1ba8ef264 Mention new fixes for addons in Changelog (#9643) 2017-05-10 01:03:34 +01:00
Philipp Spieß
c0e32a1b03 Rename ReactEventListener to ReactDOMEventListener (#9640)
`ReactEventListener` is a DOM-specific module although the name suggests
otherwise. This change renames the module to the more specific
`ReactDOMEventListener`.
2017-05-09 16:17:03 -07:00
Dan Abramov
831fd6940e Sync RN downstream fix (#9637) 2017-05-09 20:29:37 +01:00
Flarnie Marchan
7842ff97c2 Add PR #8356 to the change log for v15.6 (#9636)
Another change log update ~ v15.6 is closer than ever! :)

Issue:
2017-05-09 18:54:45 +01:00
Flarnie Marchan
e249c935ed Add PR #9584 to 15.6 change log (#9598)
Updating the change log~ :)

**issue:**
https://github.com/facebook/react/issues/9398
2017-05-09 18:22:17 +01:00
Dominic Gannaway
a7d8ebd2b5 Add React benchmarking infrastructure (#9465)
* Initial commit for WIP benchmarking infrastructure

* fixed lint issues and ran prettier

* added <rootDir>/scripts/bench/ to ignore paths for Jest

* tidied up code and fixed a few bugs in the runner.js

* fixed eslint

* improved the benchmark output from the runner

* fixed typo

* tided up print output in runner.js

* throw error if chrome canary is not installed on mac

* added better bench stats output (tables)

* added benchmark diff to table results

* adds bundle size comparisons to results

* tidied up the results

* fixed prettier output

* attempt to trigger bech for circleci build

* fixes flow exlclusion for lighthouse module

* added class components benchmark

* cleaned up stats.js

* stability changes

* circleci node version to 7

* added another benchmark

* added colours to the different benchmarks to check if being cached

* force no-cache headers

* added more info messages

* refactor chrome launching.

* fixed an issue where launcher.kill might fail

* Move server to runner. Launch it only once.

* tidy up

* changes the logic in how the remote repo is checked out

* removes bench from circleci build

* removed colors from benchmarks (no longer needed)

* added CI integration comment

* added hacker news benchmark

* added skipBuild functionality

* relabelled remote

* Add confidence intervals

* added first meaningful paint

* removed some unused code

* reverted code.json

* updated benchmark runs back to 10

* no longer breaks when results contain missing bundles

* adds CPU throttling

* renamed build to remote-repo

* small fix to build

* fixed bad merge

* upped runs to 10 from 2 again

* properly pulls master

* removes old-bench

* runs benchmarks in headless mode

* adds a --headless option

* improved the git build process

* added README

* updated based feedback from review

* adds merge base commit sha

* addressing more PR feedback

* remove built JS react files

* updated .gitignore

* added combined bundle load times to the metrics
2017-05-09 17:13:54 +01:00
Ben Alpert
542dac4a23 Fix return value of ReactDOMFiber.unmountComponentAtNode (#9619) 2017-05-05 17:54:53 -07:00
Andrew Clark
767a5d60e8 updateQueue -> newUpdateQueue
Fix typo introduced after renaming a variable to address shadowing.
2017-05-05 14:21:17 -07:00
Andrew Clark
628b82c808 Allow assigning to this.state inside componentWillMount, with a warning 2017-05-05 14:03:29 -07:00
Andrew Clark
1232666590 Don't recreate instance when resuming a class component's initial mount
Recreating the class instance causes refs (and other callbacks) to close
over stale instances.

Instead, re-use the previous instance. componentWillMount is called
again. We also call componentWillReceiveProps, to ensure that
state derived from props remains in sync.
2017-05-05 14:03:29 -07:00
Dan Abramov
6facb85f85 Fix horizontal scrolling in docs (#9613) 2017-05-05 18:03:39 +01:00
Dan Abramov
138ff5e46b Fix sequencing in the Tutorial (#9615)
* Fix sequencing in the Tutorial

* Update tutorial.md

* Update tutorial.md
2017-05-05 18:02:13 +01:00
Andrew Clark
824e991241 Update flow to 0.45 (#9603) 2017-05-04 11:31:14 -07:00
Dan Abramov
943367faa7 Tweak Tutorial based on feedback 2017-05-04 00:30:12 +01:00
Nathan Hunzaker
6875fa867f 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 13:37:56 -05:00
Flarnie Marchan
50a60dbe74 Add 'unreleased' incremental change log for v15.6.0 (#9544)
* Add 'unreleased' incremental change log for v15.6.0

**what is the change?:**
Adding a section to the change log where we start accumulating
annotations for React v15.6.0.

**why make this change?:**
- Saves us the trouble of writing the change log entry all at once when
  we do the release.
- Adds transparency about what is in the upcoming release, for those who
  aren't following https://github.com/facebook/react/issues/9398

**test plan:**
Visual inspection

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

* Minor tweaks to v15.6.0 changelog annotation

**what is the change?:**
- added missing `#` for commit hashes
- added minor details to two annotations

Thanks to @gaearon for the code review comments.

**why make this change?:**
Consistency and clarity.

**test plan:**
Visual inspection

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

* Remove hashes from commit numbers

**what is the change?:**
We had added hashes to some commit numbers, but ideally only do that
for PRs.

**why make this change?:**
Consistency - this is how github displays those types of links too. PRs
get a '#', and commits don't.

**test plan:**
Visual inspection

**issue:**
https://github.com/facebook/react/issues/9398
2017-05-03 09:00:36 -07:00
Dan Abramov
2b7012ffb0 Fix mobile layout 2017-05-03 15:39:02 +01:00
Dan Abramov
ac00e849fd Fix a typo 2017-05-03 15:04:25 +01:00
Dan Abramov
e6c0ac9a0a Use a more specific link 2017-05-03 11:04:18 +01:00
Addy Osmani
f86256ece0 Add DEV mode note to installation doc (#8784) (#9157)
* Add DEV mode note to installation doc (#8784)

* Address feedback from Dan on wording
2017-05-03 11:03:04 +01:00
Dan Abramov
185db64c76 Add more info about building for production (#9592)
* Add more info about building for production

* Add more info to the docs
2017-05-03 11:01:53 +01:00
Andrew Clark
535afaf759 16.0.0-alpha.12 2017-05-02 14:26:42 -07:00
Dan Abramov
ba72c99183 Report version and bundle type to DevTools (#9586)
* Report version and bundle type to DevTools

* Flip the flag the other way around

It's easier to remember 0 is always PROD, and 1 is like DEV flag. 2 could be PROFILE in the future.

* Add version to RN inject call
2017-05-02 20:34:10 +01:00
Joe Critchley
109d1c95e3 [Docs] Show the name 'React' first in the homepage's <title> (#9582) 2017-05-02 14:22:24 +01:00
Dan Abramov
45dbcfb67d Add missing passing test 2017-05-02 14:22:09 +01:00
Andrew Clark
4d8174480c Only perform class checks on initial mount
Avoids firing warnings multiple times
2017-05-01 15:53:19 -07:00
Andrew Clark
9145f40eb8 Fix bug where null props is passed to constructor when resuming mount
Another example of where the pending/progressed/memoized props model
would benefit from a refactor.
2017-05-01 15:53:19 -07:00
Andrew Clark
ae4fa9ad94 Demonstrate failing test when resuming mount of class component 2017-05-01 15:53:14 -07:00
Dan Abramov
8dcf9c7be7 Change warning casing (#9573)
* Change warning casing

* Update ReactFiberClassComponent.js

* Update ReactCompositeComponent.js
2017-05-01 21:51:47 +01:00
Andrew Clark
b1384062d2 Move AsyncUpdates flag check to class-only path (#9570) 2017-05-01 13:23:54 -07:00
Andrew Clark
835c21a5ef Don't prevent extensions on Fiber if using bad Map polyfill (#9572)
Many Map polyfills work by adding an extra field to the key type.

In the future, we'll likely print a warning.
2017-05-01 13:23:37 -07:00
Abhay Nikam
1f5693ec67 Warning message updated if defaultProps were defined as an instance property (#9493)
* Updated the warning message for setting defaultProps on instance property.

* Updated the testcases for the defaultProps warning.

* Updated the warning message for defaultProps set on instance property.
2017-05-01 13:30:40 -05:00
Dan Abramov
ca4250a1e0 Remove unnecessary # in changelog 2017-05-01 18:32:08 +01:00
Frankie Bagnardi
e9d6f3f10e [Tutorial] Make it easier to follow the instructions (#9454)
* tutorial: adds note about onClick

* tutorial: show full square component

* merge

* fixes line number

* tutorial: misc changes

* fixes Board render initial code sample

* [tutorial] adds codepen links and misc small fixes

* removes useless arrow functions, #9531

* {this.renderSquare} new lines

* be more explicit about history state

* fixes highlight

* following along locally

* changes todo to this.props.value

* removes calculateWinner from initial codepens and includes it in tutorial

* removes note about calculateWinner at end of file

* adds debug-view and debug-view-final

* removes debug view, updates codepen instructions

* adds another codepen

* tutorial.md

* tutorial.md

* tutorial.md

* tutorial.md

* Put . into links for consistency with docs

* Make the very first change easier to follow

* A few more changes
2017-05-01 17:22:26 +01:00
Flarnie Marchan
2e053a5be3 fix typos in CHANGELOG 2017-05-01 09:01:36 -07:00
Flarnie Marchan
0549c4506f Update Changelog for v15.5.1-15.5.4 (#9537)
* Update Changelog for v15.5.1-15.5.4

This could really use extra code review attention since the history of
these changes was a bit convoluted to follow.

After talking to @bvaughn and @acdlite, we thought it might make sense
to put the 'add-ons' changes in a separate change log. The other option,
of including them in the main React change log, seemed the more
confusing of the two.

Also this commit is related to and somewhat blocked by
https://github.com/reactjs/prop-types/pull/40

**what is the change?:**
Adding the change log for recent patch versions of React.

**why make this change?:**
We missed this step in the flurry of releasing patches, and it's useful
for folks who want info about what version to use.

**test plan:**
Visual inspection of the change log.

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

* Further improve CHANGELOG entries for v15.5.1-15.5.4

**what is the change?:**
- Use the '[@author] in [#PR/commit]' format for annotations
- Make annotations less technical, more clear
- Move 'React Addons' updates into main changelog
- Remove separate 'React Addons' changelog

**why make this change?:**
These changes each make things more clear and accurate.

**test plan:**
Visual inspection

**issue:**

* Fix final nits in CHANGELOG

**what is the change?:**
- Put backticks around package names
- Reformat link to to commit in '([@user](...) in [#NNNN](...))' format
- Remove newlines after subheaders; in the past we sometimes have
  included a newline after the subheader, but most recently it looks
  like we do not.
- Add some missing punctuation.

**why make this change?:**
Consistency and aesthetics

**test plan:**
Visual inspection

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

* Add deprecation notice to v15.5.0-15.5.3

**what is the change?:**
Adding deprecation notice to some recent React versions.

**why make this change?:**
These versions of React use a version of `prop-types` that had a
critical bug. We updated the dependency in React 15.5.4, and hopefully
people will see this notice and update.

**test plan:**
Visual inspection

**issue:**
https://github.com/facebook/react/pull/9537
2017-05-01 08:59:42 -07:00
Dan Abramov
f217228326 Clarify where docs live 2017-05-01 13:39:10 +01:00
Marcos Ojeda
f737d63302 docs better indicate that state updaters shallowly merge with state (#9554)
this was a surprise to me because the docs seemed to indicate that when
using an updater, the result _needed_ to be a new state object. I was
[not alone](https://twitter.com/ken_wheeler/status/857939690191806464)
i think in discovering this as a result of the previous tweet in the
thread.
2017-04-30 17:40:22 -07:00
Ben Alpert
f677bfc964 Fix __proto__ bug in ReactDOMSelect (#9536)
https://twitter.com/rauschma/status/857307345231249409
2017-04-29 08:23:00 -07:00
Sebastian Markbage
50d6f9656d Don't try to load asset manifest in dev mode
We're not going to use it so don't try to load it since it may not have
been built yet.
2017-04-27 21:57:01 -07:00
Sebastian Markbåge
b9da1741cb SSR fixture (#9547)
Adds a server-rendering fixture based on create-react-app without ejecting.

This is using the full-page strategy because I wanted to flush out any issues with it. Turns out there's a lot of little things that are fixable and some non-fixable. This actually surfaced some differences between the current strategy and the one I had in mind.

This uses the asset manifest from webpack to pass the final URLs to the client. This ensures that we can render the same exact mark up on the client - including the URL to our own script that we're running in.

Doing full document renders work with 15.x as long as the checksum matches. However, with the patch up reviving strategy I had in mind it would end up removing the CSS tags that webpack injects before running our render call. This is a behavior change.

In dev mode the server runs a proxy in front of the normal CRA webpack server so that we can replace the HTML request for the root page.

I don't know what the best way to link in the react and react-dom packages. Each fixture has a different strategy so here's another one. Just add NODE_PATH=../../build/packages in front of all commands.
2017-04-27 21:03:32 -07:00
Manas
182642b2ea Fiber ReactDOM shouldn't throw on import in Node environment if it's unused (#9389)
* Fixes #9102 by fake polyfilling rAF (and rIC)

* Ensure we restore globals even if test fails + minor nits

* Remove periods
2017-04-27 13:13:03 +01:00
Sriram Thiagarajan
70c01963d9 pre format only compile time errors (#9538)
* pre format only compile time errors

* Style tweak
2017-04-27 11:49:34 +01:00
Andrew Clark
0e3280e2c6 includes -> indexOf 2017-04-26 18:10:27 -07:00
Andrew Clark
1fd582ba20 Fix unnecessary ReactDOM require (#9534)
Apparently, when you mark something as external in Rollup, a require
statement is inserted even if the module isn't used. This is causing
ReactDOM and several other modules to be inserted unnecessarily.

We need a better fix for this, but I'm pushing this quick fix for
now since it's blocking sync to www.
2017-04-26 18:07:53 -07:00
lamo2k123
48479438a3 Completely remove Object.prototype.hasOwnProperty.call() (#7853)
* Avoid directly calling hasOwnProperty

* correct use hasOwnProperty

* added eslint rules `no-prototype-builtins` http://eslint.org/docs/rules/no-prototype-builtins

* single style hasOwnProperty

* added file info /* global hasOwnProperty:true */

* added file info /* global hasOwnProperty:true */

* fixed no-prototype-builtins after merge

* yarn run prettier fixed

* remove src/addons

* return space after *

* remove /* global hasOwnProperty:true */

* Removed using Object.prototype.hasOwnProperty.call()

* yarn run prettier fixed

* Removed using Object.prototype.hasOwnProperty.call()
2017-04-26 20:30:38 +01:00
wacii
1816d06d6b Add guide on integrating with non-react code (#9316)
* Add guide on integrating with non-react code

* Capitalize guide title

* Make links to other docs relative

* Rephrase 'What it does do'

* Remove experimental syntax

* Capitalize Backbone

* Remove empty lifecycle method in generic jQuery example

* Use shouldComponentUpdate() not componentWillUpdate()

* Prefer single quotes

* Add cleanup to generic jQuery example

* Capitalize React

* Generalize the section on Backbone Views

* Generalize the section on Backbone Models, a little

* Add introduction

* Adjust wording

* Simplify ref callbacks

* Fix typo in generic jQuery example

* Fix typos in Backbone models in React components

* Fix more typos in Backbone models in React components

* Add generic section on integrating with other view libraries

* Stress the benefits of an unchanging React element

* Small changes to introduction

* Add missing semicolon

* Revise generic jQuery wrapper section

Moved the section on using empty elements to prevent conflicts above the
code example and added brief introduction to that example.

* Add usage example for Chosen wrapper

* Prevent Chosen wrapper from updating

* Note that sharing the DOM with plugins is not recommended

* Mention how React is used at Facebook

* Mention React event system in template rendering section

* Remove destructuring from function parameters

* Do not name React components Component

* Elaborate on unmountComponentAtNode()

* Mention preference for unidirectional data flow

* Rename backboneModelAdapter

* Replace rest syntax

* Respond to updated model in connectToBackboneModel

* Rewrite connectToBackboneModel example

* Rework connectToBackboneModel example

* Misc changes

* Misc changes

* Change wording

* Tweak some parts
2017-04-26 17:24:22 +01:00
RSG
9824d52a4c React.createElement syntax (#9459)
* React.createElement syntax

Added React.createElement syntax.
I think this is required for this tutorial.

* Reword
2017-04-26 14:25:40 +01:00
Tetsuya Hasegawa
d6cc1d1755 Remove outdated Troubleshooting section (#9489)
* fixed a simple typo in README.md troubleshooting section

* Remove the troubleshooting section
2017-04-26 14:14:07 +01:00
Sriram Thiagarajan
7ccfb07337 fixed error formatting in live editor (#9497) 2017-04-26 14:06:53 +01:00
Daniel Lo Nigro
cf24d87177 [site] Load libraries from unpkg (#9499)
* [site] Load libraries from unpkg

* Revert Gemfile changes
2017-04-26 14:02:50 +01:00
chocolateboy
3d60d4cc7d [Docs] Fix confusing description for the <script>...</script> usage (#9502)
* Fix confusing description for the <script>...</script> usage

* Update jsx-in-depth.md

* Update reference-react-dom-server.md

* Update reference-react-dom.md

* Update reference-react.md
2017-04-26 13:57:22 +01:00
Dmitri Zaitsev
a8c223ab41 Add reference to the Hyperscript libraries (#9517)
* Add reference to the Hyperscript libraries

I feel these should be mentioned as they provide terser syntax than using `R.createElement` directly, even with a shorthand.

* Rephrase
2017-04-26 13:54:31 +01:00
Mateusz Burzyński
dce3c28ccb Prevent process polyfill to be included in builds because of process guards preventing code replace (#9518) 2017-04-26 13:47:35 +01:00
Dominic Gannaway
71f201b5c3 updates yarn.lock (#9530) 2017-04-26 13:43:36 +01:00
Frankie Bagnardi
14fa8a5452 adds indirect refs to docs (#9528)
* adds indirect refs to docs

* Add more info

* Explain clearer

* Rephrase

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md

* Update refs-and-the-dom.md
2017-04-26 13:40:09 +01:00
Andrew Clark
8ba820a699 Use prop-types instead of prop-types factory (#9526)
Latest versions of prop-types don't depend on React, so the factory is
not necessary, and in fact bloats the build because it is intended for
15.5 and so doesn't strip out the checkers in prod.
2017-04-25 14:32:27 -07:00
Andrew Clark
09a9c646fd Rename react-dom to ReactDOM in Facebook www (#9525) 2017-04-25 13:30:48 -07:00
Brian Vaughn
81336fd8ce Prettier 2017-04-25 10:19:06 -07:00
Benedikt Meurer
0e587c1a8e Improve component type check in getComponentKey. (#9464)
* Improve component type check in getComponentKey.

The sequence
```
component && typeof component === 'object'
```
checks whether component is any JavaScript object except document.all.
Since document.all cannot occur here, this can be replaced with the
usual
```
typeof component === 'object' && component !== null
```
sequence, which yields true for all JavaScript objects and is well
optimized by all JavaScript engines.

* Run yarn prettier.
2017-04-25 09:39:30 -07:00
Nathan Hunzaker
a9d0deb8e1 Consolidate events between EventConstants and BrowserEventEmitter (#9512) 2017-04-25 09:24:10 -07:00
Maciej Kasprzyk
d12c41c7a6 Describe fixtures dir in the codebase overview (#9516)
* Describe fixtures dir in overview

* Fix folder name
2017-04-25 10:25:32 +01:00
Brian Vaughn
2905e56904 Bumped version numbers and built 16.0.0-alpha.11 2017-04-24 18:52:10 -07:00
Brian Vaughn
e71b3087c8 Added stack renderer to react-test-renderer bundle temporarily (#9514)
Also fixed an error in a temporary export property that had been added to the React object
2017-04-24 18:45:43 -07:00
Andrew Clark
4cbadd3fb6 Prettier 2017-04-24 17:19:38 -07:00
Andrew Clark
b61f060044 ReactARTStack should use ReactDOM's ReactUpdates (#9515) 2017-04-24 17:03:12 -07:00
Nathan Hunzaker
86dd083f45 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-04-24 08:08:17 -07:00
Jen Wong
c8a64e2637 Updates how-to-contribute.md to use JSFiddle referenced in submit Git issue template (#9503) 2017-04-23 18:03:11 -05:00
Paul O’Shannessy
bcb6f0eac4 Don't build gh-pages branch on CircleCI (#9442) 2017-04-22 22:33:43 +01:00
Flarnie Marchan
39ca8aacf8 Add link to 'Typechecking with PropTypes' under 'Advanced Guides' (#9472)
This should have been retained in our docs, since PropTypes are only
moved and not deprecated.

Partially handles #9467, and I'll make a separate PR to
https://github.com/reactjs/prop-types to add more docs to the README
there.
2017-04-22 10:41:39 -07:00
Brian Vaughn
9d225b5a44 Stop passing prevContext param to componentDidUpdate (#8631) 2017-04-21 13:15:22 -07:00
Soo Jae Hwang
ec527cc834 [WIP] Warn in dev if shouldComponentUpdate is defined on PureComponent (#9240)
* Add test for React.PureComponent

* Add warning when shouldComponentUpdate is declared in a PureComponent

* Add actionable warning

* Add warning in Fiber

* Format added code by running yarn prettier

* Move pure sCU check to checkClassInstance

That way it warns before the component updates
2017-04-21 09:55:16 -05:00
Abhay Nikam
5518bd44a9 Warning added if defaultProps were defined as an instance property (#9433)
* Added warning when defaultProps was defined as an instance property

* Added testcases to check warning message for defaultProps

* Update fiber tests
2017-04-21 09:46:19 -05:00
Vitaliy Potapov
895dca587b Warn about Infinity in style value (#9360)
* warn about Infinity in style value

* prettier
2017-04-21 09:41:43 -05:00
Roman Matusevich
6dfb65a121 Remove Prev Next links from add-ons documentation (#9226) 2017-04-21 15:31:17 +01:00
David Hu
f5144121f9 Add more details in jsx-in-depth.md (#9006)
* jsx-in-depth.md add ternary statement for javascript expressions section

* jsx-in-depth.md add explanation to get falsey values for props

* update jsx-in-depth.md

* ensure links work locally, remove section about falsey prop values

* Fix links
2017-04-21 15:27:39 +01:00
Benton Rochester
217d271032 Ignoring files for vim users. (#9199) 2017-04-21 15:25:34 +01:00
Brandon Dail
42bc28bbfd 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-04-20 15:25:39 -05:00
Brian Vaughn
41290742e6 Bumped version numbers for alpha 10 (#9474) 2017-04-20 13:06:51 -07:00
Brian Vaughn
73ca89408b Updated PropTypes test to work with newer prop-types version (#9471)
The prop-types lib got an anti-spamming change in 15.5.8 that broke some of our tests (see reactjs/prop-types/commit/e1d51dd0efbd0eee5e4a8d24759f2a4d518721d3). This PR resolves that by resetting the prop-types import between tests.
2017-04-20 12:48:53 -07:00
Andrew Clark
28bc8860bc Run prettier after update to 1.2 in master 2017-04-20 11:39:04 -07:00
Andrew Clark
b4d77b98ed Fix subtree tests so that async component is not top-level 2017-04-20 11:38:13 -07:00
Andrew Clark
9b676a7d0b Remove enableAsyncSubtreeAPI from host config
Use a ReactFeatureFlag instead. It won't be per-renderer, but we likely
won't need that.

When enableAsyncSubtreeAPI is false, unstable_asyncUpdates is ignored,
but does not warn or throw. That way if we discover a bug in async mode,
we can flip the flag and revert back to sync without code changes.
2017-04-20 11:38:13 -07:00
Andrew Clark
0c896ffe6b Change unstable_asyncUpdates from an instance to a static property
This lets us check for its existence before the instance is constructed.

Also works with functional components.
2017-04-20 11:38:13 -07:00
Andrew Clark
488b973d68 Use number type for bitfields
Unions don't enumerate all the possible combinations of bitfields. I'm
not actually sure why this was type-checking before.

number doesn't provide much safety but it's more correct.
2017-04-20 11:38:13 -07:00
Andrew Clark
f69748601d Remove unstable_asyncRender() API in favor of always using a wrapper 2017-04-20 11:38:13 -07:00
Andrew Clark
abd07dffb3 Rename contextTag -> internalContextTag 2017-04-20 11:38:13 -07:00
Andrew Clark
26d70fd334 Add enableAsyncSubtreeAPI to host config
Allows us to control this feature on a per-renderer basis
2017-04-20 11:37:18 -07:00
Andrew Clark
864973c544 Run Fiber test script 2017-04-20 11:37:18 -07:00
Andrew Clark
ada638a064 Run prettier 2017-04-20 11:37:18 -07:00
Andrew Clark
609e97ebe7 instance.unstable_asyncUpdates = true creates an async subtree
Same behavior as unstable_asyncRender. Can be used to wrap a specific
subtree, rather than an entire root.
2017-04-20 11:37:18 -07:00
Andrew Clark
3bf398bcbc ReactDOM.unstable_asyncRender creates an async-by-default tree
The default priority of updates in a async tree is LowPriority, rather
than SynchronousPriority.

Warns if you call unstable_asyncRender on a tree that was created with
the normal, sync ReactDOM.render.
2017-04-20 11:37:18 -07:00
Andrew Clark
6f8fec4b80 Use different default priority depending on the AsyncUpdate context flag
- A priority context of NoWork represents the default priority
- Changed the signature of getPriorityContext to accept the fiber that
is about to be updated.
2017-04-20 11:36:35 -07:00
Andrew Clark
1b388366c1 Inherit contextTag from the parent on creation
A fiber has all the context flags of its parent. It may also add
additional ones during construction/mount. After mounting, contextTag
shouldn't change.
2017-04-20 11:35:08 -07:00
Andrew Clark
f1df675b93 Add contextTag field to Fiber type
contextTag is a bitmask that describes properties about the fiber
and its subtree. For example, the AsyncUpdates flag indicates whether
the subtree should use async scheduling.

When a fiber is created, it inherits the bitmask of its parent.
2017-04-20 11:35:08 -07:00
Eric Sakmar
648822952f Adds CSS Grid properties to list of unitless numbers (#9185) 2017-04-20 11:20:15 -07:00
Ben Alpert
b1768b5a48 Prettier 1.2 (#9462) 2017-04-20 11:18:33 -07:00
Ben Alpert
32480a0462 Add component stack to invalid-object-child error (#9415)
https://twitter.com/EsaMatti/status/835952325525188608 (28 likes!)
2017-04-20 09:49:46 -07:00
Dan Abramov
e59506c478 Bump prop-types 2017-04-20 16:40:58 +01:00
Almero Steyn
a92128e7fb [Docs: Installation] Fix tabs responsive layout - Resubmit (#9458)
* [Docs: Installation] Fix tabs responsive layout

* Move tabs a pixel down

* Remove left margin on first tab

* Remove the long line

* Fix mobile styles
2017-04-20 11:49:48 +01:00
Brian Vaughn
9bb7ca5001 Fix master (ran prettier) 2017-04-19 19:03:04 -07:00
Brian Vaughn
66f2097f33 Shallow renderer and test utils bundles (#9426)
Shallow renderer and test utils bundles

Adds new bundles introduced with React 15.5 release to master (and 16 alpha)

react-dom/test-utils:

This new bundle contains what used to be react-addons-test-utils. This bundle shares things from react-dom rather than duplicates them.

A temporary createRenderer method has been left behind as a way to access the new shallow renderer. This is for the ReactNative release cycle only and should be going away before the final release.

react-test-renderer/shallow:

This new shallow renderer is almost entirely stand-alone (in that it doesn't use the React reconciler or scheduler). The only touch points are ReactElement and prop/context validation. This renderer is stack and fiber compatible.
2017-04-19 16:45:31 -07:00
Ben Alpert
53dbb191d6 Uncomment invariant in UIManager mock (#9461) 2017-04-19 16:28:59 -07:00
Brian Vaughn
8782ab759e Fix CI failures in master (#9455)
* Ran prettier over UIManager mock
* Temporarily disabled an invariant() in UIManager mock that was breaking tests
* Updated Fiber passing tests
2017-04-19 08:59:40 -07:00
Flarnie Marchan
3e48422fdc Warn for keys in fragments - third approach (#9445)
* Fix tests to pass when we warn for missing keys in fragments

In most cases we just needed to add the 'key' prop.

This ignores the tests which are already failing on master when running
with ` REACT_DOM_JEST_USE_FIBER=1` - there are 8.

All tests should now pass with `npm run test`, and the 8 which fail when
running `REACT_DOM_JEST_USE_FIBER=1 npm run test` are the same 8 which
are failing on master.

* Added missing key warning for children in array fragments

After trying twice to reuse the code between the ReactChildFiber and
ReactElementValidator, I am thinking that it's simpler to just have some
duplication of code. The parts that are shared are interleaved with
parts which cannot be shared, either because of singleton modules that
must be required differently in 'isomorphic' and the 'renderers', or the
fact that 'warning' requires a hard coded string.

Test Plan:

- Added test to ReactChildren-test
- Manually tested via fixture that was not committed.

* commit updated "scripts/rollup/results.json"

* Make 'ReactChildren-test' more specific, and remove unneeded nesting

Based on helpful tips from @spicyj and @aweary's review
 - Made the unit test for the warning on missing keys more specific
 - Removed unneeded nesting in the code which generates missing key
   warning
 - Change test syntax to use JSX to be more consistent

Also fixes flow warning.

* Commit update of scripts/rollup/results.json

* run "scripts/fiber/record-tests"
2017-04-19 08:05:04 -07:00
Almero Steyn
9526174e30 [Docs] Add accessibility to tabs in installation documentation (#9431)
* Add accessibility to tabs in installation documentation

* Change color and fix styling
2017-04-19 12:31:39 +01:00
Joel Denning
233195cb6b Fixing the instantiation of customized builtin elements (related to custom elements) (#9313)
* Fixing the creation of customized builtin elements

* Whitespace

* Running prettier

* Updating ReactDOMFiberComponent
2017-04-19 12:07:16 +01:00
Fabrizio Castellarin
1ce562ead3 Reorganize the "following along" instructions (#9453)
* Reorganize the "following along" instructions

* Minor tweaks
2017-04-19 12:00:15 +01:00
Ben Alpert
b392f1e2fc Fix errors in React Native children management (#9449)
* Fix errors in React Native children management

- Support using appendChild to move an existing child (Fiber does this, but we were assuming all children here were new; Yoga throws if you insert a child that already has a parent)
- Calculate beforeChildIndex after removing old child (previously, off by one when the new position is later than the old position)

* Add better children management tests for RN
2017-04-18 17:31:33 -07:00
Filip Hoško
10eaf26809 FIX: Move CRA build info under it's tab page (#9452)
* FIX: Move CRA build info under it's tab page

* Add some links
2017-04-18 18:17:28 +01:00
Dan Abramov
c5783901a8 Tweak tutorial structure 2017-04-18 18:07:16 +01:00
Dan Abramov
7b80361b6b Add missing tutorial sidebar links 2017-04-18 18:00:54 +01:00
Dan Abramov
a41d469bcf Minor tutorial nits 2017-04-18 17:53:53 +01:00
Dan Abramov
a7f124f48f Fix duplicate sentence 2017-04-18 17:44:32 +01:00
Dan Abramov
da124f2fb1 Minor tweaks to tutorial 2017-04-18 17:40:59 +01:00
Frankie Bagnardi
8417534bd0 [Tutorial] ES6, installation, and button closing tag (#9441)
* adds notes to tutorial on es6 and installation

* fixes tutorial mention of opening button tag

* More writing

* Update
2017-04-18 17:34:43 +01:00
Abhishek Soni
d724115144 Fixed grammar (#9432)
* Update codebase-overview.md

* Some more fixes
2017-04-18 16:38:39 +01:00
hanumanthan
53a3939fb0 Lift state up - Updating the documentation to mention that onClick is a synthetic event handler (#9427)
* Lift state up - Updating the documentation to mention that onClick is a synthetic event handler

* Review comments - Rephrase to handle synthetic events and event handler patterns

* Tweak
2017-04-18 16:27:45 +01:00
Michał Ordon
37f9e35ad9 Sort out conferences by date (#9172) 2017-04-18 15:38:19 +01:00
Jayen Ashar
ccb38a96cf Update jsx-in-depth.md (#9178)
* Update jsx-in-depth.md

Line 9 isn't changed

* Move selection down

* Fix
2017-04-18 15:29:17 +01:00
Fraser Haer
363f6cb2e5 Unique headings for linking purposes (#9259)
Previously two headings were 'Javascript Expressions' - now 'Javascript
Expressions as Props' and 'Javascript Expressions as Children'
2017-04-18 14:47:44 +01:00
NE-SmallTown
359f5d276f [Documentation] Impreove the react-component section of doc (#9349)
* Impreove react-component of doc 

[#9304](https://github.com/facebook/react/issues/9304)

* update description

* add missing space
2017-04-18 14:42:40 +01:00
Chris Pearce
f6c4fe6cbb 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-18 14:31:47 +01:00
Sung Won Cho
ac9d698636 Make nodeType into constant for readability and reuse (#9113)
* Make nodeType into constant for readability and reuse

* Fix eslint line length warning

* Delete unused nodeType values

* Destructure HTMLNodeType constant

* Make nodeType into constant for readability and reuse

* Fix eslint line length warning

* Delete unused nodeType values

* Destructure HTMLNodeType constant

* Fix test

* Format using prettier
2017-04-15 18:37:12 +01:00
Ben Alpert
7bf686b76f Add component stack to ReactControlledValuePropTypes (#9435) 2017-04-14 19:50:43 -07:00
Ben Alpert
1447d9f1ae Add component stack to uncontrolled-to-controlled warning (#9416)
https://twitter.com/JulianVModesto/status/836089555304448000
https://twitter.com/abevoelker/status/836040051993763842
2017-04-14 16:57:47 -07:00
Arshabh Kumar Agarwal
f54fdd5441 Add warning if rendering and HTMLUnknownElement (#9163)
* Add warning if rendering and HTMLUnknownElement

* Records fiber tests

* Fixes linting and server render tests

* Incorporates review comments

* Uses ownerDocument instead of document

* uses el instead of creating a new element

* Removes warning check of voidElementTags

* Add missing space to unknown element warning

* Only call isCustomComponent once

* Spy on console in menuitem test

Since menuitem is treated as an unknown element in jsdom it triggers the unknown element warning.

* Add unknown element warning to Fiber

* Replace instanceof with toString check

It is more resilient.

* Record tests
2017-04-14 11:30:38 -05:00
Abhay Nikam
36c935ca8f Updated the Good First Bug section in readme (#9429)
* Updated the Good First Bug section in readme

* Inconsistent use of quotes. Prefered single quotes instead of double quotes

* Updated Good first bug link in how_to_contribute doc.

* Undo JSX attribute quote change

* don't capitalize "beginner friendly issue"
2017-04-14 11:02:07 -05:00
Vikash Agrawal
db989c0f63 Updated link for good first bug's in README.md (#9273)
* Updated link for good first bug's in README.md

* Changed text for beginner friendly bugs

* update beginner friendly bugs section title
2017-04-14 10:56:38 -05:00
Abhay Nikam
a95e1d8ffc Updated recommended links for installation in readme (#9425) 2017-04-13 23:15:13 +01:00
Dan Abramov
4c8c5debac Switch Installation to a tab when hash is present (#9422) 2017-04-13 21:51:19 +01:00
Marks Polakovs
855b8d3526 Add tabs to installation page (#9275, #9277) (#9401)
* Add tabs to installation page (#9275, #9277)

This adds tabs for create-react-app and existing apps to the installation section of the docs. The tab implementation is a simplified version of React Native's installation page.

Fixes #9275.

* Use classList instead of className

* Use same implementation as in RN
2017-04-13 20:54:12 +01:00
Eric Elliott
30d6c598c6 Docs: Clarification of setState() behavior (#9329)
* Clarification of setState() behavior

`setState()` is a frequent source of confusion for people new to React, and I believe part of that is due to minimization of the impact of the asynchronous behavior of `setState()` in the documentation. This revision is an attempt to clarify that behavior. For motivation and justification, see [setState Gate](https://medium.com/javascript-scene/setstate-gate-abc10a9b2d82).

* Update reference-react-component.md

* Signature fix

* Update to address @acdlite concerns

* Add more details
2017-04-13 19:13:55 +01:00
Jack
4e0c57315a Update proptypes doc (#9391)
* Update proptypes doc

* Removed note
2017-04-13 18:11:23 +01:00
Gabriel Lett Viviani
22655d5759 Fix the proptypes deprecation warning url on the "Don't Call PropTypes Warning" doc page (#9419)
* Use the same prop-types link on the warning docs page as the main proptypes doc page

* Link to repo instead
2017-04-13 15:15:34 +01:00
hanumanthan
5cd44d21e9 Refractor docs to indicate that state set to props in constructor will not recieve the updated props (#9404) 2017-04-13 00:56:22 +01:00
Dominic Gannaway
446f186279 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:04:38 +01:00
Brian Vaughn
6cd7618bd7 Bumped versions for 16.0.0-alpha.9 and re-built 2017-04-11 14:40:56 -07:00
Brian Vaughn
2beec2f308 createClass + PropTypes + checkPropTypes warnings (#9399)
(Temporarily) re-adds getters with deprecation warnings for React.PropTypes, React.checkPropTypes, and React.createClass.

* 08bd020: Replace all references to React.PropTypes with prop-types to avoid triggering our own warning message.
* ef5b5c6: Removed several references to React.createClass that appeared after rebasing this branch. (reviewed by @flarnie)
* 524ce20: Added getters for createClass and PropTypes to the main React isomorphic object, behind one-time warning messages. (reviewed by @spicyj)
* db48f54: Fixed Rollup bundles to inline 'prop-types' and 'create-react-class' for UMD builds only. (reviewed by @spicyj, @trueadm )
* cf49cfd: Updated tests-passing.txt to remove tests that were deleted in this branch.
* d34109a: Responses to PR feedback from @spicyj. (Added package.json dependencies to packages/react and packages/react-dom. Renamed a var. Expanded on an inline comment.)
* 488c8d2: Added warning for moved package to React.checkPropTypes accessor too and updated build script.
* 83bcb29: Wordsmithing for deprecation notices (added fb.me links).
* afdc9d2: Tweaked legacy module inlining to remove order-of-deps constraint
* d1348b9: Removed $FlowFixMe.
* 7dbc3e7: More wordsmithing of deprecation notices based on Dan's feedback.
2017-04-11 14:28:03 -07:00
Dan Abramov
aa1f8687d7 Use caret range in blog instructions
The release was a bit broken.
2017-04-11 22:04:29 +01:00
Denis Pismenny
cec9b07402 Fix minor typo in lifting-state-up.md (#9408) 2017-04-11 22:03:53 +01:00
Ben Alpert
b1a06bd945 Fix ignore patterns in package.json (#9409) 2017-04-11 13:58:14 -07:00
Andrew Clark
957fbc92b1 react-create-class -> create-react-class 2017-04-10 17:06:32 -07:00
Andrew Clark
ce489262a1 Add react-create-class integration tests
These are mostly copied from the old ReactClass-test module.
2017-04-10 17:03:05 -07:00
Andrew Clark
6b539f280d Convert createClass caller
This snuck in after rebasing
2017-04-10 17:03:05 -07:00
Andrew Clark
646e786334 Warn once when attempting to access React.createClass
Should still be undefined.
2017-04-10 17:03:05 -07:00
Andrew Clark
194b25f709 Run prettier 2017-04-10 17:03:05 -07:00
Andrew Clark
c76a4eaa2a Update tests to use plain JavaScript classes
Tests that rely on replaceState or isMounted use
updater.enqueueReplaceState and updater.isMounted instead.
2017-04-10 17:03:05 -07:00
Andrew Clark
087fe88f20 Rewrite Stack implementation of ReactART using plain classes
instead of createClass
2017-04-10 17:03:05 -07:00
Andrew Clark
5cfaa7cf68 Delete createClass
Remove createClass from isomorphic package
2017-04-10 17:03:05 -07:00
Maciej Kasprzyk
c2309bf4b5 Delete examples dir from codebase overview (#9397)
Removes doc about folder that no longer exists.
2017-04-10 16:26:09 -05:00
Dan Abramov
457b812c26 Fix ReactARTStack bundles to not include DOM Stack inside (#9394)
* Move ReactDOMFrameScheduling.js to shared (between dom and art)

* Fix ReactARTStack bundles to not include DOM Stack inside
2017-04-10 22:01:56 +01:00
Luke Belliveau
6c8fd16a06 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-09 14:37:41 -05:00
Aaron Ackerman
d3d4b599b9 Point users to the npm page instead of the github project for prop-types (#9373) 2017-04-08 04:05:34 +01:00
Andrew Clark
e5ce3fd368 Blog post and changelog for 15.5.0 (#9368) 2017-04-07 14:41:16 -07:00
Dan Abramov
72196da829 Replace shims with explicit React access from the renderers for shared global state (#9366)
* Remove non-existent /lib/ from souce files

* Replace all shims with explicit access

This deletes shims and changes to access require('react').__DO_NOT_USE__ from renderers for global shared state.

I cloned flattenChildren() and traverseAllChildren() because they relied on CurrentOwner but were used both from Stack and Isomorphic. The stack implementations will die, and the isomorphic ones can be changed to be optimized for Children specifically in the future.

I also deleted UMD shims because they are now unnecessary. I moved the internals assignment to main modules since they're now used in tests, and made them direct UMD entry points.
2017-04-07 22:07:10 +01:00
Flarnie Marchan
6eaa539ad5 Update example snippet in old 'React.addons' doc page (#9363)
* Update example snippet in old 'React.addons' doc page

This makes the example more consistent.

* Add back the pointers in docs that were mistakenly removed

In https://github.com/facebook/react/pull/9359 we accidentally removed
pointers in some doc pages. Putting them back now.

* Link to npm package instead of github page

This seems like a more stable place to link to in the 'context'
document.
Based on @bvaughn's feedback in https://github.com/facebook/react/pull/9359
2017-04-07 13:47:54 -07:00
Dan Abramov
d88696941d 16.0.0-alpha.8 2017-04-07 18:47:23 +01:00
Dan Abramov
d9fd08df26 Make ReactDebugCurrentFrame shared state between core and renderers (#9365) 2017-04-07 17:03:22 +01:00
Dan Abramov
e303e00d06 Tweak Rollup setup (#9364)
* Remove unused Rollup shim and exports

* Add a way to build multiple bundles
2017-04-07 16:17:36 +01:00
Dan Abramov
a8d37a7aa0 Remove indirection in checking propTypes (#9358)
* Remove indirection in checking propTypes

* Silence flow errors
2017-04-07 15:23:28 +01:00
Flarnie Marchan
8f7281199d All doc updates forv15.5 (#9359)
* `react-addons-test-utils` -> `react-dom/test-utils`

Updating all references and docs on the `React.addons.TestUtils` and the
shallow renderer to refer to the correct targets.

Instead of:
```
const React = require('react');

// ...
React.addons.Testutils
// or

const ReactTestUtils = require('react-addons-test-utils');
```
we now show:
```
const ReactTestUtils = require('react-dom/test-utils');
```

And for shallow renderer, instead of:
```
const shallowRenderer = TestUtils.createRenderer();
```

we now show:
```
const shallowRenderer = require('react-test-renderer/shallow');
```

* Update the 'prev' and 'next' attributes of 'add-ons' docs

These flags are used to set arrow links to easily navigate through the
documents. They were wrong or missing in some of the 'add-ons' pages and
this bothered me when manually testing the updates from the previous
commit.

* Update syntax for instantiating shallow renderer

Missed this when updating the docs for the changes to shallow-renderer
in React 15.5.

* Fix pointers in addons docs

Thanks @bvaughn for catching this

* Make example of shallow renderer more consistent

We should show using the same variable names between code samples.

* Make names in example even more consistent

We should use the same variable name for the same thing across examples.
`renderer` -> `shallowRenderer`.

* Update docs to deprecate React<CSS>TransitionGroup

 - removes link to the docs about `ReactCSSTransitionGroup` and
   `ReactTransitionGroup` from the main navigation
 - updates 'prev' and 'next' pointers to skip this page
 - adds deprecation warning to the top of the page
 - remove references to these modules from the packages README
 - updates 'add-ons' main page to list this as a deprecated add-on

* Update `React.createClass` to `createReactClass` in the docs

The `React.createClass` method is being deprecated in favor of
`createReactClass`.

* Remove 'React.createClass' from top level API docs

It no longer makes sense to have a section for the 'createClass' method
in this page, since it won't be available as a top level method on
'React'.

I initially was going to pull the section about 'createClass' into a
separate page to add under 'addons' but it was short and duplicative of
the 'react-without-es6' docs. So I just linked to those.

* Remove *most* `React.PropTypes` from the docs

I am doing the docs for `context` in a separate commit because that case
was a bit less clear-cut.

We will no longer support `React.PropTypes` as a built-in feature of
React, and instead should direct folks to use the `PropTypes` project
that stands alone.

Rather than retaining the `React.PropTypes` examples and just revamping
them to show the use of the stand-alone `PropTypes` library with React,
it makes more sense to direct people to that project and reduce the
perceived API area and complexity of React core. The proper place to
document `PropTypes` is in the README or docs of that project, not in
React docs.

* Update `context` docs to not use `React.PropTypes`

We use `React.PropTypes` to define the `contextType` for the `context`
feature of React. It's unclear how this will work once `React.PropTypes`
is replaced by the external `PropTypes` library. Some options;

a) Deprecate `context`, either in v16 or shortly after. Seems reasonable
based on the intense warnings against using context that we have in the
docs -
https://facebook.github.io/react/docs/context.html#why-not-to-use-context
**Except** that probably some widely used libraries depend on it, like
`React-Router`.

b) Expect users will use external `PropTypes` library when defining
`contextTypes` and just don't do our `checkReactTypeSpec` against them
any more in v16.

c) Stop masking context and pass the whole context
unmasked everywhere. Worst option, do not recommend.

I went with `b` and assume that, for now, we will get users to use the
external `PropTypes` when defining context. I will update this PR if we
want a different approach.

* Remove 'addons' items from left nav, and deprecate 'addons' doc page

The plan:
[X] Remove links to 'addons' items from main navigation
[X] Add deprecation notices where appropriate, and update syntax to show
using the separate modules.
[ ] Update other references to 'React.addons' in docs. Coming in next
commit.
--- blocked but coming in future PRs
[ ] Link to a blog post describing the new locations of add-ons in the
deprecation notice on the '/docs/addons.html' page. Blocked until we
actually publish that blog post.
[ ] Move the docs for each add-on to the actual github repo where it now
lives.
[ ] Redirect the old add-ons doc permalinks to the docs in the separate
github repos for those modules.
[ ] Remove the old add-ons doc markdown files from React core docs.

* Remove references to `React.addons` from docs

Just misc. places where we referenced the 'addons' feature. All gone!
2017-04-06 17:20:54 -07:00
Dan Abramov
21bb8c00d4 16.0.0-alpha.7 2017-04-06 19:50:22 +01:00
Brian Vaughn
6ba42514ea Remove 'takeSnapshot' from ReactNative renderer\nUpstream sync from react-native repo (#9356) 2017-04-06 10:39:18 -07:00
Dominic Gannaway
832488ab09 change permissions of test_print_warnings (#9347) 2017-04-05 23:18:39 +01:00
Dominic Gannaway
3ebdd0911e Fixes the eager react-dom replacement on the rollup plugin (#9346)
* Fixes the eager react-dom replacement on the rollup plugin

* added the other replaceInternalModules
2017-04-05 22:42:12 +01:00
Dan Abramov
84b5b49aec Delete extra babel-standalone.html: it already exists in a folder 2017-04-05 21:17:10 +01:00
Dan Abramov
2429fd2cee Fix art fixture 2017-04-05 21:05:23 +01:00
Dan Abramov
3a416762e7 Fix glob ignore for build script 2017-04-05 20:24:30 +01:00
Dan Abramov
a85d7eed9a Run prettier 2017-04-05 19:51:23 +01:00
Dan Abramov
6a48f32f21 Exclude tests from warning print script 2017-04-05 19:51:19 +01:00
Brian Vaughn
c80570b016 Synced ReactNativeFiber bugfix for leaf-node children (#9330) 2017-04-05 11:29:45 -07:00
Dan Abramov
fc1f324cc4 Fix warnings script to work on Node 4 2017-04-05 19:01:09 +01:00
Dan Abramov
398d449c48 Fix the print warnings script (#9344) 2017-04-05 18:54:48 +01:00
Dominic Gannaway
6b68410808 Adds support for labels on building bundles (#9342)
* adds support for labels on bundles

* -fiber

* reverts results
2017-04-05 18:30:12 +01:00
Dominic Gannaway
24dc43c49f fixes circleci/upload_build.sh paths for dist files (#9341)
* fixes circleci/upload_build.sh paths for dist files

* updated the react filenames to include development or production
2017-04-05 17:25:09 +01:00
Dan Abramov
4fa8122d5d Update release manager with latest change 2017-04-05 17:16:36 +01:00
Dan Abramov
665f80483e Update build paths in docs (#9340) 2017-04-05 16:53:25 +01:00
Dominic Gannaway
4b2eac3de7 Convert current build system to Rollup and adopt flat bundles (#9327)
* WIP

* fbjs support

* WIP

* dev/prod mode WIP

* More WIP

* builds a cjs bundle

* adding forwarding modules

* more progress on forwarding modules and FB config

* improved how certain modules get inlined for fb and cjs

* more forwarding modules

* added comments to the module aliasing code

* made ReactPerf and ReactTestUtils bundle again

* Use -core suffix for all bundles

This makes it easier to override things in www.

* Add a lazy shim for ReactPerf

This prevents a circular dependency between ReactGKJSModule and ReactDOM

* Fix forwarding module for ReactCurrentOwner

* Revert "Add a lazy shim for ReactPerf"

This reverts commit 723b402c07116a70ce8ff1e43a1f4d92052e8f43.

* Rename -core suffix to -fb for clarity

* Change forwarding modules to import from -fb

This is another, more direct fix for ReactPerf circular dependency

* should fix fb and cjs bundles for ReactCurrentOwner

* added provides module for ReactCurrentOwner

* should improve console output

* fixed typo with argument passing on functon call

* Revert "should improve console output"

This breaks the FB bundles.

This reverts commit 65f11ee64f678c387cb3cfef9a8b28b89a6272b9.

* Work around internal FB transform require() issue

* moved  ReactInstanceMap out of React and into ReactDOM and ReactDOMFiber

* Expose more internal modules to www

* Add missing modules to Stack ReactDOM to fix UFI

* Fix onlyChild module

* improved the build tool

* Add a rollup npm script

* Rename ReactDOM-fb to ReactDOMStack-fb

* Fix circular dependencies now that ReactDOM-fb is a GK switch

* Revert "Work around internal FB transform require() issue"

This reverts commit 0a50b6a90bffc59f8f5416ef36000b5e3a44d253.

* Bump rollup-plugin-commonjs to include a fix for rollup/rollup-plugin-commonjs#176

* Add more forwarding modules that are used on www

* Add even more forwarding modules that are used on www

* Add DOMProperty to hidden exports

* Externalize feature flags

This lets www specify them dynamically.

* Remove forwarding modules with implementations

Instead I'm adding them to react-fb in my diff.

* Add all injection necessary for error logging

* Add missing forwarding module (oops)

* Add ReactART builds

* Add ReactDOMServer bundle

* Fix UMD build of ReactDOMFiber

* Work in progress: start adding ReactNative bundle

* tidied up the options for bundles, so they can define what types they output and exclude

* Add a working RN build

* further improved and tidied up build process

* improved how bundles are built by exposing externals and making the process less "magical", also tidied up code and added more comments

* better handling of bundling ReactCurrentOwner and accessing it from renderer modules

* added NODE_DEV and NODE_PROD

* added NPM package creation and copying into build chain

* Improved UMD bundles, added better fixture testing and doc plus prod builds

* updated internal modules (WIP)

* removed all react/lib/* dependencies from appearing in bundles created on build

* added react-test-renderer bundles

* renamed bundles and paths

* fixed fixture path changes

* added extract-errors support

* added extractErrors warning

* moved shims to shims directory in rollup scripts

* changed pathing to use build rather than build/rollup

* updated release doc to reflect some rollup changes

* Updated ReactNative findNodeHandle() to handle number case (#9238)

* Add dynamic injection to ReactErrorUtils (#9246)

* Fix ReactErrorUtils injection (#9247)

* Fix Haste name

* Move files around

* More descriptive filenames

* Add missing ReactErrorUtils shim

* Tweak reactComponentExpect to make it standalone-ish in www

* Unflowify shims

* facebook-www shims now get copied over correctly to build

* removed unnecessary resolve

* building facebook-www/build is now all sync to prevent IO issues plus handles extra facebook-www src assets

* removed react-native-renderer package and made build make a react-native build dir instead

* 😭😭😭

* Add more SSR unit tests for elements and children. (#9221)

* Adding more SSR unit tests for elements and children.

* Some of my SSR tests were testing for react-text and react-empty elements that no longer exist in Fiber. Fixed the tests so that they expect correct markup in Fiber.

* Tweaked some test names after @gaearon review comment https://github.com/facebook/react/pull/9221#discussion_r107045673 . Also realized that one of the tests was essentially a direct copy of another, so deleted it.

* Responding to code review https://github.com/facebook/react/pull/9221#pullrequestreview-28996315 . Thanks @spicyj!

* ReactElementValidator uses temporary ReactNative View propTypes getter (#9256)

* Updating packages for 16.0.0-alpha.6 release

* Revert "😭😭😭"

This reverts commit 7dba33b2cfc67246881f6d57633a80e628ea05ec.

* Work around Jest issue with CurrentOwner shared state in www

* updated error codes

* splits FB into FB_DEV and FB_PROD

* Remove deps on specific builds from shims

* should no longer mangle FB_PROD output

* Added init() dev block to ReactTestUtils

* added shims for DEV only code so it does not get included in prod bundles

* added a __DEV__ wrapping code to FB_DEV

* added __DEV__ flag behind a footer/header

* Use right haste names

* keeps comments in prod

* added external babel helpers plugin

* fixed fixtures and updated cjs/umd paths

* Fixes Jest so it run tests correctly

* fixed an issue with stubbed modules not properly being replaced due to greedy replacement

* added a WIP solution for ReactCurrentOwner on FB DEV

* adds a FB_TEST bundle

* allows both ReactCurrentOwner and react/lib/ReactCurrentOwner

* adds -test to provides module name

* Remove TEST env

* Ensure requires stay at the top

* added basic mangle support (disbaled by default)

* per bundle property mangling added

* moved around plugin order to try and fix deadcode requires as per https://github.com/rollup/rollup/issues/855

* Fix flow issues

* removed gulp and grunt and moved tasks to standalone node script

* configured circleci to use new paths

* Fix lint

* removed gulp-extract-errors

* added test_build.sh back in

* added missing newline to flow.js

* fixed test coverage command

* changed permissions on test_build.sh

* fixed test_html_generations.sh

* temp removed html render test

* removed the warning output from test_build, the build should do this instead

* fixed test_build

* fixed broken npm script

* Remove unused ViewportMetrics shim

* better error output

* updated circleci to node 7 for async/await

* Fixes

* removed coverage test from circleci run

* circleci run tets

* removed build from circlci

* made a dedicated jest script in a new process

* moved order around of circlci tasks

* changing path to jest in more circleci tests

* re-enabled code coverage

* Add file header to prod bundles

* Remove react-dom/server.js (WIP: decide on the plan)

* Only UMD bundles need version header

* Merge with master

* disabled const evaluation by uglify for <script></script> string literal

* deal with ART modules for UMD bundles

* improved how bundle output gets printed

* fixed filesize difference reporting

* added filesize dep

* Update yarn lockfile for some reason

* now compares against the last run branch built on

* added react-dom-server

* removed un-needed comment

* results only get saved on full builds

* moved the rollup sized plugin into a plugins directory

* added a missing commonjs()

* fixed missing ignore

* Hack around to fix RN bundle

* Partially fix RN bundles

* added react-art bundle and a fixture for it

* Point UMD bundle to Fiber and add EventPluginHub to exported internals

* Make it build on Node 4

* fixed eslint error with resolve being defined in outer scope

* Tweak how build results are calculated and stored

* Tweak fixtures build to work on Node 4

* Include LICENSE/PATENTS and fix up package.json files

* Add Node bundle for react-test-renderer

* Revert "Hack around to fix RN bundle"

We'll do this later.

This reverts commit 59445a625962d7be4c7c3e98defc8a31f8761ec1.

* Revert more RN changes

We'll do them separately later

* Revert more unintentional changes

* Revert changes to error codes

* Add accidentally deleted RN externals

* added RN_DEV/RN_PROD bundles

* fixed typo where RN_DEV and RN_PROD were the wrong way around

* Delete/ignore fixture build outputs

* Format scripts/ with Prettier

* tidied up the Rollup build process and split functions into various different files to improve readability

* Copy folder before files

* updated yarn.lock

* updated results and yarn dependencies to the latest versions
2017-04-05 16:47:29 +01:00
Nathan Hunzaker
d99b3fc6d6 Remove MouseEvent.button polyfill (#9334)
MouseEvent.button is supported in every browser React targets:
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button
2017-04-05 12:34:48 +01:00
Rahul Gupta
3829859e22 Moved the JSdoc for invokeGuardedCallback to correct position (#9337) 2017-04-05 12:34:14 +01:00
Justin
0c7863075d Fix grammar typo in Design Principles docs (#9324)
features → feature
> There is nothing "bad" about using state or lifecycle hooks in components. Like any powerful feature**s**, they should be used in moderation, but we have no intention to remove them.

I can’t explain the exact grammatical principle this violates, but it sounds wrong to my native English ears that “feature” is plural here. Another way to check if the grammar sounds right is to change the order of the clauses: ”They should be used in moderation, like any powerful feature“ sounds right, whereas “They should be used in moderation, like any powerful features” does not.
2017-04-04 17:16:54 -05:00
Ben Alpert
e50f97b4cb Update addons-two-way-binding-helpers.md
I don't think this reference is that helpful and could turn people away since it sounds very fancy and isn't relevant..
2017-04-04 11:14:09 -07:00
Aaron Cannon
50b3cab3ec Make it clear that textarea also supports defaultValue. (#9318) 2017-04-03 23:05:50 -05:00
Dan Abramov
4a37718e4e Remove examples/ folder (#9323) 2017-04-03 20:32:02 +01:00
Sasha Aickin
04713fc4bd Merge pull request #9264 from aickin/server-render-unit-tests-forms
Adding SSR test for form fields.
2017-03-31 15:42:07 -07:00
Andrey Marchenko
d9915db43b Deleting a specific style name float for ie8 (#9311)
* Deleting a specific style name float for ie8

* Remove unnecessary condition
2017-03-31 23:31:52 +01:00
Sasha Aickin
a734aecc98 Response to code review comment https://github.com/facebook/react/pull/9264#discussion_r108974871 . Thanks, @spicyj! 2017-03-31 14:49:03 -07:00
Ben Alpert
6fd539ec66 Fix build
oops i broke it
2017-03-31 16:20:28 +01:00
Ben Alpert
e9c995974d Port out bug fixes to ReactARTFiber (#9309)
D4616127 D4629747 D4631778
2017-03-31 16:13:01 +01:00
Nathan Hunzaker
27c844905f Remove scroll capture support warning (#9303)
I removed the scroll capture feature check for IE8, however I missed
the associated warning.
2017-03-31 11:36:08 +01:00
Nathan Hunzaker
bd2802523c Remove viewport metrics, other pageX/pageY behaviors (#9290)
* Remove viewport metrics

event.pageX and event.pageY are in every browser React supports.

* Rerecord tests
2017-03-31 02:20:57 +01:00
Andrey Marchenko
5ad1c76386 Deleted a specific code for ie8 - document.selection (#9298) 2017-03-30 19:00:12 -05:00
Brian Vaughn
76c5c6deb5 Disabling a no-unreachable lint error (#9300) 2017-03-30 16:40:45 -07:00
Brian Vaughn
4f69474e03 Added explicit null return to completeUnitOfWork() to resolve Flow error (#9299) 2017-03-30 15:45:13 -07:00
Brian Vaughn
224487a0e2 Show more meanignful stack trace for ReactNative errors (#9291)
* Show more meanignful stack trace for ReactNative errors

Clicking on the stack should jump to where the error actually occurred rather than to where it's logged in a redbox component.

* Made showDialog() return type stricter. Added mock and Flow types for ExceptionManager

* Prettier

* Handle null/string thrown errors

* Removed unused reference to emptyFunction
2017-03-30 15:15:33 -07:00
Nathan Hunzaker
b8857d4f27 Remove captured focus feature check (#9285)
IE8 was the only browser that did not support captured focus. We no
longer have that constraint.
2017-03-30 13:47:14 -07:00
Brian Vaughn
004c937cb0 Move takeSnapshot from UIManager to ReactNative renderer(s) (#9292)
* Move takeSnapshot from UIManager to ReactNative renderer(s)

* Prettier
2017-03-30 13:10:15 -07:00
Brandon Dail
8d6d3e8c05 Update JSFiddle for issue template (#9289) 2017-03-30 11:43:16 -05:00
Brandon Dail
686010037d Remove IE8-specific setInnerHTML behavior (#9288)
Since IE8 is not supported anymore, lets save those bytes!
2017-03-30 17:24:58 +01:00
Nathan Hunzaker
dbeb37fe69 Add DOM fixture for unmasking passwords (#9269)
IE11 and Edge have a password unmask field that React prevents the
display of for controlled inputs. This commit adds DOM fixture
coverage for this test case.
2017-03-30 10:16:36 -05:00
Damian Nicholson
0c70fb8b18 Added semicolons to addons imports examples. (#9287) 2017-03-30 15:55:27 +01:00
Ben Alpert
e57ad7f51e Allow returning null as host context (#9278)
If your renderer doesn't use host context, you might prefer to return null. This used to give an error:

> Invariant Violation: Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.

I use a sentinel value instead now.

The code in ReactFiberHostContext is a little complicated now. We could probably also just remove the invariants.
2017-03-30 13:18:39 +01:00
Nathan Hunzaker
4c292facc9 Remove captured scroll feature check (#9283)
* Remove captured scroll feature check

IE8 was the only browser that did not support captured scroll. We no
longer have that constraint.

* Remove WINDOW_HANDLE const
2017-03-30 11:01:29 +01:00
Brandon Dail
9a93be0b33 Remove IE8-specific ChangeEventPlugin logic (#9281) 2017-03-29 17:37:56 -05:00
Brandon Dail
da91e9ebe9 Add DOM fixtures for disabled button click events (#9271) 2017-03-29 11:17:54 -05:00
Dominic Gannaway
09f0a5ded9 Merge pull request #9276 from trueadm/getDeclarationErrorAddendum_DEV
[Fiber] Adds DEV condition around getDeclarationErrorAddendum
2017-03-29 13:55:04 +01:00
Dominic Gannaway
660306982c added DEV condition around getDeclarationErrorAddendum contents 2017-03-29 13:49:30 +01:00
Sasha Aickin
aaabd655a6 Added jest-cli to the package.json for the Fiber record-tests script. (#9270) 2017-03-28 22:55:22 +01:00
Brian Vaughn
a749f4fb63 Adding fix to EventPropagators that was accidentally omitted from PR #9219 (#9274) 2017-03-28 11:24:13 -07:00
Brian Vaughn
fca5d3ffc5 Added missing @flow annotation to ReactNativeFeatureFlags file (#9267) 2017-03-27 14:59:37 -07:00
Andrew Clark
090efbdb17 Merge branch 'giamir-add_toggle_to_fiber_triangle_demo' 2017-03-27 12:48:39 -07:00
Andrew Clark
f6a64cad5d Use radio buttons for toggle 2017-03-27 12:48:05 -07:00
Andrew Clark
ef9dac518f Merge branch 'add_toggle_to_fiber_triangle_demo' of https://github.com/giamir/react into giamir-add_toggle_to_fiber_triangle_demo 2017-03-27 11:46:59 -07:00
Nathan Hunzaker
29d9710892 Fix Chrome number input backspace and invalid input issue (#7359)
* Only re-assign defaultValue if it is different

* Do not set value if it is the same

* Properly cover defaultValue

* Use coercion to be smart about value assignment

* Add explanation of loose type checks in value assignment.

* Add test coverage for setAttribute update.

* Only apply loose value check to text inputs

* Fix case where empty switches to zero

* Handle zero case in controlled input

* Correct mistake with default value assignment after rebase

* Do not assign bad input to number input

* Only trigger number input value attribute updates on blur

* Remove reference to LinkedValueUtils

* Record new fiber tests

* Add tests for blurred number input behavior

* Replace onBlur wrapper with rule in ChangeEventPlugin

* Sift down to only number inputs

* Re-record fiber tests

* Add test case for updating attribute on uncontrolled inputs. Make related correction

* Handle uncontrolled inputs, integrate fiber

* Reorder boolean to mitigate DOM checks

* Only assign value if it is different

* Add number input browser test fixtures

During the course of the number input fix, we uncovered many edge
cases. This commit adds browser test fixtures for each of those instances.

* Address edge case preventing number precision lower than 1 place

0.0 coerces to 0, however they are not the same value when doing
string comparision. This prevented controlled number inputs from
inputing the characters `0.00`.

Also adds test cases.

* Accommodate lack of IE9 number input support

IE9 does not support number inputs. Number inputs in IE9 fallback to
traditional text inputs. This means that accessing `input.value` will
report the raw text, rather than parsing a numeric value.

This commit makes the ReactDOMInput wrapper check to see if the `type`
prop has been configured to `"number"`. In those cases, it will
perform a comparison based upon `parseFloat` instead of the raw input
value.

* Remove footnotes about IE exponent issues

With the recent IE9 fix, IE properly inserts `e` when it produces an
invalid number.

* Address exception in IE9/10 ChangeEventPlugin blur event

On blur, inputs have their values assigned. This is so that number
inputs do not conduct unexpected behavior in
Chrome/Safari. Unfortunately, there are cases where the target
instance might be undefined in IE9/10, raising an exception.

* Migrate over ReactDOMInput.js number input fixes to Fiber

Also re-record tests

* Update number fixtures to use latest components

* Add number input test case for dashes and negative numbers

* Replace trailing dash test case with replace with dash

Also run prettier
2017-03-27 11:39:18 -05:00
Sasha Aickin
14863c9a87 Adding SSR test for form fields. 2017-03-26 20:51:40 -07:00
Sasha Aickin
c51411c812 Adding new SSR tests for context, refs, and reviving markup. (#9257) 2017-03-26 13:32:23 -07:00
Giamir Buoncristiani
b62f851e64 Add a button to switch from Fiber with time-slicing to Fiber without it 2017-03-26 17:24:26 +01:00
najisawas
c47f334ac9 Fixed typo on implementation notes page (#9258)
Added paren to "mountComponent()" for consistency
2017-03-25 20:57:28 -05:00
Brian Vaughn
cb585229bc Ran yarn and fixed line-length lint issue 2017-03-24 19:59:05 -07:00
Brian Vaughn
1a29b4e2a3 Updating packages for 16.0.0-alpha.6 release 2017-03-24 15:44:09 -07:00
Brian Vaughn
1acf949240 ReactElementValidator uses temporary ReactNative View propTypes getter (#9256) 2017-03-24 15:37:21 -07:00
Sasha Aickin
25deff6203 Add more SSR unit tests for elements and children. (#9221)
* Adding more SSR unit tests for elements and children.

* Some of my SSR tests were testing for react-text and react-empty elements that no longer exist in Fiber. Fixed the tests so that they expect correct markup in Fiber.

* Tweaked some test names after @gaearon review comment https://github.com/facebook/react/pull/9221#discussion_r107045673 . Also realized that one of the tests was essentially a direct copy of another, so deleted it.

* Responding to code review https://github.com/facebook/react/pull/9221#pullrequestreview-28996315 . Thanks @spicyj!
2017-03-24 13:31:15 -07:00
Dan Abramov
0a41890eaa Remove rethrowCaughtError injection (#9252) 2017-03-24 18:19:12 +00:00
Johan Tinglöf
38d8f3ee6b Updated Router import for example (#9233)
Updated import in order to be a correct working example as in accordance with the docs
2017-03-24 09:37:32 -05:00
Dan Abramov
f082e35b36 Fix up invariant import to be from fbjs/lib/ 2017-03-23 19:45:10 +00:00
Dan Abramov
d6a2c669d2 Fix ReactErrorUtils injection (#9247) 2017-03-23 19:13:07 +00:00
Dan Abramov
1c9dcd53d5 Add dynamic injection to ReactErrorUtils (#9246) 2017-03-23 18:45:38 +00:00
Brian Vaughn
c8897f8382 Updated ReactNative findNodeHandle() to handle number case (#9238) 2017-03-23 08:16:52 -07:00
Dan Abramov
b0b9f37960 Fix up Flow syntax 2017-03-22 18:41:42 +00:00
Dan Abramov
8de9c6c12c Add injection for error dialog (#9235) 2017-03-22 18:21:12 +00:00
Bernard Lin
fbc6977fbc Conferences (#9234)
* standard format for React Rally

* move React Conf 2017 to past conferences
2017-03-22 10:40:13 -05:00
Brian Vaughn
8ce5fe97b5 Bumped React version to 16.0.0-alpha.5 2017-03-21 13:04:08 -07:00
Valentin Shergin
97ab3f5ef8 Removed optimization for events without target in ReactNativeEventEmitter (#9219)
* Removed optimization for events without target in ReactNativeEventEmitter

This PR fixes the problem originally introduced in https://github.com/facebook/react/pull/6590
The problem is that `ResponderEventPlugin` (and `ResponderTouchHistoryStore`) relies on that fact that touch events are balanced.
So if one `startish` event happened, should be coming `endish` event. Otherwise there is no way to maintain internal `trackedTouchCount` counter. So, if we drop some events, we break this logic.

Moreover, that optimization clearly contradict with this statement from `ResponderEventPlugin`:
```
We must be resilient to `targetInst` being `null` on `touchMove` or
`touchEnd`. On certain platforms, this means that a native scroll has
assumed control and the original touch targets are destroyed.
```

This issue causes several major problems in React Native, and one of them (finally!) is easy to reproduce: https://github.com/facebook/react-native/issues/12976 .

The test also illustrates this problem.

* Prettier
2017-03-20 17:07:28 -07:00
Brian Vaughn
7f665da0ee ReactNative upstream sync (#9197)
* Addresses a circular dependency between NativeMethodsMixin and ReactNativeFiber:

* Created new ReactNativeFiberHostComponent with similar interface but without unnecessary call to findNodeHandle.
* Created new Flow interface for mixins to ensure ReactNativeFiberHostComponent and NativeMethodsMixinUtils stay synced.
* Moved helper methods to NativeMethodsMixinUtils to be shared between the 2 wrappers.

This diff was submitted and reviewed internally along with some other ReactNative changes. This is the React-only portion.

* Removed unused Flow type import

* Copied a Flow fix from internal
2017-03-20 13:50:31 -07:00
Dan Abramov
e15a481773 Re-add tests unintentionally deleted in #9209 (#9225)
These tests are useful and don't test addons specifically.
I moved them to appropriate places in the codebase.
2017-03-20 19:38:54 +00:00
Dan Abramov
34e4352cba Delete addons (#9209)
* Delete addons

* Remove ReactFragment dependency from tests

* Remove addons testing from fixtures

* Don't mention createFragment() in a warning

* Address feedback

* Remove unused variables

* Remove mention of deleted file

* Add a missing key to the test

* Fix lint
2017-03-20 16:15:01 +00:00
CodinCat
0ceb5115ac Use single quotes, remove extra whitespace (#9215) 2017-03-19 18:34:53 +00:00
Sasha Aickin
78761c387f Add unit tests for props to attribute mapping in SSR. (#9106)
* Added a handful of SSR unit tests, ported from a previous pull request.

* Fixing linting errors

* Fixed a test helper function to properly report errors.

* Un-nested the new rendering tests. Updated the fiber test passing/not passing lists.

* Edited to comply with the react/jsx-space-before-closing eslint rule, which will soon be merged into master.

* Response to code review from @spicyj. Moved tests to separate file, reworked wording of test names, corrected use of canUseDom, and simplified tests against tagName. Thanks for the help, @spicyj!

* Converted the unit tests to use async-await style.

* Moved async-await babel transform for tests from .babelrc to preprocessor.js.

* Response to code review in PR #9089. Thanks, @spicyj!

* Fixing some bugs in the SSR unit tests.

* Missed deleting some repeated code in the last commit.

* Adding unit tests for property to attribute mapping in SSR.

* Removing some redundant unit tests.

* Oops. I forgot to re-run record-tests after c593dbc; fixing that here.

* Reformatting for prettier so that the build will pass.
2017-03-19 16:08:55 +00:00
Andrew Clark
f606e0e7d3 Merge pull request #9145 from acdlite/explicitnullcheckfiberupdatequeue
Use explicit null checks in ReactFiberUpdateQueue
2017-03-17 10:44:11 -07:00
Brian Vaughn
ad2b6545fe Upgraded Flow dev dependency to 41 for 'implements' support (#9196) 2017-03-16 17:12:50 -07:00
Sebastian Markbåge
096975afab Record fiber tests (#9195) 2017-03-16 16:29:05 -07:00
Sebastian Markbåge
9c7cf20dd5 Ignore event listener extraction on numeric text components (#9194)
In ReactDOM we don't dispatch events in the synthetic event system on to
text nodes. We back up one to the element before dispatching.

In React Native we don't do that. The iOS native side doesn't dispatch on
the text nodes but only the parent. The Android native side however does
dispatch on text nodes.

We already covered this for strings, but current element in Stack can be
a number if it is numeric text content.
2017-03-16 15:29:06 -07:00
Andrew Clark
9549ebfae5 Merge pull request #9187 from acdlite/prettierci
Failing to run prettier should block CI
2017-03-16 11:55:41 -07:00
Andrew Clark
8802c20c22 Run yarn prettier to format code
CI should now pass
2017-03-16 11:53:44 -07:00
Andrew Clark
cbdddbeb58 (test) Commit changes without running prettier to see if CI fails 2017-03-16 11:53:44 -07:00
Andrew Clark
0e5be287f7 Exit with failing code if prettier throws to ensure CI is blocked 2017-03-16 11:53:44 -07:00
Andrew Clark
c71a8ecd00 Add prettier instructions to PR template and contribution guide 2017-03-16 11:53:44 -07:00
Andrew Clark
7cf2950ebb Pass args as an array 2017-03-16 11:53:44 -07:00
Andrew Clark
ecf2e44908 CI should fail if prettier wasn't run 2017-03-16 11:53:44 -07:00
Andrew Clark
f365e52dd7 Add prettier script
`scripts/prettier/index.js write` will run prettier on source files.
Run using `yarn prettier`.

`scripts/prettier/index.js` will throw if any source files are not
formatted with prettier. We'll use this to block CI.

Based on similar script in Jest repo.
2017-03-16 11:53:44 -07:00
Jamison Dance
7253e6544b Add React Rally to conferences list (#9179) 2017-03-15 14:20:57 -10:00
Andrew Clark
bc30ef9842 Work around loose typing for fiber.updateQueue
The updateQueue field is currently an any type. Check the fiber's tag so
that only UpdateQueues are passed to getPendingPriority.
2017-03-15 15:05:04 -07:00
Andrew Clark
21e0e3711b Use explicit null checks in ReactFiberUpdateQueue
Follow-up to #8978
2017-03-15 15:04:59 -07:00
James Long
b1b4a2fb25 Merge pull request #9101 from sebmarkbage/prettier
Use Prettier
2017-03-14 15:33:27 -07:00
Sebastian Markbage
7e078d6a92 Fix lint rules
The typeof one is a bit strange because the disable rule gets moved.
2017-03-14 14:12:35 -07:00
Sebastian Markbage
ba1299acc2 Non idempotent steps in prettier 2017-03-13 17:06:03 -07:00
Sebastian Markbage
1843f87168 Run prettier 2017-03-13 17:05:18 -07:00
Sebastian Markbage
46bcd7fdf2 Add ignore to multichild test 2017-03-13 17:04:37 -07:00
Sebastian Markbage
b363803d26 Update to prettier 0.22 2017-03-13 17:02:21 -07:00
Sebastian Markbage
898ba574d6 Try 80-character line limit instead 2017-03-13 16:57:16 -07:00
Sebastian Markbage
df6388ab52 Add prettier-ignore where we do matrix style formatting 2017-03-13 16:57:13 -07:00
Sebastian Markbage
9d34dd3c01 More options 2017-03-13 16:55:59 -07:00
Sebastian Markbage
4adad94eac Add prettier option in scripts 2017-03-13 16:55:58 -07:00
Bernard Lin
2b59afb984 Updated React Native EU (#9170)
* Updated Chain React

Changed conference date from "Summer 2017" to given date on website

* Updated React Native EU 

Updated date and place with information from website
2017-03-13 22:43:03 +00:00
Ben Alpert
a2716d087e Fix two bugs in version bump script (#9165)
* Fix version bump script when files are missing

* Add noop renderer to version bump script

Without this, grunt build fails due to the version mismatch.
2017-03-13 10:04:14 -07:00
Ben Alpert
0d7b4d6dba 16.0.0-alpha.4 2017-03-13 08:54:41 -07:00
Ben Alpert
f3a26c0f75 Switch UMD build to use Fiber 2017-03-13 08:46:20 -07:00
Adam
bf5abdf14f Remove ref usage in main markdown example (#9160)
from [elsewhere in the docs](https://facebook.github.io/react/docs/refs-and-the-dom.html):

> Avoid using refs for anything that can be done declaratively.
2017-03-12 15:29:10 +00:00
Ben Alpert
19c2649e02 Use fiber by default (#9155)
Affects our builds. But not in tests yet.
2017-03-10 17:06:02 -08:00
Dan Abramov
8de68c56f9 [Fiber] Remove unnecessary second getComponentName() (#9153)
* Remove unnecessary second getComponentName()

We already have one. The other one is also less fragile and doesn't throw on null type.

* Make setState in render warning check simpler

This skips it earlier since in most cases phase won't be "render".
This is unobservable.
2017-03-10 19:29:20 +00:00
Dan Abramov
c96482d37f Remove PR check from GH Pages build hook for stable branch (#9144) 2017-03-10 01:17:27 +00:00
Dan Abramov
7fa311bcd9 Reorder sections in alphabetical order (#9143)
* Reorder sections in alphabetical order

* Reorder here too
2017-03-09 20:46:55 +00:00
Dan Abramov
6559b10b11 Use more widely supported emoji (#9139) 2017-03-09 00:55:36 +00:00
Dan Abramov
266481dacf Don't count skipped tests when calculating Fiber facts (#9136) 2017-03-08 21:03:21 +00:00
Dan Abramov
73378c9293 [Fiber] Performance measurements (#9071)
* wip

* better

* better

* track commits

* better

* wip

* Fix

* Add some lifecycles

* wip

* Naming

* Moar emojis

* Remove stacks in favor of a flag

* Fix Flow

* Gate behind __DEV__

* Revert flag for testing

* Measure all lifecycles

* Push it to the limits

* Polish

* Indent

* Refactor and track cascading updates

* More prominent warnings

* Make mark names themselves readable

This is useful for RN Systrace which doesn't let us assign labels after the fact.

* Keep track of how many effects we call

* Fix typo

* Do less work to reduce the overhead

* Fix lint

* Remove closure

* Remove unintentional formatting changes

* Add tests

* Fix test regex and record tests

* Disable irrelevant tests needed for ReactPerf

* Fix typo

* Fix lint and flow

* Don't treat cWM or cWRP as cascading

* Whitespace

* Update tests

* Gate callComponentWillUnmountWithTimerInDev definition by DEV
2017-03-08 18:28:53 +00:00
Dominic Gannaway
4e9d7ac833 Merge pull request #9096 from trueadm/component-tree-hook-dev
[Fiber] Split dev methods within ReactComponentTreeHook
2017-03-07 14:09:22 +00:00
Dominic Gannaway
a159e85c46 removed inline boolean checks for methods 2017-03-07 13:35:41 +00:00
Brandon Dail
6ca2140c73 Remove _resetEventPlugins, use jest.resetModuleRegistry (#9111)
* Move EventPluginRegistry._resetEventPlugins to DEV

This is not called during runtime at all and is only using in internal unit tests. Despite that, its currently being included in production builds. This change makes it so its only defined in DEV, which might even be too much (we can maybe inject it in our unit tests to avoid defining it at all in EventPluginRegistry)

* Remove _resetEventsPlugin, use resetModuleRegistry
2017-03-07 02:25:24 +00:00
Ben Alpert
d79c6ab995 Fiber DOM async feature flag (#9127)
D4662171
2017-03-06 16:21:43 -08:00
Vincent Taing
bb149c8170 Fix redundant null type coercion (#9114) 2017-03-06 15:20:12 -08:00
Ben Alpert
678cb70da2 Fix radio buttons using stale props in Fiber (#9126)
D4662269
2017-03-06 14:58:29 -08:00
Andrew Clark
0b06b0b35e Merge pull request #9121 from jddxf/refactor
Don't reset the return fiber again after cloning the child fibers
2017-03-06 12:21:10 -08:00
Dominic Gannaway
f992d54157 removed describe.only 2017-03-06 15:18:21 +00:00
Dominic Gannaway
af4d249aa9 fixes tests so they correctly pass in fiber 2017-03-06 15:15:18 +00:00
Dominic Gannaway
b67a29a8ab Merge remote-tracking branch 'upstream/master' into component-tree-hook-dev 2017-03-06 14:55:33 +00:00
Dominic Gannaway
b572e3c907 moved non DEV methods to a new file called ReactFiberComponentTreeHook.js
This moves the non DEV methods to a new file called ReactFiberComponentTreeHook, updates existing references to DEV functions to remain inside DEV flags so they do not pull in ReactComponentTreeHook
2017-03-06 14:19:23 +00:00
jddxf
f939c1bca4 Don't reset the return fiber after cloning the child fibers, as we already do that while cloning. 2017-03-06 17:08:56 +08:00
Brandon Dail
12ad77d006 Remove EventPluginRegistry.getPluginModuleForEvent (#9110) 2017-03-06 00:52:56 -06:00
Brandon Dail
0c1f515faf Remove sliceChildren (#9109) 2017-03-06 00:52:39 -06:00
Brandon Dail
ceafdbf0a5 Remove ReactStateSetters (#9107) 2017-03-03 22:42:25 -06:00
Dan Abramov
d87c4d5e5c [Fiber] Don't schedule class fibers without relevant lifecycles for commit (#9105)
* Don't schedule class fibers without relevant lifecycles for commit

* Separate Update and Ref effects

* Simplify the exit condition

* Add missing annotation

* Write conditions differently to avoid an extra check

* Inline markUpdateIfNecessary()

* Inline markUpdateIfAlreadyInProgress()
2017-03-04 04:23:09 +00:00
Dima Beznos
0bedd0697a Added Brunch build tool to the docs (#9074)
* Added Brunch build tool to the docs

* Improved grammar

* product build -> production build
2017-03-03 16:15:25 -06:00
Andrew Clark
ccde21cd2b Merge pull request #9088 from acdlite/testerrorutilsshim
Test that ReactErrorUtils module can be shimmed
2017-03-03 14:09:10 -08:00
Andrew Clark
e3f6c850c2 Merge pull request #9097 from acdlite/dontextractprodproptypeerror
Fix production propTypes test so it works with error code system
2017-03-03 11:06:04 -08:00
Sasha Aickin
fcf41e7ca2 Add async/await to unit tests; modify server rendering tests to use async/await. (#9089) 2017-03-03 10:34:14 -08:00
Andrew Clark
fc4633775a Remove destructuring, since the version of node on www doesn't support it 2017-03-02 16:44:04 -08:00
Andrew Clark
cf4c06ceba Merge pull request #9098 from acdlite/printwarnings
Add script to print out a list of warnings
2017-03-02 16:39:43 -08:00
Andrew Clark
673f514f81 Fix PropTypes production test so it works with error code system 2017-03-02 16:12:50 -08:00
Dominic Gannaway
91de17ec52 added guards in place to prevent mixed prod+dev errors from occuring 2017-03-02 23:06:32 +00:00
Dominic Gannaway
397fd2b92e removed double semicolon 2017-03-02 22:09:12 +00:00
Dominic Gannaway
9a1db49259 removed comment 2017-03-02 22:08:15 +00:00
Dominic Gannaway
1f7cbb63e8 updated flow annotations 2017-03-02 22:06:46 +00:00
Dominic Gannaway
54fef50186 re-added missing files 2017-03-02 21:52:54 +00:00
Dominic Gannaway
da9d91829e WIP - not sure how to get the Flow type working properly 2017-03-02 21:50:02 +00:00
Sunny Ripert
179240ca30 Fix spacing in documentation (#9070)
Replace non-breaking space by space.
2017-03-02 13:57:58 -06:00
Jason Quense
2757a53fa5 Add fixture components (#8860)
* add fixture components

* add a few more options and styles

* Test fixture updates

- Pull in React from window global
- Add field to TestCase for fix PR links
- Update some styles

* Remove unused Fixture.Result comment

* Remove leading # from resolvedBy link

* Implement tag loading utility that caches response

Don't bust the cache doing feature detection

COME ON

* Use 'local' without version for option
2017-03-02 13:38:27 -06:00
Andrew Clark
9c8547cc9f Add script to print out a list of warnings
We'll use this in the GH sync script to track which warnings have
changed since the last sync
2017-03-02 11:37:01 -08:00
Dominic Gannaway
e8f3f92a88 fixed flow issues and bug resulting in failing tests 2017-03-02 17:53:09 +00:00
Dominic Gannaway
0e23042e4b refactor of ReactComponentTreeHook to isolate dev methods 2017-03-02 16:15:37 +00:00
Vesa Laakso
a190cfce29 Update Lifting State Up not to mix up DOM value with component state (#9032)
* Update Lifting State Up not to mix up DOM value with component state

A few weeks ago when teaching my friend, she got stuck on
`this.state.value` vs. `event.target.value`. As the documentation
talked a lot about "values", and the term value could mean three
different things (values in general, the "value" prop / DOM value of
the <input> component and the value in state/props), it was not weird
that she got a bit confused.

* Rename Lifting State Up onChange props to onTemperatureChange

This is in-line with how the temperature is provided as a prop named `temperature`

* Fix one value prop not being renamed to temperature

* Update codepen examples in Lifting state up documentation

* Update devtools state change to reflect docs change
2017-03-02 00:28:09 +00:00
Dan Abramov
c8f14c26b0 Add a step to the release process 2017-03-01 22:56:06 +00:00
Andrew Clark
b1a565f8fa Convert shorthanded syntax for function Flow types to expanded form
Something in www's test pipeline isn't able to parse this.
2017-03-01 14:38:48 -08:00
Andrew Clark
a293d75f75 Test that ReactErrorUtils module can be shimmed
We do this in www
2017-03-01 14:38:48 -08:00
Andrew Clark
5881371b61 Merge pull request #9087 from acdlite/fixstringcasting
Fix string casting and remove Flow suppression comments
2017-03-01 13:51:17 -08:00
Sasha Aickin
3788654d57 Adding some server rendering unit tests. (#9055)
* Added a handful of SSR unit tests, ported from a previous pull request.

* Fixing linting errors

* Fixed a test helper function to properly report errors.

* Un-nested the new rendering tests. Updated the fiber test passing/not passing lists.

* Edited to comply with the react/jsx-space-before-closing eslint rule, which will soon be merged into master.

* Response to code review from @spicyj. Moved tests to separate file, reworked wording of test names, corrected use of canUseDom, and simplified tests against tagName. Thanks for the help, @spicyj!
2017-03-01 13:39:47 -08:00
Andrew Clark
5e5bc69230 Fix string casting and remove Flow suppression comments 2017-03-01 13:07:22 -08:00
Andrew Clark
d1ee199492 Fix usage of Boolean constructor 2017-03-01 12:30:32 -08:00
Bryan Braun
7a878d27e3 Replace the header_links plugin with client-side generated anchors. (#4165)
* Replace the header_links plugin with client-side generated anchors.

Fixes facebook/react#4124

* Move anchor-link code into a separate script

Also adds a couple comments, for context.
2017-03-01 11:52:54 -08:00
Andrew Clark
737dac4f03 areChildrenOffscreen -> shouldDeprioritizeSubtree 2017-03-01 10:56:31 -08:00
Andrew Clark
a1cd77db6e Pass type to areChildrenOffscreen, too 2017-03-01 10:56:31 -08:00
Andrew Clark
4602e768f3 Add areChildrenOffscreen to host config
Renderers can determine whether a node's children are offscreen based on
the host component's props. If so, they are given OffscreenPriority.

useSyncScheduling takes precedence.
2017-03-01 10:56:31 -08:00
Andrew Clark
4ef197b7d4 Check if we're in sync mode before deprioritizing hidden subtrees 2017-03-01 10:56:31 -08:00
Andrew Clark
81eef12507 Test that hidden subtrees render/update synchronously
When useSyncScheduling is set to true (as it is in the DOM renderer),
we shouldn't give OffscreenPriority to hidden subtrees. Everything
should be sync/task.
2017-03-01 10:56:31 -08:00
Andrew Clark
0585ee8b22 Merge pull request #9082 from acdlite/nobooleanorstringconstructors
Enforce no boolean or string constructors
2017-03-01 10:55:42 -08:00
Dominic Gannaway
18b86bc9d8 Merge pull request #9080 from trueadm/remove-stack-dependencies-from-tests
[Fiber] Remove stack dependencies from tests
2017-03-01 18:24:10 +00:00
Fokke Zandbergen
8eb7068364 Square renders button, not div (#9084) 2017-03-01 09:40:45 -06:00
Dominic Gannaway
8bc11649df Merge branch 'master' into remove-stack-dependencies-from-tests 2017-03-01 12:32:36 +00:00
Andrew Clark
b963396c61 Run test script 2017-02-28 18:57:06 -08:00
Andrew Clark
7d5cc2eee3 Add test for no-primitive-constructors rule 2017-02-28 18:57:06 -08:00
Andrew Clark
2f63b0d6c9 Add error for number constructor, too 2017-02-28 18:57:06 -08:00
Andrew Clark
b9c96cfc73 Add caveat about symbols to string error message 2017-02-28 18:57:06 -08:00
Andrew Clark
6ac5fd3c2b Rename rule to no-primitive-constructors 2017-02-28 18:57:06 -08:00
Andrew Clark
1e9812e31b Convert usage of String and Boolean constructors 2017-02-28 18:56:57 -08:00
Sebastian Markbåge
e452e33741 providesModule -> explicit requires for cross-package dependencies (#9078)
* Add forwarding modules

* Codemod to use full package path outside of own package

Files that require modules from a different package than their own now
does so by the npm path name instead of the providesModule.

* Codemod fbjs module dependencies

* Fix gulp module mapping config

This is a bit lame but because of our module rewrite we need to white
list all the paths that we don't *don't* want to rewrite.
2017-02-28 18:42:52 -08:00
Andrew Clark
5f92d28e52 New ESLint rule that warns against Boolean and String constructors 2017-02-28 13:04:33 -08:00
Ben Alpert
a269e7ec3f Enable react/jsx-space-before-closing rule (#9077)
We mostly do this but not 100%; I fixed the stragglers here with `./node_modules/.bin/eslint --fix src` and enabled the lint rule.
2017-02-28 09:03:08 -08:00
Dominic Gannaway
d2944bb5bf updates test-failing and tests-passing 2017-02-28 15:02:48 +00:00
Dominic Gannaway
04cd2b2a81 refactors/removes stack dependent tests to work with fiber 2017-02-28 15:00:42 +00:00
Sebastian Markbåge
e35724a03d Move webcomponents.js polyfill to mocks (#8993)
* Move webcomponents.js polyfill to mocks

I'd like to move it out of shared to make it easier to sync this to RN.
Since this is only used for testing and a polyfill is essentially a mock.
Maybe this makes sense?

Rename to camel case to be consistent with providesModule.

* Update path to ignore in configs
2017-02-27 18:35:05 -08:00
Brian Vaughn
f923adb585 Pass component stack to error boundary handler (#9073)
This information is probably more useful for custom redbox components than the call stack info we are already passing.
2017-02-27 16:53:17 -08:00
Bernard Lin
fe46def5e2 Updated Chain React (#9067)
Changed conference date from "Summer 2017" to given date on website
2017-02-27 09:53:47 -06:00
Andrew Clark
07dc04d9f4 Merge pull request #8961 from acdlite/fiberbreakonuncaught
[Fiber] Preserve "Break on all/uncaught exceptions" behavior in DEV mode
2017-02-24 16:21:35 -08:00
Andrew Clark
2c59713f71 Remove invokeGuardedCallbackProd
We weren't using it anywhere except for the test suite. Instead, we can
change the environment flag and run the tests in both environments.
2017-02-24 16:19:29 -08:00
Andrew Clark
7e348acab7 Use invokeGuardedCallback in place of Fiber try-catch blocks
Only in DEV. In production, continue using a local try-catch.
2017-02-24 15:49:33 -08:00
Andrew Clark
13d4574228 invokeGuardedCallback should work when nested
Added a guard in the global error event listener to prevent nested
errors from being captured higher up the stack.

Also found a bug where the DEV version of invokeGuardedCallback would
infinite loop if there were nested invocations with the same name. Fixed
by appending the depth to the fake event name. (I'm actually not sure
why this is necessary.)
2017-02-24 15:49:33 -08:00
Andrew Clark
0304008a65 invokeGuardedCallback returns a thrown error
We can use this more flexible version for error handling in Fiber.

The DEV mode version uses same fake event trick as before to preserve
"break on uncaught exception" behavior when debugging.
2017-02-24 15:49:33 -08:00
Ben Alpert
0934ab948d Flatten Text children before rendering (#9063)
From FB-internal D4613844.
2017-02-24 13:40:08 -08:00
Andrew Clark
bc86ac4380 Merge pull request #8950 from acdlite/fibercompositecomponenttests
[Fiber] ReactCompositeComponent-test.js
2017-02-24 11:17:19 -08:00
Andrew Clark
393cdbc745 Consolidate ReactCurrentFiber and ReactDebugLifeCycle 2017-02-24 11:16:58 -08:00
Andrew Clark
d2c28be69b Use ReactDebugLifeCycle to track if we're inside getChildContext 2017-02-24 11:02:21 -08:00
Andrew Clark
309dea5b4c Track which lifecycle method we're in during DEV
Use this to detect setState inside of render instead of relying on
the owner.
2017-02-24 11:02:21 -08:00
Andrew Clark
ebfde985d9 Warn about nested renders 2017-02-24 11:02:21 -08:00
Andrew Clark
75ee3c1424 Warn about setState inside getChildContext
Stack uses a module called ReactInvalidSetStateWarningHook, but all it
does is warn about setState inside getChildContext. Doesn't seem worth
keeping around, so I didn't use it for Fiber, but if I'm mistaken I'll
change it.
2017-02-24 11:02:21 -08:00
Andrew Clark
2f3df5f0b3 Warn about setState in render 2017-02-24 11:02:21 -08:00
Andrew Clark
769c6e0ebe Merge pull request #9060 from acdlite/fixrecordtestsscript
Fix record-tests script
2017-02-24 10:59:44 -08:00
Andrew Clark
3bdc6d0c8e Fix record-tests script
Result of readConfig changed slightly in Jest 0.19.
2017-02-24 10:46:49 -08:00
Andrew Clark
1ae7436d01 Merge pull request #9058 from nihgwu/patch-1
fix version
2017-02-24 10:10:11 -08:00
Neo
18229fdeda fix version
per ca4325e3ef (commitcomment-21033948)
2017-02-24 17:35:27 +08:00
Andrew Clark
ca4325e3ef 16.0.0-alpha.3 2017-02-23 15:36:08 -08:00
Andrew Clark
18217cfede Merge pull request #9054 from acdlite/fiberpreventextensions
[Fiber] Prevent extensions to fiber in DEV
2017-02-23 14:42:16 -08:00
Andrew Clark
f3c2d9f308 Merge pull request #9004 from acdlite/proptypescheck
API for checking external objects against React prop types
2017-02-23 14:37:19 -08:00
Maxwel D'souza
b81175d37a Removed unnecessary if (#9031) 2017-02-23 15:14:21 -06:00
mdogadailo
49840f2e6b Missing onLoad and onError events on image tag (#9042) 2017-02-23 15:05:38 -06:00
Dai Nguyen
d724aed404 Update tutorial.md (#9051) 2017-02-23 14:54:03 -06:00
Andrew Clark
ddf59c403a Prevent extensions to fiber in DEV
Helps us avoid accidentally adding fields to the fiber class
2017-02-23 11:23:44 -08:00
Andrew Clark
03ed3437c9 Fix build config
ReactDebugCurrentFrame is shared state.

checkPropTypes should be imported via the main React export,
not imported directly.
2017-02-23 11:14:15 -08:00
Andrew Clark
0320b8ecb4 Wrap checkPropTypes in DEV conditional so it's stripped out in prod 2017-02-23 11:14:15 -08:00
Andrew Clark
e6d6ad3e88 Remove closure in checkReactTypeSpec by tracking stack info globally
There's a lot of overlap between ReactCurrentOwner,
ReactDebugCurrentFrame, and ReactDebugCurrentFiber that should
be consolidated.
2017-02-23 11:14:14 -08:00
Andrew Clark
9993fdd957 Change formatMessage parameter to getStack
Gives us flexibility in the future to deal with the stack and the
message separately.
2017-02-23 11:14:14 -08:00
Andrew Clark
6ff5211dee Remove warnOnRepeat option
Don't need this internally; doubt external users will need it either
2017-02-23 11:14:14 -08:00
Andrew Clark
3746a9dafb Invert dependency between checkPropTypes and checkReactTypeSpec
Expressing checkReactTypeSpec using the public API frees us to move it
to a separate module in the future.
2017-02-23 11:14:14 -08:00
Andrew Clark
e4acd12a9b Test that checkPropTypes does not throw or return a value 2017-02-23 11:14:14 -08:00
Andrew Clark
600685bdef Add PropTypes.checkPropTypes API
Allows users to check arbitrary objects against React prop types without
relying on the implementation details of the prop validators themselves.
An example of why this is important: some prop validators may throw,
while others return an error object. Calling a prop validator manually
requires handling both cases. `checkPropTypes` does this for you.
2017-02-23 11:14:14 -08:00
Andrew Clark
bef723e47f Remove ReactPropTypeLocationNames module
ReactPropTypeLocationNames was a map of location identifiers to location
display names, for use in warnings. But in practice, this did nothing
except rename "childContext" to "child context." Not worth it, IMO.

Since we are going to add an API for running prop type checks manually,
we need the ability to support arbitrary prop type locations. So
each place that used to accept a ReactPropTypeLocation now just accepts
a string.
2017-02-23 11:14:14 -08:00
Dominic Gannaway
91e8081cf0 Merge pull request #9045 from trueadm/emptyObject-reference-mismatch-due-to-mocking
[Fiber] fix ensure class components refs get re-assigned to emptyObject on mount
2017-02-23 15:38:10 +00:00
Dominic Gannaway
23f245173a Merge pull request #9043 from trueadm/fix-fiber-functional-componment-childcontext
[Fiber] adds `childContextTypes` warnings for functional components
2017-02-23 15:37:48 +00:00
Dominic Gannaway
bde5df1d76 addressed code in feedback 2017-02-23 15:37:19 +00:00
Dominic Gannaway
a99d77e073 added a regression test for factory components 2017-02-23 14:00:02 +00:00
Dominic Gannaway
925743bfc9 reverted ReactDOMFeatureFlags 2017-02-23 13:40:16 +00:00
Dominic Gannaway
e7d7809eb1 reverted the getChildContext warning from showing on functional components in Fiber 2017-02-23 13:39:08 +00:00
Dominic Gannaway
25f4abc9d5 mountClassInstance() now re-assigns instance.refs to emptyObject 2017-02-23 12:58:37 +00:00
Dominic Gannaway
a749083b85 fixed comment that was incorrect 2017-02-23 12:42:21 +00:00
Dominic Gannaway
724ae9b35a reverts previous changes to inlining requires and fixes test suite instead 2017-02-23 12:31:58 +00:00
Ben Alpert
5f6f3277f5 Add test for hack to stop bubbling (#8922) 2017-02-22 14:02:10 -08:00
Ben Alpert
9503abe5c7 Pass errorBoundary to logCapturedError (#9050) 2017-02-22 13:06:49 -08:00
Andrew Clark
2081a0053a Merge pull request #8949 from acdlite/fibercomponentlifecycletests
[Fiber] Component lifecycle tests
2017-02-22 12:54:42 -08:00
Brian Vaughn
a44a5d68d8 Fix bugs that occur when event responder unmounts during a touch event sequence
> This PR adds a test (initially failing) for this case along with a fix for stack and fiber. The stack fix was copied from a Diff submitted by @sema. The fiber fix just required us to stop leaking properties for unmounted views.
> Longer term we may want to explicitly invoke a release event listener for a responder just before unmounting it. This PR does not do that.
2017-02-22 12:47:34 -08:00
Andrew Clark
42c375b136 Merge pull request #9040 from acdlite/assignstateincwrp
Support for assigning to this.state inside componentWillReceiveProps
2017-02-22 12:45:58 -08:00
Stephie
5cc2a4fe3e Fixed typo: "Calcutor" to "Calculator" (#9047) 2017-02-22 17:37:55 +00:00
Dan Abramov
55f18f20ea Update Fiber debugger deps 2017-02-22 17:20:53 +00:00
Michał Pierzchała
67c1fde70e Upgrade Jest to v19 (#9034) 2017-02-22 16:59:18 +00:00
Dominic Gannaway
b8cf75a5b4 updated tests-failing and test-passing 2017-02-22 16:16:21 +00:00
Dominic Gannaway
3a7d6f5384 moved require(emptyObject) to inline calls to get around referential mismatch
Due to how Jest and other mocking libraries work in userland, modules that are required might not be referentially equal at various stages of the application lifecycle. This isnt a perfect fix, but by having the require calls inline, it has a better liklihood of ensuring emptyObject is the same reference
2017-02-22 16:12:51 +00:00
Dominic Gannaway
a9325e2ec4 adds childContextTypes warnings for functional components
ReactStatelessComponent-test.js fails due to warnings not showing up when functional components mount or update. This PR ports the existing warnings from stack and re-applies them to fiber functional components and attempts to re-use some logic in ReactFiberContext that currently exists for showing warnings when dealing with class components.
2017-02-22 14:21:10 +00:00
Andrew Clark
d649ebc6e1 Test should ensure that update is applied before corresponding render
Tightens up the test a bit to prevent regressions.
2017-02-21 16:47:25 -08:00
Brian Vaughn
3d44a6a486 Improved stack/fiber type-check to avoid false negative match when inst._rootNodeID is 0 2017-02-21 15:14:18 -08:00
Andrew Clark
28dbbe5734 Run test script 2017-02-21 14:43:01 -08:00
Andrew Clark
d3cbbe3b36 Add deprecation warning for assigning to this.state inside cWRP
We'll remove support for this in a future release, though we'll likely
still warn.
2017-02-21 14:42:12 -08:00
Andrew Clark
adc1641fec Should be able to setState inside cWRP before assigning to this.state
...without dropping the update. This won't work the other way around,
if you assign to this.state before calling setState. we'll add a
deprecation warning so people stop relying on this pattern.
2017-02-21 14:40:56 -08:00
Andrew Clark
d98a3d9269 Support assigning directly to this.state inside cWRP
We don't explicitly support this but it happens to work in Stack. We'll
give it the same semantics as replaceState.
2017-02-21 14:29:30 -08:00
Dan Abramov
51733c9a36 Add more details to the doc 2017-02-19 12:07:54 +00:00
Dan Abramov
6d6211f526 Doc consistency tweaks 2017-02-19 11:58:42 +00:00
Roman Matusevich
d28264e689 Remove extra article from documentation (#9028) 2017-02-19 11:10:50 +00:00
DanZeuss
fc362bf095 Improved for a better understanding (#8970)
* Improved for a better understanding

that code shouldn't name this parameter onchange. It is so confusing for a starter of ReactJs like me. It looks like that the onChange is an common event from props.

* Update the lifting state up paragraph

I tried to write something to explain to starter programmers in react, how we lift the state up calling a method defined by the ancestor and called by the children that will affect the children element.

* Rewrite Lifting State Up
2017-02-19 02:21:05 +00:00
Ben Alpert
bc2702f8bd Fix Fiber devtools prod (#9019) 2017-02-16 18:00:49 -08:00
Dimzel Sobolev
764531d53a Switch to shipping Fiber in npm packages (#9015) 2017-02-16 15:42:04 +00:00
Ben Alpert
d20dea1de2 Update to babel-plugin-transform-es2015-block-scoping 6.23 (#9002)
Now we won't add closures unnecessarily. I verified that we have no code that throws -- adding some then running `grunt build:modules` correctly throws.
2017-02-14 11:24:01 -08:00
Sebastian Markbåge
66bae80b08 Move validation calls behind DEV blocks (#8999)
This was done for Fiber but not Stack, causing these to throw in prod.
2017-02-14 11:10:59 -08:00
Sebastian Markbåge
5a1e30a868 Ignore events on text nodes (#9000)
In React Native events can fire on text nodes (on Android at least).

In that case, the current element will be a string and not props. These
can not have event handlers on them so we need to bail out so that
we don't throw later on.
2017-02-14 11:08:29 -08:00
Dan Abramov
7bdc189147 Revert "update react perf docs (#8060) and (#6174)" (#8997) 2017-02-13 23:43:08 +00:00
Toru Kobayashi
080f21e64f Remove an unnecessary condition 2017-02-13 15:36:13 -08:00
Dan Abramov
2464cd2d53 Update Thinking in React embed to match the link (#8996) 2017-02-13 23:25:47 +00:00
Brandon Dail
1ccb9361fe Revert "Revert "Missing a space for error 125"" (#8995) 2017-02-13 23:15:08 +00:00
Dan Abramov
c906fecd26 Revert "Missing a space for error 125" (#8994) 2017-02-13 23:11:05 +00:00
Ben Alpert
1e722e4a97 Check alternate in ReactTreeTraversal (#8992)
Test Plan: Couldn't figure out how to write a unit test. :\ Verified that enter/leave bubbling now works correctly in one FB interface that was broken though.
2017-02-13 14:24:44 -08:00
Phil Rajchgot
6367f9fbf3 Missing a space for error 125 (#8981) 2017-02-13 16:21:15 -06:00
Sean Gransee
c16ec5df13 fix misspellings in comments and tests (#8946)
* fix misspellings in comments and tests

* revert change in docs/js/react-dom.js
2017-02-13 16:01:54 -06:00
Sebastian Markbåge
890d52bafc Move ReactElementType to shared (#8991)
This is currently used by both isomorphic and the renderer. I think that
we can probably split these up. The isomorphic type should actually be
different. It has to do with that the caller needs to know exactly which
type of element it is but this is never needed in the renderer which only
needs to know that the type is internally consistent.

The owner type is renderer dependent so it can literally be anything.
2017-02-13 13:54:40 -08:00
Dan Abramov
4a05f268c8 Revert "Fix createNodeMock doc to avoid Invariant Violation" (#8990) 2017-02-13 20:15:49 +00:00
Andrew Clark
5ee033e40b Merge pull request #8974 from acdlite/fibercallbackvalidation
[Fiber] Move callback validation to top level
2017-02-13 12:15:42 -08:00
Andrew Clark
ea2ade251f Don't pass method names in production
Requires us to make the error message a bit more generic.
2017-02-13 12:13:50 -08:00
BDav24
00092957b6 Fix createNodeMock doc to avoid Invariant Violation (#8989) 2017-02-13 20:13:31 +00:00
Andrew Clark
d3aeca1ff8 Validate callbacks just before they are invoked
This delays the type check until the point when the engine will have to
perform a type check regardless.

Because the error is now thrown during the commit phase rather than
when the callback is originally scheduled, we warn in DEV when
scheduling so it's easier to track down.
2017-02-13 12:12:44 -08:00
Andrew Clark
662170673f Merge pull request #8978 from acdlite/nooptionaltypes
[Fiber] Use `T | null` instead of `?T` types
2017-02-13 11:20:58 -08:00
Jiminikiz
7958c1d77d Fixing grammatical error ... (#8987)
... in the Create React App section.
2017-02-13 10:04:09 -08:00
Prayag Verma
c60f852cdb Fix a typo in design principles doc (#8985)
unambigious → unambiguous
2017-02-13 15:09:00 +00:00
Andrew Clark
350d736361 Use T | null instead of ?T types
Flow maybe types accept both null and undefined. When the final
parameter of a function accepts a maybe type, passing nothing
(undefined) successfully typechecks, which can lead to bugs if the
omission is accidental. Being forced to pass null is harder to screw up.

Explicit null checks are also faster.
2017-02-10 17:30:09 -08:00
Toru Kobayashi
77c7792556 Remove React.__spread 2017-02-10 12:27:02 -08:00
Moacir Rosa
de673bca8d Only fix a small wrong key in example (#8976)
Only fix a small wrong key in example
2017-02-10 15:40:24 +00:00
Brian Vaughn
2e095b4140 Hardened validateCallback to better handle null values (#8973)
Previously, calls to validateCallback() with a null callback value resulted in runtime errors if a certain transform was not applied prior to running. This commit wraps the invariant() with the condition check so as to avoid calling formatUnexpectedArgument() unless necessary. It also replaces the truthy/falsy callback check with an explicit check for improved performance.
2017-02-09 14:10:45 -10:00
Leland Richardson
869c779861 Add toTree() method to stack and fiber TestRenderer (#8931)
* Add toTree() method to stack and fiber TestRenderer

* Address PR feedback

* Refactor TestRenderer to use correct root

* Rebase off master and fix root node references

* Add flow types

* Add test for null rendering components

* Remove last remaining lint error

* Add missing test
2017-02-09 20:55:00 +00:00
Dan Abramov
3f48caab40 Fix release guide again 2017-02-09 16:15:04 +00:00
Dan Abramov
6cfc0ecd72 Fix release guide 2017-02-09 16:14:27 +00:00
Dan Abramov
c11733dfb7 Update Yarn lockfile with fresh deps 2017-02-09 16:10:35 +00:00
Dan Abramov
c7ebe88c2a 16.0.0-alpha.2 2017-02-09 16:07:56 +00:00
Brian Vaughn
df13eb354e Fixed lint warning in master (#8960) 2017-02-09 16:02:47 +00:00
Sebastian Markbåge
741d9b2db9 Move React Native Environment Mocks to root (#8963)
These mocks are things we expect to be available in the React Native
environment. I'd like to move them out of the renderer folder so that we
can sync that folder to React Native as is without overriding its mocks.

I motivate by the fact that they're not really part of the renderer code
itself. I leave the ReactNative mock since that is in fact part of the
renderer.
2017-02-09 16:02:09 +00:00
Sebastian Markbåge
13e05b4237 Use separate feature flag for ReactTestRenderer (#8965)
The ReactDOMFeatureFlags is not reachable from the npm package since it is
in a separate build so we need a separate one.
2017-02-09 16:00:59 +00:00
Brian Vaughn
ab757e905c Fixed ReactNativeFiber event handling regression (#8959)
* Fixed ReactNativeFiber event system regression introduced in b354db2
Also added test coverage to ReactNativeEvents-test for Fiber

* ReactNative tests now run against fiber renderer when env flag set
Updated the test-framework-setup file so that record-tests runs native tests against ReactNativeFiber. ReactComponentTreeHook native tests all now fail but that's expected.

* Avoid calling setChildren() if no children
2017-02-08 21:28:56 -10:00
Sebastian Markbåge
81bd138144 findNodeHandle -> ReactNative.findNodeHandle (#8962)
Submitted this internally already.

Needed because people import this file directly and they might not have the renderer inject the findNodeHandle handler yet.
2017-02-08 17:13:33 -08:00
Andrew Clark
9b7dc4036c Merge pull request #8948 from acdlite/fiberdonttesthostcleanup
[Fiber] Don't test input value clean-up in Fiber
2017-02-08 15:33:20 -08:00
Andrew Clark
5b181a696e Make Stack error message more generic, too
We want to avoid passing around caller names because stripping them
out in production complicates the code for little benefit.
2017-02-08 11:43:53 -08:00
Andrew Clark
e9aca8e389 Warn about calling setState on an unmounted component 2017-02-08 11:23:58 -08:00
Andrew Clark
3955e222d2 Use isMounted instead of instance map to check if mounted 2017-02-08 10:33:00 -08:00
Andrew Clark
76a168fed6 Warn if findDOMNode is used inside render
Need to reset current owner to null before committing
2017-02-08 10:32:14 -08:00
Andrew Clark
4d52ebc066 Warn about isMounted inside render 2017-02-08 10:31:30 -08:00
Andrew Clark
f4cabafc8d Don't test input value clean-up in Fiber
Fiber doesn't clean up host components; relies on GC.
2017-02-08 10:26:47 -08:00
Sebastian Markbåge
b187142103 Move DOM dependent tests out of the shared folder (#8954)
We have a bunch of tests that are meant to test generic React behavior.
However, we've written the tests against the DOM renderer. This moves
tests that depend on ReactDOM or ReactTestUtils out of the shared repo.

This will let us sync the shared repo directly to environments that don't
support running these tests. Such as React Native.
2017-02-08 10:20:02 -08:00
Dan Abramov
1d90894f93 Re-add the warning if PropType function is called manually (#8903)
* Revert "Revert "Warn if PropType function is called manually (#7132)""

This reverts commit be71f76ed8b7dbad25e3519455605252d3daf683.

In other words, now we again have the warning if you attempt to call PropTypes manually.
It was removed in #8066 but we shouldn't have done this since we still want to avoid people accidentally calling them in production (and even more so since now it would throw).

Fixes #8080.

* Pass secret in ReactControlledValuePropTypes

* Record tests
2017-02-08 16:29:19 +00:00
Dhyey Thakore
994a0c8b0c update react perf docs (#8060) and (#6174) (#8236)
* update react perf docs issue 8060 and 6174

* Grammar

Small stuff
2017-02-07 14:00:08 -08:00
Dan Abramov
e280f5a1a7 Fix lint (#8945) 2017-02-07 14:42:09 +00:00
Andrew Clark
5cfff8706e Merge pull request #8919 from acdlite/fibermounttests
[Fiber] Mount/unmount warnings and invariants
2017-02-06 18:00:50 -08:00
Andrew Clark
0564b08cf2 Split into multiple invariants
That way the messages are extracted by the error code transform.
2017-02-06 17:59:53 -08:00
Andrew Clark
23f9e7b8ad Merge pull request #8937 from acdlite/inlineinternalerrormessage
Inline internal error message
2017-02-06 17:44:26 -08:00
Andrew Clark
2c7c783498 Merge pull request #8936 from acdlite/removemapsaschildren
Remove experimental support for maps as children
2017-02-06 17:14:30 -08:00
Andrew Clark
14962f8b40 Continue warning if a Map is rendered as a child
The entries of a map are a two-element array of [key, value], which
React will treat as fragments with children. This is unlikely to ever
be the intended behavior, so we warn.
2017-02-06 17:07:19 -08:00
Andrew Clark
94e843955d Remove experimental support for maps as children 2017-02-06 15:51:19 -08:00
Andrew Clark
2e1b3aab91 Inline internal error message
So that it is stripped out by the error code transform
2017-02-06 15:43:47 -08:00
Andrew Clark
a2c49f48bf Merge pull request #8926 from acdlite/fiberuseinvariant
[Fiber] Replace `throw new Error` with invariant module
2017-02-06 14:49:14 -08:00
Andrew Clark
915a3e88a2 Add additional message to internal invariants
The message tells users that the error is likely due to a bug in React,
and that they should file an issue.
2017-02-06 14:43:57 -08:00
Andrew Clark
b338c75c28 Get rid of DEV only invariant 2017-02-06 14:43:22 -08:00
Andrew Clark
a1ef4c4391 Replace throw new Error with invariant module 2017-02-06 14:43:14 -08:00
Andrew Clark
9fcf761e90 Run test script 2017-02-06 14:22:27 -08:00
Andrew Clark
255e5aeb3e Rendering into an empty React-rendered element should not warn
Only warn if the container has a React-rendered child.
2017-02-06 14:22:16 -08:00
Sebastian Markbåge
e05f0a3a13 Only expose FiberRoot at the top level instead of a Fiber (#8934)
It is strange to get a handle on the Fiber since it is one of possibly two
root Fibers. The correct way to get the current Fiber is through the
root.current.

I exposed the Fiber originally because I thought we might use it for
Portals but we went with a different approach. So we don't need this.
2017-02-06 13:19:33 -08:00
Andrew Clark
b49611e643 Merge pull request #8927 from mitenka/patch-5
Update higher-order-components.md
2017-02-06 11:42:31 -08:00
Jon Bretman
afdf47f425 Bump fbjs to 0.8.9 (#8910) 2017-02-06 19:02:17 +00:00
Dan Abramov
fb1444c463 Inject DevTools integration for RN Fiber (#8930) 2017-02-06 17:36:59 +00:00
KB
d42c285aa2 [docs] Add note about refs on stateless components (#8916)
* Add note about refs on stateless components

* Move info about refs in the stateless components to the main section

* Simplification of the part about refs and functional components

* Tweaks

* Move sections around

* Oops

* Rearrange more sections
2017-02-06 16:49:36 +00:00
António Nuno Monteiro
4313059702 Change the order between function declaration and object assignment (#8895)
This fixes #8894
2017-02-06 16:02:13 +00:00
Dmitry Zhuravlev-Nevsky
1b69a79136 Update higher-order-components.md 2017-02-04 03:35:06 +03:00
Ben Alpert
fa1087b42c Ensure first error is thrown if HostRoot catches two errors in commit phase (#8923)
Previously, we were overwriting capturedErrors with the second error and throwing that one.
2017-02-03 11:12:28 -08:00
Diego Muracciole
ad133f5b3d Add onToggle event to details tag (#8831)
* Add onToggle event to details tag

Fixes #8761

* Map onToggle event on ReactDOMFiberComponent

* Tweak doc

* Trap events on setInitialProperties for details tag
2017-02-03 10:25:09 +00:00
Andrew Clark
269555e35c Merge pull request #8921 from facebook/revert-8907-fiberproderrorcode
Revert "Loosen assertion so it matches any production error"
2017-02-02 15:24:04 -08:00
Andrew Clark
bd3070f774 Revert change to test
See: https://github.com/facebook/react/pull/8907#issuecomment-277111278
2017-02-02 15:22:28 -08:00
Andrew Clark
57d2d6d77d Merge pull request #8907 from acdlite/fiberproderrorcode
Loosen assertion so it matches any production error
2017-02-02 14:42:23 -08:00
Andrew Clark
87bc7cef2c Warn if unmounting a tree that was rendered by a different copy of React 2017-02-02 14:30:12 -08:00
Dan Abramov
7e8068b984 Move component base classes into a single file (#8918) 2017-02-02 20:24:39 +00:00
Andrew Clark
f4823295af Warn when rendering into React-rendered child that isn't a root 2017-02-02 12:18:18 -08:00
Andrew Clark
d47c21589b Warn when mounting into document.body 2017-02-02 12:18:18 -08:00
Andrew Clark
822587ea06 Add extra invalid element info to invariant message 2017-02-02 12:18:18 -08:00
Andrew Clark
ea2aa6e613 Fix messages so that they use the same template as Stack
The production error code system depends on the exact template string
that is passed to `invariant`. This changes the Fiber templates to
match the Stack ones.
2017-02-02 12:05:00 -08:00
Andrew Clark
02edc6bf18 Loosen assertion so it matches any production error
The exact error code isn't important.
2017-02-02 11:17:56 -08:00
Pontus Abrahamsson
55a18bca64 Update conferences.md (#8915)
* Update conferences.md

* Move confs around
2017-02-02 13:37:27 +00:00
Omid Hezaveh
79be3543dd Explain arbitrariness of ref name in callback (#8913)
* Explain arbitrariness of ref name in callback 

The sample code was confusing because it's not clear that "textInput" in this.textInput is an arbitrary name for the ref.

* Tweak wording
2017-02-02 13:33:12 +00:00
Dan Abramov
9e3a31b2c6 Fix indentation in tutorial (#8914) 2017-02-02 13:24:26 +00:00
Eduard
dc04ee87ae Update tutorial.md (#8896)
* Update tutorial.md

The status <div> used in Board can be deleted as well from render.

* Little tweaks
2017-02-01 18:12:00 -08:00
Tiago Fernandez
05f5bf6eb6 Link to CodePen editor rather than final result (#8849)
People want to see the final JS/CSS/HTML, and the final result is already displayed by CodePen.
2017-02-01 18:02:44 -08:00
Jeffrey Wan
3f5482ee20 Update tutorial.md (#8792)
* Update tutorial.md

* Fix quoting to be consistent
2017-02-01 17:42:19 -08:00
John Longanecker
b8f0522cc6 Lifting State Up more legible (#8691) 2017-02-01 17:31:01 -08:00
Andrew Clark
86fbb9d583 Merge pull request #8905 from acdlite/fiberfinddomnodeunmount
[Fiber] findDOMNode during componentWillUnmount
2017-01-31 16:05:05 -08:00
Andrew Clark
c158ff6179 Merge pull request #8908 from acdlite/fiberemptycomponent
[Fiber] Fix formatting of invalid element invariant
2017-01-31 16:03:54 -08:00
Andrew Clark
2afcf6e09f Fix formatting of invalid element invariant
Message is slightly different for functional and class components.
2017-01-31 15:29:53 -08:00
Andrew Clark
6545012af2 Merge pull request #8893 from gaearon/fix-dom-prod-test
Add process.cwd to the test process shim
2017-01-31 15:04:39 -08:00
Andrew Clark
10e5438422 Merge pull request #8906 from acdlite/warningnewline
Add missing newline to warning
2017-01-31 14:42:21 -08:00
Andrew Clark
6846ef9fb8 Add newline to warning 2017-01-31 14:41:14 -08:00
Andrew Clark
af7ae1be91 Don't swap the trees until after the first pass of the commit phase,
where componentWillUnmount is called, but before the second pass,
where componentDidMount/Update is called.
2017-01-31 14:39:52 -08:00
Andrew Clark
35ddd05da4 Merge pull request #8890 from acdlite/fiberfragmentinvariants
[Fiber] Throw on plain object children
2017-01-31 13:14:11 -08:00
Andrew Clark
73d27d755e Merge pull request #8897 from acdlite/fiberfixfinddomnode
[Fiber] Fix findDOMNode algorithm
2017-01-31 13:13:56 -08:00
Andrew Clark
2a0fb5b4aa Remove legacy React element warning 2017-01-31 11:46:30 -08:00
Andrew Clark
17ec96b014 Run test script 2017-01-31 11:44:35 -08:00
Andrew Clark
7daa90206d Add missing portal case to updateSlot switch statement 2017-01-31 11:44:35 -08:00
Andrew Clark
7af673afc1 Allow object as textarea child
Preserves Stack behavior. There's already a warning for this.
2017-01-31 11:44:35 -08:00
Andrew Clark
802c820545 Fallback to owner of returnFiber
Won't work if the returnFiber is a fragment. Not sure it matters;
warning will just be less descriptive.
2017-01-31 11:44:35 -08:00
Andrew Clark
3089db94ce Throw on invalid object type children
Same behavior as Stack
2017-01-31 11:44:30 -08:00
Andrew Clark
ba5b9c0af3 Add invariant
Defensive coding to prevent an infinite loop.
2017-01-31 11:35:10 -08:00
Dan Abramov
ea9e1575b7 Suppress lint warnings
Using [] is intentional because we don't want to trigger Babel plugin.
2017-01-31 19:30:26 +00:00
Andrew Clark
97f6786cba Fix findDOMNode algorithm 2017-01-31 10:24:03 -08:00
Dan Abramov
d6d129a1b2 Reassign process.env.NODE_ENV instead of shimming process 2017-01-31 16:28:20 +00:00
Marius Skaar Ludvigsen
d8450845fe #6049 add support for onCancel and onClose event (#6247) 2017-01-31 08:10:48 -06:00
Richie Thomas
469e68542b Added double newline delimiters to the following functions/files: (#8777)
* 'beginLifeCycleTimer' function of ReactDebugTool.js
            * 'bindAutoBindMethod' function of ReactClass.js
            * 'warnNoop' function of ReactServerUpdateQueue.js
            * 'getInternalInstanceReadyForUpdate' function of ReactUpdateQueue.js
            * 'warnNoop' function of ReactNoopUpdateQueue.js
            * 'getDeclarationErrorAddendum' function of ReactDOMComponent.js
            * 'getSourceInfoErrorAddendum' function of ReactElementValidator.js
            * 'getDeclarationErrorAddendum' function of instantiateReactComponent.js and ReactElementValidator.js
            * 'traverseAllChildrenImpl' function of traverseAllChildren.js
            * 'attachRef' function of ReactRef.js
            * 'mountIndeterminateComponent' function of ReactFiberBeginWork.js
            * 'createFiberFromElementType' function of ReactFiber.js
            * 'getDeclarationErrorAddendum' function of ReactDOMSelect.js
            * 'unmountComponentAtNode' function of ReactMount.js
            * 'getDeclarationErrorAddendum' function of ReactControlledValuePropTypes.js
            * 'checkRenderMessage' function of CSSPropertyOperations.js
            * 'getDeclarationErrorAddendum' function of ReactDomFiberSelect.js
            * 'getCurrentComponentErrorInfo' function in 'ReactElementValidator'
            * 'getDeclarationErrorAddendum' function in ReactDOMFiberComponent.js
2017-01-31 07:41:24 -06:00
Vladimir Kovpak
8bc5a87d04 Added undefined example (#8899)
Into section `Booleans, Null, and Undefined Are Ignored` I've added example with undefined.
2017-01-31 07:24:29 -06:00
Ben Alpert
64a47e9fb4 Don't crash Fiber with old devtools (#8900)
Typo.
2017-01-31 13:06:53 +00:00
Roman Liutikov
59aac010dd refer to object by name instead of function call context (#8892) 2017-01-30 18:32:26 -06:00
Senin Roman
466bb4ffb9 Fix incorrect markup for ie10 (#8886) 2017-01-30 18:32:07 -06:00
Dan Abramov
3195bcdbcb Add process.cwd to the test process shim 2017-01-30 21:48:05 +00:00
Maksim Shastsel
ec936dd848 Delete @nosideeffect annotation (#8882) 2017-01-30 21:42:17 +00:00
Dan Abramov
fb4c08baee Fix lint (#8888) 2017-01-30 17:46:07 +00:00
MICHAEL JACKSON
564fa64626 Update context example for react-router v4 beta (#8889)
* Update context example for react-router@4.0.0-beta.1

* Style nits
2017-01-30 17:36:47 +00:00
Dan Abramov
d8491ca73f Declare __REACT_DEVTOOLS_GLOBAL_HOOK__ for Flow (#8884) 2017-01-30 14:14:30 +00:00
Zac Braddy
cae2a6f9d3 Got rid of linting errors on windows machines and a number of linting warnings. (#8846) 2017-01-28 15:36:03 -08:00
Frank Yan
751d221172 Fix typo in EventPropagators.js (#8879) 2017-01-27 18:36:21 -06:00
Dan Abramov
d3e29d4e54 [Fiber] Support React DevTools (#8818)
* Initial React DevTools support for Fiber

* Record a newly failing irrelevant test

This is fine because we don't use it in Stack anyway (at least not that part), and we also rely on Set/Map in other parts of code.
The newly failing test is the one saying "it works without Map/Set".

* Explicitly check for Fiber DevTools support

This lets us ignore pre-Fiber DevTools instead of crashing them by injecting a different API.

* Track the roots in DevTools instead

* Lol Dan this is not how warnings work in our codebase

* Move injection to the renderer

* Notify DevTools about unmounts

* Make it work in production

* Fix lint and flow

* Fixups

* Address feedback
2017-01-27 22:50:35 +00:00
Paul O’Shannessy
3c75593692 [examples] Use react-standalone (#7669)
[examples] Use babel-standalone
2017-01-26 11:57:01 -06:00
Sebastian Markbåge
b26265718a Merge pull request #8840 from sebmarkbage/statelesscoroutines
[Fiber] Simplify coroutines by making yields stateless
2017-01-26 07:15:36 -08:00
Mitchel Humpherys
39472f1c3e installation.md: Add missing "as" (#8871) 2017-01-25 23:33:49 -06:00
Sebastian Markbåge
3f409df468 ReactElement is private to isomorphic React (#8868)
This fixes the build since this dependency is not reachable from React DOM.
2017-01-25 17:52:45 -08:00
Sebastian Markbage
975ad92e68 Don't bail to .child of coroutines
This should bail to stateNode instead.
2017-01-25 17:50:21 -08:00
Sebastian Markbage
754f72a175 Don't visit siblings of the coroutine when looking for yields
When visiting the yields, the root is the stateNode of the coroutine. If
its return value is wrong we'll end up at the alternate of the
workInProgress which will start scanning its children which is wrong.
2017-01-25 17:36:20 -08:00
Sebastian Markbage
e8500fb1c2 Add failing tests for coroutines
There are a few different issues:

* Updates result in unnecessary duplicate placements because it can't find the current fiber for continuations.
* When run together, coroutine update and unmounting tests appear to lock down in an infinite loop. They don't freeze in isolation.

I don't have a solution for this but just leaving it for future fixes.
2017-01-25 15:41:48 -08:00
Sebastian Markbage
fd8d5f7a8a Simplify coroutines by making yields stateless
Coroutines was kind of broken because it tried to do reparenting and
enabling state preservation to be passed along the coroutine. However,
since we couldn't determine which Fiber was "current" on a reified yield
this was kind of broken.

This removes the "continuation" part of yields so they're basically just
return values. It is still possible to do continuations by just passing
simple functions or classes as part of the return value but they're not
stateful.

This means that we won't have reparenting, but I actually don't think we
need it. There's another way to structure this by doing all the state in
the first phase and then yielding a stateless representation of the result.
This stateless representation of the tree can then be rendered in different
(or even multiple) locations.

Because we no longer have a stateful continuation, you may have noticed
that this really no longer represent the "coroutine" concept. I will
rename it in a follow up commit.
2017-01-25 15:41:47 -08:00
Sebastian Markbage
648d6e190c Swap .child and .stateNode in coroutines
It is slightly more useful this way because when we want to find host nodes
we typically want to do so in the second phase. That's the real tree where
as the first phase is more of a virtual part of the tree.
2017-01-25 15:41:47 -08:00
Brian Vaughn
88b6175cb1 Bumping package.json versions from 16.0.0-alpha.0 to 16.0.0-alpha.1 2017-01-25 12:14:00 -08:00
Andrew Clark
63edf30f5d Merge pull request #8797 from acdlite/fix-arrays
[Fiber] disableNewFiberFeatures bugfix: host component children arrays
2017-01-25 12:06:08 -08:00
Andrew Clark
ba1d3829bc Use multiple checks instead of forking the entire function
Easier to follow this way, and less chance the two paths will get
out of sync.
2017-01-25 12:05:32 -08:00
Andrew Clark
645ad6d261 Add test for mocked render functions
Treat them as if they return null
2017-01-25 11:52:48 -08:00
Andrew Clark
c0e5df66ec Make disableNewFiberFeatures = true the default when runnings tests
This exposed a few more cases that I missed.
2017-01-25 11:52:48 -08:00
Andrew Clark
5c4362dc5c Remove outdated TODO 2017-01-25 11:52:48 -08:00
Andrew Clark
1ac6be2677 Add test for iterables, too 2017-01-25 11:52:48 -08:00
Andrew Clark
16956ed640 disableNewFiberFeatures bugfix: host component children arrays 2017-01-25 11:52:48 -08:00
jddxf
a3ff8c3833 Improve tests (#8866)
* refactor one test suite to use jest's mock function

* keep the comment
2017-01-25 10:13:09 -06:00
Brandon Dail
2b113c527e Use correct optional paramater JSDoc syntax 2017-01-25 09:24:00 -06:00
lokson
facd67d000 [docs] forEachAccumulated params 2017-01-25 09:24:00 -06:00
Scott
4c6fec902f Add benchmarking tutorial (#8698)
* Add benchmarking tutorial

I've written what I hope is the simplest introduction to benchmarking React components. It's meant to be straightforward and easy to follow for beginners. If you agree that it would be helpful, I'd like to add it to the docs.
Would also welcome any and all feedback.

* Just put links together
2017-01-25 15:14:18 +00:00
Oscar Bolmsten
c2f94385a1 webpack 2 is now stable (#8859)
Remove notice about different webpack versions
Update webpack URLs
2017-01-25 14:56:52 +00:00
Edvin Erikson
0c7f21a705 Component -> Unknown (#8863)
Fix Flow issue and revert to showing "Unknown" in warnings for anonymous components
2017-01-25 14:49:19 +00:00
Edvin Erikson
5170db8e72 Remove unnecessary null (#8858)
* Remove unnecessary null

* always return string
2017-01-24 18:19:07 +00:00
Dan Abramov
7683211efd Fix Flow (#8857) 2017-01-24 13:45:49 +00:00
Brandon Dail
2be0583ed3 Update deprecation wording to be less aggressive 2017-01-24 00:18:23 -06:00
Brandon Dail
4bba89f047 Add deprecation tests to fiber test tracker 2017-01-24 00:18:23 -06:00
Brandon Dail
23deea0f02 Add test for deprecation warnings 2017-01-24 00:18:23 -06:00
Brandon Dail
2b7814f713 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-01-24 00:18:23 -06:00
Ben Alpert
046f7448d7 Two minor changes from internal (#8855) 2017-01-23 17:11:10 -08:00
Keyan Zhang
eb89bc4c30 Add a link to "State Updates are Merged" in the forms doc (#8851)
* Added a link to "State Updates are Merged"

* better inline links

* moved the explanation down

* Minor unrelated tweaks
2017-01-23 21:09:48 +01:00
mguidotto
b2b6d9daf7 Update conferences.md (#8841)
* Update conferences.md

* Update conferences.md

path fixed

* Changed capitalization to match the website and Twitter
2017-01-23 20:31:21 +01:00
OJ Kwon
f5662456e1 Update test setup Windows compatible (#8651)
- relates to #7849
2017-01-23 19:59:06 +01:00
Dan Abramov
ee6358bb7d Tweak RRM instructions to mention Yarn instead 2017-01-23 18:01:27 +00:00
Dan Abramov
beb2e0124d Clarify use of ES6 idiom in Forms doc 2017-01-23 17:59:44 +00:00
Justin Grant
fc302494b7 Reminder: strip quotes from attributes with JS code (#8806)
* Reminder: strip quotes from attributes with JS code

Web developers who are used to standards-compliant HTML and XML will, out of habit, put quotes around all attributes because the standards require them. Other templating systems like ASP.NET also require (or at least allow) quotes around attributes that contain code. This behavior will get users into trouble in JSX because a quoted attribute is always treated as a string literal, even if it contains curly-braced javascript code.  Let's add to the docs to help newbies evade this problem.

* Tweak wording
2017-01-23 18:09:35 +01:00
Ragnar Þór Valgeirsson
09b3ec5d3c Match eslint's line length settings (#8845) 2017-01-23 17:47:48 +01:00
SunHuawei
5494b267d9 Fix a typo (#8580) 2017-01-23 17:43:48 +01:00
Mark Pedrotti
f56cf66945 Replace 2 occurrences of string in type ReactTestRendererJSON (#8816)
* Replace 2 occurrences of string in type ReactTestRendererJSON

* restore string in ReactTestRendererFiber.js
2017-01-23 17:29:47 +01:00
Sebastian Markbåge
5659bd2a63 Polyfill requestIdleCallback when native is not available (#8833)
I introduce the ReactDOMFrameScheduling module which just exposes
rIC and rAF.

The polyfill works by scheduling a requestAnimationFrame, store the time
for the start of the frame, then schedule a postMessage which gets
scheduled after paint. The deadline is set to time + frame rate.
By separating the idle call into a separate event tick we ensure that
layout, paint and other browser work is counted against the available time.

The frame rate is dynamically adjusted by tracking the minimum time between
two rAF callbacks. This is not perfect because browsers can schedule
multiple callbacks to catch up after a long frame. To compensate for this
we only adjust if two consecutive periods are faster than normal.

This seems to guarantee that we will hit frame deadlines and we don't end
up dropping frames. However, there is still some lost time so we risk
starving by not having enough idle time.

Especially Firefox seems to have issues keeping up on the triangle demo
However, that is also true for native rIC in Firefox. It seems like more
render work is scheduled on the main thread pipeline and also that JS
execution just generally has more overhead.
2017-01-21 10:27:46 -08:00
Brian Vaughn
f546505e4e Support for ReactFeatureFlags.logTopLevelRenders timing (#8687)
Call `console.time` / `console.timeEnd` for the top level component when `ReactFeatureFlags.logTopLevelRenders` is enabled
2017-01-21 09:44:47 -08:00
Sebastian Markbåge
4f8c16a750 Read "current" props from the node instead of the Fiber (#8839)
It's not just events that read the current props. Controlled components
do as well. Since we're no longer updating the Fiber pointer during updates
we have to instead read from the node props to get the current props.

Since this method is no longer just used for events I renamed it.
2017-01-20 23:25:25 -08:00
EugeneGarbuzov
30c7c4fbe6 Corrected a typo. (#8837)
shoud -> should
2017-01-20 13:25:21 -06:00
Sebastian Markbåge
b354db22a9 [Fiber] Compute the Host Diff During Reconciliation (#8607)
* Allow renderers to return an update payload in prepareUpdate

This then gets stored on updateQueue so that the renderer doesn't need to
think about how to store this.

It then gets passed into commitUpdate during the commit phase.

This allows renderers to do the diffing during the time sliced path,
allocate a queue for changes and do only the absolute minimal work to
apply those changes in the commit phase.

If refs update we still schedule and update.

* Hack around the listener problem

* Diff ReactDOMFiber properties in prepareUpdate

We now take advantage of the new capability to diff properties early.
We do this by generating an update payload in the form of an array with
each property name and value that we're about to update.

* Add todo for handling wasCustomComponentTag

* Always force an update to wrapper components

Wrapper components have custom logic that gets applied at the commit phase
so we always need to ensure that we schedule an update for them.

* Remove rootContainerInstance from commitMount

No use case yet and I removed it from commitUpdate earlier.

* Use update signal object in test renderer

* Incorporate 8652 into new algorithm

* Fix comment

* Add failing test for flipping event handlers

This illustrates the problem that happens if we store a pointer to the
Fiber and then choose not to update that pointer when no properties change.
That causes an old Fiber to be retained on the DOM node. Then that Fiber
can be reused by the pooling mechanism which then will mutate that Fiber
with new event handlers, which makes them active before commit.

* Store current props in the RN instance cache and on the DOM node

This represents the current set of event listeners. By not relying on the
Fiber, it allows us to avoid doing any effects in the commit phase when
nothing changes.

This is a bit ugly. Not super happy how this all came together.
2017-01-19 21:56:15 -08:00
Dan Abramov
c6a7dc7f24 Preserve license headers from dependencies in minified build (#8803)
* Preserve license headers from dependencies in minified build

Fixes #8789.

* Bump minimal object-assign version
2017-01-20 02:29:06 +01:00
Keyan Zhang
06399b8ce3 Add "Handling Multiple Inputs" to Forms doc (#8552)
* added "Handling Multiple Inputs"

* renamed and added a codepen

* simplified the example
2017-01-17 22:19:46 -08:00
Brian Vaughn
16abcef937 Tweaked captured error log slightly based on feedback (#8785)
Tweaked captured error log slightly based on feedback. Normalized stack format/display for different browsers
2017-01-17 14:32:06 -08:00
Dan Abramov
935bdbec84 Ignore fixtures in Flow and ESLint 2017-01-17 19:26:27 +00:00
Rohan Nair
5d96162b57 Updating Thinking in React doc to replace refs with event handlers (#8815)
* Updating Thinking in React doc to replace refs

* Updating doc copy to reflect changes to example
2017-01-17 10:17:32 -08:00
Faheel Ahmad
c8a41672ed I -> we (#8817) 2017-01-17 10:01:40 -08:00
DQNEO
6308238498 use an easier word (#8809)
* use an easier word

The word `mandatory` is relatively difficult for people with ESL (English as a second language), so I propose an alternative word.
This would be much easier to understand.

* use simpler word
2017-01-17 10:00:11 -08:00
Jack Cross
bfd5b1878e Add Flow reminder to PR template (#8805)
* Added flow to PR template

* Added record-tests step to PR template and contribution docs

* Updated order of PR checks
2017-01-17 06:34:44 -08:00
Rich Harris
e69ff955f4 add docs for building with Rollup (#8799)
* add docs for building with Rollup

* Tiny unrelated fix
2017-01-17 05:55:49 -08:00
Toru Kobayashi
0758bb0035 Fix to work fiber debugger with npm start (#8811)
* FiberDebugger uses packages built in local

* Fix key warnings in FiberDebugger

* Remove react packages from package.json and yarn.lock for using pacakges built in local

* Remove fiber.js from `files` in package.json
2017-01-17 05:34:02 -08:00
Superlaziness
66540fdf16 fix HOC doc (#8802) 2017-01-16 06:49:01 -08:00
Tom Gasson
c77632791f Fix fiber/record-tests to work on windows (slash differences) (#8796) 2017-01-14 21:16:03 -06:00
Eric Churchill
cd4afca043 Add unit test to onlyChild to ensure onlyChild returns child element (#8667)
Add unit test to onlyChild to ensure onlyChild returns child element
2017-01-14 14:09:24 -08:00
Vladimir Tikunov
ebd83e809e Remove error ref to the 'render' function (#8781)
What is the `render` function of a functional component?
2017-01-14 13:36:55 -06:00
Dan Abramov
6a488913b9 [Fiber] Fix rendering SVG into non-React SVG tree (#8638)
* Add a test for rendering SVG into a non-React SVG tree

It is failing in Fiber.

* Add a test for rendering HTML into non-React foreignObject

It happens to pass in Fiber.

* Determine root namespace by container namespace, not just tag

A tag alone is not enough to determine the tree namespace.

* Skip the test that exhibits jsdom bug in non-createElement mode

jsdom doesn't give HTML namespace to foreignObject.innerHTML children.
This problem doesn't exist in the browsers.

https://github.com/facebook/react/pull/8638#issuecomment-269349642

We will skip this test in non-createElement mode considering
that non-createElement mounting is effectively dead code now anyway.
2017-01-14 05:11:51 -08:00
Brian Vaughn
7817eb08f3 Replaced an Update effect in complete phase with a Ref effect
Also removed an unnecessary conditional check and improved a flow cast.

Relates originally to PRs #8646 and #8685
2017-01-13 15:32:49 -08:00
Brian Vaughn
be0de3455b Log all Fiber errors w/ component stack (#8756)
A new module has been added (ReactFiberErrorLogger). This logs error information (call stack and component stack) to the console to make errors easier to debug. It also prompts users to use error boundaries if they are not already using them.

In the future, perhaps this will be injectable, enabling users to provide their own handler for custom processing/logging. For the time being, this should help with issues like this / #2461.
2017-01-13 14:45:56 -08:00
Brian Vaughn
c359df7d58 Merge pull request #8645 from bvaughn/add-failing-scu-current-props-test
Added memoization test for interrupted low-priority renders
2017-01-13 13:52:01 -08:00
Brian Vaughn
2fb07b9502 Added memoization test for interrupted low-priority renders
Test added to verify that a high-priority update can reuse the children from an aborted low-priority update if shouldComponentUpdate returns false.
2017-01-13 13:46:20 -08:00
Iurii Kucherov
20c4aac9ec Update higher-order-components.md (#8780) 2017-01-13 13:17:48 -08:00
Brian Vaughn
3bc5595dfd Merge pull request #8742 from bvaughn/stack-fiber-gcc-warning
Warn about missing getChildContext method
2017-01-13 08:45:29 -08:00
Piper Chester
c61148ca58 Fix typo (#8770) 2017-01-13 05:19:23 -08:00
Diego Muracciole
de8173e567 Small ReactPropTypes refactor (#8771) 2017-01-13 04:53:18 -08:00
Dan Abramov
5afd8cd704 Improve Fiber debugger (#8767)
* Simplify the hooks
* Capture completion at the right moment
* Animate the scroll with the fiber on the stack
* Better display priorities
2017-01-13 04:41:56 -08:00
Brian Vaughn
7a2e35b93b Improved error message wording for missing getChildContext() method 2017-01-12 17:11:53 -08:00
Brian Vaughn
e17cc98a89 Removed redundant gCC test 2017-01-12 16:58:36 -08:00
Brian Vaughn
4f08884b5d Dedupe missing getChildContext warning by component name 2017-01-12 16:58:36 -08:00
Brian Vaughn
c7f1abade5 Stack and Fiber warn about missing getChildContext method
Previous (probably unintentional) behavior of Stack was to allow components to define childContextTypes without also supplying a getChildContext property. This PR updates Fiber to (temporarily) mimic that behavior. It also adds warning messages to both Fiber and Stack (along with a test).

For the time being, Fiber components with a missing getChildContext method will return the parent context as-is, after warning.
2017-01-12 16:58:36 -08:00
Andrew Clark
199db638c4 Merge pull request #8655 from acdlite/fibermemoizepremptedwork
[Fiber] Move memoization to begin phase
2017-01-12 16:08:02 -08:00
Andrew Clark
d28ac9eea0 Merge pull request #8757 from acdlite/fiberfeatureflag
Add feature flag to disable Fiber-only features
2017-01-12 13:52:32 -08:00
Andrew Clark
9459bad912 Run test script and fix regressions
Fixes the case where there's an uncaught error and the root unmounts.
We implement this by rendering the root as if its child is null. Null is
not usually allowed at the top level, so we need to special case it.
2017-01-12 13:51:22 -08:00
Andrew Clark
c8adedc054 Warn if undefined is passed to top-level render
Moved the top-level check to ReactChildFiber like the other ones
2017-01-12 13:51:22 -08:00
Andrew Clark
397810f844 Top-level render only accepts a React element if feature flag is on 2017-01-12 13:51:15 -08:00
Ben Alpert
54ebcbcd18 Add test for state merging when sCU is false 2017-01-12 12:04:33 -08:00
Dan Abramov
fd1ef53711 [Fiber Debugger] Bring up to date (#8765)
* Ignore orphaned fibers in the debugger

* Remember last entered code via localStorage

* Update Create React App

* Minor fixes

* Dogfood Fiber
2017-01-12 11:55:59 -08:00
Andrew Clark
d17b9a13f8 Confirm that a shallow bailout does not drop work in the child
Includes a test that confirms that work that is bailed out before
completing can be reused without dropping the entire subtree.
2017-01-12 11:55:52 -08:00
Andrew Clark
1ed304fa87 Move memoization to begin phase
Currently we update the memoized inputs (props, state) during the
complete phase, as we go back up the tree. That means we can't reuse
work until of its children have completed.

By moving memoization to the begin phase, we can do a shallow bailout,
reusing a unit of work even if there's still work to do in its children.

Memoization now happens whenever a fiber's `child` property is updated;
typically, right after reconciling. It's also updated when
`shouldComponentUpdate` returns false, because that indicates that the
given state and props are equal to the memoized state and props.
2017-01-12 11:55:52 -08:00
Paul O’Shannessy
8835955218 Add error codes update to release process (#8749)
* Add error codes update to release process

* Update
2017-01-12 07:13:04 -08:00
Whien
3ec1da800d move blog post [Profiling Components with Chrome Timeline] into docs article (#8680)
* move blog post into docs article

* move to second section and changed description

* Minor tweak
2017-01-12 07:06:15 -08:00
俞火江
e240470cf1 fix failed tests on Windows #8737 (#8747)
* fix failed tests on Windows #8737

* Use regexp literal instead of `RegExp` constructor so that we don't need to bother with escaping special character like `\` and `.`.
Note that by removing the path separator in regexp, I've relaxed the matching condition a little.Since there's little chance we have files like `XXXReact.d.ts`,it should not matter.
2017-01-12 06:46:23 -08:00
Liangzhen Zhu
cb82bc37b6 fix typo (#8760)
It seems that the class name in comments should be CallbackQueue
2017-01-12 06:31:40 -08:00
Snowmanzzz(Zhengzhong Zhao)
2cb7637607 Update handling-events.md (#8762)
* Update handling-events.md

* Update handling-events.md
2017-01-12 06:30:43 -08:00
Andrew Clark
80cf21cae4 In DEV, allow treat auto-mocked render methods as if they return null
Consider deprecating this in the future.
2017-01-11 18:06:16 -08:00
Andrew Clark
204d3dd703 Throw if undefined is returned from a composite component 2017-01-11 18:01:44 -08:00
Andrew Clark
86280187d7 Disallow Fiber-only render return types when feature flag is on
Except for portals, which we use in some places.
2017-01-11 18:01:36 -08:00
Andrew Clark
bf117f82e1 Add feature flag to disable Fiber-specific features
We'll enable this in www in case we need to roll back to Stack.
2017-01-11 17:41:13 -08:00
Dan Abramov
3ec1779837 Make test that forbids arrays Stack-only 2017-01-11 17:11:43 -08:00
Dan Abramov
df0532b0c3 Remove unnecessary warning for invalid node
We have an invariant that checks the same case right afterwards.

The warning was originally added in #5884 with a distinct wording.

However it was later changed to the same wording as the invariant in #6008.

I don't see why we would want to have both since they're saying the same thing and with (almost) the same internal stack.
2017-01-11 17:11:02 -08:00
Dan Abramov
33c3121f43 Remove a duplicate test
This test is identical to "should warn when stateless component returns array" earlier.

It was moved from another file in #5884 so it likely survived by accident.
2017-01-11 17:10:25 -08:00
Dan Abramov
fdf0f435c7 Add a test for stateless components returning undefined
We have one for arrays but it is going to become Stack-specific.
2017-01-11 17:10:08 -08:00
Toru Kobayashi
beb5b74c54 [Fiber] Fix to render falsy value as dangerouslySetInnerHTML (#8652)
* [Fiber] Fix to render falsy value as dangerouslySetInnerHTML

* Add more cases and rename test for clarity
2017-01-11 13:19:50 -08:00
Dustan Kasten
2da35fcae8 [Fiber] Implement test renderer (#8628)
* ReactTestRenderer move current impl to stack dir

* ReactTestRenderer on fiber: commence!

* ReactTestRenderer: most non-ref/non-public-instance tests are passing

* Move ReactTestFiberComponent functions from Renderer to Component file

* test renderer: get rid of private root containers and root Maps

* TestRenderer: switch impl based on ReactDOMFeatureFlag.useFiber

* ReactTestRenderer: inline component creation

* ReactTestRenderer: return to pristine original glory (+ Fiber for error order difference)

* TestRendererFiber: use a simple class as TestComponentInstances

* Add `getPublicInstance` to support TestRenderer `createNodeMock`

* Rename files to end. Update for `mountContainer->createContainer` change

* test renderer return same object to prevent unnecessary context pushing/popping

* Fiber HostConfig add getPublicInstance. This should be the identity fn everywhere except the test renderer

* appease flow

* Initial cleanup from sleepy work

* unstable_batchedUpdates

* Stack test renderer: cache nodeMock to not call on unmount

* add public instance type parameter to the reconciler

* test renderer: set _nodeMock when mounted

* More cleanup

* Add test cases for root fragments and (maybe?) root text nodes

* Fix the npm package build

Explicitly require the Stack version by default.
Add a separate entry point for Fiber.

We don't add fiber.js to the package yet since it's considered internal until React 16.

* Relax the ref type from Object to mixed

This seems like the most straightforward way to support getPublicInstance for test renderer.

* Remove accidental newline

* test renderer: unify TestComponent and TestContainer, handle root updates

* Remove string/number serialization attempts since Fiber ensures all textInstances are strings

* Return full fragments in toJSON

* Test Renderer remove TestComponent instances for simple objects

* Update babylon for exact object type syntax

* Use $$typeof because clarity > punching ducks.

* Minor Flow annotation tweaks

* Tweak style, types, and naming

* Fix typo
2017-01-11 11:19:32 -08:00
Piper Chester
837835d7f3 Update index.html: add spaces between Web/React components (#8750) 2017-01-11 11:00:16 -08:00
Andrew Clark
1c43f94717 Merge pull request #8746 from acdlite/fiberrevertcommitinfo
[Fiber] Revert CommitInfo to avoid extra allocation
2017-01-10 17:44:25 -08:00
Andrew Clark
b59cb4ae01 Revert CommitInfo to avoid extra allocation
I added this when I thought we might support interleaved commits, but
we don't.
2017-01-10 17:14:53 -08:00
Tomáš Hromada
4a7e06bab7 Added more info about refs in the documentation (#8707)
* Update refs-and-the-dom.md

I want to propose some changes to the Refs and the DOM documentation page. 
- Make it clear that string refs are legacy. It seems that this information got lost during the transition to new docs and only some part stayed the same, which was confusing when first reading the docs.
- Clarify and explain that during render, if the ref callback is provided, it will get called twice, first with `null` and then with the rendered DOM element. Discussed in https://github.com/facebook/react/issues/4533 and first proposed docs change in PR #8333.

I've also planned on adding an example for passing the refs up the component chain based on something I've needed to solve myself (e.g. you want to connect two dynamic components by line in React, so you need to both use refs and propagate them up the chain), and while it would be great to read up on this in the docs, it may be too specific for this section; I'd be happy to hear any recommendations.

* Adds more specific information about the callback

* Moved the ref callback description to the Caveats section

* Fixed suggested nits

* Replace 'each render pass' with 'updates'

* Tweak the wording
2017-01-10 12:18:23 -08:00
Dan Abramov
bd23aa2712 Dedupe warnings about refs on functional components (#8739)
* Verify that functional component ref warning is deduplicated

It's not a big problem for string refs because the ref stays the same and the warning code path runs once per mount.

However, it is super annoying for functional refs since they're often written as arrows, and thus the warning fires for every render.

Both tests are currently failing since we're mounting twice, so even the string ref case prints warnings twice.

* Extract the warning condition to the top level

We don't want to run getStackAddendumByID() unless we actually know we're going to print the warning.

This doesn't affect correctness. Just a performance fix.

* Deduplicate warnings about refs on functional components

This fixes the duplicate warnings and adds an additional test for corner cases.

Our goal is to print one warning per one offending call site, when possible.

We try to use the element source for deduplication first because it gives us the exact JSX call site location.

If the element source is not available, we try to use the owner name for deduplication.

If even owner name is unavailable, we try to use the functional component unique identifier for deduplication so that at least the warning is seen once per mounted component.
2017-01-10 09:54:48 -08:00
Brian Vaughn
540ea9e2fe Replaced chalk.color.red with chalk.red 2017-01-10 08:45:56 -08:00
Dmitry Zhuravlev-Nevsky
280bcfa9f5 Fix single vs plural (#8738)
Maybe it's not very important, just misprint fix
2017-01-10 08:00:16 -08:00
Spen Taylor
c3ce14a373 [Docs] Replace 'mix in' in PureComponent notes (#8730)
* [Docs] Replace 'mix in' in PureComponent notes

* Style nit
2017-01-10 06:02:22 -08:00
Dan Abramov
7e47c1aa4a Bump react-noop-renderer version to fix CI 2017-01-10 13:41:31 +00:00
Dmitry Zhuravlev-Nevsky
65bf19029d Swap components (#8735)
It's better to delare component before using.
2017-01-10 02:48:53 -08:00
Andrew Clark
00be2e437f Merge pull request #8728 from acdlite/fibernocallbacklist
[Fiber] Remove callbackList field from Fiber
2017-01-10 00:21:42 -08:00
Andrew Clark
288a4c4d6d Reset invalid UpdateQueue fields when cloning from current
Similar to what cloneFiber does. No change in behavior, but it's more
consistent this way.
2017-01-09 17:14:09 -08:00
Andrew Clark
d4e971a266 Remove callbackList field from Fiber
Moves it to UpdateQueue instead so that we don't waste memory for
components that don't have update queues.
2017-01-09 17:10:10 -08:00
Brian Vaughn
378ef5e730 16.0.0-alpha.0 2017-01-09 16:45:56 -08:00
Brian Vaughn
24b8ba7340 Merge pull request #8723 from bvaughn/improve-unmasked-context-caching
Improve unmasked context caching
2017-01-09 15:33:20 -08:00
Andrew Clark
f1a49e8d6e Merge pull request #8710 from acdlite/fiberscheduleupdateoptimization
[Fiber] Stop bubbling priority on equal priority
2017-01-09 15:24:25 -08:00
Brandon Dail
a1dd107d7a Merge pull request #8589 from nhunzaker/browser-testing
Add basic testing page for browser quicks
2017-01-09 17:22:17 -06:00
Dustan Kasten
90294ead4c Warn for callback refs on functional components (Stack + Fiber) (#8635)
* Fiber: warn for refs on SFCs

* Stateless refs: update warning to use component stack

* Warn for function refs (stack and fiber)

* Add owner reference to ref warnings

* Centralize stack ref warnings in ReactRef.attachRef

* Fiber stateless comp ref warning should only do work when necessary

* ReactDebugCurrentFiber maybe FunctionalComponents should act this way instead

* (chore) scripts/fiber/record-tests

* Add component._compositeType to ReactInstance Flow definition

* Don't handle 'stack inside fiber' case in the warning

We don't have a test for it. It's easy to mess it up and print the wrong thing so instead of verifying it I'll just remove this bit.

* Revert the change to getCurrentFiberOwnerName

This happened to work, but it is just a coincidence. This change didn’t really match what the function was supposed to be doing.

I’m not sure what the correct fix would be yet so this commit breaks tests.

* Add component indirection to the tests using owner name

This passes in Stack. It helps ensure we supply the correct owner name.

* Invalid type invariant should read owner from element

This brings the Fiber behavior in line with how Stack does it. The Fiber test was passing accidentally but broke down in more complicated cases (such as when we have an <Indirection> between the owner and the failing element).

Now we can also remove the weird cases from getCurrentFiberOwnerName() that didn't really make sense but helped get the (incomplete) tests pass in the past.

* Fiber should throw on a string ref inside functional component
2017-01-09 15:09:18 -08:00
Brandon Dail
2dbff6e10c Updating paths in packaging fixtures README 2017-01-09 16:06:08 -06:00
Brandon Dail
2f8a3e5100 Use absolute paths for resolve.root in webpack packaging fixtures
Webpack requires absolute paths here
2017-01-09 15:59:47 -06:00
Brandon Dail
429da399e9 Move build fixtures to fixtures/packaging, updated paths 2017-01-09 15:55:25 -06:00
Brian Vaughn
e5a7b75846 Improve unmasked context caching
Only store cached masked/unmasked contexts on context consumers. Move all references to __reactInternal* cached attributes inside of ReactFiberContext.
2017-01-09 13:51:03 -08:00
Richie Thomas
b2cc91e83a Remove one extraneous backtick from line 116 of 'codebase-overview.md' (#8724). (#8726) 2017-01-09 14:06:37 -06:00
Stuart Harris
c78e403d7b Added React London conference, March 28th (#8722)
Thanks :-)
2017-01-09 09:28:20 -08:00
Brian Vaughn
67c16e3148 Merge pull request #8706 from bvaughn/dont-recreate-masked-context-unless-needed
Dont recreate maked context unless unmasked context changes
2017-01-09 08:45:01 -08:00
Nik Nyby
fa4f79f9fc docs: add missing period in shouldComponentUpdate doc (#8720) 2017-01-09 08:22:04 -08:00
Jirat Ki
fb7e49439f Add component stack to invalid element type warning (#8495)
* Show Source Error Addemden if __source available

* Add Parent Stack on invalid element type

* refactor to use normalizeCodeLocInfo

* Remove ( ) from addendum
2017-01-09 07:26:01 -08:00
Dan Abramov
fbfecd13ce Write a release guide (#8705)
* Write a release guide

* Style nit
2017-01-09 06:39:27 -08:00
Dan Abramov
6b1c86020d Add missing entry for #7750 to 15.4.2 changelog 2017-01-09 14:15:35 +00:00
Bruno Heridet
00846fd3a6 docs(hoc): fix typo Rambda → Ramda (#8712) 2017-01-08 10:26:46 -06:00
Andrew Clark
8ad0e0c25b Stop bubbling priority on equal priority
Unobservable perf fix. Previously we only stopped bubbling if the
priority was lower, but we can stop on equal priority, too.
2017-01-07 21:25:45 -08:00
Brian Vaughn
a682059757 Dont recreate maked context unless unmasked context changes
Doing so can lead to infinite loops if componentWillReceiveProps() calls setState()
2017-01-07 08:53:24 -08:00
Brandon Dail
2085542d30 Remove fixture react build files from git tracking 2017-01-06 16:27:59 -06:00
Nathan Hunzaker
3d6a63d3c6 Remove primitive dom fixture READMEs for some test cases 2017-01-06 17:22:44 -05:00
Nathan Hunzaker
3c53d314a0 Move build fixtures to fixtures/build 2017-01-06 17:17:03 -05:00
Nathan Hunzaker
c79b3f11fe Fix relative reference to build folder in DOM fixtures 2017-01-06 17:15:40 -05:00
Nathan Hunzaker
9d3ceb6895 Update readme for DOM Fixtures 2017-01-06 17:14:50 -05:00
Nathan Hunzaker
96171662aa Move current fixtures into dom folder 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
5e53c0cea4 Add missing semicolon 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
d585590650 Address lint issues. 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
565d63baa6 Remove trailing comma, causing crash in IE11 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
3a51db27f2 Fix some CORS issues in IE 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
2d75ae9fed Consolidate styles into single file 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
1d1dd60899 Patch in console for IE9 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
b006d05275 Test, not text. 🔤 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
c31297b6d9 Remove extraneous binds from some fixtures 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
85aa7eebfc Add test prompt message when no fixture is selected 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
f10a1a7c6f Copy local build before starting 2017-01-06 17:10:41 -05:00
Nathan Hunzaker
6de9ff2deb Remove babel include from react-loader 2017-01-06 17:10:41 -05:00
Brandon Dail
52a1ee492a Remove duplicate fixture components 2017-01-06 17:10:41 -05:00
Brandon Dail
5deb9826ca Use create-react-app for fixtures application
This moves the current fixture architecture to one based around create-react-app. There are a few important things to note:

* The react-loader.js script is always loaded before the bundle and will populate React and ReactDOM on the window. It is then read from the window by all components.
* The UI for the "React Sandbox" or "React Fixtures App" is also rendered with whatever version of React the user has selected. This means we dont have to deal with iframes or worry about multiple versions of React potentially interferring. But it also means that all components must be written using createClass to be fully backwards compatable. I tested back to 0.13.1 and it works fine.
2017-01-06 17:10:41 -05:00
Brandon Dail
bf235489bf Display value for controlled select and textarea 2017-01-06 17:10:30 -05:00
Nathan Hunzaker
f37ff31d2e Fix lint issues in react-loader 2017-01-06 17:10:30 -05:00
Nathan Hunzaker
187bcafe65 Update section on number inputs 2017-01-06 17:10:30 -05:00
Nathan Hunzaker
92fe3673ed Add select, textarea, and range input fixtures
Also write up section on number inputs
2017-01-06 17:10:24 -05:00
Nathan Hunzaker
05ace7365a Move new example changes to fixtures folder 2017-01-06 17:09:39 -05:00
Nathan Hunzaker
e86948fc0d Update input example readme 2017-01-06 17:08:23 -05:00
Nathan Hunzaker
65d4795a1a Make toggleable test cases 2017-01-06 17:08:23 -05:00
Nathan Hunzaker
bbb643fd8d Add React options loader. 2017-01-06 17:08:23 -05:00
Nathan Hunzaker
3d06fb742d Properly slice out question mark in query string 2017-01-06 17:08:23 -05:00
Nathan Hunzaker
49f74f1d93 Add basic testing page 2017-01-06 17:08:23 -05:00
Dan Abramov
f589274604 Fix formatting 2017-01-06 20:33:03 +00:00
Dan Abramov
6df0793d51 Add 15.4.2 changelog 2017-01-06 20:18:50 +00:00
Brandon Dail
0b958fae65 Point all Webpack links to 1.x documentation (#8697)
* Point all Webpack links to 1.x documentation

* Add back webpack production guide, add warning
2017-01-06 12:51:26 -06:00
Brian Vaughn
933805b9d1 Merge pull request #8704 from murtazahaveliwala/patch-3
Update rendering-elements.md
2017-01-06 10:17:10 -08:00
Murtaza Haveliwala
97701ad6bf Update rendering-elements.md
Updating text to be in sync with sample html
2017-01-06 23:32:26 +05:30
Murtaza Haveliwala
2cf475de4f Updated hello world explanation message (#8703)
Output text in explanation now in sync with code sample
2017-01-06 11:59:14 -06:00
Dan Abramov
7f0dc413a2 No longer a WIP, eh? 2017-01-06 14:17:13 +00:00
Dan Abramov
bf763fd1a5 Revert "Add es6-promisify"
This reverts commit c8cd133116475677f35cb166b476c4921f59bfbb.

It's not used in the code.
2017-01-06 06:00:09 -08:00
Dan Abramov
f91bff6264 Remove unused import 2017-01-06 06:00:09 -08:00
Ben Alpert
d8f166bd66 Tweaks to npm-publish task 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
441e74fa1f [rrm] Fix stable-prs command so it updates milestone correctly 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
8796a0e70f [rrm] Update version script to account for dep change 2017-01-06 06:00:09 -08:00
Christopher Chedeau
6db38a143c Abort if not on -stable branch 2017-01-06 06:00:09 -08:00
Christopher Chedeau
ad16ab519d Display the help at startup, otherwise it's hard to figure out what to do 2017-01-06 06:00:09 -08:00
Christopher Chedeau
7684c14d0c Create data/ folder instead of crashing 2017-01-06 06:00:09 -08:00
Christopher Chedeau
a0bc99409d Add es6-promisify 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
b763dc8778 [rrm] Rewrite stable-prs command
Now with
- better UX (can skip, handle each failed cherr-pick individually)
- easier to read code
- better error handling / cancellation
2017-01-06 06:00:09 -08:00
Paul O’Shannessy
7b4f3ea2e3 [rrm] Use git helper for all git commands 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
0fbe927486 [rrm] Create start-release command, create git utils
This does the essentials for starting a new release on the stable branch
2017-01-06 06:00:09 -08:00
Paul O’Shannessy
823030d26b [rrm] Update init command to use Promise style 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
14fd16b67b [rrm] Improve init & config loading experience 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
c9165e0dd1 [rrm] Update to account for new react-test-renderer package 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
c46dd23f4a [rrm] Add commands for npm access checking/granting 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
cfd782471b [rrm] Lint 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
e3a41edd83 [rrm] npm-publish command
This will publish all packages in build/packages/*.tgz to the "next" tag. If the current version is "stable" (doesn't trigger semver.prerelease()) then it will also update the "latest" dist-tag to point at that version.
2017-01-06 06:00:09 -08:00
Paul O’Shannessy
0e9aa2e9a9 [rrm] Add logging to execInRepo, dry-run option 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
114ec049d4 [rrm] stable-prs: update milestone on PRs 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
91f957cb1d [rrm] Move version reading up to app level 2017-01-06 06:00:09 -08:00
Paul O’Shannessy
a47041c0f7 Initial import of react-release-manager 2017-01-06 06:00:09 -08:00
Brandon Dail
8095ebaae7 [Fiber] Throw when attempting to unmount at an invalid node (#8688)
* Throw when attempting to unmount at an invalid node

* Remove extra character after invariant
2017-01-05 16:55:17 -08:00
Dan Abramov
ca2c71c0c5 Fix AMD and Brunch issues (#8686)
* Add manual build fixtures

* Inject ReactDOM into ReactWithAddons from ReactWithAddons

We used to read ReactDOM as a global inside ReactAddonsDOMDependenciesUMDShim.
This didn't work in AMD environments such as RequireJS and SystemJS.

Instead, I changed it so that ReactDOM gets injected into ReactWithAddons by ReactDOM itself.
This way we don't have to try to require it (which wouldn't work because AMD doesn't handle circular dependencies well).

This means you have to load ReactDOM first before using ReactDOM-dependent addons, but this was already the case before.

This commit makes all build fixtures pass.

* Memoize ReactDOM to avoid going into require on every access

* Add Brunch fixture

* Inline requires to work around Brunch bug

See #8556 and https://github.com/brunch/brunch/issues/1591#issuecomment-270742503 for context.
This appears to be a Brunch bug but we can keep a temporary fix until the next major.
2017-01-05 13:16:08 -08:00
Piotr Czajkowski
df0d2a5106 "Don't Mutate the Original Component" example and description mismatch (#8695) 2017-01-05 05:12:51 -08:00
Piotr Czajkowski
a52db12abf Higher-Order Components docs withSubscription() example fix (#8694) 2017-01-05 04:56:13 -08:00
Andrew Clark
39278c41e2 Merge pull request #8685 from acdlite/fiberrefeffect
[Fiber] Update refs even if shouldComponentUpdate returns false
2017-01-04 14:28:44 -08:00
Andrew Clark
2517a11875 Update refs even if shouldComponentUpdate returns false
Implemented using a Ref effect type.
2017-01-04 12:05:25 -08:00
Dan Abramov
0e6f784259 Replace Starter Kit with doc link (#8682)
* Replace Starter Kit with doc link

* https in Babel link
2017-01-04 09:39:01 -08:00
Andre Giron
60767630bc Fix typos (#8632)
* Fix typos

* Put back x in Latinx
2017-01-04 09:36:19 -08:00
Joel Sequeira
4fc4bd1214 Fix typo in Proposing a Change section in how-to-contribute.md (#8498)
* Fix typo in Proposing a Change section in how-to-contribute.md

Not sure if it was actually intended or was a typo but changed 'If you intend to change to the public API' --> 'If you intend to make a change to the public API'

* Simplify
2017-01-04 09:30:08 -08:00
Mateusz Burzyński
aa3fef9b67 [Docs] Fixed anchor links in Animations section (#8453) 2017-01-04 09:24:21 -08:00
Van der Auwermeulen Grégoire
8ce2ac0cdc Update state-and-lifecycle.md (#8424)
* Update state-and-lifecycle.md

Isn't  clock state and props the same in this example?

* Clarify
2017-01-04 09:18:52 -08:00
Devinsuit
315f62dc4a Update blog post link (#8421) 2017-01-04 09:15:09 -08:00
Mojtaba Dashtinejad
9b6cecd2cb [docs] Add a note about componentWillReceiveProps (#8234)
* Component Lifecycle In Depth documentation

* first steps to improve react component reference

* improved react component reference

- remove the component-lifecycle-in-depth

* add a note for usage of ReactDOM.findDOMNode

* one note on componentWillReceiveProps

* remove old useless images for lifecycle docs

* Tweak wording
2017-01-04 08:26:33 -08:00
Dan Abramov
8403a3e6a4 Nitpick: use FB style in doc 2017-01-04 15:59:32 +00:00
Karthik Chintapalli
6fa0b0a271 Fixed stray text appearing on top of the navbar at small screen sizes (#8681) 2017-01-04 04:48:53 -08:00
Brian Vaughn
41588058d4 Merge pull request #8679 from bvaughn/fix-react-conf-2017-name
Renamed React.js Conf to React Conf in conferences.md
2017-01-03 15:31:15 -08:00
Brian Vaughn
1ababda476 Renamed React.js Conf to React Conf 2017-01-03 15:27:23 -08:00
Brian Vaughn
b27cb2ca2b Merge pull request #8677 from bvaughn/add-callback-validation-to-dom-render
Add callback validation to fiber-based renderers
2017-01-03 14:57:42 -08:00
Brian Vaughn
8fbcd499bd Add callback validation to fiber-based renderers
Moved ReactFiberClassComponent validateCallback() helper function into a standalone util used by both fiber and stack implementations. Validation now happens in ReactFiberUpdateQueue so that non-DOM renderers will also benefit from it.
2017-01-03 12:10:06 -08:00
Andrew Clark
47f92b940f Merge pull request #8658 from acdlite/nullupdatetest
Should not re-render as the result of a null state update
2017-01-03 10:27:32 -08:00
Andrew Clark
d658ee8c11 Merge pull request #8661 from acdlite/fiberunbatchedupdates
[Fiber] Introduce API to opt-out of batching
2017-01-03 10:24:52 -08:00
Andrew Clark
ad7bcdf999 Use unbatchedUpdates to opt-out of batching
Reverses the effect of batchedUpdates by resetting the current
batching context.

Does not affect nested updates, which are always deferred regardless
of whether they are inside a batch.
2017-01-03 10:24:27 -08:00
Brian Vaughn
0402106058 Merge pull request #8671 from bonham000/update-docs
update to codebase-overview.md
2017-01-03 09:01:53 -08:00
Brian Vaughn
323125b252 Merge pull request #8673 from madeinfree/patch-1
fiber example typo
2017-01-03 08:58:41 -08:00
Brian Vaughn
962974cef0 Merge pull request #8674 from neeldeep/patch-1
Update conferences.md
2017-01-03 08:56:30 -08:00
neeldeep
2825519505 Update conferences.md 2017-01-03 19:23:55 +05:30
Whien
3b005a7e75 fiber example typo 2017-01-03 13:52:48 +08:00
Sean Smith
2447894008 update to codebase-overview.md 2017-01-01 15:27:57 -08:00
Andrew Clark
b79531eefe No nested updates
We may decide to provide this ability as an escape hatch in the future.
2016-12-30 11:30:40 -08:00
Andrew Clark
2af6d7a702 Should not re-render as the result of a null state update (Stack)
Stack now passes test added in previous commit.
2016-12-30 00:19:55 -08:00
Andrew Clark
5c927b902f Should not re-render as the result of a null state update
Fiber already happens to behave this way; this just adds a test.

TODO: Should we add this feature to Stack, too?
2016-12-29 23:31:48 -08:00
Andrew Clark
7dc5f91d88 Merge pull request #8641 from jddxf/remove-superfluous-check
remove superfluous check in while loop
2016-12-29 13:25:22 -08:00
Andrew Clark
9b015184b7 Merge pull request #8634 from acdlite/fibersyncmount
[Fiber] Sync mount and unmount
2016-12-29 13:11:57 -08:00
Andrew Clark
79f01b2425 prepareForCommit returns info object to be passed resetAfterCommit
The DOM renderer assumes that resetAfterCommit is called after
prepareForCommit without any nested commits in between. That may not
be the case now that syncUpdates forces a nested update.

To address, this changes the type of prepareForCommit to return a value
which is later passed to resetAfterCommit.
2016-12-29 10:39:24 -08:00
Andrew Clark
ce8c978d63 Disallow forced sync updates during begin phase
Stack allows this, but in Fiber it may cause an infinite loop. Instead
we'll print a warning and defer the update by giving it Task priority.
2016-12-29 10:39:18 -08:00
Andrew Clark
21f6d4145f syncUpdates prevents Synchronous priority from being downgraded to Task
Typically, a sync update is downgraded to Task priority if it's
scheduled within another batch of work, e.g. within a lifecycle like
componentDidMount. But syncUpdates should force sync updates to not
be downgraded to Task. This will cause performWork to be
called recursively.
2016-12-29 10:23:33 -08:00
Andrew Clark
8090cf59e3 Allow performWork to be called recursively
Currently we assume that performWork is never called recursively.
Ideally that is the case. We shouldn't rely on recursion anywhere
in Fiber.

However, to support the use of syncUpdates as an opt-in to forced-
synchronous updates, we need the ability to call performWork
recursively.

At the beginning of performWork, the state of the scheduler is saved;
before exiting, that state is restored, so that the scheduler can
continue where it left off. I've decided to use local variables to stash
the previous state. We could also store them in a record and push it to
a stack, but this approach has the advantage of being isolated to
performWork.
2016-12-29 10:23:33 -08:00
Andrew Clark
3926a3566f If an error is thrown and there's no nextUnitOfWork, it's fatal error
This can only be caused by a bug in the renderer, but we should handle
it gracefully anyway.

Added a TODO to change capturedErrors and failedBoundaries so that they
are sets of instances (stateNodes) rather than fibers, to avoid having
to check the alternate. (This outside the scope of this PR.)
2016-12-29 10:23:26 -08:00
Andrew Clark
ffbb86b361 Wrap top-level mount and unmount in syncUpdates
For legacy purposes. Only enabled in the DOM renderer. We can remove
this in a future release when we enable incremental-by-default.

This change is unobservable because syncUpdates actually schedules
Task updates when it is called from inside another batch. The correct
behavior is to recursively begin another batch of work. We will fix it
in a subsequent commit.
2016-12-28 20:41:40 -08:00
Brian Vaughn
df6ca0e2c1 Merge pull request #8646 from bvaughn/focus-side-effect
Renderers can queue commit effects for initial mount
2016-12-28 15:16:50 -05:00
Brian Vaughn
a10131304b Renderers can schedule commit-time effects for initial mount
The finalizeInitialChildren HostConfig method now utilizes a boolean return type. Renderers can return true to indicate that custom effects should be processed at commit-time once host components have been mounted. This type of work is marked using the existing Update flag.

A new HostConfig method, commitMount, has been added as well for performing this type of work.

This change set is in support of the autoFocus prop.
2016-12-28 15:03:08 -05:00
gitanupam
9e461c715c Changed webpack's hyperlink (#8650)
..to point to 2.x documentation instead of 1.x (and to be consistent with other links on the page)
2016-12-28 11:34:00 -06:00
gitanupam
86765baaef 'npm init' needed before installing react via npm. (#8649)
* 'npm init' needed before installing react via npm.

I was trying to install react in my django project directory and was getting warnings about package.json not being present. Started this SO post (http://stackoverflow.com/questions/41340909/npm-cant-find-package-json-when-installing-react/41340975#41340975) to figure it out. I think it'll be useful to others too if we add it in the documentation itself.

* Tweak instructions
2016-12-28 04:04:21 -08:00
Dan Abramov
6b73073557 Include owner in invalid element type invariant (#8637) 2016-12-27 08:41:23 -08:00
Dan Abramov
38ed61f4c4 Relax test about rendering top-level null (#8640) 2016-12-27 08:38:24 -08:00
Dan Abramov
119294dcae Validate that update callback is a function (#8639) 2016-12-27 08:38:10 -08:00
jddxf
b359be74a1 remove superfluous check in while loop 2016-12-25 09:41:47 +08:00
Eric Pitcher
3baa47ca7b Update conditional-rendering.md (#8636)
Stating the fact that component lifecycle methods will still fire as normal even though you return null from the render method.
2016-12-24 09:18:30 -08:00
Sebastian Markbåge
5d153c9dbe Don't call sCU with null props (#8633)
I missed this case in 8613 and it broke the triangle demo.
2016-12-22 15:47:10 -08:00
Ben Alpert
6e47f43e89 Fix typo 2016-12-22 12:44:28 -08:00
Ben Alpert
13980e6536 Fiber: Fix reentrant mounting in synchronous mode (#8623) 2016-12-22 11:34:35 -08:00
Dan Abramov
c978f789cc [Fiber] Push class context providers even if they crash (#8627)
* Push class context providers early

Previously we used to push them only after the instance was available. This caused issues in cases an error is thrown during componentWillMount().

In that case we never got to pushing the provider in the begin phase, but in complete phase the provider check returned true since the instance existed by that point. As a result we got mismatching context pops.

We solve the issue by making the context check independent of whether the instance actually exists. Instead we're checking the type itself.

This lets us push class context early. However there's another problem: we might not know the context value. If the instance is not yet created, we can't call getChildContext on it.

To fix this, we are introducing a way to replace current value on the stack, and a way to read the previous value. This also helps remove some branching and split the memoized from invalidated code paths.

* Add a now-passing test from #8604

Also rename another test to have a shorter name.

* Move isContextProvider() checks into push() and pop()

All uses of push() and pop() are guarded by it anyway.

This makes it more similar to how we use host context.

There is only one other place where isContextProvider() is used and that's legacy code needed for renderSubtree().

* Clarify why we read the previous context

* Use invariant instead of throwing an error

* Fix off-by-one in ReactFiberStack

* Manually keep track of the last parent context

The previous algorithm was flawed and worked by accident, as shown by the failing tests after an off-by-one was fixed.

The implementation of getPrevious() was incorrect because the context stack currently has no notion of a previous value per cursor.

Instead, we are caching the previous value directly in the ReactFiberContext in a local variable.

Additionally, we are using push() and pop() instead of adding a new replace() method.
2016-12-22 10:36:42 -08:00
Dan Abramov
c79af45f1e Update to Jest 18 (#8621) 2016-12-21 19:28:27 -08:00
Ben Alpert
efaa26eb50 Upgrade jest APIs to match www (#8536)
D4298654, D4298713
2016-12-21 19:07:40 -08:00
Brian Vaughn
f1e193b32e Merge pull request #8611 from bvaughn/shared-context-stack
Added ReactFiberStack shared by ReactFiberContext and ReactFiberHostContext
2016-12-21 18:50:34 -08:00
Brian Vaughn
d1e604004a Removed redundant calls to ReactFiberStack.reset() 2016-12-21 17:39:39 -08:00
Brian Vaughn
2f2a44007c Improved Flowtypes in response to code review feedback 2016-12-21 17:32:53 -08:00
Brian Vaughn
cb66f5c440 Merge pull request #8622 from bvaughn/preproccessor-jest-cching
Jest preprocessor better aware of error-codes/codes.json WRT caching
2016-12-21 17:12:17 -08:00
Brian Vaughn
b209804cfb Jest preprocessor better aware of error-codes/codes.json WRT caching 2016-12-21 16:58:33 -08:00
Brian Vaughn
ea6530d13a Removed exact object type for StackCursor Flow type
This was causing the 'react:extract-errors' Gulp taks to fail.
2016-12-21 16:48:14 -08:00
Brian Vaughn
e7a591ed57 ReactFiberStack cursor values are no longer corrupted on pop 2016-12-21 15:11:49 -08:00
Brian Vaughn
1148e827b9 Avoid reading the same StackCursor current multiple times 2016-12-21 15:11:49 -08:00
Brian Vaughn
6b51e037ca Avoid popping hosts that do not provide unique contexts 2016-12-21 15:11:49 -08:00
Brian Vaughn
0b7c5ff1a0 Tightened up Fiber | null type in ReactFiberStack to always require Fiber 2016-12-21 15:11:49 -08:00
Brian Vaughn
0c1fdfd41d Combined unwindContext and unwindHostContext into unwindContexts 2016-12-21 15:11:49 -08:00
Brian Vaughn
a0902fc306 Generic type added to StackCursor. Default emptyObject replaced with null. 2016-12-21 15:11:49 -08:00
Brian Vaughn
3d0cf47d26 Added ReactFiberStack shared by ReactFiberContext and ReactFiberHostContext
ReactFiberStack is the new underlying stack used by ReactFiberContext and ReactFiberHostContext. The goal is to simplify the 2 context managers and to add more errors/dev-warnings when we pop unexpected.
This changeset currently causes a lot of tests to fail (as we are currently popping too many times and/or in the wrong order). I'm pushing this branch now to share with Sebastian as he is working on a related cleanup pass at beginWork.
2016-12-21 15:11:49 -08:00
Dan Abramov
a27e4f3361 [Fiber] Make requestIdleCallback() and requestAnimationFrame() shims async (#8591)
* Add a failing test for recursion check

* Make requestIdleCallback() and requestAnimationFrame() shims async

They no longer need to be sync in tests because we already made DOM renderer sync by default.
This fixes a crash when testing incrementalness in DOM renderer itself.

* Style fix

* Fix lint
2016-12-21 14:04:05 -08:00
Ben Alpert
2a5fe4c2b0 Call refs and lifecycles on indeterminate components (#8614)
This was a bug because of the split between ClassComponent and IndeterminateComponent -- we didn't mark effects or push context when we come from an indeterminate component. Now they behave the same way.

The code is even clumsier than before but I'm pretty worried we'll screw these up in the future if we don't unify the paths.

Not many components exercise this path but Relay containers do so it's noticeable.
2016-12-21 13:51:59 -08:00
Sebastian Markbåge
4a05c242e8 Merge pull request #8613 from sebmarkbage/fiberrefactorbailout
[Fiber] Refactor bailoutOnFinishedWork
2016-12-21 13:22:20 -08:00
Ben Alpert
eca5b1d48e Improve error messages for invalid element types (#8612) 2016-12-21 13:17:34 -08:00
Sebastian Markbage
26c82cea72 Move other branches out of the bail out
This is the same thing as the previous commit but with class, root and portal.

I noticed host and portal now already covers this case in their branches
since pushHostContainer is always at the top.
2016-12-21 11:34:18 -08:00
Sebastian Markbage
9a210114e4 Move isHostComponent branches out of bailout
Since we only call bailout from within the host component branch now, we
can just move this to the branch where we already know that this is a
host component.

As part of this I noticed that we don't always push the host context so
I moved that to the beginning of the branch.
2016-12-21 11:34:18 -08:00
Sebastian Markbage
b7548b2030 Delete hasPendingUpdate
This is no longer needed. It is effectively covered by other branches
that tries to being merging the update queue which yields the same state
object as before if there is no work. That in turn bails out.

We can shortcut in the relevant paths if needed.
2016-12-21 11:34:18 -08:00
Sebastian Markbage
21dccad47f Move props equality check into each branch
Now we only bail out once we've entered each branch.

This has some repetition with regard to hasContextChanged but I'm hoping
we can just get rid of all those branches at some point since they're
mostly for backwards compatibility right now.
2016-12-21 11:34:18 -08:00
Sebastian Markbage
0907a49abd Add bailout to HostRoot
This doesn't need to compare props because it doesn't use props,
only state.
2016-12-21 11:34:13 -08:00
Sebastian Markbage
5a32fdb8e5 Compare memoized props in functional component branch
The functional component branch is a bit special since it has sCU in it.

The class component branch actually already covers this in a bit convoluted
way.

I will next replicate this check in each other branch.
2016-12-21 11:33:26 -08:00
Sebastian Markbage
b4b21486aa Move all the begin work stuff into their own helper functions
This just moves things around to continue the pattern that we already
started.
2016-12-21 11:33:26 -08:00
Sebastian Markbage
38a297d500 Always reset context before beginning new work
This consolidates the reset of context to one single place right before
any new work is started.

This place is burried in a bit of an awkward place but findNextUnitOfWork
happens right before any new work starts. That way we're guaranteed to have
an empty stack before we start anything new.

The benefit of this is that we don't have to rely .return being null when
entering beginWork but we also don't have to check it every time in the
hot path.
2016-12-21 11:33:26 -08:00
Andrew Clark
d47a3a36ee Merge pull request #8585 from acdlite/batchstateandcallback
Schedule state and callback at the same time
2016-12-21 13:24:08 -06:00
Andrew Clark
f4c0c99973 Remove enqueueCallback from updater API
This isn't being used anymore.

Also removes addCallback from ReactFiberUpdateQueue.
2016-12-21 13:03:39 -06:00
Andrew Clark
29c1e1deba Schedule state and callback in the same batch
Fixes an issue (in both Stack and Fiber) where enqueueSetState causes
a synchronous update that flushes before enqueueCallback is ever called.
Now enqueueSetState et al accept an optional callback so that both
are scheduled at the same time.
2016-12-21 12:54:19 -06:00
Andrew Clark
afd4a54d2a Merge pull request #8610 from acdlite/fiberfixrooterror
[Fiber] Handle errors thrown when committing root
2016-12-20 18:02:02 -08:00
Andrew Clark
15acbaa8e1 Handle errors thrown when committing root
Previously this caused an infinite loop.
2016-12-20 16:20:57 -08:00
Sebastian Markbåge
b49210f498 Update Flow to 0.37.0 (#8608)
Nothing really changes.
2016-12-20 11:09:03 -08:00
Andrew Clark
090e741c55 Merge pull request #8606 from acdlite/fiberhostrootupdatequeue
[Fiber] Queue top-level updates (take 2)
2016-12-19 21:36:25 -08:00
dfrownfelter
b106ca0c8e Delete fiveArgumentPooler (#8597) 2016-12-19 22:53:04 -06:00
Andrew Clark
470da6ea77 Add test for errors in host config while working on failed root
Test for a bug fixed in the previous commit that was causing an
infinite loop.
2016-12-19 18:46:13 -08:00
Andrew Clark
6c26e98ec2 Handle case where host environment throws when working on failed root
Otherwise you fall into an infinite loop where root fails -> host env
throws -> root fails...

This is a worst-case scenario that should only be possible if there's
a bug in the renderer.
2016-12-19 18:06:56 -08:00
Andrew Clark
da4ace152b Remove unmountContainer
Instead, renderers should pass null to updateContainer.
2016-12-19 16:33:25 -08:00
Andrew Clark
c6ccc19095 Use an UpdateQueue for top-level updates
...rather than mutate the pendingProps directly, which throws away any
previously scheduled work.
2016-12-19 16:33:16 -08:00
Andrew Clark
ab19dd0292 Merge pull request #8605 from facebook/revert-8584-fiberhostrootupdatequeue
Revert "[Fiber] Queue top-level updates"
2016-12-19 15:36:28 -08:00
Andrew Clark
0b37588171 Revert "[Fiber] Queue top-level updates" 2016-12-19 15:32:59 -08:00
Andrew Clark
ddc44b7add Merge pull request #8584 from acdlite/fiberhostrootupdatequeue
[Fiber] Queue top-level updates
2016-12-19 13:56:18 -08:00
Brian Vaughn
3c6d4bacdd Merge pull request #8594 from bvaughn/dont-warn-about-getInitialState-on-class-if-state-set
Don't warn about class components using getInitialState if state is set
2016-12-17 14:28:20 -08:00
Brian Vaughn
1b868cbd71 Don't warn about class component usage of getInitialState if state is also set
We warn about getInitialState() usage in class components because users may have accidentally used it instead of state. If they have also specified state though then we should skip this warning.

Context: https://twitter.com/soprano/status/810003963286163456
2016-12-17 11:16:27 -08:00
Brian Vaughn
a5e728747e Merge pull request #8590 from bvaughn/unexpected-context-pop
`bailoutOnLowPriority` pushes context to mirror complete phase context pop
2016-12-17 07:41:25 -08:00
Dan Abramov
70f704dca6 [Fiber] Nesting validation warnings (#8586)
* (WIP) Nesting warnings

* Remove indirection

* Add a note about namespace

* Fix Flow and make host context required

This makes it easier to avoid accidental nulls.
I also added a test for the production case to avoid regressing because of __DEV__ branches.
2016-12-16 18:57:58 -08:00
Andrew Clark
a9365b97e5 Remove unmountContainer
Instead, renderers should pass null to updateContainer.
2016-12-16 18:31:39 -08:00
Andrew Clark
d8ade83eb2 Use an UpdateQueue for top-level updates
...rather than mutate the pendingProps directly, which throws away any
previously scheduled work.
2016-12-16 16:30:28 -08:00
Andrew Clark
e1eccbfbb0 Merge pull request #8587 from acdlite/fiberupdatequeuefollowup
[Fiber] UpdateQueue follow-up improvements
2016-12-16 16:20:51 -08:00
Andrew Clark
7b6c94c767 Don't drop updates from queue when calling replaceState
We should be able to support passing a function to replaceState, which
receives the accumulation of all the previously applied state updates.
Which means we shouldn't drop those updates from the queue. Technically,
we could drop them only when an object is passed to replaceState, but
that seems like more trouble than it's worth.
2016-12-16 16:20:16 -08:00
Brian Vaughn
441cc5c82b bailoutOnLowPriority correct pushes context for ClassComponents to mirror complete phase context pop 2016-12-16 15:04:06 -08:00
Andrew Clark
f070aaa1b8 Remove confusing for-loop in favor of a helper function
This logic is hopefully easier to follow. Added more inline comments
to explain how the algorithm works.
2016-12-15 18:15:03 -08:00
Andrew Clark
dfe3d089cc Clean up some style nits and other code detritus in the update queue 2016-12-15 18:10:25 -08:00
Andrew Clark
ea622e52c2 Use warning instead of console.error 2016-12-15 17:34:24 -08:00
Andrew Clark
7fca464e7c Merge pull request #8538 from acdlite/fiberupdatequeue
[Fiber] Separate priority for updates
2016-12-15 16:41:53 -08:00
Andrew Clark
b8441ba955 Remove ForceUpdate effect
Go back to using a flag, instead. I removed it before because I thought
we might want to get rid of the top-level UpdateQueue type and put
the fields directly on the fiber, but since we're keeping UpdateQueue
we can put hasForceUpdate on there.
2016-12-15 16:35:54 -08:00
Andrew Clark
3a946fe094 Use 255 instead of infinity
Infinity is a floating point value.
2016-12-15 09:12:13 -08:00
Andrew Clark
496512f8b8 Update tests to not rely on key iteration order 2016-12-15 09:12:13 -08:00
Andrew Clark
e1b733fa83 Move priority context change to findNextUnitOfWork
...rather than changing it on every unit of work.
2016-12-15 09:12:13 -08:00
Andrew Clark
df9603ead8 Simplify test for whether we should flush a pending commit
We can just check if the deadline has expired.
2016-12-15 09:12:13 -08:00
Andrew Clark
eec431297a Priority context during reconciliation
setState inside render/cWRP should have the same priority as whatever
level is currently being reconciled.
2016-12-15 09:12:13 -08:00
Andrew Clark
e0981b8bc5 Handle setState inside an updater function
The update is scheduled as if the current processing update has already
been processed; if it has the same or higher priority, it will be
flushed in the same batch.

We also print a warning.
2016-12-15 09:12:13 -08:00
Andrew Clark
babace0c05 Add fast path for appending updates to the end of the queue
This is the most common case, so we should avoid scanning the entire
list to get to the end.
2016-12-15 09:12:13 -08:00
Andrew Clark
d7f89b8681 Don't rely on commit phase effect to clear updates
Instead clear updates on the work-in-progress during the begin phase.
Aborted updates are recovered by cloning from the current fiber.
2016-12-15 09:12:12 -08:00
Andrew Clark
ead8ab7e2d Add unstable_deferredUpdates
This is needed to get the triangle demo working.
2016-12-15 09:12:12 -08:00
Andrew Clark
20f00045d3 Apply pending updates in order of priority
The queue maintains a pointer to the last progressed update in the list.
Updates that come after that pointer are pending. The pointer is set to
the end of the list during reconciliation.

Pending updates are sorted by priority then insertion. Progressed
updates are sorted by the order in which they were applied during
reconciliation, which may not be by priority: if a component bails out
before the updates are committed, in the next render, the progressed
updates are applied in the same order that they were previously, even if
a higher priority update comes in.

Once a progressed update is flushed/committed, it's removed from
the queue.
2016-12-15 09:12:12 -08:00
Andrew Clark
bb844a03b2 Use lastProgressedUpdate pointer instead of firstPendingUpdate
We need to be able to access both, and since the list uses forward
pointers, it makes more sense to point to the one that comes first.
Otherwise to get the last progressed update you have to start at the
beginning of the list.
2016-12-15 09:12:12 -08:00
Andrew Clark
94011e98a6 Separate priority for updates
When resetting the priority in the complete phase, check the priority of
the update queue so that updates aren't dropped.

Updates inside render, child cWRP, etc are no longer dropped.

The next step is sort the queue by priority and only flush updates that
match the current priority level.
2016-12-15 09:12:12 -08:00
Andrew Clark
cb1ef03df9 Replace .hasForceUpdate with ForceUpdate effect
Removes another field from the update queue
2016-12-15 09:12:12 -08:00
Andrew Clark
6301086c35 Schedule callback effects while merging updates
This allows us to remove the hasCallback flag.
2016-12-15 09:12:12 -08:00
Andrew Clark
cbba5ef9cc Don't drop updates until they are committed
Restructures the update queue to maintain a pointer to the first
pending update, which solves a few problems:

- Updates that occur during the begin phase (e.g. in cWRP of a child)
aren't dropped, like they are currently. This isn't working yet because
the work priority is reset during completion. The following item will
fix it.
- Sets us up to be able to add separate priorities to each update in
the queue. I'll add this in a subsequent commit.
2016-12-15 09:12:12 -08:00
Dan Abramov
e36b38c1ca [Fiber] Fix some of the warnings (#8570)
* Implement component stack for some warnings in Fiber

* Keep Fiber debug source up to date

When an element changes, we should copy the source and owner again.
Otherwise they can get stale since we're not reading them from the element.

* Remove outdated TODOs from tests

* Explicitly specify Fiber types to include in the stack

Fixes an accidental omission when both source and owner are null but displayName exists.

* Fix mised Stack+Fiber test to not expect extra warnings

When we're in Fiber mode we don't actually expect that warning being printed.

* Warn on passing different props to super()

* Implement duplicate key warnings

We keep known keys in a set in development. There is an annoying special case where we know we'll check it again because we break out of the loop early.

One test in the tree hook regresses to the failing state because it checks that the tree hook works without a Set available, but we started using Set in this code. It is not essential and we can clean this up later when we decide how to deal with polyfills.

* Move ReactTypeOfWork to src/shared

It needs to be available both to Fiber and Isomorphic because the tree hook lives in Isomorphic but pretty-prints Fiber stack.

* Add dev-only ReactDebugCurrentFiber for warnings

The goal is to use ReactCurrentOwner less and rely on ReactDebugCurrentFiber for warning owner name and stack.

* Make Stack invariant messages more consistent

Fiber used a helper so two tests had the same phrasing.
Stack also used a helper for most invariants but hardcoded a different phrase in one place.
I changed that invariant message to use a helper which made it consistent with what it prints in Fiber.

* Make CSSPropertyOperations use getCurrentFiberOwnerName()

This gets mount-time CSS warnings to be printed.

However update-time warnings are currently ignored because current fiber is not yet available during the commit phase.

We also regress on HostOperation hook tests but this doesn't matter because it's only used by ReactPerf and it doesn't work with Fiber yet anyway. We'll have to think more about it later.

* Set ReactDebugCurrentFiber during the commit phase

This makes it available during updates, fixing the last failing test in CSSPropertyOperations.

* Add DOM warnings by calling hooks directly

It is not clear if the old hook system is worth it in its generic incarnation. For now I am just hooking it up to the DOMFiber renderer directly.

* Add client-side counterparts for some warning tests

This helps us track which warnings are really failing in Fiber, and which ones depend on SSR.
2016-12-15 08:36:58 -08:00
Brian Vaughn
ab72f626de Merge pull request #8560 from bvaughn/react-native-fiber
ReactNative fiber renderer
2016-12-14 20:05:17 -08:00
Brian Vaughn
5266ca9312 Added new fiber-based renderer for native dubbed ReactNativeFiber 2016-12-14 18:39:22 -08:00
Ben Alpert
ac241972bd mockImpl -> mockImplementation
D4329549
2016-12-14 14:21:51 -08:00
Ben Alpert
ba8f24ba99 Prepare new composite child before removing old (#8572)
This matches what we do in Fiber -- and doing it this way is the only way we can prepare new views in the background before unmounting old ones.

In particular, this breaks this pattern:

```js
class Child1 extends React.Component {
  render() { ... }
  componentWillMount() {
    this.props.registerChild(this);
  }
  componentWillUnmount() {
    this.props.unregisterChild();
  }
}

class Child2 extends React.Component {
  render() { ... }
  componentWillMount() {
    this.props.registerChild(this);
  }
  componentWillUnmount() {
    this.props.unregisterChild();
  }
}

class Parent extends React.Component {
  render() {
    return (
      showChild1 ?
        <Child1
          registerChild={(child) => this.registered = child}
          unregisterChild={() => this.registered = null}
        /> :
        <Child2
          registerChild={(child) => this.registered = child}
          unregisterChild={() => this.registered = null}
        />
    );
  }
}
```

Previously, `this.registered` would always be set -- now, after a rerender, `this.registered` gets stuck at null because the old child's componentWillUnmount runs *after* the new child's componentWillMount.

A correct fix here is to use componentDidMount rather than componentWillMount. (In general, componentWillMount should not have side effects.) If Parent stored a list or set of registered children instead, there would also be no issue.
2016-12-14 11:14:50 -08:00
Gaëtan Renaudeau
931cad5aae Fix test renderer unmount (#8512)
* [react-test-renderer] unmount the inner instances

Fixes https://github.com/facebook/react/issues/8459

* add a test for https://github.com/facebook/react/issues/8459

* add new test in tests-passing.txt
2016-12-14 10:57:21 -05:00
Brian Vaughn
3def431543 Merge pull request #8568 from bvaughn/top-level-context-push-pop
HostRoot no longer pops context provider during complete phase
2016-12-13 17:27:47 -08:00
Brian Vaughn
b4745ca72b HostRoot no longer pops context provider in complete phase
Also added an invariant warning to guard against context being popped too many times.
2016-12-13 17:26:19 -08:00
Andrew Clark
480e404fc8 Merge pull request #8528 from acdlite/callbacksemantics
Give setState callbacks componentWillUpdate semantics
2016-12-13 17:22:41 -08:00
Andrew Clark
97b7d0eff5 Test top-level callback when re-rendering with same element 2016-12-13 16:28:06 -08:00
Andrew Clark
a930f09dfe Give setState callbacks componentWillUpdate semantics
This matches the behavior in Fiber. Normally we would change Fiber
to match Stack to minimize breaking changes for the initial release.
However, in this case it would require too large a compromise to change
Fiber to act like Stack.
2016-12-13 15:50:33 -08:00
Sebastian Markbåge
bd425837a4 Merge pull request #8563 from sebmarkbage/enforcelowercasetags
Drop runtime validation and lower case coercion of tag names
2016-12-13 14:54:21 -08:00
Sebastian Markbage
6c1592f384 Pass type to the relevant host config methods
Instead of reading it from the DOM node.
2016-12-13 14:53:36 -08:00
Sebastian Markbage
db489a4ade Only do runtime validation of tag names when createElement is not used
We introduced runtime validation of tag names because we used to generate
HTML that was supposed to be inserted into a HTML string which could've
been an XSS attack.

However, these days we use document.createElement in most cases. That
already does its internal validation in the browser which throws. We're now
double validating it. Stack still has a path where innerHTML is used and
we still need it there. However in Fiber we can remove it completely.
2016-12-13 14:53:36 -08:00
Sebastian Markbage
3092f63c6b Warn if upper-case tags are used
In #2756 we ended up using toLowerCase to allow case insensitive HTML tags.
However, this requires extra processing every time we access the tag or
at least we need to process it for mount and store it in an extra field
which wastes memory.

So instead, we can just enforce case sensitivity for HTML since this might
matter for the XML namespaces like SVG anyway.
2016-12-13 14:53:29 -08:00
Ben Alpert
ec8b94e847 Disable coverage on PRs on Circle (#8569) 2016-12-13 14:27:25 -08:00
Brian Vaughn
369769aed4 Merge pull request #8558 from bvaughn/rename-initialize-core
Renamed InitializeJavaScriptAppEngine to InitializeCore
2016-12-12 21:32:53 -08:00
Dan Abramov
0f34bdc622 [Fiber] Remove array indirection in host context (#8544)
* Remove array indirection in host context

* Keep a single context stack with a null sentinel

This lets us keep subtrees separated without maintaining independent context arrays for subtrees.

* There is always exactly one null by the time we pop a portal

I was trying to be smart but didn't need to.

* Cache current context
2016-12-12 15:20:40 -08:00
Dan Abramov
ef532fd4a4 [Fiber] Fix portal bugs (#8532)
* Enable additional (failing) portal tests

* Fix portal unmounting

When unmount a portal, we need to unmount *its* children from itself.
This is similar to what we would do for a root if we allowed deleting roots.

* Skip portals when looking for host siblings

A portal is not part of that host tree despite being a child.

* Fix comment typo

* Add a failing test for portal child reconciliation

It is failing because portal bails out of update, seeing null in pendingProps.
It is null because we set pendingProps to nextPortal.children, which is null in this test.

* Fix the bug when switching to a null portal child

If pendingProps is null, we do a bailout in beginWork.
This prevents unmounting of the existing child when the new child is null.

We fix this by changing portal fiber's pendingProps to be the portal object itself instead of its children.
This way, it is never null, and thus doesn't cause a false positive in the bailout condition.

* Add a comment about HostPortal in getHostSibling

* Revert the fix because I don't know why it worked

unmountHostComponents() should have worked despite finding the wrong parent because it should have changed the parent when pushing and popping the portals.

* Don't call commitDeletion recursively

This leads to a "Cannot find host parent" bug because commitDeletion() clears the return field.
When we're inside the loop, we assign node.sibling.return to node.return but by this moment node.return has already been nulled.
As a solution we inline code from commitDeletion() without the nulling.

It still fails tests but for a different reason (unrelated bug).

* Skip portal children in commitNestedUnmounts()

We are currently already visiting them in commitUnmount() portal case since it's recursive.
This condition avoids visting them twice.

* Set node.child.return before going deeper

It doesn't seem to influence existing tests but we have this protection in all other similar places.
It protects against infinite loops.

* Revert "Fix the bug when switching to a null portal child"

This reverts commit ed9747deedf11455ba3eb65648007ab99c26ea58.

I'll solve this by using an array in place of null instead.

* Use [] for empty Portal pendingProps

This avoids a false positive bailout with pendingProps == null when portal is empty.
2016-12-12 14:18:55 -08:00
Brian Vaughn
cdb38c1478 Renamed InitializeJavaScriptAppEngine mock to InitializeCore. 2016-12-12 13:55:58 -08:00
Brian Vaughn
7b7c0e4af5 Renamed InitializeJavaScriptAppEngine to InitializeCore 2016-12-12 11:23:25 -08:00
Brian Vaughn
0a3256ac15 Merge pull request #8557 from bvaughn/add-create-text-instance-param
Add rootContainerInstance param to createTextInstance
2016-12-12 11:20:46 -08:00
Brian Vaughn
f8cb22ad83 Add rootContainerInstance param to createTextInstance.
This mirrors a recent change in params passed to  and cleans up a HACK currently required for the native fiber renderer to create text views.
2016-12-12 10:12:43 -08:00
comerc
92665e2cb1 Fix casing typo in jsx-in-depth.md (#8542) 2016-12-11 07:43:40 -06:00
Chris
39695dcd36 update example to use this.state (#8425)
- In the previous example, the code works even without using bind(this) in the constructor.
- the reason being handleClick doesn't even use `this` and its just calling the global function alert.
- this change make use of this via access this.state.
2016-12-11 07:41:48 -06:00
Sebastian Markbåge
14f05bfa89 ReactDOMFiber-test Rename portal -> usePortal (#8535)
Fixes lint since I used portal as a variable name.
We typically use a verb for functions.
2016-12-08 14:22:53 -08:00
Sebastian Markbåge
6c785ed524 Add unit tests for event bubbling in portals (#8509)
These bubble through the portal and up to the parent that rendered
the portal.
2016-12-08 13:51:21 -08:00
Sebastian Markbåge
3937bca8a2 Merge pull request #8491 from sebmarkbage/fibercurrenteventhandlers
[Fiber] Read Event Handlers from the "Current" Fiber
2016-12-08 13:49:51 -08:00
Dan Abramov
c87ffc0beb [Fiber] Support SVG (#8490)
* Test that SVG elements get created with the right namespace

* Pass root to the renderer methods

* Keep track of host instances and containers

* Keep instances instead of fibers on the stack

* Create text instances in begin phase

* Create instance before bailing on offscreen children

Otherwise, the parent gets skipped next time.
We could probably create it later but this seems simpler.

* Tweak magic numbers in incremental tests

I don't understand why they changed but probably related to us moving some work into begin phase?

* Only push newly created nodes on the parent stack

Previously I was pushing nodes on the parent stack regardless of whether they were already in current or not.
As a result, insertions during updates were duplicated, and nodes were added to existing parents before commit phase.
Luckily we have a test that caught that.

* Fix lint

* Fix Flow

I had to wrap HostContext API into a closure so that it's parameterizeable with I and C.

* Use the same destructuring style in scheduler as everywhere else

* Remove branches that don't seem to run anymore

I'm not 100% sure this is right but I can't get tests to fail.

* Be explicit about the difference between type and tag

I was confused by th HACK comment so I learned how DOM and SVG work with casing and tried to write a more descriptive comment.
It also seems like passing fiber.type into finalizeInitialChildren() is a potential problem because DOM code assumes tag is lowercase.
So I added a similar "hack" to finalizeInitialChildren() that is identical to the one we have prepareUpdate() so if we fix them later, we fix both.

* Save and restore host context when pushing and popping portals

* Revert parent context and adding children in the begin phase

We can address this later separately as it is a more hot path.
This doesn't affect correctness of SVG container behavior.

* Add a test for SVG updates

This tests the "jump" reuse code path in particular.

* Record tests

* Read ownerDocument from the root container instance

This way createInstance() depends on the innermost container only for reading the namespace.

* Track namespaces instead of creating instances early

While we might want to create instance in the begin phase, we shouldn't let DOM guide reconciler design.
Instead, we are adding a new concept of "host context". In case of ReactDOMFiber, it's just the current namespace.
We are keeping a stack of host context values, ignoring those that are referentially equal.
The renderer receives the parent context and type, and can return a new context.

* Pop child context before reading own context and clarify API

It wasn't quite clear from the API which context was being returned by the renderer. Changed the API to specifically ask for child context, and thus to pop it before getting the current context.

This fixes the case with <foreignObject> to which I intended to give SVG namespace.

* Give SVG namespace to <svg> itself

* Don't allocate unnecessarily when reconciling portals

We create stacks lazily so that if portal doesn't contain <svg>s, we don't need to allocate.
We also reuse the same object for portal host context state instead of creating a new one every time.

* Add more tests for edge cases

* Fix up math namespace

* Maintain a separate container stack

* Fix rebase mistakes

* Unwind context on errors

* Reset the container state when reusing the object

* Add getChildHostContext() to ReactART

* Record tests
2016-12-08 13:10:47 -08:00
Charlie Garcia
d77c42a26d Update CHANGELOG.md (#8518)
* Update CHANGELOG.md

* Update CHANGELOG.md
2016-12-08 12:07:53 -06:00
Ben Alpert
2161a6c92f Fix indentation for lint 2016-12-07 23:16:47 -08:00
Andrew Clark
f56eb89389 Add additional scheduling tests
Tests whether certain types of work can be performed after the deadline
has expired.
2016-12-07 23:09:08 -08:00
Andrew Clark
3a7844cabb Consolidate workLoop and deferredWork loop
Solves a few things:

- Moves code out of performWork into workLoop so that it can
be optimized.
- errorLoop (now clearErrors) is no longer called recursively.
- Removes a while (true) loop inside performWork (not that it really
matters for optimization, since performWork contains a try block and
will be deopted, anyway).
2016-12-07 23:09:08 -08:00
Andrew Clark
24a83a5eeb Extract commit phase passes into separate functions
By splitting these out, we ensure that they can be optimized by the
JS engine.
2016-12-07 23:09:08 -08:00
Andrew Clark
dcc17a966e Don't check for a pendingCommit on every iteration
Only check if we're in a deferred work batch and performUnitOfWork
returns null.
2016-12-07 23:09:08 -08:00
Andrew Clark
2508888a2b Errors thrown when detaching a ref should not interrupt unmount
If a ref throws while detaching, it should not prevent
componentWillUnmount from being called.

Additionally, errors thrown by removeChild should not be ignored, even
as the result of unmounting a failed subtree.
2016-12-07 23:09:08 -08:00
Andrew Clark
7e82214717 Error boundaries can only capture errors once per batch
Subsequent failures should propagate the error to the next boundary.
The conceptual model for this is

try {
  render();
} catch (error) {
  setStateToRecover();
  render();
}

Closes #8485
2016-12-07 23:09:08 -08:00
Andrew Clark
701d128fd1 Error recovery should have task priority
This uncovered a separate issue where some errors were being unscheduled
and rescheduled multiple times before flushing. Turns out we need to
check both a fiber and its alternate when determining if it represents a
failed unit of work. I didn't notice this before because we were
scheduling a new update on *every* boundary at the end of the commit
phase, not just the ones that captured an error during that commit. I
updated the unit tests to catch this in the future.
2016-12-07 23:09:08 -08:00
Andrew Clark
d4dd3408bd Remove tryComponentDidMount/Update in favor of commit phase try block
We still need tryComponentWillUnmount because deletion should be non-
interruptible.

Refactoring the commit phase to better handle errors also allows us
to switch between fast and slow versions of the work loop. The slower
version runs whenever there are captured errors; it must check each
unit of work to see if it has failed. The faster version runs in the
normal case where there are no errors. Whenever an error is thrown, we
switch from the fast work loop to the slow work loop.
2016-12-07 23:09:08 -08:00
Andrew Clark
db8539a47d Consolidate work loops
This makes it easier to track when we enter and exit a batch of work.

Further steps needed in this refactor:
- Get rid of tryComponentDidMount, tryComponentDidUpdate, etc. in
favor of the try-catch blocks that wrap each pass of the commit phase.
- Need to be able to switch between performing work that is possibly
failed (slower because it requires an extra check on each iteration) and
work that we know for sure has no errors.
2016-12-07 23:09:08 -08:00
Andrew Clark
5fcdebf712 Move commit phase outside of performUnitOfWork
This gives us the ability to complete a tree without having to commit it
within the same frame.
2016-12-07 23:09:08 -08:00
Brian Vaughn
9510ecfc5e Merge pull request #8521 from bvaughn/react-art-fiber
New fiber-based ReactART renderer
2016-12-07 18:35:48 -08:00
Ben Alpert
fccebad780 Don't set innerHTML if content is empty (#8526)
From D4296244:

> Each [...] had a component with innerHTML = '', causing us to go into HTML parsing code in the browser. Doing this takes 0.03ms per parse call which was 10x slower than skipping it.
2016-12-07 17:20:57 -08:00
Ben Alpert
4d71a9c580 Probably fix facts tracker 2016-12-07 16:04:47 -08:00
Brian Vaughn
81cb216288 Imported new ReactART fiber renderer
Split ReactART into stack and fiber targets. Added new ReactART test case for recently-fixed bug.
2016-12-07 15:35:53 -08:00
Brian Vaughn
9a3139121c Merge pull request #8520 from bvaughn/do-not-reset-inner-html-for-null-children
Do not reset inner html for null children
2016-12-07 15:35:13 -08:00
Brian Vaughn
bbdfc28002 Updated tests-passing 2016-12-07 15:34:32 -08:00
Sebastian Markbåge
343fb958f1 Add test for componentDidUpdate with a bailout in the middle (#8525)
This is one of the cases where Fiber diverges.
2016-12-07 15:14:32 -08:00
Liz
17f8e947fb 👏 designers are friends, not fodder for jokes (#8523) 2016-12-07 15:09:37 -08:00
Ben Alpert
29a1707911 Support parallelism on Circle (#8511) 2016-12-07 14:55:34 -08:00
Brian Vaughn
ae752dd550 Added additional test case for ReactFiberBeginWork reset-text 2016-12-07 13:54:39 -08:00
Ben Alpert
d8b591d584 Fix pull request detection on Circle 2016-12-07 13:45:06 -08:00
Brian Vaughn
f90e208849 Fixed linting error 2016-12-07 13:13:04 -08:00
Brian Vaughn
2533fa8d35 Do not reset innerHTML for elements with null children
This is required to support certain third party scripts as well as other fiber renderers (eg the new ReactART renderer)
2016-12-07 12:06:06 -08:00
Ben Alpert
6ca66f70ca Update facts-tracker for Circle (#8510) 2016-12-06 22:24:19 -08:00
Sebastian Markbåge
facce3d736 Use Portals to test batching across roots (#8508)
This doesn't work by default in Fiber, you have to opt-in with a Portal to
get the explicit ordering guarantees.
2016-12-06 13:46:36 -08:00
Sebastian Markbåge
48c7bbd980 [Fiber] Nits (#8507)
Some best practices.
2016-12-06 11:15:46 -08:00
Tom Occhino
2be0d93c77 Tweak Yarn installation to not run if it's already installed (#8496)
https://circleci.com/docs/install-and-use-yarn/
2016-12-04 11:00:30 -08:00
Sebastian Markbage
ee4984980e Get the "current" Fiber from each node along the path
This fixes the issue where using the .return pointer isn't guaranteed to
return the current Fiber so we might read the wrong props when we try
to get the current event.
2016-12-02 20:03:09 -08:00
Sebastian Markbage
2336b8183d Remove forwarding from tree traversal in EventPluginUtils
This is unnecessary forwarding since this is no longer injectable.
However, I'd like to use the injectable getInstanceFromNode from
TreeTraversal so this avoids a cyclic dependency.
2016-12-02 19:52:56 -08:00
Sebastian Markbage
910044a41d Add failing event handler test
When we perform an update to the event handler we properly update the
immediate Fiber pointer of a child to be the current. However, when we
bubble events we use the return pointer which is not guaranteed to point
to the current Fiber even if we start from the current.

This manifests itself when we bailout in a parent. So I made the tests
use a PureComponent to illustrate this scenario. There is already a failing
case but I'm adding another one too.
2016-12-02 19:33:24 -08:00
Tom Occhino
e44b526999 Add CircleCI badge to the Readme 2016-12-02 17:43:16 -08:00
Sebastian Markbåge
7169c515aa Fix lint (#8489) 2016-12-02 16:53:42 -08:00
Sebastian Markbåge
0723007e1e Merge pull request #8450 from sebmarkbage/fiberfinddomnode
[Fiber] Fix findDOMNode and findAllInRenderedTree
2016-12-02 16:34:46 -08:00
Ben Alpert
a104525e7f Only upload build if server exists (#8488) 2016-12-02 14:31:17 -08:00
Tom Occhino
153fe38403 Add circle.yml / CircleCI support (#8486) 2016-12-02 14:18:12 -08:00
Brandon Dail
33198b78c5 Merge pull request #8476 from AlanBreck/patch-1
Update reference-react.md
2016-12-02 09:16:39 -06:00
Brandon Dail
1cabbc2fd7 Merge pull request #8478 from lucas-aragno/add-return-to-render
Add return to render
2016-12-02 09:11:37 -06:00
Sebastian Markbage
a434f9e7af Fix findDOMNode and findAllInRenderedFiberTreeInternal
This strategy finds the current fiber. It traverses back up to the root if
the two trees are completely separate and determines which one is current.
If the two trees converge anywhere along the way, we assume that is the
current tree. We find the current child by searching the converged child
set.

This could fail if there's any way for both return pointers to point
backwards to the work in progress. I don't think there is but I could be
wrong.

This may also fail on coroutines where we have reparenting situations.
2016-12-01 21:21:05 -08:00
Sebastian Markbage
4fd1802ddf Additional findDOMNode tests
This is failing in Fiber without the fix. Because we have no deletions to rely
on in this case and the placement effects have already happened.
2016-12-01 21:03:24 -08:00
lucas
01eb94f04b Add return to render 2016-12-01 19:21:40 -03:00
Ben Alpert
361ce5c00b Add test for unmount/remount in a single batch (#8470)
Fails in Fiber.
2016-12-01 14:19:00 -08:00
Jacob Lamont
469d3c6461 Update reference-react.md 2016-12-01 14:35:48 -05:00
Dan Abramov
df9dc89333 Rename HostContainer => HostRoot, Portal => HostPortal (#8474) 2016-12-01 18:36:28 +00:00
Kurt Weiberth
7cd26024ce add dependencies to react-test-renderer and react-addons (#8467)
**What** and **Why**:

* When using npm version 2, `object-assign` and `fbjs` were not getting properly installed
* This PR adds `object-assign` and `fbjs` as explicit dependencies to both `react-test-renderer` and `react-addons`
2016-12-01 16:37:14 +00:00
Ben Alpert
981f461b70 Merge pull request #8463 from spicyj/travis
Update Travis config for new token
2016-11-30 21:03:01 -08:00
Ben Alpert
cb2927665c Fix insecure shell escaping in facts tracker 2016-11-30 21:02:44 -08:00
Andrew Clark
aa6279c41a Clear existing text content before inserting children (#8331)
Fixes a bug when updating from a single text child (or
dangerouslySetInnerHTML) to regular children, where the previous
text content never gets deleted.
2016-11-30 18:08:41 -08:00
Ben Alpert
06e8cedc0d Update Travis config for new token 2016-11-30 17:17:04 -08:00
Andrew Clark
e7eed5874f [Fiber] New error boundary semantics (#8304)
* Exit early in scheduleUpdate if a node's priority matches

This is a performance optimization and is unobservable. However, it
helps protect against regressions on the following invariants on which
it relies:

- The priority of a fiber is greater than or equal to the priority of
all its descendent fibers.
- If a tree has pending work priority, its root is scheduled.

* New error boundary semantics

- Recovering from an error boundary no longer uses Task priority by
default. The work is scheduled using whatever priority created the
error.
- Error handling is now a side-effect that happens during the
commit phase.
- The default behavior of an error boundary is to render null. Errors
do not propagate except when an boundary fails. Conceptually, this would
be like throwing an error from a catch block.
- A host container is treated like a no-op error boundary. The first
error captured by a host container is thrown at the end of the batch.
Like with normal error boundaries, the entire tree is unmounted.

* Fix broken setState callback test

* Add test for "unwinding" context when an error interrupts rendering

* Switch over primary effect types only

This avoids the need to create an export for every combination of bits.

* Only continue the work loop if the error was successfully captured

* Add more tests for incremental error handling

These tests are currently failing:

  ✕ catches render error in a boundary during partial deferred mounting
  ✕ catches render error in a boundary during animation mounting
  ✕ propagates an error from a noop error boundary during full deferred mounting
  ✕ propagates an error from a noop error boundary during partial deferred mounting
  ✕ propagates an error from a noop error boundary during animation mounting

The observed behavior is that unstable_handleError() unexpected gets called twice:

      "ErrorBoundary render success",
      "BrokenRender",
      "ErrorBoundary unstable_handleError",
  +   "ErrorBoundary render success",
  +   "BrokenRender",
  +   "ErrorBoundary unstable_handleError",
      "ErrorBoundary render error"

* Verify batched updates get scheduled despite errors

* Add try/catch/finally blocks around commit phase passes

We'll consolidate all these blocks in a future PR that refactors the
commit phase to be separate from the perform work loop.

* NoopBoundary -> RethrowBoundary

* Only throw uncaught error once there is no more work to perform

* Remove outdated comment

It was fixed in #8451.

* Record tests

* Always reset nextUnitOfWork on error

This is important so that the test at the end of performAndHandleErrors() knows it's safe to rethrow.

* Add a passing test for unmounting behavior on crashed tree

* Top-level errors

An error thrown from a host container should be "captured" by the host
container itself

* Remove outdated comment

* Separate Rethrow and Noop scenarios in boundary tests

* Move try block outside the commit loops
2016-11-30 16:54:20 -08:00
Ben Alpert
705c9bcfd2 Refs between fiber and stack (#8458)
I feel gross. Better ideas welcome.
2016-11-30 12:17:03 -08:00
Ben Alpert
545a193ef9 Fix isFiberMounted exports (#8465)
This got messed up in a merge conflict. It's only used for one invariant in renderSubtreeIntoContainer.
2016-11-30 12:04:00 -08:00
Dan Abramov
b1c988d0de Add tests for recovery from errors thrown in the reconciler (#8462)
Test that errors in the reconciler can be caught by error boundaries, and that we can still schedule updates if they are uncaught.
2016-11-30 17:00:14 +00:00
Dan Abramov
623f608aab [Fiber] Make bad element type message same as in Stack (#8460)
* Make bad element type message same as in Stack

This makes Fiber emit the same message as Stack (aside from the missing owner information).

* Add a separate test verifying error includes owner name

Fiber currently doesn't pass it. This is just to keep track of it as a todo.
2016-11-30 16:29:42 +00:00
Ben Alpert
6110c58584 Fix reordering of bailed out children (#8457) 2016-11-29 14:57:04 -08:00
cloudy1
150e4e8be6 Update tutorial.md (#8328)
* Update tutorial.md

fix "unknown: Unexpected token" in "codepen.io".

* tweaks per suggestion
2016-11-29 13:00:33 -08:00
Andrew Clark
ce3b7ca475 Add a document on higher-order components (#7869) 2016-11-29 10:47:54 -08:00
Ben Alpert
16bf429029 Fix fiber feature flag for ReactDOMProduction-test (#8451) 2016-11-28 23:36:05 -08:00
Ben Alpert
cbe59521af Add test for updating parent state in cWRP (#8448)
Fails in Fiber.
2016-11-28 19:05:24 -08:00
Ben Alpert
492057c76f Fix context getting (#8407) 2016-11-28 18:33:46 -08:00
Ben Alpert
a98e8227b8 Update release checklist (#8389) 2016-11-28 17:57:37 -08:00
Sebastian Markbåge
f634b813e1 Handle Bailed Out HostText update and MultiChildText test (#8371)
This handles the case where a host text bails out. In that case we need to
reuse its previous memoizedProps. We should also only schedule an actual
update if it did actually change its text content.

I updated the unit test to ignore comment nodes if we're using Fiber.
2016-11-28 17:26:49 -08:00
Dan Abramov
c74034589e [Fiber] Support iterables (#8446)
* Add iterable cases to MultiChildReconcile test

Stack currently supports rendering iterables, but Fiber does not.

Previously we didn't have any public API tests for iterables. We have tests for traverseAllChildren() which is shared between React.Children and Stack. However Fiber doesn't currently use it, and likely won't. So this commit is a first step towards actually testing iterable support via public API. The next step will be to port traverseAllChildren() tests to test React.Children API instead.

* Implement iterable reconciliation in Fiber

This uses the same exact algorithm as array reconciliation but uses iterator to step through.

This gets reconcile tests to pass again but introduces a regression in ReactMultiChildText case which uses Maps as children. It passed before because Maps were ignored, but now it's failing because this actually runs the Map code path in Fiber. We can throw early in this case when we want to follow up on this.

* Rewrite traverseAllChildren() tests against React.Children API

This function was used in React.Children and Stack.

The corresponding reconciliation functionality is being tested by ReactMultiChild tests.

So we can move these tests to ReactChildren and test its public API.
2016-11-28 23:44:56 +00:00
Ben Alpert
f1f07c4a23 Use latest instance when restoring controlled state (#8443) 2016-11-28 14:00:50 -08:00
Ben Alpert
a1feccd9e8 Record tests (#8444) 2016-11-28 11:37:21 -08:00
Sebastian Markbåge
a63cee8e24 Merge pull request #8441 from sebmarkbage/movefromstack
Move shared files out of stack folder
2016-11-28 10:59:11 -08:00
Sebastian Markbage
2faca7c13e Use public API in React Mount 2016-11-28 10:55:36 -08:00
Sebastian Markbage
af618cb84c Move setInnerHTML/setTextContent to shared 2016-11-28 10:55:36 -08:00
Sebastian Markbage
e2b9882a79 Move tests out of the Stack folder
So that we can share them with Fiber.

Also Server Rendering tests.
2016-11-28 10:55:28 -08:00
Daniela Borges
5545d43bc4 remove output field from debugger (#8440) 2016-11-28 18:19:49 +00:00
Brandon Dail
6947db1529 Use a closure to bind argument to callback in ReactErrorUtils (#8363)
* Use a closure to bind gaurded callback

This way the fake event isn't being implicitly passed into the event handler

* Add tests for ReactErrorUtils

Add fiber test report

Linting fixes
2016-11-28 16:54:57 +00:00
Christopher Chedeau
e24ec4a1b4 test 2016-11-26 17:08:10 -08:00
Christopher Chedeau
00c3ee40c2 Do not forward stderr 2016-11-26 16:53:05 -08:00
Dan Abramov
e34b995f84 Fix portal unmounting (#8422)
We used to terminate the search on host nodes, and then use the nested unmount algorithm.
However this means we didn't unmount portals inside the host nodes.

We will probably need to restructure this somehow but for now I just added a recursive call to unblock myself.
2016-11-25 21:43:56 +00:00
Dan Abramov
9c87506ad9 Update Flow to 0.36 (#8420) 2016-11-25 16:25:09 +00:00
Dan Abramov
a4dd68fb3d Add a test for nested portals (#8416) 2016-11-24 18:43:45 +00:00
Sebastian Markbåge
0ba8434a33 [Fiber] Remove output field (#8406)
* Remove output field

The idea was originally that each fiber has a return value. In practice
most of what we're modelling here are void functions and we track side
effects instead of return values.

We do use this for coroutines to short cut access to terminal yields.
However, since this can be nested fragments we end up searching the tree
anyway. We also have to manage this in transferOutput so it ends up being
as expensive. Maybe we can save some traversal for updates when coroutine
branches bail out but meh.

* Unmount child from the first phase of a coroutine
2016-11-24 10:03:14 -08:00
Fatih
2c17f47ac2 fix typo 'miss-configured' to 'misconfigured' (#8412) 2016-11-24 14:52:53 +00:00
brillout
8d291e91e6 remove dead link (#8411) 2016-11-24 14:35:48 +00:00
Sebastian Markbåge
7d2be2c9a7 Merge pull request #8400 from sebmarkbage/fibercontainerchildren
[Fiber] Update root children using appendChild/insertBefore/removeChild
2016-11-23 18:09:50 -08:00
Ben Alpert
8791325db0 Finish ReactGenericBatching (#8405) 2016-11-23 17:40:20 -08:00
Sebastian Markbage
ea3420471f Split initial children out of createInstance
The goal of this is to avoid passing an opaque data structure that needs
to be recursively searched by the host.

I considered having some helper for doing the recursion but I figured it
might be helpful to let the reconciler move this around. For example we
might want to create an instance in beginWork and add to it as we go.
This would let us avoid traversing the tree twice and would solve the IE11
perf issue.

So instead, we create the instance first then call appendChild. I could
just call the normal one but I figured that I would make a special one
just in case. For example if you wanted to perform commits on a separate
thread from creation. This turned out to be useful in ReactNoop where I
can avoid searching the array for an existing one since I know the child
isn't there already. (Although splitting placement into insertion/move
might be better.)

Finally, we need the ability to update an instance after all the children
have been insertion. Such as `<select value={...} />`. I called this
finalizeInitialChildren.
2016-11-23 17:38:35 -08:00
Dan Abramov
024e2a0259 Remove recursion from unmounting portals (#1) 2016-11-23 17:38:35 -08:00
Sebastian Markbage
fde18a4562 Assert that we always find a parent for DOM mutations 2016-11-23 17:38:35 -08:00
Sebastian Markbage
78add2dc63 Update root children using the appendChild/insertBefore/removeChild methods
This removes updateContainer and instead uses the regular child mutation
methods to insert into the root container and portals.

Since we're no longer clearing out the container DOM in updateContainer
we have to do that manually during initial mount. This now works on a
document and one of the tests end up unmounting the body when you render
into the document so I had to work around that bit since we don't yet
properly support rendering into the document root.
2016-11-23 17:38:35 -08:00
Ben Alpert
13cb540bda Lint 2016-11-23 17:31:41 -08:00
Ben Alpert
c5b6601536 Fix traversal up when unmounting (#8404)
Previously you could get an alternate when following .return in unmountHostComponents and this could revisit a node twice.
2016-11-23 16:07:25 -08:00
Ben Alpert
af659a2544 Re-record 2016-11-23 15:22:35 -08:00
Ben Alpert
1095d3f965 Preserve scroll position when restoring focus (#8401)
This misbehavior is particularly egregious because of our current strategy for updating a container in Fiber, but regardless -- if we restore focus to an offscreen node (ex: because it was reordered among its siblings) then we should not scroll the page to reveal it.

We could check the `overflow` computed style values before saving the scroll positions but that's unlikely to be any faster.
2016-11-23 14:55:17 -08:00
Sebastian Markbåge
224bdd8883 Remove config.beginUpdate (#8402)
I only used this to visualize changes when there were bugs in the
incremental reconciliation. We don't need it anymore.
2016-11-23 14:44:17 -08:00
Ben Alpert
53cdc4b288 Cleanup after #8353 (#8403) 2016-11-23 14:43:52 -08:00
Ben Alpert
caa01d498d Fix renderSubtreeIntoContainer with non-context-provider parent (#8399) 2016-11-23 14:23:45 -08:00
Ben Alpert
0c885af183 Restore DOM selection and suppress events (#8353)
This makes Draft mostly work.
2016-11-23 13:43:00 -08:00
Ben Alpert
7ac2044bce Fix queueing updates in cWM/cWRP when batching (#8398)
I tried to add a temporary check for the correct state in https://gist.github.com/spicyj/338147e989215b6eeaf48a6ce2d68d93 and run our test suites over it, but none of our existing test cases would have triggered that invariant. The new one I added does.
2016-11-23 13:00:49 -08:00
Sebastian Markbåge
7ef856aa36 Change the behavior to always fail childContextTypes if there is a method (#8391)
Even if that method returns falsy values.
2016-11-23 10:59:49 -08:00
Paul O’Shannessy
a3ba48bf72 Fix browser bundle for AMD (#8374)
* Fix browser bundle for AMD

* Final fix for standalone browser build.

Much more scientific than the rest so it should stick.

* Throw when we can't find code we need to replace.
2016-11-22 17:16:45 -08:00
Sebastian Markbåge
6beb87eb73 Merge pull request #8365 from sebmarkbage/fiberdom
[Fiber] Fix more tests
2016-11-22 16:19:15 -08:00
Sebastian Markbage
d71bd59a4e Passing disabled events 2016-11-22 16:16:47 -08:00
Sebastian Markbage
475a6492c7 Utilize the backtracking during events to figure out if a Fiber was unmounted
We're walking backwards up to the root to find the parent so that we can
propagate events further up to nested React parents. If we don't find a
root, that means that the tree was unmounted and we shouldn't send any
events to it.
2016-11-22 16:16:47 -08:00
Sebastian Markbage
a481016883 Preserve the original object when using replaceState
When we use only replace state we don't need to clone the object.
2016-11-22 16:16:46 -08:00
Sebastian Markbage
a489e3f057 Disable one irrelevant test for Fiber
We don't use transaction objects.
2016-11-22 16:16:46 -08:00
Sebastian Markbage
826e90f5a0 Don't test for comments in empty components for Fiber
Fiber doesn't use comments in empty components.
2016-11-22 16:16:46 -08:00
Sebastian Markbage
7dd8fc549e Implement the same search strategy in ReactTestUtils as findDOMNode
This was supposed to fix an issue in refs-test but instead it revealed that
this strategy is broken.

The problem is that Placement effect is not sufficient when the insertion
is completed since the effect flag is reset then and the previous tree
has no effects in it to indicate that this is the wrong tree.
2016-11-22 16:16:46 -08:00
Sebastian Markbage
be2ec3d5b8 Fix findDOMNode for empty children
If there is no child there is nothing to tell us that this was the
workInProgress branch. Therefore, we need to look at the other branch
if there are children in it to see if *that* was the workInProgress branch.
2016-11-22 16:16:46 -08:00
Sebastian Markbage
977357765b Drop "previous style" copy from Stack to bring it inline with Fiber
We've already been warning for mutating styles so now we'll freeze them
in DEV instead. This isn't as good because we don't have more specific
warnings than the generic error that doesn't even fire in sloppy mode.

This lets Fiber pass the same tests.
2016-11-22 16:16:46 -08:00
Sebastian Markbage
9ceed8d69b Track inputs after setting its properties
This used to be done at the end of the transaction but I made it synchronous.

For this to work it needs to be applied after we have already set the .type
property since it is read by inputValueTracker.
2016-11-22 16:16:45 -08:00
Sebastian Markbage
075f3043a7 Update the internal Fiber on the DOM node to always be the current
We need this to safely extract the current event listeners from the props.
Unfortunately, we are still not safe to use the return pointer since it
may not point to the current tree when the Fiber is reused. So this is not
fully done yet.
2016-11-22 16:16:45 -08:00
Sebastian Markbage
7149a26eba Allow EventListener to traverse up the tree until it hits the root
We use this to find the root node so that we can look for outer React
subtrees if this is nested.
2016-11-22 16:16:45 -08:00
Benoit Girard
9da0bf53f7 Include ReactDebugTool from inside __DEV__ to save 1.5KB (#8322) 2016-11-22 16:08:45 -08:00
Sebastian Markbåge
4358ff08bf Nit in regexp (#8388) 2016-11-22 16:06:31 -08:00
Sebastian Markbåge
f38c355cba [Fiber] Make server rendering tests pass (#8372)
* Use the public ReactDOMServer in tests

We need this because it runs the injection.

* Let Fiber skip react data attributes and comments in SSR tests

This markup is testing implementation details rather than behavior.
2016-11-22 16:03:50 -08:00
Ben Alpert
c7129ce1f0 Stopgap fix for element disabling (#8387)
Fix for #8308. This is a bad hack -- EventPluginHub.getListener isn't even DOM-specific -- but this works for now and lets us release 15.4.1.
2016-11-22 14:39:30 -08:00
Dan Abramov
6434c37649 [Fiber] Add ReactDOMFiber.unstable_createPortal() (#8386)
* [Fiber] Add ReactDOMFiber.unstable_createPortal()

While #8368 added a version of `ReactDOM.unstable_renderSubtreeIntoContainer()` to Fiber, it is a bit hacky and, more importantly, incompatible with Fiber goals. Since it encourages performing portal work in lifecycles, it stretches the commit phase and prevents slicing that work, potentially negating Fiber benefits.

This PR adds a first version of a declarative API meant to replace `ReactDOM.unstable_renderSubtreeIntoContainer()`. The API is a declarative way to render subtrees into DOM node containers.

* Remove hacks related to output field
2016-11-22 22:08:13 +00:00
Ben Alpert
8334bb088a Lint (#8385) 2016-11-22 12:04:40 -08:00
Richard Maisano
b59fb796ea Add a couple missing SVG tags to DOM Elements docs (#8383)
My first contribution to React!

While upgrading a React project, I found some suspect SVG that needed updating, so I dug in after checking the docs. I knew that support for some SVG properties had been added (namely `xmlns` and `xmlnsXlink`), but I noticed them missing from the reference's attribute list. This pull request updates `reference-dom-elements.md` by adding said properties.
2016-11-22 18:50:11 +00:00
Ben Alpert
cb6da8e922 Fiber: renderSubtreeIntoContainer (#8368) 2016-11-22 09:57:13 -08:00
Dan Abramov
f686218268 Revert "Stop relying on variable hoisting" (#8381) 2016-11-22 15:19:45 +00:00
Linus Unnebäck
93042c277e Stop relying on variable hoisting (#8380)
Only declare the variable once in this scope, instead of declaring them multiple times in the same scope.

This fixes #8318, even though it might technically be a shortcoming in Rollup.
2016-11-22 15:18:10 +00:00
Mikhail Osher
e958cdbd36 Fix object spread operator (#8378)
Object spread operator performs shallow copy of object's arguments, so it should be placed before new properties are assigned.
2016-11-22 15:01:23 +00:00
Simen Bekkhus
e64510ab21 Fix link to PureComponent in docs (#8375) 2016-11-22 11:09:07 +00:00
Robin Ricard
9334b771c2 Change test assertion depending on a feature flag (#8306)
Instead of a private API (see https://github.com/facebook/react/pull/8150#discussion_r88280994)
2016-11-22 00:17:13 +00:00
Ben Alpert
3438d503db Make findDOMNode generic (#8348) 2016-11-21 17:13:26 +00:00
Evan Scott
77c890dfa2 Update all Jest packages to 17.x (#8327)
* Update all Jest packages to 17.x, cache babel-jest transforms

* Remove the caching

Looking at the other builds it doesn't seem to actually be that necessary.  The bottleneck is executors, not build time.

* Remove unnecessary package, fix fiber test runner

* Regenerate yarn lockfile
2016-11-20 16:10:08 +00:00
Michael Sinov
501ac150f6 update react-without-es6.md (#8351) 2016-11-19 18:19:16 +00:00
Tom Occhino
dfdff2b61a Move all dev *Hook tests and ComponentTreeTestUtils to expectDev (#8350) 2016-11-18 18:53:48 +00:00
Sebastian Markbåge
0deb71223d Fix ReactDOMFiberSelect to set the initial values (#8349)
I forgot that the normal properties route doesn't do this. We also have
to make sure that the order is 1) insert children (options), 2) set
multiple 3) update the options.
2016-11-18 18:52:15 +00:00
Sebastian Markbåge
6741703fbf Merge pull request #8347 from sebmarkbage/fiberdom
[Fiber] Handle controlled components
2016-11-18 18:35:26 +00:00
Dan Abramov
12ef47ba8f Merge pull request #8346 from shubheksha/docs/improve-state-and-lifecycle
Improved sections of state and lifecycle docs
2016-11-18 18:24:27 +00:00
Dan Abramov
a0044be99d Minor changes, make it more verbose 2016-11-18 18:24:15 +00:00
Sebastian Markbage
c1daa6f2c1 Record tests and fix BrowserEventEmitter test to not crash jest 2016-11-18 18:08:40 +00:00
Sebastian Markbage
e06b335588 Add some Flow types to inputValueTracking
Not perfect but better.
2016-11-18 17:59:37 +00:00
Sebastian Markbage
9b6738805a Exclude data-reactroot from tests when using Fiber 2016-11-18 17:59:36 +00:00
Sebastian Markbage
6e04bd758e Apply @spicyj's SelectEventPlugin fix
This fixes some tests with Fiber since we no longer rely on Stack
internals for this.
2016-11-18 17:59:36 +00:00
Sebastian Markbage
632ae806e8 Give wrappers the raw props object
Wrappers operate on the raw props object instead of the processed one.

We should probably clean this up a bit since it is very confusing and
unnecessary allocations to have two separate objects for props.
2016-11-18 17:59:36 +00:00
Sebastian Markbage
a2ca759dfd Handle controlled components in Fiber
We need to adjust inputValueTracking a bit to handle the fact that
Fiber attaches wrapper state on nodes.
2016-11-18 17:59:36 +00:00
Sebastian Markbage
cd0f963fa3 Fix up Flow annotations to be a bit more explicit where the unsoundness is 2016-11-18 17:59:36 +00:00
Shubheksha Jalan
730dae1df6 Improved sections of state and lifecycle docs 2016-11-18 22:14:27 +05:30
Dan Abramov
57f0cf376f Merge pull request #8345 from shubheksha/docs/improve-introducing-jsx
Improved some sections of the introducing JSX docs
2016-11-18 16:20:48 +00:00
Dan Abramov
c47340acfb Small nit: add a sentence about readability back 2016-11-18 16:20:17 +00:00
Shubheksha Jalan
e4432c7f76 Improved some sections of the introducing JSX docs 2016-11-18 21:09:34 +05:30
Sebastian Markbåge
751b76e351 Merge pull request #8319 from sebmarkbage/fiberdom
[Fiber] Fork ReactDOMComponent
2016-11-18 13:39:50 +00:00
Dan Abramov
919aa36d69 Merge pull request #8339 from nolanlawson/patch-1
Update 2016-11-16-react-v15.4.0.md
2016-11-18 12:27:16 +00:00
Dan Abramov
1c861a0d48 Merge pull request #8332 from gaearon/prod-dev
[Docs] Expand Installation and clarify why use bundlers
2016-11-18 12:26:22 +00:00
Dan Abramov
0b1d56399b Nits 2016-11-18 12:26:06 +00:00
Dan Abramov
c91cc4d11a Nit 2016-11-18 12:25:23 +00:00
Sebastian Markbage
7246659f4d Consistent method vs function 2016-11-18 12:20:25 +00:00
Sebastian Markbage
836331ba5f Wire up ReactDOMFiberComponent in ReactDOMFiber
We'll need to do the DOM injection now.
2016-11-18 12:01:22 +00:00
Sebastian Markbage
61a1a50955 Split mountComponent into create and set initial properties
This lets us insert children in between these two steps.
2016-11-18 00:26:26 +00:00
Sebastian Markbage
4b017507e2 Don't pass the Fiber around instead use the DOM node
To avoid exposing the implementation details of fibers we'll just pass the
DOM node around instead. We'll attach any additional wrapper state on it.
We don't have to do it that way. We can also just invert the relationship
and put the node in the wrapper state.

I'll probably just get rid of the wrapper object and just put them as
expandos on the DOM.
2016-11-18 00:26:26 +00:00
Sebastian Markbage
e962e97f75 Satisfy Flow by assuming value is an array for multi-select 2016-11-18 00:26:26 +00:00
Sebastian Markbage
6dc04b73a7 Assert that this is a script tag
Also, use a fixed string for the HTML since this is always a script tag.
2016-11-18 00:26:26 +00:00
Sebastian Markbage
e58b050773 Pass the tag explicitly instead of reading it from the internal instance 2016-11-18 00:26:26 +00:00
Sebastian Markbage
2defc83f34 Stop using host parent/container internal objects
Instead we extract the namespace from the root element.
2016-11-18 00:26:26 +00:00
Sebastian Markbage
d2888a7dea Get rid of server side support for <option />
We read the wrapper state during initial mount for server rendering support
but Fiber doesn't use it and we don't need it. We also can't because we
haven't yet completed the parent that has the selected.

I will need to remember to always insert children before setting the
selected value on the parent <select />. That way the DOM will deal with
the `selected` property of option properly.
2016-11-18 00:26:26 +00:00
Sebastian Markbage
2ef2a8e6f5 Pass props explicitly instead of getting them off currentElement
We don't store currentElement and I'm trying to get rid of accessing the
Fiber directly inside the host config.
2016-11-18 00:26:25 +00:00
Sebastian Markbage
e42842f2cd getCurrentOwnerName
Instead of passing around the owner and the internal fiber everywhere we
can set current owner during each commit. That way we have it available
globally where ever we need it.

That way we don't have to pass it as a DEV only argument nor expose the
internal representation to the host config.

This doesn't actually get the current owner yet. Will do that in a follow
up.
2016-11-18 00:26:25 +00:00
Sebastian Markbage
43f07779c4 We only need the root attribute for warnings and server-side rendering
We don't need this for Fiber yet. We can possibly add an expando to check
if this is rendered with React or not.
2016-11-18 00:26:25 +00:00
Sebastian Markbage
a1645322a7 Lint issues
Most dead code
2016-11-18 00:26:25 +00:00
Sebastian Markbage
3a856091be Add some Flow and get rid of the typecheck annotations 2016-11-18 00:26:25 +00:00
Sebastian Markbage
aea55609bf No need for unmounting DOM components
We'll stop tracking the input value tracking. We'll also stop uncaching the
node because we can just let the garbage collector take care of that. This
makes it easier to release components in trees that never mounted.

This also removes an invariant error which is covered by unit tests.
This is necessary to separate regardless because we don't want this to
fire for a component that was started but was thrown away because it never
mounted. We can come back to that later.
2016-11-18 00:26:25 +00:00
Sebastian Markbage
77de47e378 Stop tracking event listeners on DOM nodes
Basically, we don't need to remove the event listeners because we can just
check if something is still mounted when they fire instead. We'll rely on
garbage collection to clean them up.
2016-11-18 00:26:25 +00:00
Sebastian Markbage
e1ed610740 Remove the notion of transactions
We don't need to wait for the commit phase to start listening to events
since we have the node.

Next we'll stop unlistening to events too and instead just check isMounted.
2016-11-18 00:26:24 +00:00
Sebastian Markbage
7cd26b9c71 Manage children inside DOM properties
Fiber manages children separately so we don't need to do it here.
However, we special case the text content children and
dangerouslySetInnerHTML.

This reveals a bug that we currently don't handle the case where we switch
from dangerouslySetInnerHTML or text children to element children, because
child insertions are handled before the parent updates. We could possibly
handle this case by removing all nodes before the first host child but
that is a bit unfortunate.
2016-11-18 00:26:24 +00:00
Sebastian Markbage
7c5ec42350 Remove _domID
Not used by Fiber
2016-11-18 00:26:24 +00:00
Sebastian Markbage
4073dc79d7 Remove instrumentation and nesting warning
The nesting warning isn't as important now that we use createElement and
I don't want to deal with this just yet.
2016-11-18 00:26:24 +00:00
Sebastian Markbage
447e0a12b5 Get rid of the previousStyleCopy
We have warned about not mutating styles already. At this point we can just
freeze the style object in DEV.

That way we can read it from the previous props object without storing
another copy of it.

Also delete the associated warning.
2016-11-18 00:26:24 +00:00
Sebastian Markbage
151094ce03 Rely on lazy listeners 2016-11-18 00:26:24 +00:00
Sebastian Markbage
82e1d7dac3 Remove child nodes flag
We're always eager in Fiber.
2016-11-18 00:26:24 +00:00
Sebastian Markbage
c8d877a4c4 Remove rootNodeID
We only use this to determine if something is mounted or not but I don't
think we really need to.
2016-11-18 00:26:24 +00:00
Sebastian Markbage
e34e8974db Remove markup related paths 2016-11-18 00:26:24 +00:00
Sebastian Markbage
ec178acf15 Turn ReactDOMFiberComponent into a singleton
And turn on Flow.
2016-11-18 00:26:23 +00:00
Sebastian Markbage
9c3e9fbb05 Fork ReactDOMComponent and the wrappers to Fiber
From now on any change to these have to be replicated to these files.

I will next start changing the implementation to work with Fiber.
2016-11-18 00:26:23 +00:00
Nolan Lawson
1ff4158fa0 Update 2016-11-16-react-v15.4.0.md
Edge and IE11 both show user marks and measures in the Dev Tools, so it's technically not accurate to say that only Chrome has this feature.
2016-11-17 15:53:41 -08:00
Tom Occhino
32f5b034ed Upgrade ESLint and dependencies, fix new lint errors, switch Travis to Yarn (#8309)
* Update ESLint to 3.10.2

Also pull in fbjs for extending properly, per @zpao. This also disables consistent-return, which has about 80 failing cases in React currently. If we'd like to turn this back on, we should do it separately and fix all the call sites properly (rather than just adding 'return undefined;' everywhere, which adds no value.

Fixes to all existing lint errors plus an update for yarn.lock to follow.

* Update yarn.lock after the eslint update.

* Fix all new eslint failures

Unfortunately I had to add three eslint-disable-next-line instances. All have explanations inline.

* Switch Travis to use yarn instead of npm
2016-11-17 22:16:44 +00:00
Dan Abramov
bd529a0237 Merge pull request #8335 from lacker/newlink
add link to useful doc
2016-11-17 19:09:04 +00:00
Ben Alpert
8ecb248e6d Make numerical refs work in Fiber (#8334) 2016-11-17 18:56:33 +00:00
Kevin Lacker
02966c7945 add link to useful doc 2016-11-17 10:49:02 -08:00
Dan Abramov
3d52856bb6 Update installation instructions on the blog 2016-11-17 16:05:49 +00:00
Dan Abramov
db140c887f Explain Installation in more detail 2016-11-17 15:55:56 +00:00
Dan Abramov
862cedee94 Merge pull request #8317 from marcysutton/master
docs(forms): add missing labels to forms doc
2016-11-17 14:25:03 +00:00
Dan Abramov
3186a8b984 Tweak examples 2016-11-17 14:23:20 +00:00
Kevin Lacker
ad347a3b92 include the version number in the header (#8315) 2016-11-16 16:26:21 -08:00
Marcy Sutton
e08be27b0c fix(a11y): add missing labels to forms doc
Showing how to create a form without labeling inputs is an accessibility anti-pattern. This change adds labels to the examples to address that. Codepen may still need to be updated depending on how that example is created.
2016-11-16 14:32:42 -08:00
Dave Voyles
b20b99eb26 Clarity on constructor of Board object for tutorial.md (#8224)
* Update tutorial.md

Is it possible to be more clear here?
 This implies that we are removing the constructor from GAME, and not board (which is what I believe the author is trying to say).
It took me several reads to understand. 

With this edit, it is now clear that the adjustment is being made to -Board- and not to -Game-

* also remove "for Board earlier"
2016-11-16 13:24:45 -08:00
Tanner
6cbdf90f19 Remove spread operator (#8273)
* Remove spread operator

I believe what was meant here was to express that you would create the new player object with all the previous properties of the existing player object in addition to now updating the score value. That being said, this is a simple example, and the player object clearly has no other values. Objects are not (by default) iterable using this operator, so this little piece does more harm than good. I believe the new example to be much clearer.

* Using Object.assign()

* Tweak wording
2016-11-16 11:59:16 -08:00
Sebastian Markbåge
aca2e04036 Merge pull request #8232 from sebmarkbage/treetraversal
Add support for Fibers in ReactDOMComponentTree and ReactTreeTraversal
2016-11-16 16:59:32 +01:00
Sebastian Markbage
4e2688db4a Extract event listener from memoizedProps on Fiber instances
This makes some basic events work with Fiber.

This is however not a complete solution since we may be reading the wrong
Fiber.
2016-11-16 15:56:13 +00:00
Sebastian Markbage
b3af02a3cd Add Fibers to ReactTreeTraversal
This traverses parent based on the type of internal instance it is passed.
If it is a Fiber it may have to traverse multiple steps until it finds a
HostComponent.

This will allow us to use the event system with Fiber.
2016-11-16 15:43:55 +00:00
Sebastian Markbage
57cc182f26 Add Fibers to ReactDOMComponentTree
This adds precaching to ReactDOMFiber. I.e. adding a handle from the DOM
node to the internal Fiber. This means that we need to expose an internal
handle to the reconciler.

We use duck typing to figure out if it is a Fiber or Stack instance.

The new failing tests are failing because this is now able to actually
fire events onto Fibers and then the result of those events are
incorrect where as they were ignored before.
2016-11-16 15:42:39 +00:00
tomocchino
d1a003ee72 Update website for 15.4.0
(cherry picked from commit 5ce8853ccb)
2016-11-16 14:51:47 +00:00
tomocchino
66ee428a61 Update Changelog & Readme for 15.4.0
(cherry picked from commit 443683525f)
2016-11-16 14:51:38 +00:00
Dan Abramov
203d3fb25e Merge pull request #8293 from gaearon/154-post
Add 15.4.0 blog post
2016-11-16 14:45:26 +00:00
Dan Abramov
e8c07b0a45 Add 15.4.0 blog post 2016-11-16 14:36:20 +00:00
Tom Occhino
9589c726da Fix a line-length warning (#8298)
Test Plan: npm run lint / yarn run lint
2016-11-16 10:33:16 +00:00
Sebastian Markbåge
dde670fd36 Reapply Check for event listener in props instead of bank (#8292)
* Reapply Check for event listener in props instead of bank (#8192)

This reverts the previous revert.

* Don't throw on falsy event listeners

Some code relies on passing null. This restores the earlier behavior.
2016-11-15 18:16:27 +01:00
Dan Abramov
4029ccd650 Merge pull request #8272 from gaearon/fiber-context
[Fiber] Initial implementation of context
2016-11-15 17:14:12 +00:00
Dan Abramov
2397f1fce6 Use empty object if context does not exist
This matches Stack behavior.
Had to rewrite a test that used Simulate because Fiber doesn't support events yet.
Also changed tests for componentDidUpdate() since Fiber intentionally doesn't pass prevContext argument.
2016-11-15 16:35:00 +00:00
Dan Abramov
1e42c1833c Add explicit tests for intermediate components 2016-11-15 16:08:15 +00:00
Dan Abramov
fd8c8038f0 Update passing tests 2016-11-15 14:49:54 +00:00
Dan Abramov
a6ee5b876a Memoize merged child context when possible
We can avoid recreating the merged context object if the context provider work was reused. This is essential to avoid allocations for deep setState() calls.
2016-11-15 14:41:59 +00:00
Dan Abramov
299009c41f Add test cases for context below and above setState 2016-11-15 13:23:29 +00:00
Andrew Clark
4528cddf51 Removes UpdateQueueNode.callbackWasCalled (#8290)
Tracking this isn't necessary.
2016-11-15 09:52:05 +00:00
Brandon Dail
024f62ecfe Merge pull request #8277 from qiuyuntao/master
docs: delete unnecessary brackets
2016-11-14 17:37:02 -06:00
Brandon Dail
cdcbf2f39b Update reference-react-dom.md (#8285)
Add missing closing bracket
2016-11-14 17:35:32 -06:00
Dan Abramov
137029be31 Catch first error from setState callbacks (#8287)
* Catch first error from setState updaters

* Minor style tweaks
2016-11-14 18:27:38 +00:00
Dan Abramov
eedca6f641 Disable memoized props bailout when context might have changed 2016-11-14 18:24:32 +00:00
Dan Abramov
56e1c126c5 Move context handling back into Begin and Complete phases
As per discussion, this is better because then this code only runs for the class type of work. We will still need to fix bailouts for deep setState calls.
2016-11-14 16:22:10 +00:00
Dan Abramov
f9e1bc9c97 Move context management into scheduler
It is error-prone to push and pop context in begin or complete phases because of all the bailouts. Scheduler has enough knowledge to see if pushing is necessary because it knows when we go inside or outside the tree.
2016-11-14 13:32:09 +00:00
Dan Abramov
c22b7a001c Add a failing test for context when reusing work
We mistakingly forget to push the context if the parent is being reused but the child is not.
2016-11-14 13:32:09 +00:00
Dan Abramov
4ba0eb9158 Add a test for recursive context 2016-11-14 13:32:09 +00:00
Dan Abramov
e6a0de5463 Fix bad ops.length assignment in tests 2016-11-14 13:32:09 +00:00
Dan Abramov
b8cca3711e Update passing tests 2016-11-14 13:32:09 +00:00
Dan Abramov
a05d1abee8 Minor style tweaks 2016-11-14 13:29:42 +00:00
Dan Abramov
12bee76ff7 Implement basic support for context 2016-11-14 13:29:42 +00:00
Dan Abramov
9a42f8a0c5 Update passing tests 2016-11-14 13:22:47 +00:00
Ben Alpert
4aa9cfb6ba Change warnings to use expectDev 2016-11-14 13:22:41 +00:00
Dan Abramov
69fc4d32b5 Minor style tweaks 2016-11-14 12:56:11 +00:00
Dan Abramov
c8451bd0d8 Catch first error from setState updaters 2016-11-14 12:55:59 +00:00
Anastasia A
3a7b3b070b Update reference-react-dom.md
Add missing closing bracket
2016-11-14 10:33:07 +03:00
Ben Alpert
64cba04bf9 Build infra for tracking dev-specific failures (#8228)
I'll plan to change all of our console.error and component-tree expects to expectDev. It's a little annoying that we need to make sure tests don't throw (see my change to normalizeCodeLocInfo) but any alternative would seem to require two separate test runs or a much more cumbersome syntax.
2016-11-13 14:00:07 -08:00
Dan Abramov
c6f10e2cee Change a test to be relevant in Fiber (#8281)
Fiber supports fragments so we will use undefined instead.
This test is then valid both in Stack and in Fiber.
2016-11-13 10:40:21 -08:00
yuntao.qyt
41b4d3958c docs: delete unnecessary brackets 2016-11-13 16:29:18 +08:00
Ankeet Maini
077822e9d0 Handles risky callbacks on setState. Fixes #8238 (#8242)
* Handles risky callbacks on setState. Fixes #8238

* Updates try-catch to cover `callback` when context is not present.

* Updates code to trapErrors instead of swallowing them.

* Fixes flow errors

* Incorporates review comments

* Traps only the first error.

Removes `callbackWasCalled` and updates fiber tests.
2016-11-12 12:51:36 -08:00
Samuel Scheiderich
9d201918bf Add freenode #reactjs link to support.md (#8270)
* Add freenode #reactjs link to support.md

* Changed irc link to http webchat link.
2016-11-11 13:21:46 -08:00
Dan Abramov
b9f65d9b1d Fix reactComponentExpect.toBeDOMComponentWithChildCount(0) regression (#8271)
This should fix 3e2680411e (commitcomment-19788988).
2016-11-11 17:26:19 +00:00
Sebastian Markbåge
4804518c26 Handle nested controlled events (#8251)
I came up with a contrived case of where nested controlled events could
fire within the same batch - but on different targets.

I think we came to the conclusion that controlled values typically cannot
use preventDefault so it is ok that they don't flush until after the event
has finished. So therefore we accumulate a queue of all the nested targets
within a batch and then restore state on all of them.

I'm still skeptical that this is the correct way to do controlled values.
The reason we have to do them in a single event loop is because when you
type, the sequence of values that get accepted or not can matter. I wonder
if there is a scenario we can come up with where you can fire multiple
inner events in an event loop and end up with batching causing problems.

This effectively just reimplements asap again but with no allocations for
a single target and no closure allocations.
2016-11-11 16:49:59 +00:00
Michele Bertoli
53e45e78e4 Make the Shallow Rendering example clearer (#8269)
* Make the Shallow Rendering example clearer

I was reading through the documentation, and I found that the `render` call on the `renderer` was missing.

* Use a regular function to define MyComponent
2016-11-11 15:34:11 +00:00
Brandon Dail
e43aaab254 Use _hostContainerInfo to track test renderer options (#8261)
* Use _hostContainerInfo to track test renderer options

The transaction is not available when unmounting or updating the
instance, so we track it using _hostContainerInfo

* Throw if hostContainerInfo is not populated in getPublicInstance

* Linting fixes

* Remove transaction from ref lifecycle code path

We don't need to pass the transaction around anymore since we store the
test options on _hostContainerInfo instead

* Remove unused argument
2016-11-11 14:35:18 +00:00
Dan Abramov
da021ca4ae Use ReactDOM.unstable_batchedUpdates in Fiber tests (#8263) 2016-11-10 21:28:49 +00:00
Dan Abramov
a9fa135fd8 [Fiber] Fix reactComponentExpect (#8258) (#8257)
* Add more reactComponentExpect tests

* Implement reactComponentExpect in Fiber
2016-11-10 21:27:07 +00:00
Dan Abramov
3e2680411e [Fiber] Fix reactComponentExpect (#8258)
* Add more reactComponentExpect tests

* Implement reactComponentExpect in Fiber
2016-11-10 21:19:57 +00:00
Ben Alpert
67dcc5861c Flow 0.34 (#8259) 2016-11-10 11:52:32 -08:00
Dan Abramov
e612826650 Revert "temporary compatibility fix" (#8256)
This reverts commit bba0d992d8.
2016-11-10 16:03:22 +00:00
Eoin Hennessy
6ce8f1f93c Refactor precacheChildNodes slightly (#8018)
This ‘fixes’ a bizarre IE9 script engine issue. #7803
2016-11-10 16:02:48 +00:00
Shuhei Kagawa
fa4710fe51 Correct a method param in Implementation Notes (#8252) 2016-11-10 14:19:27 +00:00
Satoshi Nakajima
3e708497d2 Replaced old refs with new callback refs (#8254) 2016-11-10 14:13:56 +00:00
Arni Fannar
f4059e5e5b Update refs-and-the-dom.md (#8250)
Since a lot of projects use [airbnb eslint config](https://www.npmjs.com/package/eslint-config-airbnb) where [this rule](http://eslint.org/docs/rules/no-return-assign) is enabled (and its a good rule) some people might get confused when they are trying this out in their project.
2016-11-09 14:45:21 -08:00
Guilherme Oenning
b847226ec4 fix broken docs links (#8163)
* fix broken links to outdated code

* another broken links to outdated code

* update hash commit & folder structure to current
2016-11-09 18:06:35 +00:00
jddxf
8267e1152e #8021 (#8241)
Fix gulp tasks: eslint and flow error on Windows
2016-11-09 16:51:02 +00:00
Ville Immonen
3668a2e678 Remove string ref from function component example (#8244)
Refs can't be attached to stateless functional components.
2016-11-09 16:38:36 +00:00
Toru Kobayashi
d0a8d8b951 [Fiber]Warn when shoulcComponentUpdate returns undefined (#8243)
* [Fiber]Warn when shoulcComponentUpdate returns undefined

* Remove unnecessary fallback
2016-11-09 16:30:41 +00:00
Sebastian Markbåge
84b8bbdfc9 Fixed batching reentrant controlled events (#8240)
If a controlled target fires within another controlled event, we should not
restore it until we've fully completed the event. Otherwise, if someone
reads from it afterwards, they'll get the restored value.

Not super happy with this particular solution.
2016-11-08 17:42:53 -08:00
Andrew Clark
f829e2f1f1 Meant to commit these changes with #8206... oops. 2016-11-08 13:47:31 -08:00
Kevin Lacker
3a09f4bf30 forms breakup 2016-11-08 21:38:03 +00:00
Andrew Clark
c33230e563 Merge pull request #8206 from acdlite/fibertasklifecycleupdates
[Fiber] Updates from inside componentDidMount/Update should have Task priority
2016-11-08 13:28:29 -08:00
Andrew Clark
d9d4ad60c5 Updates from inside componentDidMount/Update should have Task priority.
This is only observable in incremental mode.
2016-11-08 13:27:31 -08:00
Samer Buna
e25d899d23 Remove unnecessary findDOMNode calls (#8198) 2016-11-08 21:15:01 +00:00
Nate
2317fcaccb Fix typos in Shallow Rendering Documentation (#8226)
* Fix typos in Shallow Rendering Documentation

* Fix another occurrence
2016-11-08 20:29:27 +00:00
Keyan Zhang
46609cb95c Fix error codes (#7999)
* took codes.json from the 15-dev branch

* fixed react:extract-errors task in gulpfile

* generated error codes

* Revert "generated error codes"

This reverts commit b8f3aeed9d8f0d469edd5f6623fa6090930594d8.

* Added a README for the error code system
2016-11-08 20:20:46 +00:00
iurii kucherov
a0c510adaf Cleanup ReactErrorUtils (#8145)
Remove 'b' argument from Flow annotation
2016-11-08 20:16:20 +00:00
Sebastian Markbåge
b2eaafaf3b Revert "Check for event listener in props instead of bank (#8192)" (#8239)
This reverts commit a878c3056d.

The previous stuff that this builds on didn't successfully land fully. Since I
want to measure this in isolation, I'll revert this for now.
2016-11-08 11:32:54 -08:00
Kevin Lacker
d885894c6e Docs: add a bunch of redirects (#8137)
* add a bunch of redirects

* add more redirects
2016-11-08 19:32:02 +00:00
Robert Haritonov
ccf6f5922e Add React Amsterdam 2017 (#8235)
We've recently announced the dates for our next React Amsterdam edition, looking forward on adding it to the list.
2016-11-08 09:20:22 -06:00
Sebastian Markbåge
a878c3056d Check for event listener in props instead of bank (#8192)
This just reads events from the props instead of storing them in a
listener back.

I had to rewrite a bunch of tests to cover this model.
I removed the tests that just test the adding and removing over listeners
since there is no equivalent behavior anymore.
2016-11-07 20:36:58 -08:00
Sebastian Markbåge
2f893b5914 Revert normalized text node fix (#8231)
This reverts the implementation in 33325ad009.

I didn't mean to merge the implementation since it is incorrect and incomplete.
I meant to just merge the unit test.
2016-11-07 18:27:58 -08:00
Sebastian Markbåge
75691af209 Rerun tests (#8230)
* Ensure that we're listening to all onChange dependencies for controlled inputs

When there is no onChange event handler, we should still listen to it to
ensure controlled values get reset.

There is warning associated with this but the prod behavior should still be
respected.

* Rerun tests
2016-11-07 16:49:43 -08:00
Sebastian Markbåge
a93ab6b1af Ensure that we're listening to all onChange dependencies for controlled inputs (#8229)
When there is no onChange event handler, we should still listen to it to
ensure controlled values get reset.

There is warning associated with this but the prod behavior should still be
respected.
2016-11-07 16:47:10 -08:00
Sebastian Markbåge
a92b83033a Fix lint in ReactUpdates (#8225)
I was a bit too trigger happy.
2016-11-07 13:35:17 -08:00
Sebastian Markbåge
90878df08d Use explicit pass for restoring controlled state instead of asap (#8176)
* Use explicit pass for restoring controlled state instead of asap

This gets rid of the first class ReactUpdates.asap scheduling. Instead of
scheduling a first class function to invoke later, I introduce an explicit
phase for restoring controlled state after dispatching events.

We assume that the deepest event target is the thing that needs its state
restored.

* Drop special cases for onChange in wrappers

We're now not using anything special about onChange handling in the
wrappers. Yay!
2016-11-07 13:31:33 -08:00
Ben Alpert
75ff12e984 Run fiber tests just once on Travis (#8221)
Consolidate facts tracking with the other script.
2016-11-07 11:43:29 -08:00
Ben Alpert
c4b9330f2a Hide detailed failure output in scripts/fiber/record-tests (#8214)
![image](https://cloud.githubusercontent.com/assets/6820/20033841/a55fefa4-a367-11e6-99c0-44dfe38e1db7.png)
2016-11-07 11:43:02 -08:00
Ben Alpert
84c57ddc6d Fix errors in ReactNativeMount (#8223) 2016-11-07 11:42:39 -08:00
Robin Ricard
33325ad009 [Fiber] Attempt to fix ReactDOMTextComponent test in Fiber (#8146)
* Attempt to fix ReactDOMTextComponent test in Fiber

Obviously, some tests pass but the reconciliation is still incomplete on this in Fiber.

Those changes just ignore reconciliation Comments while asserting (this fixes 2 tests already) but now shows that Fiber lacks some reconciliation features.

* Transmit a parentInstance to commitTextUpdate

This is done in case a Node#normalize() was performed on the parent instance and that the TextInstance got desolidarized from the parent. We provide the parent known by the parent Fiber to reattach the DOM node in this case.

* Added a more complex case around split nodes

This test does not assume one split node substitution alone but also some non-split nodes.

* Fiber supports split text nodes

This is done by suppressing nodes appearing during the split. this is based by comparing against the old value known by the Fiber.

* Simplify siblings cleaning in commitTextUpdate

No need to assert instanceof Text since the length comparator will work correctly.

* Ensure non-text nodes won't be removed

* Fix flow for Fiber Text reconciliation additions

Mostly define types as optionals. Respects the strict DOM API around Node & Element.

* Append at any stack stage only if necessary

The direct parent of the TextNode fiber may not contain the host node. We have to go through the hierarchy. However, since this work may be expensive, we only do it if absolutely necessary!

* Use tag & ReactTypeOfWork to find an HostComponent

* Addfailing scenario when running Node.normalize()

It happens when non-text-elements are added in the mix. @sebmarkbage seems to have an idea on how to fix it. This is just a repro of the bug!

* Register failing/passing fiber tests
2016-11-07 11:39:52 -08:00
Sebastian Markbåge
95334fada0 Track if SelectEventPlugin is attached on a per document basis (#8190)
This gets rid of the global flag on if something has listened to onSelect
and instead reads the isListening map if all the events are covered.
This is required if we want to attach events locally at roots.

Could be slower perf wise to handle events. An alternative solution would
be to attach a special flag on the listener map for the document so we
don't have to check the full dependency list.

However, my favorite solution would be to just eagerly attach all event
listeners (except maybe wheel). Then we don't have to do any of this stuff
on a per element basis.
2016-11-07 11:30:34 -08:00
Alex Baumgertner
5166a1b446 Fix method markdown highlight (#8218) 2016-11-07 11:57:23 -06:00
Ben Alpert
f705adb599 Re-record tests 2016-11-05 14:59:22 -07:00
Ben Alpert
ef99e7e096 Call setState callbacks enqueued in cWM (#8207)
Also fixes return value of ReactNativeMount and moves that callback to be after cDM instead of after all updates.
2016-11-05 14:38:24 -07:00
Ben Alpert
5f49b63bde Move setState callback to right after didUpdate (#8204)
It's much easier to do it this way in Fiber and there shouldn't be much observable difference.
2016-11-05 14:37:43 -07:00
Robin Ricard
ba6b53afba [Fiber] Complete ES6 Class related errors support (#8156)
* Print a warning in fiber for lacking render method

* Reject initial non-object state in Fiber

Rejects Arrays, Strings & Numbers. Allows nulls.

* Centralize fiber checks on ES6 Classes

* Add classic & instance property checks on fiber

- check the absence of getInitialState & getDefaultProps as methods
- check the absence of propTypes & contextTypes at instance-level

* Convert to normalized React `warning` calls

* Support lifecycle typo detection in fiber

* Get the complete warnings from the existing code

* Only check classInstance once

Avoid rechecking while resuming

* Can warn component while resuming but only once

This is achieved by tracking the warning state in the Fiber structure.

* Remove warning deduplication

* Factor name retrieval in a getName helper

* Use invariant instead of throw

* Read inst.state only once for the invariant

* Fix condition on the instance state

* Register failing/passing fiber tests
2016-11-05 11:19:48 -07:00
Brandon Dail
e644faa610 Correctly render placeholder for textarea in IE11 (#8020)
* Check if textContent should be set for textarea

shouldSetNodeTextContent returns whether a node.textContent should be
updated. Currently it only covers one case, which is to avoid setting
the textContent if the text is empty and a placeholder exists.

* Only set node.value if it's equal to initialValue

In IE11 textContent is populated when the placeholder attribute is set.
Without this check, we end up setting node.value equal to the
placeholder text, causing the textarea to actually render with the text
inside.

This check makes sure that textContent is equal to our expected
initialValue, which should be the case when using defaultValue.

* Remove placeholder/textarea check, use contentToUse instead
2016-11-05 11:47:54 -05:00
Martin Hochel
346d50e2ba support slot attribute on DOM elements for V1 shadowDom named slots p… (#8061)
* support slot attribute on DOM elements for V1 shadowDom named slots projection

Closes #7784

* fix(test): fix lint errors
2016-11-05 11:34:54 -05:00
Andrew Clark
c1cca0c7d8 Don't need to keep track of rootsWithUncaughtErrors
Just give it NoWork priority and findNextUnitOfWork will handle the rest
2016-11-04 17:58:57 -07:00
Andrew Clark
c0c2455643 Merge pull request #8210 from gaearon/fiber-error-boundaries-fatal
[Fiber] Make error handling more resilient
2016-11-04 17:41:04 -07:00
Andrew Clark
ef14324441 Remove unscheduleWork
We can use the existing unscheduling logic in findNextUnitOfWork.
2016-11-04 17:37:09 -07:00
Dan Abramov
c80f390823 Make error handling more resilient
* Ensure that errors in one root don't prevent work on another root
* Fix an issue where boundary state change would get ignored in incremental mode
2016-11-04 23:35:50 +00:00
Dan Abramov
e2be9830b8 Create a separate test file for incremental error handling 2016-11-04 19:48:36 +00:00
Andrew Clark
4266f08e48 [Fiber] "Task" priority for error boundaries and batched updates (#8193)
* Refactor scheduling functions and introduce Task priority

There was lots of duplication across all the scheduling functions. I
think we're far enough along that we can start trying to clean some
stuff up.

Also introduces a new priority level provisionally called Task priority.
This is for work that completes at the end of the current tick, after
the current batch of work has been committed. It's different from
Synchronous priority, which needs to complete immediately.

A full implementation of Task priority will follow. It will replace
the current batching solution.

* Implement Task priority

Task priority is similar to Synchronous priority. Both are flushed in
the current tick. Synchronous priority is flushed immediately (e.g. sync
work triggered by setState will flush before setState exits), where as
Task is flushed after the current batch of work is committed.

Currently used for batchedUpdates and nested sync updates. Task should
also be used for componentDidUpdate/Mount and error boundary work. I'll
add this in a later commit.

* Make error boundaries use Task Priority

I have all but one error fixed. Not sure how tricky the last one is,
but I'm cautiously optimistic. Pushing to show my current progress.

* Remove recursion from handleErrors

Changed the algorithm of handleErrors a bit to ensure that boundaries
are not revisited once they are acknowledged.

* Add incremental error boundary test

Discovered an edge case: a noop error boundary will break in incremental
mode unless you explicitly schedule an update.

* Refactor error boundaries in Fiber

* Simplify trapError() calls

The existing logic was written before we had a proper error handling system.

* Remove unnecessary flags

* Prevent performTaskWork recursion

* Be stricter about preventing recursion
2016-11-04 19:40:50 +00:00
Ben Alpert
f4a42b872b Fiber: Fix reconciling after null (#8202)
Before, this code was bailing out after encoutering a null child because it thought it was out of old children. Seen when reconciling [null, <span />, <Image />] with [null, <span />, <Image />] in XUISelector.
2016-11-03 23:56:29 -07:00
Sebastian Markbåge
b20e3afbf5 Move Safari onClick hack into ReactDOMComponent (#8189)
This is already where we trap non-bubbling events. We also already branch
on the tag type so we know if it is interactive or not.

This will let us get rid of the didPutListener and willDeleteListener
abstractions.

I use a simple onclick = emptyFunction to avoid the need for a bookkeeping
map.
2016-11-03 15:26:23 -07:00
Brent Vatne
09ce083c4c Add Agent Conference to conferences docs (#8196)
* Add Agent Conference to conferences docs

* Move Agent Conference to upcoming conferences
2016-11-03 15:18:48 -05:00
Dan Abramov
857672f7e7 Update passing tests 2016-11-03 14:41:39 +00:00
Andrew Clark
29dbbc31c9 UpdateQueue fixes
- Incorrect comparison when computing hasUpdate
- isReplace should be a property of the node, not the queue
2016-11-02 23:00:00 -07:00
Sebastian Markbåge
3410ecadd1 ES import -> require (#8185)
Not all of our downstream build chains don't support ES imports yet.
2016-11-02 13:48:29 -07:00
Dan Abramov
c894679b75 [Fiber] Schedule animation regardless of deferred work (#8187)
* Remove comments about implementation details

* Schedule animation regardless of deferred work
2016-11-02 20:46:20 +00:00
Dan Abramov
eb674e47c8 [Fiber] Add tests for scheduling inside callbacks (#8186)
* Add tests for scheduling inside callbacks

* Don't test implementation details
2016-11-02 20:11:27 +00:00
Andrew Clark
75f4ab2206 Merge pull request #8127 from facebook/fibersynchronouswork
[Fiber] Use synchronous scheduling by default
2016-11-02 12:46:38 -07:00
Dan Abramov
95084bedbb Fix lint by removing unneeded type import 2016-11-02 12:45:15 -07:00
Andrew Clark
c3ab541e0f New effect type: Callback
This solves the problem I had with enqueueSetState and enqueueCallback
being separate.
2016-11-02 12:40:21 -07:00
Andrew Clark
2182b69004 batchedUpdates tests
Covers some bugs I encountered while working on this feature.

Introduces a syncUpdates API to ReactNoop. Is this something we'd want
to expose to the reconciler?
2016-11-02 12:40:21 -07:00
Andrew Clark
da45010cb7 Remove first-class function
Instead we'll branch on the priority level, like in scheduleWork.
2016-11-02 12:40:21 -07:00
Andrew Clark
3121e051a8 At the end of a batch, perform any sync work that was scheduled 2016-11-02 12:40:21 -07:00
Andrew Clark
26731ea967 unstable_batchedUpdates should return value of callback 2016-11-02 12:40:21 -07:00
Andrew Clark
2e5e88c750 Don't need defaultPriorityContext
Turns out this isn't necessary. Simpler to keep it as one field.
2016-11-02 12:40:21 -07:00
Andrew Clark
b41883fc70 unstable_batchedUpdates
Implements batchedUpdates and exposes as unstable_batchedUpdates. All
nested synchronous updates are automatically batched.
2016-11-02 12:40:21 -07:00
Andrew Clark
d153b1e27b Enqueue update and callback simultaneously
Without this fix, in non-batched mode, the update is scheduled first and
synchronously flushed before the callback is added to the queue. The
callback isn't called until the next flush.
2016-11-02 12:40:21 -07:00
Andrew Clark
ecf468e556 Batch nested updates when in sync mode
Almost working...
2016-11-02 12:40:21 -07:00
Andrew Clark
78aef38bfa Add config to enable sync scheduling by default
I'll turn this on in ReactDOMFiber once I figure out batchedUpdates.
2016-11-02 12:40:20 -07:00
Andrew Clark
7b9ae92058 Updates should use the same priority context as top-level render
A bit of restructuring so that setState uses whatever the current
priority context is, like top-level render already does.

Renamed defaultPriority to priorityContext, and added a new variable
called defaultPriorityContext. Having two separate variables allows the
default to be changed without interfering with the current context.
2016-11-02 12:40:20 -07:00
Andrew Clark
a07f5eede0 Synchronous work 2016-11-02 12:40:20 -07:00
Andrew Clark
ab920970ae Ensure first iteration of performAnimationWork loop has right priority
I don't think this actually changes any behavior because of the way
findNextUnitOfWork works, but I think this is easier to follow.
2016-11-02 12:40:20 -07:00
Dan Abramov
2b26ea614d Fix the build (these tests were renamed) 2016-11-02 19:28:26 +00:00
Dan Abramov
99be3781ef [Fiber] Add more tests for scheduling (#8183)
* Add more tests for scheduling

* Remove ambiguous terms
2016-11-02 17:49:22 +00:00
Sebastian Markbåge
e5d85fbe04 Remove pendingUpdate optimization in ReactDOMSelect (#8175)
This removes an optimization that avoids call update on ReactDOMSelect
twice in an onChange event.

2601b6a0b0 (commitcomment-19643403)

None of the other controlled components do this. The only reason to do it
here is because of the loop.

I'd like to remove this because I'd like to remove all the side-effects
that happen in onChange, other than user defined behavior. I'd also like to
get rid of state that track sequences. It is easier if everything is just
diffing.

Alternatively I can store the previous value that we processed and only
reprocess if the value has changed. However, that would requires the array
for multiple values to be immutable and I don't think we enforce that
right now.

In Fiber, I believe that we'll be able to batch both these updates into a
single commit.
2016-11-01 18:54:20 -07:00
Sebastian Markbåge
576542d0cf Handle the radio button case completely in the asap case (#8170)
Instead of scheduling individual callbacks to asap, we schedule one and
then do all the work in that one.

I'm doing this for architectural refactoring reasons.

Nevertheless, I'm adding a contrived unit test that this fixes. :)
2016-11-01 18:54:11 -07:00
Tetsuharu OHZEKI
33ac5e8e4b [Fiber] Assign ReactTypeOfSideEffect to ReactFiber.Fiber.effectTag correctly (#8173)
The type of `ReactFiber.Fiber.effectTag` is `TypeOfSideEffect`.
Thus we should assign `ReactTypeOfSideEffect.NoEffect` value instead of
`ReactPriorityLevel.NoWork` even if they are same values.
2016-11-01 23:24:55 +00:00
Dan Abramov
1a49b5f563 [Fiber] Fix infinite loop in scheduler and add more tests (#8172)
* Make test more complete

* Add a failing test for scheduling in reverse order

It hangs forever because we don't clear next pointer when unscheduling a root. Therefore, when it's scheduled again, it brings all its previous chain with it, potentially creating a cycle.

* Clear the next pointer when unscheduling a root

Fixes a potential infinite cycle when we reschedule a root.

* Add new tests to Fiber test tracker
2016-11-01 17:44:57 +00:00
Dan Abramov
ab02a03cad [Fiber] Add some scheduling tests (#8171)
* Extend ReactNoop to handle multiple roots

This lets us test scheduling between the roots.

* Add a few first tests for scheduler
2016-11-01 14:35:01 +00:00
Ben Alpert
08b4cc53b8 Track passing/failing tests in fiber (#8169)
* Work around jest toEqual bug in ReactTreeTraversal

![image](https://cloud.githubusercontent.com/assets/6820/19879640/1cd7595a-9fb2-11e6-94ac-8c38bdfc90d3.png)

* Track passing/failing tests in fiber

Run scripts/fiber/record-tests to re-record, then check git diff to see what you changed.
2016-10-31 23:26:38 -07:00
Yura Chuchola
abeae306e5 Update forms.md (#8136)
The component Form in "Uncontrolled Radio Button" example doesn't need state, because it does not used in render() method.
2016-10-31 17:35:20 -07:00
Sebastian Markbåge
34fd4f4aa0 Kill ReactLink, LinkedStateMixin, valueLink and checkedLink (#8165)
This should be safe because we've been warning for this. The LinkedStateMixin is technically exposed on React.addons without a warning but presumably you wouldn't be using it without a valueLink or checkedLink.

I do this primarily to clear up what the custom onChange listeners are doing.

Renamed the final prop type helper to ReactControlledValuePropTypes.
2016-10-31 16:45:01 -07:00
Damien Soulard
f53854424b update-unknown-warning-page - add a reason for the warning (#8131)
* update-unknown-warning-page - add a reason for this warning

* Minor tweaks
2016-10-31 13:01:06 +00:00
Skasi
abf37ea484 Remove duplicated word in doc (#8157)
Gets rid of an obsolete word in the documentation for "State and Lifecycle":

"Consider the ticking clock example from the one of the previous sections."
->
"Consider the ticking clock example from one of the previous sections."
2016-10-31 11:42:02 +00:00
bel3atar
980cb01a84 add missing verb (#8139)
`why is an` should be `why it is an`
2016-10-31 11:41:43 +00:00
Dan Abramov
264bed13ba [Fiber] Miscellaneous fixes to get more tests passing (#8151)
* Reset current owner when handling an error

* Make string ref deletion tests accept null

* Relax requirements on ref and render interleaving
2016-10-30 22:15:34 +00:00
Dan Abramov
c567b6e618 Remove use of reactComponentExpect in our tests (#8148) 2016-10-30 00:44:33 +01:00
Dan Abramov
c17bf38035 Get a few more Fiber tests passing (#8149)
* Get a few more Fiber tests passing

* Fix Flow and wrap in __DEV__
2016-10-30 00:43:34 +01:00
Robin Ricard
6d747a7426 [Fiber] Fix tests for Fiber in ReactElement-test (#8150)
* Test Fiber internals differently in ReactElement

Instead of being able to access the owner's instance via getPublicInstance(), we use the Fiber's stateNode. (Fiber does not have methods, it's just a structure!)

* Fix isCompositeComponentWithType for fiber

In ReactTestUtils.isCompositeComponentWithType, we provide a way to walk through Fiber's internals in place of using _currentElement.type. We keep support for non-fiber though.

* Test fiber reconciler consistently

Use typeof instance.tag to test if we're using the fiber reconciler

* Remove unnecessary comment
2016-10-30 00:42:59 +01:00
Dan Abramov
928541dc9e [Fiber] Fix TestUtils.findAllInRenderedTree (#8147)
* [Fiber] Fix TestUtils.findAllInRenderedTree

* Add a comment about coroutines
2016-10-29 22:02:13 +01:00
Lee Sanghyeon
f29a7bac0e Update codebase-overview.md (#8142)
* Update codebase-overview.md

Fix the broken source code URL in 'Event System' section.

* Update codebase-overview.md

Re-fix link name
2016-10-29 13:01:41 +01:00
Maksim Shastsel
9dc7a9594a Add support for node v7 (#8135) 2016-10-29 11:24:12 +01:00
Andrew Lo
1efb7a4e35 In the community support doc, I noticed that the React Facebook (#8138)
page link is broken since it's missing '.com'.
2016-10-29 00:31:01 +01:00
Andrew Clark
1152ced3dc Merge pull request #8133 from gaearon/error-boundaries-more
[Fiber] Error boundaries should handle errors independently
2016-10-28 14:58:54 -07:00
Dan Abramov
ed11b35302 The issue with tests is solved now 2016-10-28 21:48:37 +01:00
Dan Abramov
d8441cd725 Handle multiple errors in boundaries 2016-10-28 21:22:59 +01:00
Dan Abramov
c08469a7d6 Add tests verifying we don't swallow exceptions 2016-10-28 21:22:59 +01:00
Dan Abramov
f51abe0b55 Add a failing test for multiple independent boundaries
Now that commits are treated as atomic, it is possible that componentDidMount, componentDidUpdate, or componentWillUnmount threw in multiple places during the commit. We need to make sure we notify all affected boundaries of the first errors in them.
2016-10-28 21:22:58 +01:00
Dan Abramov
bd3c90ac6f Add more tests for error boundaries 2016-10-28 21:22:58 +01:00
Gant Laborde
6825773882 Organize and add confs (#8129)
Upcoming proximity followed by past chronological.
2016-10-28 11:21:21 -07:00
mfijas
4bca777131 Updated tutorial.md (#8054)
Fixed method name (renderStep -> renderSquare).
Removed <li>'s key to present the warning described below the code fragment.
2016-10-28 10:28:44 -07:00
Dan Abramov
3c6abbfff7 [Fiber] Error Boundaries (#8095) 2016-10-28 10:29:14 +01:00
Sebastian Markbåge
308e0b7786 Merge pull request #8128 from sebmarkbage/fiberdom
[Fiber] Some early refactoring to be able to reuse the event system
2016-10-27 23:18:43 -07:00
Sebastian Markbage
ea47782aaa Create ReactGenericBatching injection wrapper around BatchedUpdates
This moves calls that don't know if they're in a Fiber or Stack
context to use ReactGenericBatching.batchedUpdates.

The corresponding one will be injected from either the stack
reconciler and/or the fiber reconciler if they're loaded at the
same time.

This lets them share the event system when they're both used
at once.

This can also be useful for libraries that call
unstable_batchedUpdates today but don't know which renderer to
use.
2016-10-27 18:57:30 -07:00
Sebastian Markbage
2f8d1689db Refactor ResponderEventPlugin to not rely on _rootNodeID
Instead of relying on IDs, we now use instances for everything so
this should be reflected by the test.

This still has a _rootNodeID to store the listeners which I will
remove next.
2016-10-27 18:54:15 -07:00
Eugene
0e23880d22 Update reference-react-component.md (#8126)
line 320: For example, this code ensures that the `color` prop is a string
2016-10-27 19:25:43 +01:00
Rick Beerendonk
346dcaacfa Add React Remote Conf 2016. (#8094)
Add video links to some conferences.
2016-10-27 11:25:14 -07:00
Sebastian Markbage
2633a4284f Move more files into stack reconciler
CallbackQueue and Transaction are specific to the stack
reconciler.
2016-10-27 11:04:23 -07:00
Dan Abramov
e1b140225a Clarify how transition props work (#8124) 2016-10-27 14:21:34 +01:00
Ivan Zotov
b3b13919c7 Improve devtools image size for the tutorial (#8114) 2016-10-27 13:54:18 +01:00
Andreas Möller
1e126c29dd Fix: Remove unneeded else branches from documentation examples 2016-10-27 13:12:37 +01:00
Dan Abramov
a4b9abff42 Consistent CodePen links in docs 2016-10-27 13:06:09 +01:00
Ivan Zotov
6fec6507ed Fix lint errors (#8113) 2016-10-27 13:03:32 +01:00
Varun Bhuvanendran
603b7194dc added word break (#8120) 2016-10-27 13:01:51 +01:00
Lewis Blackwood
dba8f25854 Correct usage of formatName() function in docs (#8122)
The code section above these changes defines a `formatName` function
that expects a parameter `user`. The code section containing these
changes incorrectly called `formatName(user.name)`. For those following
along with CodePen, this section should correctly call
`formatName(user)`.
2016-10-27 13:01:04 +01:00
Josh Perez
6eebed0535 Shares debugID information across modules (#8097)
Prior to this, React was using a nextDebugID variable that was locally
scoped to both `instantiateReactComponent` and `ReactShallowRenderer`.
This caused problems when the debugIDs would collide, the `itemMap` in
`ReactComponentTreeHook` would be overwritten and tests would fail
with the message "Expected onBeforeMountComponent() parent and
onSetChildren() to be consistent".

This change shares the debugID with both modules thus preventing any
collisions in the future.
2016-10-27 10:31:10 +01:00
王晓勇
e3688d1fa3 Update forms.md (#8121) 2016-10-27 10:26:31 +01:00
Andrew Clark
e031e0be3c Merge pull request #8118 from facebook/fiberpurecomponent
[Fiber] PureComponent
2016-10-26 21:13:43 -07:00
Andrew Clark
59c94648c4 PureComponent in Fiber
Passes existing PureComponent tests
2016-10-26 21:02:39 -07:00
Dan Abramov
cc3dc21be0 Tweak Forms 2016-10-27 02:02:29 +01:00
Eric Nakagawa
552033e33b Docs update - Additional (#8115)
* Reapplied fixes to updated docs from master

* Reapplied fixes to Forms, removed ES2016 function includes()

* Missing carriage return

* Adding back some line breaks

* Making requested changes.

* Making space changes

* Fixed typo and removed unnecessary hyphen.

* Reworded select, and highlighted line

* Fixed string styles

* Refactored <label> to use htmlFor

* Another refactor of <label>

* Removed name prop from radiobutton
2016-10-27 00:14:08 +01:00
Eric Nakagawa
47e665a2fc Forms Update (#8112)
* Reapplied fixes to updated docs from master

* Reapplied fixes to Forms, removed ES2016 function includes()

* Missing carriage return

* Adding back some line breaks

* Making requested changes.

* Making space changes
2016-10-26 13:45:25 -07:00
Toru Kobayashi
2ef12084e4 [Fiber] Add top level render callbacks into ReactDOMFiber and ReactNoop (#8102)
* [Fiber] Add top level render callbacks into ReactDOMFiber and ReactNoop

* [Fiber] Support multiple render callbacks

* [Fiber] `this` in render callbacks are public instances

* [Fiber] commitLifeCycles move to behind the effectTag check
2016-10-26 13:19:19 -04:00
Alex Katopodis
2ba571c246 Fix typo in reconciliation.md (#8110) 2016-10-26 17:13:55 +01:00
Lutz Rosema
42465eefed Use const instead of var (#8107)
It clarifies that `history` and `current` won't be reassigned.
2016-10-26 15:20:09 +01:00
Andrew Clark
d5eff3b0eb [Fiber] String refs and owner tracking (#8099)
* Implement string refs using callback closures

* Merge Fiber type to avoid Flow intersection bugs

Still one remaining type error that I'm not sure how to fix

* Fix Flow issue with an unsafe cast

* Fix missing semicolon

* Add a type import I missed earlier
2016-10-26 14:37:32 +01:00
Jae Hun Lee
ce2dee32fd Update lists-and-keys.md (#8090)
There is mismatching variable name both definition and usage.
In line 156, an argument name called item is change to match the usage in line 158.
2016-10-26 14:17:21 +01:00
Toru Kobayashi
d49dfe7da4 Fix an argument name of TestUtils.renderIntoDocument (#8104) 2016-10-26 13:44:46 +01:00
Sebastian Markbåge
7bcad0a6aa Merge pull request #8083 from sebmarkbage/fiberfinddomnode
[Fiber] Implement findDOMNode and isMounted
2016-10-26 02:52:20 -04:00
Sebastian Markbåge
51e1937dd6 Merge pull request #8028 from sebmarkbage/nodidupdateforbailout
[Fiber] Don't call componentDidUpdate if shouldComponentUpdate returns false
2016-10-25 18:21:40 -04:00
Sebastian Markbage
46bde58486 Don't call componentDidUpdate if shouldComponentUpdate returns false
This fix relies on the props and state objects being different
to know if we can avoid a componentDidUpdate. This is not a great
solution because we actually want to use the new props/state
object even if sCU returns false. That's the current semantics
and it can actually be important because new rerenders that are
able to reuse props objects are more likely to have the new props
object so we won't be able to quickly bail out next time.
I don't have a better idea atm though.
2016-10-25 15:21:05 -07:00
Sebastian Markbåge
3d48139dd7 Merge pull request #8096 from sebmarkbage/fiberdom
Merge React[DOM/Native]TreeTraversal
2016-10-25 17:52:16 -04:00
Sebastian Markbage
8df7afc689 Merge React[DOM/Native]TreeTraversal
These two implementations are identical. Except for some
invariants for some reason.

Since this relies on an implementation detail of the internal
component tree rather than an implementation detail of the
renderer, we might as well merge them and remove the injection.
2016-10-25 14:37:46 -07:00
Sebastian Markbage
8e2d7f8d27 Add tests for findDOMNode on fragment and text
These are new features that aren't covered by existing tests.

It is now possible to use findDOMNode to find a text node.

When a component returns a fragment, it will search to find the
first host component just like element.querySelector does.
2016-10-25 13:59:34 -07:00
Sebastian Markbage
d5752aca0d findDOMNode when a component is not yet mounted or unmounted
First we need to check if a component subtree is mounted at all.

If it is, we need to search down the fiber for the first host
node. However, we might be searching the "work in progress"
instead of current.

One realization is that it doesn't matter if we search work in
progress or current if they're the same. They will generally be
the same unless there is an insertion pending or something in
the alternate tree was already deleted. So if we find one of
those cases, we switch to look in the alternate tree instead.
2016-10-25 13:59:34 -07:00
Sebastian Markbage
1914f94041 Handle unmounted and not-yet-inserted subtrees in isMounted
There are two cases where we have a Fiber that is not actually
mounted. Either it is part of a tree that has not yet been
inserted or it is part of a tree that was unmounted.

For the insertion case, we can check the parents to see if there
is any insertion effect pending along the parent path.

For deletions, we can now check if any of the return pointers
is null without actually being the root.
2016-10-25 13:59:34 -07:00
Sebastian Markbage
1376048bd9 Clear effectTag and return pointers after side-effects
This will let us use these pointers to reason about a tree.
Whether if it is "current" or "work in progress".
2016-10-25 13:59:33 -07:00
Sebastian Markbage
2e040fc2c1 Implement isMounted for Fiber
This is the naive implementation that doesn't cover the case
where it has completed but not yet committed. It also doesn't
deal with unmounts since they currently don't clean up the item
in the ReactInstanceMap.
2016-10-25 13:59:33 -07:00
Sebastian Markbage
298d0c3e05 Implement findDOMNode for Fiber
This is the naive implementation that doesn't cover the case where there are
two diverging fibers, or if this tree is unmounted.
2016-10-25 13:59:31 -07:00
Sebastian Markbåge
e3131c1d55 Merge pull request #8086 from sebmarkbage/fiberdom
[Fiber] Reorganize files for DOM renderer to make overlap between fiber/stack clearer
2016-10-25 15:56:30 -04:00
Sebastian Markbage
a3fb0310ca Reorganize files
This is just moving a bunch of DOM files.

It moves things into dom/stack and dom/fiber respectively. The
dom/stack folder remains split into client/server.

Mainly the shared folder is now my best guess for files that
we can reuse in fiber. Everything else will get forked or
reimplemented.

Also moved the event system out of renderers/shared/stack and
into renderers/shared/shared.
2016-10-25 10:54:14 -07:00
Sebastian Markbåge
ea8cf7fbff Delete child when the key lines up but the type doesn't (#8085)
When keys line up in the beginning but the type doesn't
we don't currently delete the child. We need to track that this
fiber is a not a reuse and if so mark the old one for deletion.
2016-10-25 12:51:53 +01:00
Dan Abramov
225325eada Add Fiber Debugger (#8033)
* Build react-noop as a package

This lets us consume it from the debugger.

* Add instrumentation to Fiber

* Check in Fiber Debugger
2016-10-25 08:36:37 +01:00
Sebastian Markbage
b26168cadb DefaultEventPluginOrder -> DOMEventPluginOrder
This is not a generic plugin order. It's DOM specific. Unlike
say DefaultBatchingStrategy which is used by Native too.
2016-10-24 19:59:04 -07:00
Sebastian Markbage
4ba8bef19a Split DefaultInjection into two files
This splits DefaultInjection into one with all the properties
and event configuration and a separate one for the things that
are relevant to he stack reconciler.

That way we can reuse the property and event system for Fiber
without pulling in all the other stuff.
2016-10-24 19:44:55 -07:00
Sebastian Markbage
b0ccf62ea3 Get rid of ReactInjection
We don't use this indirection. It'll easier to break these apart
without it.
2016-10-24 19:16:56 -07:00
Dan Abramov
265ab83667 Respect state set in componentWillMount() on resuming (#8079)
When resuming creating new instance after resuming work, we should set the `state` on the newly creating instance rather than the old one.
2016-10-25 00:21:56 +01:00
Sergey Rubanov
9626c838cb Add npm v4.0.0 support (#8082) 2016-10-24 23:57:12 +01:00
Constantin Gavrilete
82d592a0fa removed duplicated 'the' (#8081) 2016-10-24 17:34:58 -05:00
Sebastian Markbåge
06e3b03132 Merge pull request #8078 from sebmarkbage/rmcomment
Remove copypasta comment
2016-10-24 13:49:51 -04:00
Sebastian Markbage
7991a00dcc Remove copypasta comment
Caught by @gaearon
2016-10-24 10:49:10 -07:00
Antti Ahti
954a70e591 Remove deprecated function from tests (#6536)
This has been deprecated since 2013 so it's about time to remove it.
2016-10-24 18:46:38 +01:00
Dan Abramov
14156e56b9 Strip PropTypes checkers in production build (#8066)
* Strip PropTypes in production build

* Revert "Warn if PropType function is called manually (#7132)"

This reverts commit e75e8dcbeb.
2016-10-24 18:43:31 +01:00
Dan Abramov
e1ee94ca17 Add more highlighting to docs (#8076)
* Tweak JSX in Depth

* Add highlighting to Refs and the DOM

* More tweaks
2016-10-24 15:48:46 +01:00
Toru Kobayashi
6cdc610bcc [Fiber] Add types for ReactFiber and ReactChildFiber (#8072)
* Add Types for ReactFiber

* Add Types for ReactChildFiber
2016-10-24 14:20:44 +01:00
Marcio Puga
6fa1ddbdb4 Fix typos (#8067) 2016-10-24 13:50:04 +01:00
Ashish
8333b891e4 Docs : Fix createClass reference (#8073)
Currently react.createClass is wrongly referenced to #react.createclass. Changed it to #createclass!
2016-10-24 13:34:17 +01:00
Sebastian Markbåge
69d725f764 Merge pull request #8055 from sebmarkbage/fiberclassname
Accept className in ReactDOMFiber
2016-10-23 17:04:03 -04:00
Dan Abramov
156639241e Remove references to createClass in createElement docs (#8064) 2016-10-23 15:48:58 +01:00
Dan Abramov
46eca10046 Link to lifecycle methods from Context doc (#8062) 2016-10-23 14:35:23 +01:00
Andrew Poliakov
4e98dba6d3 Update tutorial.md, Taking Turns (#8058) 2016-10-23 13:49:55 +01:00
Alireza Mostafizi
e527b3a464 Update handling-events.md (#8057) 2016-10-23 13:44:29 +01:00
William Hoffmann
29f5da8de4 Fix typo (#8056) 2016-10-23 13:44:08 +01:00
Giuseppe
74026fd9ea Docs replace reference to 'getInitialState' with 'state' instance property in "Thinking in React" (#8059) 2016-10-23 13:41:37 +01:00
Sebastian Markbage
51f1205fb4 Accept className in ReactDOMFiber
This isn't a complete solution to all attributes. It's just that
we run a lot of unrelated unit tests by testing className so
we need it for the tests.
2016-10-22 17:57:33 -07:00
Jason Grlicky
952bdca020 Fix for typos (#8046) 2016-10-22 16:50:24 -07:00
Jun Kim
284a96b9a6 Fix illogical code in tutorial.md (#8048)
The tutorial wants to throw a 'warning' and explains about 'key' of React's list, but it throws nothing since there is sensible key.
"key={move}" should be removed, and added after explaining about key.
2016-10-22 16:49:07 -07:00
Diego Muracciole
461a74115c Injected Host Component classes are not being considered by the reconciler (#8050)
* Consider Host Component classes when creating a new internal instance

* Remove unused tagToComponentClass & injectComponentClasses from ReactHostComponent
2016-10-22 17:28:37 -05:00
Phil Quinn
cf37402338 correct order of params in documentation (#7989) 2016-10-22 21:59:54 +01:00
Brad Vogel
01753cde85 "take part in" is the correct saying (#8013) 2016-10-22 21:57:57 +01:00
Sebastian Markbåge
57f07777ef Fix relative link in Hello World (#8041)
* Fix relative link in Hello World

This links https://facebook.github.io/docs/installation.html which redirects to https://code.facebook.com/

* Update hello-world.md

* Fix link
2016-10-22 21:56:53 +01:00
Oskari Mantere
38c22252f4 Replace vars with let and const (#8051) 2016-10-22 21:55:29 +01:00
Avinash Kondeti
6810627a91 Fix: updated with new docs links (#8049) 2016-10-22 21:53:52 +01:00
Jun Kim
37f94bd3bb Fix typo in tutorial.md (#8047)
changges -> changes
2016-10-22 21:52:29 +01:00
Taeho Kim
a5ff2f1e9c Fix typo in new tutorial code (#8045) 2016-10-22 21:46:51 +01:00
Nathan Hardy
f7cb6cbe15 Fix erroneous '}' in JSX examples (#8043) 2016-10-22 21:45:29 +01:00
Cody Reichert
4d3c5ea23c Fix anchor link for displayName (#8040) 2016-10-22 21:44:51 +01:00
Ragnar Þór Valgeirsson
7340fa9d93 Convert the Number component to ListItem (#8039)
* Convert the Number component to ListItem

* Add updated example CodePen

Also fixes typos.
2016-10-22 21:44:28 +01:00
BEAUDRU Manuel
54dfe0b43c Wrong library name reference in tutorial.MD (#8038)
* Update tutorial.md

Seems like you are talking about immutable.js and not immutability.js which doesn't exist :)

* Capitalize Immutable.js
2016-10-22 21:43:15 +01:00
Ben Alpert
fa82e3e9d6 Update website on Travis when only new files are added (#8037)
This build didn't commit the new files because no existing files were changed:

https://travis-ci.org/facebook/react/jobs/169622664

This should work better.
2016-10-22 21:41:29 +01:00
Christopher Chedeau
4812f26915 Update components-and-props.md
fb indent style
2016-10-21 18:30:25 -07:00
Christopher Chedeau
eb118b7037 Update react-without-jsx.md
Facebook codestyle
2016-10-21 14:30:35 -07:00
Dan Abramov
d1a61ee7f4 Fix redirects 2016-10-21 22:02:30 +01:00
Dan Abramov
1f818f2740 Minor doc tweaks 2016-10-21 21:47:43 +01:00
Kevin Lacker
455d2d1b48 New Documentation 2016-10-21 20:59:08 +01:00
Sebastian Markbåge
8cac523bea Merge pull request #8029 from sebmarkbage/fiberreturnfromtoprender
Quick fix to the return top level problem
2016-10-21 14:59:01 -04:00
Sebastian Markbage
6e7c89ed8a Quick fix to the return top level problem
This doesn't deal with the fact that work is usually deferred
so this will return null for first render (except in sync tests).
It also doesn't deal with top levels being fragments etc.
It doesn't deal with the host instance type being a wrapper
around the public instance. This needs to be unified with refs
and findDOMNode better.

However, this does expose that we reactComponentExpect and
ReactTestUtils doesn't work very well with Fiber.
2016-10-21 11:58:40 -07:00
Sebastian Markbåge
9b1b40ca93 Merge pull request #8015 from sebmarkbage/fiberclassinit
[Fiber] Add more life-cycles
2016-10-21 14:57:51 -04:00
Sebastian Markbage
37ca3874af Add unit tests for aborted life-cycles
This tests the life-cycles when work gets aborted.
2016-10-21 11:57:24 -07:00
Sebastian Markbage
c862ba719e Fallback to current props if memoizedProps is null
If work has progressed on a state update that gets resumed
because of another state up, then we won't have an new
pendingProps, and we also won't have any memoizedProps because
it got aborted before completing. In that case, we can just
fallback to the current props.

I think that they can't have diverged because the only way they
diverge is if there is new props.

This lets us bail out on state only updates in more cases which
the unit tests reflect.
2016-10-21 11:57:24 -07:00
Sebastian Markbage
b72c27ce5d Don't schedule NoWork as the next work
We currently only filter out "NoWork" in the beginning of this
function. If the NoWork root is after the one with work it will
show up in the second loop. There's probably a more efficient
way of doing this but this works for now.

This showed up in this PR because a new unit test gets unblocked
which ends up with this case.
2016-10-21 11:57:24 -07:00
Sebastian Markbage
a87ec42f2a Add more life-cycles to Fiber
This refactors the initialization process so that we can share
it with the "module pattern" initialization.

There are a few new interesting scenarios unlocked by this.
E.g. constructor -> componentWillMount -> shouldComponentUpdate
-> componentDidMount when a render is aborted and resumed.
If shouldComponentUpdate returns true then we create a new
instance instead of trying componentWillMount again or
componentWillReceiveProps without being mounted.

Another strange thing is that the "previous props and state"
during componentWillReceiveProps, shouldComponentUpdate and
componentWillUpdate are all the previous render attempt. However,
componentDidMount's previous is the props/state at the previous
commit. That is because the first three can execute multiple
times before a didMount.
2016-10-21 11:57:24 -07:00
Toru Kobayashi
a6728f961c [Fiber] Add unit tests for ReactDOMFiber (#8016) 2016-10-21 00:44:23 -04:00
Sebastian Markbåge
4132cc4d3e Fix lint with yarn (#7997)
I couldn't figure out how to do this yarn alone so I ended up
just manually hacking the yarn to force a downgrade of babylon
to 6.8.0 since otherwise it gets resolved to 6.12.0 which is
broken.
2016-10-20 17:49:40 -04:00
Ben Alpert
a8beab3341 Fix captured/bubbled in ReactNativeTreeTraversal (#8019)
Follow-up to #7741. Added a test for RN event bubbling that fails before the fix.
2016-10-20 11:17:06 -07:00
Sebastian Markbåge
a5195102d4 [Fiber] Some setState related issues (#8010)
* Use the memoized props/state from the workInProgress

We don't want to use the "current" props/state because if we have
started work, then pause and continue then we'll have the newer
props/state on it already. If it is not a resume, it should be the
same as current.

* Deprioritize setState within a deprioritized tree

Currently we flag the path to a setState as a higher priority
than "offscreen". When we reconcile down this tree we bail out
if it is a hidden node. However, in the case that node is already
completed we don't hit that bail out path. We end up doing the
work immediately which ends up committing that part of the tree
at a higher priority.

This ensures that we don't let a deprioritized subtree get
reconciled at a higher priority.

* Bump idx in unit test

This proves that this number is actually deprioritized.
2016-10-19 13:32:37 -04:00
Toru Kobayashi
3d7869ab0e [Fiber] Add a unit test for ReactTopLevelText (#8001) 2016-10-18 14:39:49 -04:00
Dan Abramov
9bfa45bd2d Update Flow and fix issues (#8006) 2016-10-18 15:26:40 +01:00
Dan Abramov
75367673cf Fix Haste header (#8005) 2016-10-18 14:06:08 +01:00
Andrew Clark
663d4a539b Merge pull request #8000 from piperchester/patch-1
Fix grammatical error
2016-10-17 21:26:22 -07:00
Piper Chester
31f5edc492 Fix grammatical error 2016-10-17 21:13:33 -07:00
Sebastian Markbage
fae3e5308b Use memoizedState in componentDidUpdate
We forgot to clone this value so it didn't work before.
This is covered by existing tests in ReactDOMProduction.
2016-10-17 16:21:06 -04:00
Sebastian Markbage
685d65bfb6 No duck typing on the root
The root is always a host container.
2016-10-17 16:21:06 -04:00
Sebastian Markbage
bc5dfd5358 Break out some Class Component logic into separate module
Refactors the class logic a bit.

I moved scheduleUpdate out into the scheduler since that's where
the scheduling normally happens. I also moved it so that we can
rely on hoisting to resolve the cycle statically.

I moved the updater to a new class component file. I suspect we
will need a bit of space in here since the class initialization
code is quite complex.

The class component dependency is currently fixed in BeginWork
so we can't move complete or commit phase stuff to it. If we need
to, we have to initialize it in the scheduler and pass it to the
other phases.
2016-10-17 16:21:06 -04:00
Sebastian Markbage
9c25538e13 Fix resuming bug
If we abort work but have some completed, we can bail out if
the shouldComponentUpdate returns true. However, then we have
a tree that is low priority. When we bailout we currently use
the "current" tree in this case. I don't think this is right.
I'm not sure why I did that.

Similarly, when we complete we use the "current" props if we
didn't have pending props to do. However, we should be using
the memoized props of that tree if it is a pending work tree.

Added a unit test that covers these two cases.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
e59e5b280f Invoke all null ref calls before any new ref calls
This reorganizes the two commit passes so that all host
environment mutations happens before any life-cycles. That means
that the tree is guaranteed to be in a consistent state at that
point so that you can read layout etc.

This also lets us to detach all refs in the same pass so that
when they get invoked with new instances, that happens after it
has been reset.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
3717b71c64 Resolve ref callbacks
During the deletion phase we call detachRefs on any deleted refs.

During the insertion/update phase we call attachRef on class
and host components.

Unfortunately, when a ref switches, we are supposed to call all
the unmounts before doing any mounts. This means that we have to
expact the deletion phase to also include updates in case they
need to detach their ref.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
c44c7eaa1b Fire componentDidMount/componentDidUpdate life-cycles
These happen in the commit phase *before* the setState callback.

Unfortunately, we've lost the previous state at this point since
we've already mutated the instance. This needs to be fixed
somehow.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
90993c5324 Call componentWillUnmount during deletion phase
While we're deleting nodes, we need to call the unmount
life-cycle. However, there is a special case that we don't want
to keep deleting every host node along the way since deleting the
top node is enough.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
a98aba4d73 Always override priority level when visiting children
It is not possible for a child to have a higher priority level
than we're reconciling at, unless we intentionally want to
down-prioritize it.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
43645a6586 Reset effect list when we recompute children
We only use the effect list when we reuse our progressed children.
Otherwise it needs to reset to null.

In all other branches, other than bailoutOnLowPriority, we
revisit the children which recreates this list.

We should also not add fibers to their own effect list since it
becomes difficult to perform work on self without touching the
children too. Nothing else does that neither.

Since that means that the root isn't added to an effect list we
need to special case the root.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
1d437dc9ad Remove beginWork shortcut
This shortcut had a bug associated with it. If beginWork on this
child returns null, then we don't call completeWork on that fiber.

Since removing this short cut adds another time check, we have to
add a single unit of time in tests to account for the top level
call now taking one more unit.

This was also the only recursive call in all of fiber so it's nice
to get rid of it to guarantee that a flat stack is possible.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
5de2821372 Move child updates to use the reconciled effects
Instead of passing the full list of children every time to
update the host environment, we'll only do inserts/deletes.

We loop over all the placement effects first and then later
we do the rest.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
442ab71fc7 Append deletions to the effect list
First clear any progressed deletions for any case where we start
over with the "current" set of children.

Once we've performed a new reconciliation we need to add the
deletions to the side-effect list (which we know is empty because
we just emptied it).

For other effects, instead of just adding a fiber to an effect
list we need to mark it with an update. Then after completion
we add it to the the effect list if it had any effects at all.

This means that we lose the opportunity to control if a fiber
gets added before or after its children but that was already
flawed since we want certain side-effects to happen before others
on a global level.

Instead, we'll do multiple passes through the effect list.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
901691eb92 Tag the fiber with the kind of side-effect that was applied to it
This allow us to track what kind of side-effect this was even
though we only have a single linked list for all side-effects.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
e9e645a9b1 Deletion tracking
When we reconcile children we need to track the deletions that
happen so that we can perf side-effects later as a result. The
data structure is a linked list where the next pointer uses the
nextEffect pointer.

However, we need to store this side-effect list for reuse if we
end up reusing the progressedChild set. That's why I add a
separate first/last pointer into this list so that we can keep it
for later.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
0dc840a2b9 Fast path for create child
When we don't have any previous fibers we can short cut this path
knowing that we will never have any previous child to compare to.

This also ensures that we don't create an empty Map in this case.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
3979bb9e24 Don't track side-effects unless needed
We don't need to track side-effects for a parent that has never
been mounted before. It will simply inject all its children when
it completes.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
cccc4ae2c6 Add index field to each fiber
We use this to track the index slot that this Fiber had at
reconciliation time. We will use this for two purposes:

1) We use it to quickly determine if a move is needed.

2) We also use it to model a sparce linked list, since we can have
null/false/undefined in our child set and these take up a slot for
the implicit key.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
edaf08fcfe Fiber child reconciliation
This implements the first step to proper child reconciliation.
It doesn't yet track side-effects like insert/move/delete but has
the main reconciliation algorithm in place.

The goal of this algorithm is to branch early and avoid rechecking those conditions. That leads to some duplications of code.

There are three major branches:

- Reconciling a single child per type.
- Reconciling all children that are in the same slot as before from the beginning.
- Adding remaining children to a temporary Map and reconciling them by scanning the map.

Even when we use the Map strategy we have to scan the linked list to line up "same slot" positions because React, unlike Inferno, can have implicit keys interleaved with explicit keys.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
13f01be64f Enable text updates in ReactNoop
We'll enable updating of text nodes. To be able to test that we
need the text nodes to be mutable. They're currently just strings
in the Noop renderer so this makes them an object instead.

That exposed a bug in ReactFiberCommitWork for text nodes.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
362e56a1c1 Add comment about bug in yields
This needs to be fixed somehow. The reconciler could know if you
are mounting this continuation into the same spot as before and
then clone it. However, if the continuation moves, this info is
lost. We'd try to unmount it in one place and mount the same fiber
in another place.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
c3310d3e32 Fix MultiChild tests so they work with Fiber
Dropped the unnecessary use of findDOMNode.
Dropped unnecessary arrow functions.
Math.random() -> id counter, since this used to be
non-deterministic which is not ideal for unit tests.

getOriginalKeys() used to rely on implementation details
to scan that the internal data structure maintained its
structure, however, since that is unobservable we don't
need to test the internal data structure itself. We're
already testing refs and dom structure which is the only
observable effect of the reorder.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
8d3a58de62 Silence Fiber warning when the feature flag is on
When the feature flag is on, we should silence the warning since
we're explicitly testing it. This is needed when running unit
tests with the flag on.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
cafa7b284a Add Text node types
These nodes rendering into Text nodes in the DOM.

There is a special case when a string is a direct child of a host
node. In that case, we won't reconcile it as a child fiber. In
terms of fibers, it is terminal. However, the host config special
cases it.

It is kind of unfortunate that we have to special case this kind
of child in the HostConfig. It would be nice to unify this with
other types of child instances. Text nodes have some weird special
cases, but those special cases tend to *vary* by environment.
They're not the same special cases so not sure how valuable it is
to have a special protocol and special types for it.
2016-10-17 16:17:30 -04:00
Sebastian Markbage
e0a305350b Add Fragment fiber type
We currently treat nested arrays as a unique namespace from top
level children. So that these won't share key namespaces. This
adds a new fiber type that will represent the position of a
fragment.

This is only used for nested arrays. Even if you return an array
from a composite component, we don't need this since they share
namespace with a single top level component.

This still doesn't implement the complete reconciliation
algorthim in child fiber. That's coming later.
2016-10-17 16:17:30 -04:00
Dan Abramov
7b7eddcc72 Add @preventMunge directives to classes (#7994) 2016-10-17 21:07:17 +01:00
Dan Abramov
c2d5833e98 Ignore root docs folder in Flow config
Otherwise Flow finds obscure files in docs/vendor.
Seems like you'd only get them if you have a local checkout of docs Ruby dependencies.
This explains why Travis didn't fail.
2016-10-17 16:12:07 +01:00
Dan Abramov
f33f03e357 Support passthrough updates for error boundaries (#7949)
* Initial pass at the easy case of updates (updates that start at the root).

* Don't expect an extra componentWillUnmount call

It was fixed in #6613.

* Remove duplicate expectations from the test

* Fix style issues

* Make naming consistent throughout the tests

* receiveComponent() does not accept safely argument

* Assert that lifecycle and refs fire for error message

* Add more tests for mounting

* Do not call componentWillMount twice on error boundary

* Document more of existing behavior in tests

* Do not call componentWillUnmount() when aborting mounting

Previously, we would call componentWillUnmount() safely on the tree whenever we abort mounting it. However this is likely risky because the tree was never mounted in the first place.

People shouldn't hold resources in componentWillMount() so it's safe to say that we can skip componentWillUnmount() if componentDidMount() was never called.

Here, we introduce a new flag. If we abort during mounting, we will not call componentWillUnmount(). However if we abort during an update, it is safe to call componentWillUnmount() because the previous tree has been mounted by now.

* Consistently display error messages in tests

* Add more logging to tests and remove redundant one

* Refactor tests

* Split complicated tests into smaller ones

* Assert clean unmounting

* Add assertions about update hooks

* Add more tests to document existing behavior and remove irrelevant details

* Verify we can recover from error state

* Fix lint

* Error in boundary’s componentWillMount should propagate up

This test is currently failing.

* Move calling componentWillMount() into mountComponent()

This removes the unnecessary non-recursive skipLifecycle check.
It fixes the previously failing test that verifies that if a boundary throws in its own componentWillMount(), the error will propagate.

* Remove extra whitespace
2016-10-15 18:13:56 +01:00
Héctor Ramos
1b7066ed6f Separate Ruby and Python instructions 2016-10-14 15:11:27 -07:00
Héctor Ramos
175fc4ae9b Add Windows-specific instructions 2016-10-14 15:10:16 -07:00
Sebastian Markbåge
fda7a673c1 Fix whitespace in headers (#7980)
The script that strips providesModule is very sensitive.

Test plan:

Searched for providesModule in build. No more.

reactComponentExpect used to have problems too but doesn't seem
to anymore. Don't know why.
2016-10-14 17:46:34 -04:00
Dan Abramov
14ec2c0c46 Add 15.4.0 RC3 to Downloads 2016-10-14 20:21:05 +01:00
Héctor Ramos
b59a8d94cc Add link to gulpjs 2016-10-13 15:48:16 -07:00
Dustan Kasten
91aa538221 build: strip @providesModule from output modules (#7968)
FB tools such as Flow and Jest are having issues finding duplicate modules
now that React internal modules are duplicated across packages.
2016-10-13 16:19:11 -04:00
CT Wu
836a054719 Fix a typo in the doc (#7969) 2016-10-13 16:58:57 +01:00
Nathan Hunzaker
0d20dcf910 Fix uncontrolled input decimal point "chopping" on number inputs, and validation warnings on email inputs (#7750)
* Only assign defaultValue if it has changed.

* Improve comment about reason for defaultValue conditional assignment
2016-10-13 08:20:14 -05:00
Giorgio Polvara
823dd3d65f Fix typo (#7953) 2016-10-12 21:29:37 -05:00
Sebastian Markbåge
f38e0cb6ac Check in yarn.lock file (#7957)
Because we have to keep up with the latest hotness
https://yarnpkg.com/
2016-10-12 16:07:25 -04:00
Ujjwal Ojha
575727100a Fix typo (#7909) 2016-10-12 09:49:56 -05:00
Kevin Huang
b728fa0c17 Add warning for shady-dom use with rendered react components in DEV (#7911)
* Add warning for shady-dom use with rendered react components in DEV

* Make shady dom warning emit only once regardless of number of components

* Use didWarnShadyDom as warning argument & add missing shadyRoot check to ReactDOMComponent

* Add check for shady dom test to run only when createElement flag is true

* Pass false to warning in shadyDom warning check

* Add consistent DOM phrasing for shady DOM warnings

* Reference component name in shady DOM warning if it exists

* Add check for if owner exists in shady dom warning

* Add test for named component using createClass for shady DOM warning

* Clean up named component test for shady DOM warning

* Fix trailing comma linting issue on named shady DOM warning test
2016-10-12 10:13:50 +01:00
Kevin Huang
3b708728b0 Declare type var higher up in mountComponent() in ReactDOMComponent for reuse (#7944) 2016-10-12 10:12:15 +01:00
Islam Sharabash
b77a96e496 Inject the previous batching strategy when rendering to string (#7930)
Before this change calling renderToStringImpl would inject
ReactDefaultBatchingStrategy after completion, even if a custom batching
strategy was injected before. This makes renderToStringImpl keep a reference to
the batching strategy before it runs and reinject it afterwards.
2016-10-11 12:57:22 -05:00
Colin Wren
7aa621daee Fix typo in more-about-refs.md (#7933) 2016-10-11 11:56:34 +01:00
Alex Babkov
deb4a5abee Typo fixes in codebase-overview.md (#7938) 2016-10-11 11:55:06 +01:00
Aesop Wolf
f00fbbd1ce Update codebase-overview.md (#7934)
Fix typo
2016-10-11 01:14:05 +01:00
Dan Abramov
d0cc73a957 Add Implementation Notes and amend Codebase Overview (#7830)
* Add more to Codebase Overview

* WIP

* Start a reconciler overview

* Add a few more sections

* todo

* WIP

* Finish it

* Whitespace

* Minor tweaks

* Minor tweaks
2016-10-10 17:29:48 +01:00
Toru Kobayashi
83381c1673 use npm-run-script in PULL_REQUEST_TEMPLATE (#7913) 2016-10-07 14:23:37 +01:00
Paul O’Shannessy
077d660a27 Fix npm package builds (#7888)
* Ensure lib/ is packaged for react-test-renderer

* Run npm pack from right working directory

We were running this on the original packages not the compiled ones, resulting in missing files
2016-10-05 15:32:38 -07:00
Sophia
2a2dd7689f removing parent/child references in props section of tutorial (#7887) 2016-10-05 22:29:55 +01:00
Tyler Buchea
e5b197cd94 Update README.md to use jsx for syntax highlighting (#7884)
Github now supports jsx syntax highlighting in their markdown documents. So I have updated the main README.md to use jsx instead of js.
2016-10-05 14:13:11 -05:00
Michael O'Brien
48ea2d4743 Update comment to refer to correct method name (#7873) 2016-10-04 22:53:26 +01:00
Dan Abramov
7b10b2b88d Update the homepage with ES6 (#7868)
* Update the homepage with ES6

* Avoid array spread and stale state
2016-10-04 19:33:09 +01:00
Kateryna
c9ec4bc445 Fix initial state example for Recat.createClass (#7867)
In the example there was a typo with setting initial state using `getInitialState` method
2016-10-04 18:43:49 +01:00
Toru Kobayashi
30067fa8ca Fix confusing variable names (#7863) 2016-10-04 12:53:29 +01:00
ankitml
eddcee9884 Use ES6 in Language Tooling doc 2016-10-04 12:51:42 +01:00
Toru Kobayashi
85b0377bfd Refactor ShallowRenderer (#7739)
* Separate ReactShallowRenderer from TestUtils

* Use ES classes to ReactShallowRenderer
2016-10-04 12:28:06 +01:00
KeicaM
f96237cdb8 Update 04-multiple-components.md (#7861)
added missing map bracket
2016-10-04 12:19:44 +01:00
Steve Mao
957f663513 simplify npm link script a little bit (#7862)
We don't need to remove the folders before linking the modules
2016-10-04 12:12:12 +01:00
Ben Alpert
be63afcb64 Make sure .createElement({}) warns (#7857)
This is common when forgetting to export anything from a file.
2016-10-03 17:24:57 -07:00
Marcelo Alves
23cd77b683 Fix minor typo in closing H1 tag (#7855) 2016-10-03 19:07:56 -05:00
Paul O’Shannessy
92c84a6f37 Fix UMD bundles, making safe to use as required modules (#7840) 2016-10-03 15:49:10 -07:00
Ben Alpert
f88c1d38be Update remarkable to 1.7.1 (#7851)
Fixes a subtle XSS hole.
2016-10-03 14:22:06 -07:00
ankitml
a6445a18f9 Keyed Fragment of AddOns ported to ES6 2016-10-03 21:45:27 +01:00
Alex Zherdev
1b02c731ce Add-Ons: Animation updated with ES6 examples 2016-10-03 21:30:22 +01:00
Rafael Angeline
9174c29acc Reusable Components ES6 Update 2016-10-03 21:02:32 +01:00
gillchristian
f5f1769583 Docs to ES6: Displaying data example. 2016-10-03 19:21:44 +01:00
hkal
f6fdfd1bf0 Add unknown property warning for use of autofocus (#7694) 2016-10-03 09:51:44 -05:00
Mark Penner
dae3043897 Fixes #7824 (#7832) 2016-09-30 19:03:49 -07:00
Eric Douglas
e32196222b Update babel link (#7837) 2016-09-30 13:39:23 -07:00
Ivan Zotov
16ac141f44 Fix mistakes in the codebase overview (#7834) 2016-09-29 22:38:14 +01:00
Dan Abramov
4f345e021a Add Codebase Overview (#7828)
* Add Codebase Overview

* Update codebase-overview.md

* Update codebase-overview.md
2016-09-29 11:33:57 +01:00
Gil Chen-Zion
a2bb55e3f4 Note that getInitialState is not used in ES6 classes in docs (#7748) 2016-09-28 19:07:29 -07:00
Kyle Mathews
87724bd875 typos fix (#7822) 2016-09-28 17:27:25 +01:00
Christopher Chedeau
cc00280aa6 Our first 50,000 stars blogpost 2016-09-28 10:21:29 +01:00
Christoph Pojer
0990c93806 Reduce confusion in testing documentation. (#7818)
* Reduce confusion in testing documentation.

Just wanted to add some clarity to this page and link to the react tutorial on Jest's website to give people more information. Also changed enzyme's definition from library to utility to help reduce the confusion. Hope this makes sense to everybody :)

See https://twitter.com/damusnet/status/780752042675597312

cc @lelandrichardson

* Update 10.4-test-utils.md
2016-09-27 19:08:02 -07:00
J. Renée Beach
59ff7749ed React dom invalid aria hook (#7744)
* Add a hook that throws a runtime warning for invalid WAI ARIA attributes and values.

* Resolved linting errors.

* Added a test case for many props.

* Added a test case for ARIA attribute proper casing.

* Added a warning for uppercased attributes to ReactDOMInvalidARIAHook
2016-09-27 20:53:14 -05:00
Christopher Chedeau
72ed5df5a4 Fix total count in flow tracker (#7813)
When you put the output of a bash command in a variable, it replaces the `\n` with a space. Using `ls` instead of `echo` fixes it

Test Plan:
Run

```
ALL_FILES=`find src -name '*.js' | grep -v umd/ | grep -v __tests__ | grep -v __mocks__`
COUNT_ALL_FILES=`ls $ALL_FILES | wc -l`
echo $COUNT_ALL_FILES
```

Make sure that it outputs 221
2016-09-27 16:20:50 -07:00
Dan Abramov
1c0b5dca5a Tweak the contributing wording in README 2016-09-27 23:32:57 +01:00
Dan Abramov
c82bcefa93 Move How to Contribute to documentation and update it (#7817)
* Move How to Contribute to documentation and update it

* Consistent formatting
2016-09-27 23:20:49 +01:00
Christopher Chedeau
84f8df1f89 Track fiber tests (#7812)
Use the newly added tracking system to track the number of fiber tests that are passing/failing.

I first tried to modify the grunt lint rule for it and send the output in stdout but unfortunately grunt displays the rule + done messages there. I had like 30 lines of js already and I figured I could just write 3 lines of bash and it would work the same. Let me know if you want me to use another approach for it.

Test Plan:
Run the commands that have been introduced in this commit but the facts-tracker one
Run `echo $FIBER_TESTS` and make sure it prints `666/1434`
2016-09-26 14:54:27 -07:00
Christopher Chedeau
fb1e7075ed Update travis.yml to use $GITHUB_USER_NAME and $GITHUB_USER_EMAIL (#7811)
See https://github.com/facebook/react/pull/7747#issuecomment-249677880 for discussions
2016-09-26 14:47:16 -07:00
imjanghyuk
6032491555 Update 07-forms.ko-KR.md (#7809)
fix spelling
2016-09-26 14:02:33 -07:00
Christopher Chedeau
dbd9c4b205 Introduce facts-tracker (#7747)
* Introduce facts-tracker

We want to be able to track various things like number of files that are flowified, number of tests passing with Fiber...

This introduces a tool that lets you do that. The API is very simple, you execute the script with a list of tuples [key value] and it's going to create a `facts` branch and put a txt file for each fact and values over time.

```
node scripts/facts-tracker/index.js \
  "flow-files" "$COUNT_WITH_FLOW/$COUNT_ALL_FILES"
```

Test Plan:
This is tricky to test because Travis only exposes the private variables (github token) when it processes a committed file and not on branches. The reason is that otherwise anyone could send a pull requests that does `echo $GITHUB_TOKEN` and steal your token.

Given this constraint, I did all the work using two of my repos:
- https://github.com/vjeux/facts-tracker
- https://github.com/vjeux/facts-tracker-test

and am sending this pull request that should work as is /fingers crossed/, but we won't be able to test it out until it is committed.

Note that once this lands, I'm going to kill those two repos.

* Update with all the suggested changes

* Branch on a flow type in travis.yml

* Use $GITHUB_TOKEN

* properly escape it
2016-09-26 12:58:51 -07:00
jinmmd
d9957ac075 Change [入门教程] from "tutorial.html" to "tutorial-zh-CN.html" (#7789) 2016-09-26 10:39:34 -07:00
jinmmd
5331dfd1a5 Change [API参考] from "top-level-api.html" to "top-level-api-zh-CN.html" (#7790) 2016-09-26 10:39:03 -07:00
Andy Edwards
b7c70b67af Clarify manual PropType calls warning (#7777) 2016-09-22 14:59:01 +01:00
Dan Abramov
13692d59ad Update broken JSFiddle in Why React blog post (#7783)
Fixes #7782
2016-09-21 13:42:49 +01:00
Paul O’Shannessy
00ac1797d7 Adjust code to handle more availability of function.name (#7670) 2016-09-20 14:23:46 -07:00
Paul O’Shannessy
2058d47e7b [docs] Update React Rally 2016 videos link (#7771) 2016-09-19 14:26:32 -07:00
Paul O’Shannessy
7b0d5d0e74 Update website for 15.3.2
(cherry picked from commit b52ea6bd8f)
2016-09-19 11:14:30 -07:00
Paul O’Shannessy
af28c5cd73 Update Changelog & Readme for 15.3.2
(cherry picked from commit 8c7bbbfc21)

Fix formatting of 15.3.2 changelog

(cherry picked from commit c2388bf09b)
2016-09-19 11:14:16 -07:00
Ivan Zotov
2ec2d8f7f7 Fix links and ids for tips in docs (#7766) 2016-09-19 17:50:26 +03:00
Ivan Zotov
4dd554c9b7 Russian translation for style props value px of tips (#7742)
* Russian translation for style props value px of tips

* Update 06-style-props-value-px.ru-RU.md
2016-09-19 13:57:42 +03:00
Ivan Zotov
8176f4970c Russian translation for max. numbers of jsx root nodes (#7738)
* Russian translation for max. numbers of jsx root nodes

* Update 05-maximum-number-of-jsx-root-nodes.ru-RU.md
2016-09-19 13:45:09 +03:00
Ivan Zotov
7d5c70d98c Russian translation for self-closing-tag of tips (#7729)
* Russian translation for self-closing-tag of tips

* Fix next link for inline styles tip

* Update 04-self-closing-tag.ru-RU.md
2016-09-19 13:39:46 +03:00
Brandon Dail
7dfa01f9fa Revert ReactMultiChild to plain object (#7757)
Since ReactART and RN extend ReactMultiChild, changing it to a class is
a breaking change. See
https://github.com/facebook/react/pull/7736/files#r79073698
2016-09-17 10:40:23 -05:00
Uladzimir Havenchyk
65870dcaee Simplify event phases. Use explicitly 'captured' and 'bubbled'. (#7741) 2016-09-15 23:24:56 -07:00
Brandon Dail
c78464f8ea Resolve flow errors with ReactTestRenderer (#7736)
* Resolve flow errors with ReactTestRenderer

* Add whitespace between types and methods

* extend ReactMultiChild instead of using Object.assign

* Use ReactElement type from ReactElementType

* Make ReactMultiChild a class
2016-09-15 11:44:56 -05:00
Paul O’Shannessy
864bc7b939 Update ignores in flowconfig (#7722)
This ensures we ignore relative to our project root and won't be tripped up by issues where checkouts in other places result in Flow passing when it shouldn't (eg on Travis CI where the checkout path is `/home/travis/build/facebook/react`)
2016-09-14 14:57:31 -07:00
Ivan Zotov
79367b09f7 Russian translation if-else in JSX of tips (#7726) 2016-09-14 15:05:21 +03:00
Ivan Zotov
fcc37ccaa2 Russian translation for inline styles of tips (#7717) 2016-09-14 13:26:36 +03:00
Ivan Zotov
7d76bdad69 Fix Russian translation of introduction to be more technical (#7727) 2016-09-14 13:23:57 +03:00
Brandon Dail
5a3abab660 Clean up ReactTestRenderer (#7716)
* create ReactTestTextComponent fil

* create ReactTestEmptyComponent

* Use class for ReactTestRenderer

* Add flow to ReactTestRenderer
2016-09-13 21:20:41 -05:00
Stephen John Sorensen
b2297ae6c3 remove plain object warning (#7724) 2016-09-13 19:15:07 -07:00
Ben Alpert
9eba80825f Unify branches in cloneFiber (#7723) 2016-09-13 17:42:15 -07:00
Andrew Clark
6144212a86 [Fiber] Animation priority work (#7466)
* High priority work

Adds the ability to schedule and perform high priority work. In the
noop renderer, this is exposed using a method `performHighPriWork(fn)`
where the function is executed and all updates in that scope are given
high priority.

To do this, the scheduler keeps track of a default priority level.
A new function `performWithPriority(priority, fn)` changes the default
priority before calling the function, then resets it afterwards.

* Rename overloaded priority terms

"High" and "low" priority are overloaded terms. There are priority
levels called HighPriority and LowPriority. Meanwhile, there are
functions called {perform,schedule}HighPriWork, which corresponds
to requestAnimationFrame, and {perform,schedule}LowPriWork, which
corresponds to requestIdleCallback. But in fact, work that has
HighPriority is meant to be scheduled with requestIdleCallback.
This is super confusing.

To address this, {perform,schedule}HighPriWork has been renamed
to {perform,schedule}AnimationWork, and
{perform,schedule}LowPriWork has been renamed to
{perform,schedule}DeferredWork. HighPriority and LowPriority
remain the same.

* Priority levels merge fix
2016-09-13 16:46:32 -07:00
Sebastian Markbåge
3e54b28c20 Merge pull request #7344 from acdlite/fibersetstate
[Fiber] setState
2016-09-13 15:31:14 -07:00
Sebastian Markbage
27d1210c1d Log the updateQueue in dumpTree
This also buffers all rows into a single console.log call.
This is because jest nows adds the line number of each console.log
call which becomes quite noisy for these trees.
2016-09-13 15:26:48 -07:00
Sebastian Markbage
f3a2dc252e Check for truthiness of alternate
This is unfortunate since we agreed on using the `null | Fiber`
convention instead of `?Fiber` but haven't upgraded yet and this
is the pattern I've been using everywhere else so far.
2016-09-13 15:26:48 -07:00
Andrew Clark
0ca1cea26a Don't mutate current tree before work is committed.
We should be able to abort an update without any side-effects to the
current tree. This fixes a few cases where that was broken.

The callback list should only ever be set on the workInProgress.
There's no reason to add it to the current tree because they're not
needed after they are called during the commit phase.

Also found a bug where the memoizedProps were set to null in the
case of an update, because the pendingProps were null. Fixed by
transfering the props from the instance, like we were already doing
with state.

Added a test to ensure that setState can be called inside a
callback.
2016-09-13 15:26:48 -07:00
Andrew Clark
f514662ca0 forceUpdate
Adds a field to the update queue that causes shouldComponentUpdate to
be skipped.
2016-09-13 15:26:48 -07:00
Andrew Clark
d8c24cfa78 replaceState
Adds a field to UpdateQueue that indicates whether an update should
replace the previous state completely.
2016-09-13 15:26:48 -07:00
Andrew Clark
1d49237299 Update callbacks
Callbacks are stored on the same queue as updates. They care called
during the commit phase, after the updates have been flushed.

Because the update queue is cleared during the completion phase (before
commit), a new field has been added to fiber called callbackList. The
queue is transferred from updateQueue to callbackList during completion.
During commit, the list is reset.

Need a test to confirm that callbacks are not lost if an update is
preempted.
2016-09-13 15:26:47 -07:00
Andrew Clark
c6db7f73be Rename stateQueue -> updateQueue
Also cleans up some types.
2016-09-13 15:26:47 -07:00
Andrew Clark
f7dab22ac9 Ensure that setState update function's context is undefined 2016-09-13 15:26:47 -07:00
Andrew Clark
97dac74c40 Use ReactInstanceMap
Move ReactInstanceMap to src/renderers/shared/shared to indicate that
this logic is shared across implementations.
2016-09-13 15:26:47 -07:00
Andrew Clark
d218158d22 Clean up
Use a union type for the head of StateQueue.
2016-09-13 15:26:47 -07:00
Andrew Clark
691e053650 Fix stateQueue typing 2016-09-13 15:26:47 -07:00
Andrew Clark
909caccebd Clean up
Rather than bubble up both trees, bubble up once and assign to the
alternate at each level.

Extract logic for adding to the queue to the StateQueue module.
2016-09-13 15:26:47 -07:00
Andrew Clark
25d199abe0 Updater form of setState
Add support for setState((state, props) => newState).

Rename pendingState to stateQueue.
2016-09-13 15:26:47 -07:00
Andrew Clark
8b200c5e78 Use queue for pendingState
Changes the type of pendingState to be a linked list of partial
state objects.
2016-09-13 15:26:47 -07:00
Andrew Clark
94d2317b4b setState for Fiber
Updates are scheduled by setting a work priority on the fiber and bubbling it to
the root. Because the instance does not know which tree is current at any given
time, the update is scheduled on both fiber alternates.

Need to add more unit tests to cover edge cases.
2016-09-13 15:26:46 -07:00
Sebastian Markbåge
a19fede67c Merge pull request #7636 from sebmarkbage/fiberrefactor
[Fiber] Refactor Pending Work Phase and Progressed Work
2016-09-13 15:24:52 -07:00
Sebastian Markbage
52011d58b0 Restructure clone child fiber a bit to make it clearer 2016-09-13 14:58:00 -07:00
Sebastian Markbage
a7afc064bd Pass current instead of picking it up from alternate
This colocates the reliance on alternate with the scheduler, so
that we have the option to not use this, or more easily break
apart the initial mount phase into an optimized path.
2016-09-13 14:57:59 -07:00
Sebastian Markbage
8b0be68eee Progressed work 2016-09-13 14:57:59 -07:00
Sebastian Markbage
b717db00fb Add shouldComponentUpdate to functional components
I'll probably end up reverting this before the bigger release
since it is not part of the official public API. However,
it is useful to be able to compare the performance between
functional components and classes.
2016-09-13 14:57:59 -07:00
Sebastian Markbage
cc259a29e3 Explain why ReactFiber is a POJO instead of constructor 2016-09-13 14:57:59 -07:00
Sebastian Markbage
49f0c952b5 Drop childInProgress
I will try a slightly different but similar strategy.
2016-09-13 14:57:59 -07:00
Sebastian Markbage
b63cda6e85 Drop Separate findPendingWork Phase
The findPendingWork phase is the same as just walking the tree the
normal way effectively. It only makes things more complex to
think about. We might possibly be able to write a few special
branches to optimize it but for now it doesn't seem necessary.
2016-09-13 14:57:59 -07:00
Sebastian Markbage
9e52130fb7 Move priority reset to the end and search pending work in work tree
The priority level gets reset at the wrong time because I rely
on mutating it at the wrong point. This moves it to the end of
completed work as a second pass over the children to see what
the highest priority is. This is inefficient for large sets but
we can try to find a smarter way to do this later. E.g. passing
it down the stack.

This bug fix revealed another bug that I had flagged before that
we're finding work to do in the "current" tree instead of the
working tree. For trees that were paused, e.g. childInProgress
trees, this won't work since don't have a current tree to search.

Therefore I fixed findNextUnitOfWorkAtPriority to use
workInProgress instead of current.
2016-09-13 14:57:59 -07:00
tokikuch
a64ca9b697 BeforeInput is fired with a wrong text at a wrong time on IE (#7107) 2016-09-13 11:15:18 -07:00
Brandon Dail
f3569a2c31 Implement createNodeMock for ReactTestRenderer (#7649)
* Implement optional mockConfig and getMockRef

* default mockConfig, walk render tree

* Pass mockConfig to transaction

* Attach mockConfig to transaction

* type mockConfig in ReactRef

* Expect object in native component ref test

* Fix argument name for attachRefs

* Add mockConfig support to legacy refs

* Pass transaction to getPublicInstance

* Implement getMockConfig on ReactTestReconcileTransaction

* Merge defaultMockConfig and mockConfig options

* Rename mockConfig to testOptions

* Break getPublicInstnce into three lines

* createMockRef -> createNodeMock
2016-09-13 09:09:20 -05:00
Keyan Zhang
38c4ade6cc changed ReactChildrenMutationWarningHook to Object.freeze (#7455)
- only freeze children array created by createElement
2016-09-13 16:25:31 +03:00
Amanvir Sangha
616e468987 Update OWASP link in docs for dangerous innerHTML (#7710) 2016-09-13 05:29:09 -07:00
Ivan Zotov
4dd44e77f8 Add Russian translation for introduction of tips (#7690) 2016-09-13 13:36:16 +03:00
Michał Pierzchała
b87bcb96ac Proper font-family for docs input fields (#7706) (#7708) 2016-09-12 16:29:46 -07:00
Dan Abramov
3fcba2044a Fix benchmarks (#7704) 2016-09-12 21:58:00 +03:00
Flarnie Marchan
54cbe29262 Fix Flow errors in Event Plugins (#7698)
Due to a typo in PR#7667 where I put 'DispatchConfig' when the type was
'EventTypes', there were some flow errors being thrown.

Then PR#7642 fixed a bug in SimpleEventPlugin and added some untyped
methods, which threw more flow errors.

Last, while fixing this, I fixed two eslint errors in the
SimpleEventPlugin test.
2016-09-10 16:44:08 -07:00
Dmitrii Abramov
e3e03b30b2 jest@15.1.1 (#7693) 2016-09-10 15:09:14 -07:00
Ray Dai
2fc7125d49 Update 14-communicate-between-components.ko-KR.md (#7686)
Apply the same change made in #7680.
2016-09-09 11:22:56 -07:00
Paul O’Shannessy
8debf524df Revert "Add unknown property warning for use of autofocus" (#7684) 2016-09-08 13:43:57 -07:00
Nathan Hunzaker
73c50e7d00 Move mouse event disabling on interactive elements to SimpleEventPlugin. Related perf tweak to click handlers. (#7642)
* Cull disabled mouse events at plugin level. Remove component level filters

* DisabledInputUtils tests are now for SimpleEventPlugin

* Add click bubbling test

* Add isInteractive function. Use in iOS click exception rules

* Invert interactive check in local click listener. Add test coverage

* Reduce number of mouse events disabable. Formatting in isIteractive()

* Switch isInteractive tag order for alignment

* Update formatting of isInteractive method
2016-09-08 11:47:52 -07:00
Toru Kobayashi
df033180f0 Run codemod react-codemod/transforms/class again (#7679)
ref. #7321
2016-09-08 10:38:44 -07:00
Ray Dai
05cbc93401 Update 14-communicate-between-components.md (#7680)
To demonstrate multiple arguments `bind(this, arg1, arg2, ...)`, also not to pass in for than what `handleClick` needed, namely props, or maybe even pass item itself, etc.
Going to change the kor file after review.
2016-09-08 10:20:25 -05:00
Gant Laborde
90a120c603 Adding the published ReactRally videos section (#7681)
ReactRally came and went, and it was splendid.
2016-09-08 10:17:39 -05:00
Christopher Chedeau
eaefd9052a Type ReactHostOperationHistoryHook (#7672)
In order to properly type an `Operation`, we need to change the call site from having two arguments: one for `type` and one for `payload` into an object that contains both. This isn't a perf regression because we were already constructing this object in the first place and doesn't change the emitted event so shouldn't affect the dev tools.

None of the call sites are actually flow-ified so it isn't technically used but once we will, it'll make sure that we don't send random strings and payload through those very generic methods.
2016-09-07 20:08:09 -07:00
Christopher Chedeau
82598eec79 Trim and inline ReactInstanceHandles (#7676)
React IDs have been killed and there was one call site left in a test. I trimmed down the implementation to keep only what is actually used and inlined it inside of the test so we don't get more people using it in the future.
2016-09-07 20:03:56 -07:00
Flarnie Marchan
7b2d9655da Flow type event plugins (#7667)
* Type SimpleEventPlugin and TapEventPlugin

- Renamed file from 'ReactSynteticEvent' to 'ReactSyntheticEventType'
- Fills in the 'any' holes that were left in DispatchConfig type and the
  type annotations in EventPluginRegistry.
- Adds polymorphic PluginModule type and related types
- Uses hack to support indexable properties on 'Touch' type in
  TapEventPlugin

The issue in TapEventPlugin is that the code is accessing one of four
possible properties on the 'Touch' type native event using the bracket
accessor. Classes in Flow don't support using the bracket accessor,
unless you use a declaration and the syntax `[key: Type]: Type`.[1] The
downside of using that here is that we create a global type, which we
may not need in other files.

[1]: https://github.com/facebook/flow/issues/1323

Other options:
- Use looser typing or a '@FixMe' comment and open an issue with Flow to
  support indexing on regular classes.
- Rewrite TapEventPlugin to not use the bracket accessor on 'Touch'. I
  thought the current implementation was elegant and didn't want to
  change it. But we could do something like this:
```
 if (nativeEvent.pageX || nativeEvent.pageY) {
   return axis.page === 'pageX' ? nativeEvent.pageX : nativeEvent.pageY;
 } else {
   var clientAxis = axis.client === 'clientX' ? nativeEvent.clientX : nativeEvent.clientY;
   return nativeEvent[axis.client] + ViewportMetrics[axis.envScroll];
 }
```
2016-09-07 12:40:45 -07:00
Christopher Chedeau
334b8bdf16 I wrote it live! (#7663) 2016-09-06 15:18:42 -07:00
Kite
ed8a753346 Fix the HTML for package management (#7656) 2016-09-06 09:58:17 -07:00
Filip Spiridonov
0c77b2f3eb Remove unnecessary var declaration (#7666) 2016-09-06 18:31:47 +03:00
Brandon Dail
06ea71d3fd Use compositeType in warning invariant for refs (#7658) 2016-09-06 11:49:20 +03:00
hkal
6a525fdc4c Add unknown property warning for use of (#6461) 2016-09-03 18:48:23 -05:00
Dan Abramov
a09d158a7c Don't bundle ReactComponentTreeHook in production (#7653)
Fixes #7492.
This was a build size regression introduced in #7164.
2016-09-03 22:32:20 +01:00
Dan Abramov
9d9af63a6a Link to Create React App (#7654)
* Link to Create React App

* Reword
2016-09-03 18:13:30 +01:00
Nathan Hunzaker
40c90a6499 Use proper render method in static markup event listener test (#7652) 2016-09-03 17:29:12 +01:00
Paul O’Shannessy
7b247f3609 Flow: bool -> boolean (#7650) 2016-09-02 17:35:14 -07:00
Christopher Chedeau
2559030c34 Type ReactCurrentOwner (#7648)
Simpler than ReactOwner :)
2016-09-02 16:29:24 -07:00
Christopher Chedeau
a70acb37d9 Convert CallbackQueue to a class (#7647)
It turns out that flow cannot type `this` with a function constructor + prototype overrides. Turning it to a class makes flow happy and has minimal impact on the output.

In open source, we already use the loose version of the class transform and internally we have one that's outputting even less code if you have `@preventMunge` in the header.

See discussion in https://www.facebook.com/groups/2003630259862046/permalink/2098480820376989/
2016-09-02 15:27:44 -07:00
Christopher Chedeau
839697f60c Restore coverage in Travis (#7628)
We disabled coverage in Travis because the implementation was crashing ( https://github.com/facebook/react/issues/6290 ). Since we upgraded to Jest 15, the entire coverage implementation is brand new so we should give it another try.
2016-09-02 14:23:58 -07:00
Christopher Chedeau
31dd6944d3 Type ReactRef (#7600)
Nothing out of the ordinary on this one.
2016-09-02 14:16:32 -07:00
Flarnie Marchan
9a88e593ed Merge pull request #7644 from flarnie/flowifyEventPluginRegistry
Type EventPluginRegistry
2016-09-02 13:53:44 -07:00
Flarnie Marchan
3c980aaf30 Type EventPluginRegistry
This commit takes the first incremental step towards adding type checks
to the React event code. A couple of issues came up.

There is an issue with the SyntheticEvent type: Flow declares a
SyntheticEvent type[1] that lacks the non-public properties which are
used in React internals. To solve this I declared a class that extends
SyntheticEvent. This class can be expanded as we add Flow types to more
places where SyntheticEvent instances are referenced.

I'm happy to change this if folks prefer a different approach.
Some options I considered:
- Override the SyntheticEvent declaration with our own declaration
  - Pro: We can use 'SyntheticEvent' as a type just like we are used to
    when working in any other codebase.
  - Pro: No need to import any type since it's a declaration
  - Pro: Only one version of SyntheticEvent; less confusion.
  - Con: Could get out of sync with real implementation.
  - Con: Duplicates part of the type declared in Flow.
- Import the SyntheticEvent class and use that as the type
  - Pro: Keeps type definition in sync with the real implementation.
  - Con: Declaration overrides implementation so I'm not sure this would
    work.
  - Con: Have to remember to import the type.
- Declare a separate type called ReactSyntheticEvent that extends
  SyntheticEvent
  - Pro: Stays in sync with the Flow SyntheticEvent type;
    less duplication.
  - Pro: Differentiates this type from the Flow SyntheticEvent type;
    less confusion.
  - Pro: No need to import any type since it's a declaration
  - Con: Could get out of sync with real implementation.

I also ran into an issue where a variable was only non-null when
'__DEV__' is true, similar to PR #7586.[2] The work-around is to force
it to be typed non-null and add a comment documenting the reason. At
this time Flow doesn't have a better way to deal with the situation.

Next steps:
- Specific type for the 'dispatchConfig' property of SyntheticEvent
- More detailed types for PluginName and PluginModule

Lastly; note that I renamed some variables to follow the convention of
reserving PascalCase for classes, enums, and Flow types.

[1]: https://github.com/facebook/flow/blob/master/lib/react.js#L277-L293
[2]: b99eb5087b
2016-09-02 13:13:48 -07:00
Christopher Chedeau
1229a238c4 Generate SimpleEventPlugin data structures at runtime (#7616)
We used to copy and paste the same big blob many times in order for it to work with keyOf which is no longer a constraint. This pull request takes a list of all the events as string and generate those data structures at runtime.

It reduces the size of React by 1k post gzip and flow is able to extract the structure out of it :)
2016-09-02 12:57:18 -07:00
却痕
4c365ea957 docs:translate doc 11-advanced-performance to chinese (#7584) 2016-09-01 22:59:30 -04:00
Ben Alpert
0c62d121c5 Merge pull request #7634 from spicyj/flowfix
Small flow fixes
2016-09-01 17:26:08 -07:00
Ben Alpert
0722b15752 Small flow fixes 2016-09-01 15:52:29 -07:00
Kent C. Dodds
34761cf9a2 add events code walkthrough video link (#7633)
I think if we do another one of these it'd be good to turn this into a list, but this is good for now.

Thanks @spicyj!
cc @gaearon
2016-09-01 14:23:40 -05:00
Guillaume Claret
355c490653 Remove the Flow experimental.strict_type_args option (#7631) 2016-09-01 11:40:08 -07:00
Nathan Hunzaker
5c47920384 Remove String.prototype.split polyfill warning (#7629) 2016-09-01 08:44:36 -05:00
Christoph Pojer
1bd55c8cbd Merge pull request #7625 from vjeux/jest15
Update to jest 15
2016-09-01 02:56:54 +01:00
Christopher Chedeau
1a113a15c9 Update to jest 15
Jest 15 has just been released and is way more awesome: http://facebook.github.io/jest/blog/2016/09/01/jest-15.html

This pull request updates jest from version 12 to 15. Right now there's a fix in jest around Symbol that hasn't been released yet, so this will break CI and cannot be merged it. But once it ships by the end of the day, we'll be good to go :)

See comments inline for all the changes I've done.
2016-08-31 18:25:03 -07:00
Paul O’Shannessy
2e38fcf355 Add more specific link to react-addons-shallow-compare readme (#7608) 2016-08-31 15:53:30 -07:00
Paul O’Shannessy
c73d8633c3 Copy all SVG child nodes when using setting innerHTML in IE (#7618) 2016-08-31 11:50:58 -07:00
Mateusz Burzyński
51476de913 Guarded ensureScrollValueMonitoring against some malicious script on the Internet overriding native document.createEvent (fixes #6887) (#7621) 2016-08-31 15:25:18 +01:00
Ben Alpert
7d7defe30f Improve error boundaries tests (#7569) 2016-08-30 20:02:56 -07:00
Miller Medeiros
51f04fdbc1 Add checkpoint/rollback to ReactNativeReconcileTransaction (#7619) 2016-08-30 15:42:36 -07:00
Kevin Lin
c85f46320e Add 'as' keyword (#7543) (#7582)
* Add 'as' keyword (#7543)

* fix commenting to adhere to styling

* fix grammar in comment
2016-08-30 15:14:46 -07:00
Miller Medeiros
0c031c55b8 Improve error boundaries tests 2016-08-30 14:59:17 -07:00
Christopher Chedeau
f7076b7759 Kill keyOf :) (#7615) 2016-08-30 11:03:05 -07:00
Christopher Chedeau
2f9a9dc4c5 Remove keyMirror in TopLevelTypes (#7597)
This is the last callsite of keyMirror! It removes 0.5k gzipped :)

The only trick with this one is that ReactTestUtils actually iterates over the list of all the events. Instead of duplicating the logic, I used the $Enum feature of flow that lets us statically extract out the type from the dynamic value. Inside of react-dom we're no longer requiring the file directly so it doesn't bloat the file size, and we still get to have static typing, best of both worlds!
2016-08-30 09:50:16 -07:00
Christopher Chedeau
738a9e3ef2 Remove keyMirror in PropagationPhases (#7596)
See rationale in https://www.facebook.com/groups/2003630259862046/permalink/2097088000516271/
2016-08-30 09:44:14 -07:00
Paul O’Shannessy
395888435b Cleanup ReactErrorUtils (#7610)
This cleans up the Flow annotations and brings the implementations in line.
2016-08-29 20:44:47 -07:00
Michael Jackson
9fd42264fe s/npmcdn/unpkg/g (#7609)
npmcdn.com is moving to unpkg.com. Same backend, one less letter in the
domain name. Boom.
2016-08-29 19:45:31 -07:00
Duke Pham
3071f31d04 Add line breaks to examples on 10.1-animation docs per (#7606)
comments to issue #7317.
Updated JP doc examples to match other languages
Reformat to match JSX multi-line style #7550
2016-08-29 15:50:23 -07:00
Robert Kielty
ee199381de Adds minor additions clarifying questions I had reading intro tutorial (#7595) 2016-08-29 15:34:48 -07:00
Marcin Mazurek
ba84b5b0a7 Warn if input changes controlledness - also for null (#7544) (#7603) 2016-08-29 11:23:30 -07:00
Nick Raienko
5331fd00bc Ignore bundle.js for examples (#7498)
* Ignore bundle.js for examples

* Move ignored bundle.js under examples directory
2016-08-29 10:34:46 -07:00
Clay Miller
3c73463eb1 Remove non-standard 'icon' property (fixes #7430) (#7508) 2016-08-29 10:33:28 -07:00
Nik Nyby
9511b4fe29 docs: re-position comments to account for code sample width (#7602) 2016-08-29 10:08:07 -07:00
TedPowers
8397ef58db Changed to !document.documentMode (#7594) 2016-08-29 04:33:36 -07:00
Christopher Chedeau
a3e576e1bb Type Transaction (#7581)
This one is interesting because we have transaction objects being passed around everywhere in the codebase but there's actually no Transaction class. It's a "mixin" that comes to life by being Object.assigned to the prototype of a real "class" (before class was cool!). Therefore, we can't just say `var Transaction = require('Transaction'); (transaction: Transaction) => { }` because it would be the object that contains a mixin and not an instance of a transaction.

The trick I use is to export `TransactionType` and alias it to `Transaction` in the file as it doesn't actually require transaction. In case they do, we'll figure it out, but in the few files I looked at, it doesn't seem to be the case.

For the perform function, it actually typechecks pretty well!
2016-08-28 16:47:27 -07:00
Christopher Chedeau
dd0c65c6aa Remove the Mixin layer of indirection on ReactCompositeComponent (#7599)
As mentioned in https://github.com/facebook/react/pull/7581#issuecomment-242952042 we can remove the Mixin layer of indirection as it only exports a Mixin and I find it confusing.
2016-08-28 16:46:53 -07:00
Christopher Chedeau
dbe3584340 Remove the Mixin layer of indirection on ReactMultiChild (#7598)
As mentioned in https://github.com/facebook/react/pull/7581#issuecomment-242952042 we can remove the Mixin layer of indirection as it only exports a Mixin and I find it confusing.
2016-08-28 16:46:39 -07:00
Christopher Chedeau
19b8eadb24 Type PooledClass (#7578)
This one was really interesting to type as it's doing a lot of unusual JavaScript. Fortunately flow is now pretty kick ass and I've been able to mostly type it. The only missing piece is that it won't check the constructor arguments.

If you are a fb employee, you can follow the discussion here: https://www.facebook.com/groups/flowtype/permalink/1132359430146004/
2016-08-28 10:43:13 -07:00
Christopher Chedeau
fa9869b5a0 Type ReactOwner (#7587)
Incrementally type ReactInstance by adding the types of attach/detachRef.

I moved isValidOwner as a function inside of the file since it's never used externally.
2016-08-28 10:31:49 -07:00
Christopher Chedeau
c9e03f0a85 Type ReactMultiChildUpdateTypes (#7589)
As mentioned in https://www.facebook.com/groups/2003630259862046/permalink/2097088000516271/ I'm going to kill this instance of keyMirror and use a plain string instead with a type union.

The current type union is unused right now but when I type ReactMultiChild I will use it.
2016-08-28 10:31:30 -07:00
Christopher Chedeau
e3b2c6e650 Remove keyMirror in SpecPolicy (#7590)
As discussed in my RFC: https://www.facebook.com/groups/2003630259862046/permalink/2097088000516271/
2016-08-28 10:30:59 -07:00
Christopher Chedeau
a35387c030 Remove keyMirror in ComponentLifeCycle (#7591)
See rationale in https://www.facebook.com/groups/2003630259862046/permalink/2097088000516271/
2016-08-28 10:30:33 -07:00
Christopher Chedeau
84084153ed Remove keyMirror in ReactPropTypeLocations (#7592)
This one involves a bit more work as I added "phantom" flow types to a bunch of places where the type is a ReactPropTypeLocations even though those files are not `@flow` yet.

A good side effect is that `ReactPropTypeLocationNames` keys are now correctly typed, this means that they cannot go out of sync without breaking flow :)
2016-08-28 10:30:15 -07:00
Christopher Chedeau
0d927844fb Type ReactDebugTool (#7586)
Flow doesn't really support the concept of variables that are non-null but only inside of a `__DEV__` block. There's an internal post about it ( https://www.facebook.com/groups/flowtype/permalink/1132437726804841/ ) and the conclusion is that we should force it to be non-null and trust the developer to put the proper DEV checks in place.
2016-08-27 14:13:18 -07:00
Christopher Chedeau
2fb5eae372 Type ReactPerf (#7585)
We need to export FlushHistory type and I submitted a PR on flow to fix the type of console.table which is too restrictive.

I'm already starting to see the benefits of flow, I can look at random variables in the code and flow knows what shape the objects are! It's really useful to try and understand what's going on :)
2016-08-27 14:12:54 -07:00
Christophe Hurpeau
517a0dc051 doc: npm ls react is a better advice (#7513)
Refs Must Have Owner Warning
`npm ls react` is a better advice than `npm ls | grep react`
2016-08-26 23:04:00 -07:00
Christopher Chedeau
c086e5f94e Type ReactDebugTool (#7576) 2016-08-26 14:47:59 -07:00
Christopher Chedeau
09887e0311 Type ReactInvalidSetStateWarningHook (#7572) 2016-08-26 14:47:15 -07:00
Christopher Chedeau
e2ddbac35e Type ReactChildrenMutationWarningHook (#7571) 2016-08-26 14:46:57 -07:00
Christopher Chedeau
b977cf13c4 Remove unneeded declare (#7570)
It turns out that we don't need it, flow is smart enough to realize that the function is declared in the two branches :)
2016-08-26 08:42:03 -07:00
Christopher Chedeau
f784a2d50a Type ReactComponentEnvironment (#7566) 2016-08-25 20:08:20 -07:00
Christopher Chedeau
66e77f696a Fix lint errors (#7568)
In Type ReactComponentTreeHook #7504, I merged even though travis didn't report green (travis for all the fb repos has been backlogged like crazy since this morning) by manually doing `npm test` and `npm run flow` but I didn't ensure that lint was all green.

@millermedeiros pinged me about it so here's a quick fix
2016-08-25 19:16:34 -07:00
Miller Medeiros
38f74bcaf4 Support error boundaries on ReactTestRenderer (#7558) 2016-08-25 16:35:55 -06:00
Christopher Chedeau
ea494a2c10 Type ReactComponentTreeHook (#7504)
For this one, I wanted to type a non-trivial piece of the codebase and ran into the fact that we do not have types for ReactElement nor ReactInstance, so I had to create them.

I'll add comments inline
2016-08-25 15:27:03 -07:00
Christopher Chedeau
563f3bbab4 Type ReactPropTypesSecret (#7501) 2016-08-25 15:26:38 -07:00
Christopher Chedeau
a72a156f58 Type ReactElementSymbol (#7564) 2016-08-25 15:23:29 -07:00
Christopher Chedeau
03e8c0eb75 Type ReactErrorUtils (#7565) 2016-08-25 15:23:13 -07:00
Christopher Chedeau
18003578b1 Type canDefineProperty (#7500) 2016-08-25 10:46:49 -07:00
Christopher Chedeau
ad3c65186e Type ReactPropTypeLocations (#7502) 2016-08-25 10:46:26 -07:00
Christopher Chedeau
7f64baad78 Type ReactPropTypeLocationNames (#7503) 2016-08-25 10:46:15 -07:00
Christopher Chedeau
08614db025 Update flow to 0.31 (#7557) 2016-08-25 09:43:28 -07:00
Dan Abramov
a229cdba7f Ensure lifecycle timers are stopped on errors (#7548)
* Ensure lifecycle timers are stopped on errors

Fixes #7349

* Address review feedback and add an extra test
2016-08-24 19:18:32 +01:00
Dan Abramov
0a248ee7b9 Show React events in the timeline when ReactPerf is active (#7549)
* Show React events in the timeline when ReactPerf is active

This currently only seems to work on Chrome.

* Address Chrome issue
2016-08-24 18:40:16 +01:00
Paul Kehrer
7b11aa9450 Add playsInline as an allowed HTML property (#7519)
The WHATWG has unprefixed `-webkit-playsinline` as `playsinline` (see: https://github.com/whatwg/html/pull/1444) and iOS 10 intends to use it (https://webkit.org/blog/6784/new-video-policies-for-ios/).
2016-08-23 10:47:51 -07:00
NestorTejero
32e60fecdc add explicit link to http://bower.io/ (#7546) 2016-08-23 09:30:12 -07:00
Lucas
56e20b4ab5 Fix minor typo in README.md (#7540) 2016-08-21 18:36:54 -07:00
Lucas
869cb05b76 Add missing KeyUp eventType (#7533)
Fixes #7222.
2016-08-19 18:03:35 -07:00
Paul O’Shannessy
077d32cebb Update website for 15.3.1
(cherry picked from commit 199056cf1b)
2016-08-19 14:20:02 -07:00
Paul O’Shannessy
e10f83de12 Update readme for 15.3.1
(cherry picked from commit cc41ec258f)
2016-08-19 14:20:02 -07:00
Paul O’Shannessy
9af8be654b Update changelog for 15.3.1
(cherry picked from commit 3c0906ca24)
2016-08-19 14:20:01 -07:00
Greg Palmer
a8741963dc Avoid "Member not found" error in IE (#7411)
Explanation, discussion, and similar change as #7343

Addresses #7320
2016-08-19 14:43:34 -06:00
Ben Alpert
6a65960641 Improve validateDOMNesting message for whitespace (#7515)
For #5071.
2016-08-19 11:45:14 -07:00
Paul O’Shannessy
944be18357 Upgrade to fbjs v0.8.4 (#7532) 2016-08-19 10:40:03 -07:00
Alex Zherdev
11c0adcc95 Fix header link generation for non-English docs (#7497) 2016-08-18 14:55:50 -07:00
Alexandre Kirszenberg
9f5b009f05 Fix ReactTestInstance::toJSON() with empty top-level components (#7523) 2016-08-18 13:02:09 -07:00
龙海燕
db6f36bdce Update 09.2-package-management.md (#7520) 2016-08-18 08:52:07 -06:00
ventuno
a9e681a828 Warn if using React.unmountComponentAtNode on a different React instance's tree. (#7456)
* Warn when using React.unmountComponentAtNode on a different React instance's tree

https://github.com/facebook/react/issues/3787

* Adding tests.

* Implementing recommended changes.

https://github.com/facebook/react/issues/3787
2016-08-17 17:20:36 -07:00
Ben Alpert
921d8c151b Update onlyChild invariant message (#7514) 2016-08-17 13:03:31 -07:00
Dan Abramov
680685bec4 Fix slow performance of PropTypes.oneOfType() on misses (#7510)
It used to be slow whenever a type miss occurred because expensive `Error` objects were being created. For example, with `oneOfType([number, data])`, passing a date would create an `Error` object in `number` typechecker for every item.

The savings depend on how much commonly you used `oneOfType()`, and how often it had “misses”. If you used it heavily, you might see 1.5x to 2x performance improvements in `__DEV__` after this fix.
2016-08-17 10:04:56 +01:00
Jess Telford
aa48c82b0d React.Children.toArray() changes keys (#7495)
As noted by @spicyj in #5541
2016-08-15 23:43:33 -07:00
Troy DeMonbreun
3013afe2d5 Fix for #7170 (#7486)
* Write failing test

* Ensure .min and .max are set before .value

* Adjusting test for false negative

* Revert test adjustment (apparently it was only failing locally)
2016-08-15 13:38:53 -05:00
Christopher Chedeau
9a48b5ca7b Fix flow (#7499)
ReactElement requires a generic argument now and the return function of render is a ReactTestInstance and not a ReactElement.
2016-08-15 18:04:22 +01:00
Dan Abramov
48475787b4 Avoid indexOf() during unmounting a root in the hook (#7496)
* Avoid indexOf() during unmounting a root in the hook

* Check for (Map|Set).prototype.keys
2016-08-15 15:47:54 +01:00
Tanase Hagi
09f0a06b8a Add propsTypes and defaultProps example for stateless functions (#7458)
* Add propsTypes and defaultProps example for stateless functions

* Update 05-reusable-components.md

* Update 05-reusable-components.md
2016-08-14 12:04:47 -05:00
Andres Suarez
8d1e416d9a Remove last use of mapObject (#7494) 2016-08-13 20:13:56 -07:00
Andres Suarez
e5f9ae2705 Avoid object iteration when creating DOM factories (#7493) 2016-08-13 19:30:06 -07:00
Dan Abramov
db452bd20b Use ES6 Map in ReactComponentTreeHook if available (#7491)
* Use ES6 Map in ReactComponentTreeHook if available

* Make getRootIDs fast again

* Only use native Map
2016-08-13 21:43:18 +01:00
jaaberg
fdc91e016f Fix typo in changelog (#7468) 2016-08-13 13:45:04 -05:00
Dan Abramov
a56e105081 Don't define key or ref dummy props if none were provided (#7488)
* Don't define key or ref dummy props if none were provided

This fixes a performance regression.

* Style nit
2016-08-13 19:36:57 +01:00
Dan Abramov
a73886456e Fix ReactComponentTreeHook.getRegisteredIDs() to work with inlined content (#7490)
I broke this in #7463: parseInt() cuts off #text at the end.
Changing to just use negative numbers instead.
2016-08-13 19:36:21 +01:00
Dan Abramov
cba2b19b84 Remove ReactDOMInstrumentation (#7481)
Its events are not being used anywhere.
2016-08-12 20:09:27 +01:00
Dan Abramov
4b734f7a02 Improve DEV performance in Chrome (#7483)
* Ensure this._domID is always a number

* Ensure this._rootNodeID is always a number
2016-08-12 18:34:46 +01:00
Sebastian Markbåge
c8f7215b20 Use aliasify everywhere instead of browserify-global-shim (#7476)
I already had to aliasify to have better control over the requires
so we might as well do it everywhere for consistency.

This probably makes it easier to rebase the rollup work too
because aliases seems to be how you solve this in that world.
2016-08-11 20:17:37 -07:00
Sebastian Markbåge
1c5a639c37 Require the isomorphic React instead of internals from renderers (#7473)
This is needed for flat builds. It also lets us get rid of a bunch
of special cases in the build scripts.

It also allow us to just copy the source files into React Native
instead of having to build first to resolve the special cases.
2016-08-11 18:56:55 -07:00
Dan Abramov
0e976e136c Consolidate hook events (#7472)
* Remove onBeforeMountComponent hook event

It is unnecessary.
We now pass the element as part of onInstantiateComponent, and it can't change before mounting.

* Remove onComponentHasMounted hook event

It is unused after #7410.

* Replace on(Begin|End)ReconcilerTimer hook events

We already have onBeforeUpdateComponent.
Let's just have on(Before?)(Mount|Update|Unmount)Component and stick with them.

This removes double event dispatches in some hot spots.

* Remove onComponentHasUpdated hook

The tests still pass so presumably it was not necessary.

* Add missing __DEV__ to TestUtils code

* Replace on(InstantiateComponent|SetParent) with onBeforeMountComponent

This lets us further consolidate hooks.
The parent ID is now passed as an argument to onBeforeMountComponent() with the element.

* Remove onMountRootComponent hook event

It is unnecessary now that we pass the parent ID to onBeforeMountComponent.

* Use parentDebugID = 0 both for roots and production

This removes some awkward branching.
2016-08-11 19:35:50 +01:00
Sebastian Markbåge
f7e0db9a18 Build React DOM Fiber package (#7173)
This builds a `react-dom-fiber.js` bundle which exposes ReactDOMFiber.
This allows early experiments with the new Fiber reconciler.

I also expose it in the npm package through `react-dom/fiber`.
2016-08-10 18:45:14 -07:00
Sebastian Markbåge
0f004efce2 Build renderers into their individual npm packages (#7168)
This copies modules into three separate packages instead of
putting it all in React.

The overlap in shared and between renderers gets duplicated.

This allows the isomorphic package to stay minimal. It can also
be used as a direct dependency without much risk.

This also allow us to ship versions to each renderer independently
and we can ship renderers without updating the main react package
dependency.
2016-08-10 18:17:49 -07:00
Sebastian Markbåge
c06a68a10b Mock ReactDOM for Fiber Tests (#7206)
We currently write all our tests against the DOM implementation.
I need a way to run the Fiber tests against it. But I don't want
to take on any package dependencies on Fiber modules yet.

There's a problem with jest right now where you can't globally
mock modules that already exist. So I have to add a global call
to jest.mock.

Luckily we already have a way to test the useCreateElement paths
using a feature flag. I won't activate this flag in travis until
it passes, but the idea is to run all three variants in travis.

I'm not sure that invoking rAF and rIC synchronously is the best
way to test this since it doesn't capture the backwards
compatibility aspect. I.e. the fact that people might be relying
on the synchronous nature in real apps too. It's a start.

Ideally, jest would have these built-in.
2016-08-10 17:44:36 -07:00
Dan Abramov
1f31357a2e Remove unnecessary indirection and events from the hooks (#7464)
* Remove unnecessary indirection from the tree hook

* Replace onSetDisplayName, onSetOwner, onSetText with one event

Less events is better.
onSetDisplayName, onSetOwner, and onSetText only existed because we didn't initially track elements.

* Remove unused variables
2016-08-11 00:19:09 +01:00
Dan Abramov
afa27bc4d5 Fix unmounting performance regression in __DEV__ (#7463)
* Comment previous occurrences of this issue

* Fix DEV performance regression in V8

* Extract try/catch into a separate function when calling hooks
2016-08-10 20:14:59 +01:00
Dan Abramov
178cb7d339 Prevent performance regression in DEV due to warning arguments (#7461)
* Prevent internal performance regression

This only affects Facebook website, not open source version of React.

On the Facebook website, we don't have a transform for warnings and invariants.
Therefore, expensive arguments will be calculated even if the warning doesn't fire.
This fixes a few cases where that calculation might be more expensive than usually.

In my testing, this brings down average row click time in Power Editor from ~300ms to ~220ms in __DEV__ (vs ~40ms in prod).

* Put warning() that shows up in profile behind condition
2016-08-10 19:52:46 +01:00
Keyan Zhang
5514ea369d Fix memory leak in ReactChildrenMutationWarningHook for SSR (#7410)
* corrected ReactChildrenMutationWarningHook's name

* changed `onComponentHasMounted` to `onMountComponent`

and get element from `ReactComponentTreeHook` instead of keeping an internal store
2016-08-10 19:50:18 +01:00
Paul O’Shannessy
c848b65378 Remove unused createHierarchyRenderer (#7454) 2016-08-09 16:03:24 -07:00
Sebastian Markbåge
ca9167c202 Include React itself in the list of shims (#7453)
Without this we end up bundling all of the isomorphic React into
the DOM bundle. This was fixed in #7168 too but I'll just do an
early fix to ensure that #7168 is purely an npm change.
2016-08-09 15:33:34 -07:00
Sebastian Markbåge
34c4474472 Fix trailing build issues (#7450)
Use relative path for addons UMD shim module

Use explicit top level wrapper marker for top level elements
2016-08-09 12:52:15 -07:00
Sebastian Markbåge
8ef00dbb7d Bundle DOM renderers into their individual UMD bundles (#7164)
* Cut out isomorphic dependencies from the renderers

These files reaches into isomorphic files.

The ReactElement functions are exposed on the React object anyway
so I can just use those instead.

I also found some files that are not shared that should be in
renderers shared.

* Found a few more shared dependencies

renderSubtreeIntoContainer is only used by the DOM renderer.
It's not an addon.

ReactClass isn't needed as a dependency since injection doesn't
happen anymore.

* Use a shim file to load addons' dependencies on DOM

By replacing this intermediate file we can do the lazy loading
without needing any lazy requires. This set up works with ES
modules.

We could also replace the globalShim thing with aliased files
instead for consistency.

* Bundle DOM renderers into their individual UMD bundles

Instead of exposing the entire DOM renderer on the react.js
package, I only expose CurrentOwner and ComponentTreeDevtool which
are currently the only two modules that share __state__ with the
renderers.

Then I package each renderer in its own package. That could allow
us to drop more server dependencies from the client package. It
will also allow us to ship fiber as a separate renderer.

Unminified DEV            after     before
react.js                  123kb     696kb
react-with-addons.js      227kb     774kb
react-dom.js              668kb     1kb
react-dom-server.js       638kb     1kb

Minified PROD             after     before
react.min.js               24kb     154kb
react-with-addons.min.js   37kb     166kb
react-dom.min.js          149kb     1kb
react-dom-server.min.js   144kb     1kb

The total size for react.min.js + react-dom.min.js is +19kb larger
because of the overlap between them right now. I'd like to see
what an optimizing compiler can do to this. Some of that is fbjs
stuff. There shouldn't need to be that much overlap so that's
something we can hunt. We should keep isomorphic absolutely
minimal so there's no reason for other React clones not to use it.
There will be less overlap with Fiber.

However, another strategy that we could do is package the
isomorphic package into each renderer bundle and conditionally
initialize it if it hasn't already been initialized. That way
you only pay an overlap tax when there are two renderers on the
page but not without it. It's also easier to just pull in one
package. The downside is the versioning stuff that the separate
npm package would solve. That applies to CDNs as well.

ReactWithAddons is a bit weird because it is packaged into the
isomorphic package but has a bunch of DOM dependencies. So we have
to load them lazily since the DOM package gets initialized after.
2016-08-09 12:39:03 -07:00
B.Orlov
7d57c1f0c1 Fix batchedUpdates return value (#7444) 2016-08-09 10:26:29 -07:00
Robert Martin
43674d989d Capitalize AJAX (#7435) 2016-08-08 16:24:30 -07:00
Robert Chang
0833d89783 change a word in performance docs (#7442) 2016-08-08 16:10:28 -07:00
Joseph Savona
ba2230df29 Fix link formatting on Relay blog post (#7434) 2016-08-05 14:54:34 -07:00
Sebastian Markbåge
a8c8191264 Merge pull request #7248 from sebmarkbage/fibercleanup
[Fiber] Various minor tweaks and a few big ones
2016-08-05 14:40:27 -07:00
Sebastian Markbage
af7dd8e0a1 Move wip fibers to childInProgress
This took a while to figure out, but we need to be able to store
children that are currently being worked on separately from the
current children. We always need a canonical "current" children
so that we can update them. However, we also need a different set
that we're currently working on so that we have a way to get to
already progressed work.

This solve the starvation problem in the first render because now
we can reach children that were never rendered and have a place
to store their progressed work on. The unit test changes tests
this.

This lets us get rid of the hasWorkInProgress flag.

When we reconcile new children we need to reconcile them against
progressed work so that we can reuse it. The progressed work is
"work in progress" nodes. So in that case we need to mutate
instead of clone, to preserve the invariant that only two versions
exist at any given point. This effectively forks the
ReactChildFiber implementation.
2016-08-05 14:33:48 -07:00
Sebastian Markbage
94ed00740b Introduce shouldComponentUpdate in Fiber
It is important to be able to use this since it avoids starvation
problems if you can reuse partially completed work.
2016-08-05 14:31:47 -07:00
Sebastian Markbage
de6069e550 Reuse the correct child and side-effects when reusing partial work
We need to use the *other* child because we reset it to the
current one on the way up.

We also need to reset the first/last side-effects to that of the
children so that we're committing the right thing.
2016-08-05 14:31:46 -07:00
Sebastian Markbage
9fca812139 Fix NoWork bug
Thanks @acdlite. Add comment about future unit test coverage.

This was actually hiding the fact that we are only able to reuse
existing work if it was marked as completely finished which it
won't be if we reuse its pending priority.

However, we should be able to bail out even if there is work
remaining in a subtree.
2016-08-05 14:31:46 -07:00
Sebastian Markbage
48b7b2c67c Add note about potential future bugs 2016-08-05 14:31:46 -07:00
Sebastian Markbage
5ac87e0d0f When a reconciliation gets down prioritized, reuse children
When we downprioritize children we need to remember to reuse the
old children in the update side-effect.

This whole set up is very unfortunate since we can have children
in our active tree that never actually finished rendering. This
strategy might be fundamentally flawed, not sure.
2016-08-05 14:31:46 -07:00
Sebastian Markbage
d0838797a3 Set pendingProps in cloneFiber for symmetry
This might become confusing later but is unreachable today. That's
because existing pendingProps only matter when a clone is updated,
but this path can only matter when it is created.
2016-08-05 14:31:46 -07:00
Sebastian Markbage
5c094fb5d1 Don't reset next work pointer for lower priority work
If the current work is higher priority than the new work, then
don't bother resetting the unit of work pointer since it won't
affect the execution order.
2016-08-05 14:31:46 -07:00
Sebastian Markbage
7e9b958662 Reuse old props for the update if there are no new props 2016-08-05 14:31:46 -07:00
Sebastian Markbage
de4a7b972b Move all imports to closures in Fiber
I'm paranoid about inline-ability so I use this pattern of adding
a constant to the closure everywhere.

ES6 modules help avoid that but we can't use that consistently
because of the dependency injection so instead I opt for making
this explicit everywhere.

Grep: \b[a-zA-Z_$\d]+\.[a-zA-Z_$\d]+\(
2016-08-05 14:31:46 -07:00
Sebastian Markbage
e0e4954061 Remove console.logs from Fiber
The code is sufficiently complex now that this is more noise than
helpful. Will just temporary explicit logs in the future.
2016-08-05 14:31:46 -07:00
Sebastian Markbage
00084f5503 [Fiber] Rudimentary class support
Mostly just to get started with unit testing.
2016-08-05 14:31:46 -07:00
Sebastian Markbage
28dc560d0f [Fiber] unmountComponentAtNode
Add unmounting hook.
2016-08-05 14:31:45 -07:00
Joseph Savona
aca62e7d24 Relay blog post (#7433) 2016-08-05 10:55:06 -07:00
Paul O’Shannessy
b910a1478d [docs] Use appropriately sized og:image (#7417)
Also runs through Imageoptim for smaller size.
2016-08-03 14:08:44 -07:00
Paul O’Shannessy
d1cff59ddc Fix JSON in package.json (#7408) 2016-08-02 16:05:03 -07:00
Paul O’Shannessy
c5cb5b8bd8 Specify "files" field for npm packages (#7396) 2016-08-02 15:11:45 -07:00
Paul O’Shannessy
1bb257de93 [docs] Use npmcdn (#7394) 2016-08-02 13:44:06 -07:00
Keyan Zhang
8af6f9e5a2 Fix <input> with type date/time/etc. issue on mobile browsers (#7397)
Fix <input> with type date/time/etc. issue on mobile browsers
2016-08-02 12:56:05 -07:00
Timothy Yung
0fb8febd0a Change trackedTouchCount invariant into a console.error (#7400)
* Change `trackedTouchCount` invariant into a console.error

* Fix ResponderEventPlugin lint warning
2016-08-01 22:42:30 -07:00
Nathan Hunzaker
8aed0cd67e Add some semicolons for linting. (#7390) 2016-08-01 21:17:58 +01:00
Keyan Zhang
328fc75bc9 Merge pull request #7381 from keyanzhang/rename-hooks
Rename Devtool to Hook
2016-08-01 11:42:33 -07:00
Nathan Hunzaker
2823dfcbfb Avoid "Member not found exception" in IE10 (#7343)
'change' custom events raise "Member not found" in <= IE10. To
circumvent this, the SyntheticEvent class now checks for "typeof
event.cancelBubble !== 'unknown'". This eliminates this exception and
maintains the expected bubbling functionality.

Addresses #7320.
2016-07-31 13:59:51 -07:00
Keyan Zhang
bba0d992d8 temporary compatibility fix 2016-07-29 16:49:44 -07:00
Paul O’Shannessy
57ae3b389d [docs] add permalink for newly translated page (#7380) 2016-07-29 16:24:43 -07:00
Keyan Zhang
81f554817c renamed methods (devtool -> hook) 2016-07-29 16:12:23 -07:00
Keyan Zhang
f2fc182250 renamed modules (devtool -> hook) 2016-07-29 16:12:23 -07:00
Paul O’Shannessy
092f5ae867 Update website for 15.3.0
(cherry picked from commit cc01d1be33)
2016-07-29 12:17:41 -07:00
Paul O’Shannessy
7d4e97f9e5 Update readme for 15.3.0
(cherry picked from commit 7251f6a6e9)
2016-07-29 12:17:41 -07:00
Paul O’Shannessy
26f55b4dbb Changelog for 15.3.0
(cherry picked from commit f7837682b4)
2016-07-29 12:17:41 -07:00
Paul O’Shannessy
25aa5e36c9 [docs] Add permalink to PropTypes warning page (#7377)
Followup to #7219, which was created before the Jekyll 3 upgrade, which needs the permalink field.
2016-07-29 12:14:01 -07:00
Dan Abramov
8329856a3f Add “Don't Call PropTypes” warning (#7219) 2016-07-29 12:04:33 -07:00
Dustan Kasten
7e874f59f5 ReactTestRenderer package (#7362) 2016-07-28 21:39:05 -07:00
Keyan Zhang
c9dc2ab0ec fixed incorrect doc location (#7365) 2016-07-28 11:03:07 -07:00
Cheng Lou
0292d34047 PropTypes: distinguish nullable from optional object field (#7291)
* PropTypes: distinguish nullable from optional object field

This gives a more precise message (no type semantics change) to the case of passing a field in an object, but whose value is `null`:

Before:

```js
propTypes: {
  foo: React.PropTypes.number.isRequired
}
```

Would scream "Required prop `foo` was not specified in `MyComp`".

Now it'll be "Required prop `foo` was specified in `MyComp`, but its value is `null`.".

Works as expected in nested objects.

This fixes the issue of a component transitively passing a `null`, specifying the correct field to the child but have the child tell it that it didn't provide the prop.

Optional field and nullable are two different things anyway.

* Add missing test case.

* Reword messages.
2016-07-26 16:26:51 -07:00
Jackson Huang
fe5128fe8f Create 02-displaying-data.zh-TW.md (#7284)
* Create 02-displaying-data.zh-TW.md

* Update 02-displaying-data.zh-TW.md
2016-07-26 13:45:12 -07:00
Ben Alpert
30aa84181d Remove unused unmountIDFromEnvironment (#7259)
I got rid of the need for this a few months ago.
2016-07-25 23:34:22 -07:00
Patrick Finnigan
85dcbf83c5 fix doc for React Native mountComponent (#7313) 2016-07-25 16:19:15 -07:00
Gert Hengeveld
9d33fb0b76 Added ReactNL conference (#7342) 2016-07-25 16:17:05 -07:00
Amjad Masad
d157827311 "transient dependencies" -> "transitive dependencies" (#7341)
I think that's what you meant -- although with npm dependencies are kind of transient :P
2016-07-25 16:16:11 -07:00
scloudyy
5b06667efd Update docs zh cn (#7254)
* update 03-interactivity-and-dynamic-uis.zh-CN

* update 04-multiple-components.zh-CN

* update 05-reusable-components.zh-CN

* updat 06-transferring-props.zh-CN

* update 07-forms.zh-CN

* update 08-working-with-the-browser.zh-CN

* update 08 and 08.1

* update 09-tooling-integration.zh-CN

* revise

* don't use ES6
2016-07-25 12:23:45 -07:00
Veljko Tornjanski
0805921883 Wording change in doc (#7348) 2016-07-25 11:59:15 -07:00
Keyan Zhang
484f96bb61 Merge pull request #7321 from keyanzhang/codemod-es6-component
Codemod tests from createClass to ES2015 classes
2016-07-23 15:22:35 -07:00
Keyan Zhang
4d8a5bcd5c codemodded tests from createClass to ES2015 classes
- reverted more files under classic
2016-07-23 15:16:12 -07:00
Keyan Zhang
bf26e70374 upgraded babel-plugin-transform-class-properties
- babel/babel#3589 fixed inferring class name
2016-07-23 15:16:12 -07:00
Nathan Hunzaker
08a0895887 Avoid validation warning when inputs change type (#7333)
For controlled inputs, `updateWrapper` was getting called before the
`type` prop had a chance to update. This could lead to a case where
switching from the `text` to `number` type caused a validation error
that would prevent the proper input value from being assigned.

This commit moves the call to `ReactDOMInput.updateWrapper` below
`_updateProperties` to avoid this situation.
2016-07-22 18:38:29 -07:00
Seyi
1fc5f284c0 Blog post: Fixed typo in post (#7336) 2016-07-22 12:40:46 -07:00
Paul O’Shannessy
7614c12ed7 Host our own images for the blog, use https links (#7339) 2016-07-22 12:36:07 -07:00
Steven Syrek
c0b7d81872 Correct grammatical error (subject-verb agreement) (#7338)
"It is worth repeating: there is no configuration files or complicated folder structures." > "It is worth repeating: there are no configuration files or complicated folder structures."
2016-07-22 19:13:11 +01:00
Dan Abramov
6e3b69f055 Add blog post 2016-07-22 16:58:33 +01:00
Keyan Zhang
3fd582643e improved warning in ReactUpdateQueue (#7326) 2016-07-21 12:41:31 +01:00
Keyan Zhang
fc04e853f8 Add babel-plugin-transform-class-properties (#7322)
* added babel-plugin-transform-class-properties

* removed babel-plugin- prefix
2016-07-20 17:39:10 -07:00
Paul O’Shannessy
5ac1bae58e Switch Travis CI to Trusty Beta (#7309) 2016-07-20 11:47:16 -07:00
Alex Zherdev
8bcea5310e Mention actual prop type in element type checker (#7319) 2016-07-20 19:16:55 +01:00
Paul O’Shannessy
5e3959e071 Merge pull request #7308 from zpao/jekyll3
Upgrade to Jekyll 3
2016-07-19 16:33:59 -07:00
Paul O’Shannessy
5e18eb3487 Finish Jekyll 3 Upgrade
- Reverts change to use sectionid on layouts (was unreliable), using config to make sure that's specified on all pages that need it
- Adds permalinks to all other pages so that og data is correct
- Corrects some permalinks that were in correct (translations)
2016-07-19 15:08:58 -07:00
Daniel Lo Nigro
6d537e939f Upgrade to Jekyll 3
Full list of changes is at https://jekyllrb.com/docs/upgrading/2-to-3/. The tl;dr of it is:
 - Relative permalinks were removed, so all the files in the `docs` subdirectory need their permalink to be prefixed with `docs/`
 - `post` and `page` types were renamed to `posts` and `pages` respectively
 - `jekyll-paginate`, `pygments` and `redcarpet` are all now optional, so I needed to explicitly add it to the Gemfile. Jekyll now uses `rouge` rather than `pygments` for syntax highlighting, but rouge does not support highlighting individual lines (`hl_lines`) so we need to continue using Pygments.
 - Layout metadata (eg. `sectionid`) is now on a `layout` variable rather than `page`

Tested the following pages and confirmed that they all work:
 - "Docs" link (getting started page): http://127.0.0.1:4000/react/docs/getting-started.html
 - Downloads: http://127.0.0.1:4000/react/downloads.html
 - Tutorial: http://127.0.0.1:4000/react/docs/tutorial.html
 - A few pages under the "docs" subdirectory, to confirm they're working properly:
    - http://127.0.0.1:4000/react/docs/addons.html
 - http://127.0.0.1:4000/react/docs/why-react.html
 - http://127.0.0.1:4000/react/docs/create-fragment.html
 - A few tips:
    - http://127.0.0.1:4000/react/tips/false-in-jsx.html
 - http://127.0.0.1:4000/react/tips/style-props-value-px.html
 - Non-English versions of the page:
    - http://127.0.0.1:4000/react/docs/getting-started-it-IT.html
    - http://127.0.0.1:4000/react/docs/getting-started-ja-JP.html
2016-07-19 12:18:49 -07:00
Paul O’Shannessy
c3ce0f24c9 Update website for 15.2.1
(cherry picked from commit ea880f2e2c)
2016-07-19 12:17:34 -07:00
Paul O’Shannessy
1252739c84 Update readme for 15.2.1
(cherry picked from commit 5597ca70be)
2016-07-19 12:17:34 -07:00
Paul O’Shannessy
cae816cf09 changelog for 15.2.1
(cherry picked from commit 6b19617333)

Changelog fixes

(cherry picked from commit dfb5cc306f)

Fix typo in previous changelog update

(cherry picked from commit 57a1ebb809)
2016-07-19 12:17:20 -07:00
Sassan Haradji
1cc9a5dc71 prevent spamming warnings related to performance measurement code (#7299)
* prevent spamming warnings related to performance measurement code

* minor changes in names and such

* -

* -
2016-07-19 11:46:12 +01:00
Dan Abramov
15ae5857f6 Eagerly evaluate inline requires in Jest (#7245)
* Eagerly evaluate inline requires in Jest

I inlined some requires in #7188 to fix the build size regression.
However this caused an issue with Jest due to it resetting module registry between tests.

This is a temporary fix to #7240.
It should be reverted as part of #7178.

* Make the hack work in all environments
2016-07-16 20:51:25 +01:00
Dan Abramov
6c9da39514 Clarify the section about dogfooding (#7292) 2016-07-16 15:02:20 +01:00
Dan Abramov
dc11e615ad Minor tweaks to Design Principles (#7283) 2016-07-14 21:29:11 +01:00
Dan Abramov
9d995720da Add Design Principles to the docs (#7282) 2016-07-14 20:37:28 +01:00
Dan Abramov
27d7592cf6 Fix TestUtils crash with NODE_ENV=production (#7246)
I caused it with #7189.
We generally don’t recommend running TestUtils in production environment but this is technically a regression.

Fixes #7231.
2016-07-14 12:02:39 +01:00
Fernando Alex Helwanger
f6d4293003 Add mixins property to context example (#7277) 2016-07-14 10:43:47 +01:00
Troy DeMonbreun
fc04310792 Fix #7099 (#7251)
* Set step prop before value prop

* Embed comments on .step sequence behavior
2016-07-13 13:28:14 -07:00
Paul O’Shannessy
0bfaf5156d [docs] Follow up to 6972 - update docs code (#7278) 2016-07-13 13:17:09 -07:00
segmentationfaulter
bf0572dde7 Update 03-interactivity-and-dynamic-uis.md (#6972) 2016-07-13 13:14:41 -07:00
Mert Kahyaoğlu
2da50a0f18 Renaming: ReactDOM (#7265)
Rename React with ReactDOM
2016-07-13 12:59:02 -07:00
Brandon Dail
cccef3c683 Add referrerPolicy to HTMLDOMPropertyConfig (#7274) 2016-07-13 11:56:57 -07:00
Dan Abramov
f02cbba9fd Fix typos in “Mixins Considered Harmful” (#7275)
* Fix typos in “Mixins Considered Harmful”

* Use consistent code style
2016-07-13 18:46:21 +01:00
Dan Abramov
b0136b37c5 Add a new blog post about mixins (#7273) 2016-07-13 17:40:53 +01:00
Keyan Zhang
5103e1d6a1 warn for using maps as children with owner info (#7260) 2016-07-13 08:29:42 -07:00
Ben Alpert
caec8d5ce7 Test renderer improvements (#7258)
Adds `.update(newElement)` and `.unmount()` and makes children reorders and composite type swapping work.

Part of #7148.
2016-07-12 22:35:31 -07:00
Ben Alpert
e5513eceff Update benchmarks to be more realistic polymorphically (#7255)
Previously, the extract-components script would create the same number of layers of composites as the page it captures, but it would output a new class for each time any composite is used (since we don't want to replicate all the component logic).

I changed the script to output a single type for each type in the input -- and each generated component takes an index for which output it should return. This should be closer to how the original code behaves, especially with respect to VM function call lookups where the amount of polymorphism makes a difference.

I re-recorded the benchmarks with the new scripts. They run significantly faster:

```
Comparing old.txt (control) vs new.txt (test)
Significant differences marked by ***
% change from control to test, with 99% CIs:

* ssr_pe_cold_ms_jsc_jit
    % change: -41.73% [-43.37%, -40.09%]  ***
    means: 39.3191 (control), 22.9127 (test)
* ssr_pe_cold_ms_jsc_nojit
    % change: -44.24% [-46.69%, -41.80%]  ***
    means: 45.8646 (control), 25.5764 (test)
* ssr_pe_cold_ms_node
    % change: -45.61% [-47.38%, -43.85%]  ***
    means: 90.1118 (control), 49.0116 (test)
```

This is probably in part due to the changes here, but also the page I captured has changed somewhat in the meantime and there seem to be slightly fewer components in the hierarchy, so they're not really comparable. But going forward we can use this benchmark which should be more accurate. I also included an identical copy that uses stateless functional components so we can test optimizations to those later.
2016-07-12 19:32:51 -07:00
Kent C. Dodds
12bc80a6dc Add link to video chat with @spicyj (#7252) 2016-07-12 14:42:19 -07:00
Zac Smith
473097144c Remove uneccesary colon (#7238)
Only use a colon after a statement that is a complete sentence, like [Grammer Girl says](http://www.quickanddirtytips.com/education/grammar/colons).
2016-07-12 11:19:07 -07:00
Varayut Lerdkanlayanawat
45223dc8bf Reformat event names in Media Events section (#7250) 2016-07-12 10:10:29 -07:00
Usman
c52a2b9ab0 Fixed all eslint warnings (#7230) 2016-07-11 17:47:41 -07:00
Paul O’Shannessy
92492e08b2 Merge pull request #7229 from zpao/blog-post-errorcodes
Blog post for error codes
2016-07-11 17:41:41 -07:00
Keyan Zhang
f5a11dcc3a Blog post for error codes 2016-07-11 17:39:12 -07:00
Samy Al Zahrani
9a80d42817 Add xmlns and xmlns:xlink attributes (#6471) 2016-07-09 13:32:53 +01:00
Dan Abramov
64e7602b3b Fix unmounting performance regression in V8 (#7232)
As reported in #7227, unmounting performance regressed with React 15.
It seems that `delete` has become much slower since we started using numeric keys.
Forcing dictionary keys to start with a dot fixes the issue.
2016-07-09 01:32:20 +01:00
Brandon Dail
b6e1eb2718 Inject default batching after pending transactions (#7033) 2016-07-08 18:52:14 +01:00
Dan Abramov
1a0e3a3215 Make ReactPerf.start() work during reconciliation (#7208)
* Add failing test demonstrating a ReactPerf warning

* Make the failing ReactPerf test more precise

* Make ReactPerf.start() work during reconciliation

* Reorder lifecycle methods for greater clarity

* Fix memory leak

* Error boundaries should not break ReactPerf

* Put onBeginFlush/onEndFlush into transaction wrappers

This looks cleaner even though it is not strictly necessary.
We still call them manually for unmounting because it doesn't have a transaction.
2016-07-07 19:41:30 +01:00
saiyagg
21ce27161d Remove duplicate line (#7210) 2016-07-07 13:26:17 +01:00
Ben Alpert
c8fbdac227 Add React.PureComponent (#7195)
This provides an easy way to indicate that components should only rerender when given new props, like PureRenderMixin. If you rely on mutation in your React components, you can continue to use `React.Component`.

Inheriting from `React.PureComponent` indicates to React that your component doesn't need to rerender when the props are unchanged. We'll compare the old and new props before each render and short-circuit if they're unchanged. It's like an automatic shouldComponentUpdate.
2016-07-06 13:24:44 -07:00
Andrey Okonetchnikov
0d892c03da Do not render name attribute on INPUT if it is not supplied. Closes #7198. (#7199) 2016-07-06 10:11:46 -07:00
Paul O’Shannessy
5c737b9550 Don't detach value from defaultValue for submit/reset inputs (#7197) 2016-07-05 16:39:43 -07:00
Dan Abramov
d2ff462b79 Pass shouldHaveDebugID flag to instantiateComponent (#7193)
* Add failing tests for #7187 and #7190

* Pass shouldHaveDebugID flag to instantiateComponent

This allows us to remove a hack that was added in #6770 and caused #7187 and #7190.

* Move logic for choosing whether to use debugID outside instantiate
2016-07-06 00:22:24 +01:00
Brandon Dail
2c93a41580 Use hardcoded value for PropType secret (#7194)
Rename secret!
2016-07-06 00:22:01 +01:00
Sebastian Markbåge
4f7a38c3b7 Move error boundaries test into reconciler (#7166)
The src/core folder moved while this PR was pending so this file
didn't move with it.

Let's get rid of this annoying top level folder.
2016-07-05 15:09:13 -07:00
Paul O’Shannessy
26ed910f28 Import warnings that currently live in gists. (#7175) 2016-07-05 13:52:58 -07:00
Marshall Bowers
69703e04d5 Gulp: lint, flow, and version-check (#7174)
* Add plugin loading for gulp

* Convert `lint` task to gulp

* Convert `flow` task to gulp

* Convert `version-check` task to gulp

* Add missing semicolons
2016-07-05 13:30:09 -07:00
Timothy Yung
2b226f5fa6 Revise ResponderTouchHistoryStore Error Handling (#7143)
Touch behavior is inconsistent across different platforms, and ResponderTouchHistoryStore currently fatals when assumptions are broken. In addition, the behavior differs between development and production.

This pull request does a few things to make ResponderTouchHistoryStore easier to deal with:

Adds Flow to keep the TouchEvent, Touch, and TouchRecord types straight.
Changes behavior to be consistent across environments. This means either always throwing or never throwing (and making use of warning and console.error as appropriate).
When an orphaned move or end event is received, print debug information and ignore it instead of crashing and burning.
2016-07-05 13:15:58 -07:00
Brandon Dail
95ac239cf3 Warn if PropType function is called manually (#7132)
* Warn if PropType function is called in production

* Check if console is undefined before warning

* Randomize value of ReactPropTypesSecret

* Remove dev environment tests

* Rename typeCheckPass to productionWarningCheck

* Rename productionWarningCheck to expectWarningInProduction

* Call toString on Math.random()

* Rename test block for React type checks

* Make sure warning isnt emitted for failing props

* Cache warning by component and prop, warn in dev

* Pass ReactPropTypesSecret to internal checks

* Move tests to ReactPropTypes-test.js

* Update the warning message to include link

* Do not test warning for unions  with invalid args
2016-07-05 20:02:50 +01:00
Dan Abramov
5d31ebcf5f Disable DebugTools in production (#7189) 2016-07-05 19:41:45 +01:00
Keyan Zhang
48ccab788b Fixed PR link 2016-07-05 11:21:31 -07:00
Dan Abramov
4aa860e1bb Mention @Aweary’s #6933 in 15.2.0 changelog 2016-07-05 19:10:38 +01:00
Dan Abramov
36734f4d37 Add link to @troydemonbreun’s contribution
We missed this PR in the changelog
2016-07-05 18:54:36 +01:00
Christopher Chedeau
309215fc40 [flow] isTextInputElement (#7075)
Summary:

I had to cast into any because flow doesn't think that checking the lowercase version of nodeName is a valid way to refine the variable from HTMLElement to HTMLInputElement. I'm also not confident enough in changing the implementation to an instanceof HTMLInputElement to please flow. It also takes care of the null check in the process.

The `nodeName &&` condition wasn't useful since the two branches are checking it against concrete values and actually makes the type different since nodeName is not a boolean per se. I replaced them with if conditions to make it clearer what it actually did instead of doing boolean logic tricks.

It is unclear why I had to type supportedInputTypes, see this internal post for a discussion: https://www.facebook.com/groups/flowtype/permalink/1084168611631753/

The only difference in behavior is that I now explicitely convert to boolean the object dereference via `!!`.

Test Plan:
npm run flow
Careful inspection of the code

Reviewers: @zpao @spicyj
2016-07-05 10:22:56 -07:00
Dan Abramov
8fe6b5fb46 Inline dev-only requires (#7188)
* Inline dev-only requires

This reduces the production bundled build size.

* Use new references after resetting module registry in tests

This fixes the tests which were broken due to inlining some requires.
2016-07-05 18:20:12 +01:00
Christopher Chedeau
07cfba17a9 [flow] fix flattenChildren type (#7110)
Summary:
Make the debug attribute optional

Test Plan:
npm run flow

Reviewers: @keyanzhang @chicoxyzzy
2016-07-05 09:18:49 -07:00
Dan Abramov
7d0801e1a0 Remove Danger.dangerouslyRenderMarkup as it is dead code (#7185) 2016-07-05 03:25:06 +01:00
Dan Abramov
24dfb56113 Remove unnecessary Flow annotation
It was added in #7127 but this file isn’t type checked anyway.
2016-07-04 15:48:41 +01:00
Robin Ricard
dbdddf1c82 Trigger a proper no-op warning for async state changes on server (#7127)
This commit fixes #5473: ReactDOMServer.renderToString: presence of onClick
handler causes errors on async update

This commit performs the following changes:

- Adds a getUpdateQueue method to ReactServerRenderingTransaction,
  ReactReconcileTransaction, ReactNativeReconcileTransaction and
  ReactTestReconcileTransaction
- Make the ReactCompositeComponent call this getUpdateQueue instead of using
  ReactUpdateQueue that was unwanted at certain moments on server
- On ReactServerRenderingTransaction, dispatch ReactUpdateQueue's methods
  while rendering and warning methods afterwards. This is done through the new
  ReactServerUpdateQueue class
- Added a series of tests that mimics the case presented in #5473 with setState,
  forceUpdate and replaceState
- Add flow typechecking on concerned files
2016-07-04 15:47:00 +01:00
Richard Roncancio
6e5dd8926c Removed transitionAppearTimeout to remove warning (#7165)
- Removed the prop transitionAppearTimeout from
addons/transitions/ReactTransitionGroup in order to remove a warning
when passing unknown props to DOM elements.
2016-07-02 23:25:12 +01:00
Samuel Reed
3946ac33b8 Add PropTypes.symbol to reusable components doc (#7171) 2016-07-02 20:54:47 +01:00
Sebastian Markbåge
4bc1048e0d Unshare not actually shared files (#7167)
This moves some files out of shared that are not actually shared
with isomorphic. They're specific to the renderers.
2016-07-01 19:16:52 -07:00
Paul O’Shannessy
23cfe03c99 Changelog for 15.2.0
(cherry picked from commit 74c29b391a and  bc1d59ee19)
2016-07-01 12:23:01 -07:00
Paul O’Shannessy
f40e6dbc76 Update website for 15.2.0
(cherry picked from commit 3a6584b2ee)
2016-07-01 12:21:56 -07:00
Paul O’Shannessy
7ef584b2c3 Update readme for 15.2.0
(cherry picked from commit 516aa96419)
2016-07-01 12:21:48 -07:00
Sebastian Markbåge
cf259a4ff8 Merge pull request #7154 from sebmarkbage/sideeffects
[Fiber] Host Side Effects
2016-06-30 16:35:38 -07:00
Griffin Michl
39265cb892 Group warnings for unknown DOM properties (#7153) 2016-07-01 00:13:32 +01:00
Sebastian Markbage
e60fb7eca0 Nits 2016-06-30 15:55:09 -07:00
Sebastian Markbage
05c6925282 Rudimentary DOM Renderer with Example 2016-06-30 14:30:16 -07:00
Sebastian Markbage
c6b5622bff Schedule side-effects to parents before their children
This is only for host nodes so that the DOM tree is fully updated
by the time we've flushed.

Classes will schedule their life-cycles *after* their children's
side-effects.
2016-06-30 14:29:17 -07:00
Sebastian Markbage
2f0ff6e974 Apply side-effects to host containers
This updates the host container root with new children.
Currently, this is always called for updates because we don't
track if any children reordered.
2016-06-30 14:29:17 -07:00
Sebastian Markbage
62d4561910 Host environment side-effects
This creates a new API for processing side-effects on the host
environment.

During initial reconciliation host instances are created during
the time sliced periods.

During updates there is an opportunity for the host
to prepare something on the instance during the time slicing, and
to determine whether there were any changes. The could be thrown
away.

At the commit phase, these changes are finally committed to the
host instance.
2016-06-30 14:29:17 -07:00
Sebastian Markbage
a4b8bebe18 Dependency injection in the begin/complete/commit phases
This just makes them instantiable so that we can get access to the
host config in these.
2016-06-30 14:29:17 -07:00
Sebastian Markbage
f84a8eabc7 Fiber side-effects
This adds tracking of side-effects that gets scheduled during an
update.

As the tree gets reconciled, the side-effectful fibers are linked
together in an ordered singly linked list. That way we can walk
the linked list to commit only the work that needs to be
synchronous - quickly.

We also store first and last nodes within a fiber. That
way when we reuse an already processed subtree, we can reuse that
subset of the linked list.
2016-06-30 14:29:16 -07:00
Sebastian Markbåge
291f8e30a9 Merge pull request #7034 from sebmarkbage/newreconciler
[Fiber] Host Container Fiber and Priority Levels
2016-06-30 14:28:05 -07:00
Sebastian Markbage
6a8cedf985 Remove unreachable code
This should've been caught above.
2016-06-30 12:55:55 -07:00
Sebastian Markbage
4a8651412d Renamed fiber.parent -> fiber.return
This is not just the parent Instance but also the return Fiber for
some piece of work. This clarifies and buys into this definition.

Basically, in the current model you will always pass into a fiber
from the parent that you're going to return to. Even if you get
aborted and reused this will be updated to the correct return
fiber before you get back here.

I don't have any guarantees in place to enforce this right now. I
don't really know how to, but seems safe. :)

I confirmed that the use of keyword properties work for old
engines because we have the transform enabled in our build system.
2016-06-30 12:55:55 -07:00
Sebastian Markbage
385d085886 Feedback on style 2016-06-30 12:55:55 -07:00
Sebastian Markbage
d8f785165c Reuse work that was preempted if it was untouched
This tries to reuse work that was completed but another higher
priority event came in. This tries to avoid starvation when high
priority events causes low pri work to keep rerendering from
scratch.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
6b86764ac1 Use a recursive algorithm for dumpTree
The parent pointer is updated to one of the two versions during
work so if you log in the middle of work, it gets confused.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
ea08c0020c Resume work deep in a bailed out child immediately in same pri
I found a way to test this case without any need for setState.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
5971411e87 Don't block deep low pri updates when bailing out
First I fix a bug where host components didn't properly bail out
although this was unobservable.

When we bail out, we need to ensure that we preserve the highest
remaining priority work that is left to do for that subtree.

This still isn't properly handling the case when that work has the
*same* priority as the current one. That work will be flushed the
*next* tick instead of the current pass.

I can't create a test for that yet since I need setState to get to
that state.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
285e661757 dumpTree helper for debugging
It is helpful to be able to dump information about the current
tree for debugging issues in unit tests.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
97cd8e179a Attack of the Clones!
This fixes some bugs with the clones and traversing backwards
through them. It is important that we maintain the correct parent
at all times and that clones have the correct values.

We need to carefully clone everything on the way up to the the
fiber with the next work to do.

This code is a bit messy and fragile now. I'm sure I didn't get it
all right but I want to get the basics in place first. Then we can
structure this part better. I think the general algorithm is sound
though.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
986c63c6d4 Extract scheduler into its own module
The scheduler is getting quite complicated. I'll extract it into
its own module.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
7d028fd8cc Reorganize the top level around a FiberRoot
We need a canonical stateful root for each. I don't really want to
overload the HostContainer for this purpose since it makes the
fiber code more specialized.

Instead I create a root which represents an actual stateful root.

When these get scheduled they get chained together in a linked
list. However, we don't hold onto anything that doesn't have
scheduled work. This will help us release everything automatically
in the GC, as long as there are no subscriptions nor scheduled
work.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
5e65f2f622 Bubble up pending work priority to the top level
This is a bit poorly structured. I'll restructure when the pieces
are better in place.

Basically we reset the priority of a node before work on the
children. The children then bump their parent if they end up
having work left.

This is the first time we're seeing deep updates happening. The
new unit test demonstrates this.

There is an interesting case that happens when we fall back out of
a deep update. We end up "completing" a node that we didn't begin.
This probably breaks in coroutines. When that completes, it'll try
to render the sibling next but that should bail out so we check
for any pending work on the sibling. That one I'm not sure about.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
8ad8bd1939 Automatically downgrade an update to a hidden node
This automatically downgrades the priority of a hidden node. Its
children won't be reconciled until they come around the next time.
2016-06-30 12:55:54 -07:00
Sebastian Markbage
e53f0dc4b4 Pass the priority level along to children 2016-06-30 12:55:53 -07:00
Sebastian Markbage
f04c38ed65 Create HostContainer Component Type
This is essentially equivalent to the current top level wrappers.
They contain the next children to be mounted into a container node
from the host.

It is the responsibility of the host to retain references to them
for updates.

I expect them to be able to exist in the middle of the tree in
the future, for renderSubtreeIntoContainer.
2016-06-30 12:55:53 -07:00
Sebastian Markbage
61fe5e11dc Test ability to abort work 2016-06-30 12:55:53 -07:00
Sebastian Markbage
81537c3e51 Rename input -> props
I tried to be clever and generalize it but this is currently only
props and there are other assumptions that might break down if it
isn't.
2016-06-30 12:55:53 -07:00
Sebastian Markbage
5e0ff5f966 Add Priority Levels Enum
This flag on fibers will be used to track what priority of work is
needed by that subtree, if any at all.

Also fix up the TypeOfWork to have consistent naming and typing.
2016-06-30 12:55:53 -07:00
Sebastian Markbage
ed215634be Get rid of ugly and difficult to follow breaks in switch
Because pattern matching or something.
2016-06-30 12:55:53 -07:00
Troy DeMonbreun
6cc037bd0d Fix for #5468: Validate PropTypes.oneOf(Type) arguments early (#6316)
* Fix for 5468: Validate proptype definitions sooner

Added typeCheckWarn() func and updated the oneOf/oneOfType tests
Added __DEV__ warning for invalid oneOf/OneOfType args

* Suppress redundant error on warn; typeCheckWarn() removed

* Return no-op

* Using emptyFunction module for consistency

* Remove createChainableTypeChecker() call

* Adjust test to assert type check passes when warned
2016-06-29 01:30:41 +01:00
starkch
f94912516f Reword invariant message about empty tags (fixes #7065) (#7066)
* addresses issue #7065

* fix test to use new message

* fix string in tests

* fix test string

* Update error message and tests
2016-06-27 23:30:09 +01:00
Dan Abramov
25f9f4563e Fix renderSubtreeIntoContainer to update context (#7125)
* create failing test case

* Fix renderSubtreeIntoContainer to update context

Fixes #6599

* Also test re-rendering due to prop update

* Address review feedback
2016-06-27 23:29:43 +01:00
Ben Alpert
abcd567325 Make "unexpected batch number" a warning (#7133)
This was added to catch internal errors in React but doesn't seem to be doing much good except frustrating people more when their apps throw (#6895, FB-internal t11950821). Until more proper error boundaries land, let's make this a warning.
2016-06-27 13:39:23 -07:00
Dan Abramov
a49b7a2dfb Fix tests from #6158 to use Jasmine 2 (#7126) 2016-06-27 01:38:45 +01:00
Esteban
752e1595fc Remove comment about PooledClass destructors being optional (#6560)
They are no longer optional since #4720
2016-06-26 21:52:12 +01:00
Swaroop SM
18bad0669f Warn if the included mixin is undefined (#6158) 2016-06-26 20:14:08 +01:00
Evan Jacobs
5a20d449f6 [TestUtils] Copy type to nativeEvent in Simulate.<eventName> (#6154)
Although it is unreasonable to set every possible property for
simulated events, `type` is useful for event handlers that are shared
between types and potentially have different behaviors.
2016-06-26 20:11:37 +01:00
Brandon Dail
60760eb915 Clarify purpose of state property in ES6 classes (#7109) 2016-06-23 12:44:36 -07:00
Sergey Rubanov
3b5c756c7a [flow] add some typings to utils (#7104)
* add some typings to utils

* add typing of flattenChildren

* more accurate typings for flattenChildren
2016-06-23 18:16:37 +02:00
Christopher Chedeau
9342c2f02f [flow] type deprecated (#7076)
Summary:

Test Plan:
npm run flow

Reviewers: @zpao @spicyj @gabelevi
2016-06-23 17:46:24 +02:00
Jim
416b5ef173 Remove dead HAS_SIDE_EFFECTS logic (#6987) 2016-06-22 16:12:32 -07:00
Jim
b4fc27357c Add autoFocus to list of whitelisted dom element props. (#7098) 2016-06-22 14:30:16 -07:00
Dan Abramov
83cbc3e5fb Resolve refs in the order of the children (#7101)
* Resolve refs in the order of the children

React makes no guarantees about ref resolution order. Unfortunately, some of the internal Facebook component APIs (specifically, layer dialogs) currently depend on the ref resolution order. Specifically, the assumption is that if the layer dialog is placed as a last child, by the time it mounts or updates, the refs to any previously declared elements have been resolved.

With the current `ReactMultiChild`, this is *usually* the case but not always. Both initial mount and an update of all components satisfy this assumption: by the time a child mounts or updates, the previous children’s refs have been resolved. The one scenario where it isn’t true is when **a new child is mounted during an update**.

In this case, the `mountComponent()` call used to be delayed until `ReactMultiChild` processes the queue. However, this is inconsistent with how updates normally work: unlike mounting, updating and unmounting happens inside `ReactChildReconciler.updateChildren()` loop.

This PR changes the `mountComponent()` to be performed inside `ReactChildReconciler`, just like `receiveComponent()` and `unmountComponent()`, and thus ensures that `attachRef()` calls are enqueued in the order the children were processed, so by the time the next child flushes, the refs of the previous children have been resolved.

This is not ideal and will probably be broken by incremental reconciler in the future. However, since we are trying to get rid of mixins in the internal codebase, and layered components are one of the biggest blockers to that, it’s lesser evil to temporarily make ref resolution order more strict until we have time to fix up the layer APIs to not rely on it, and are able to relax it again (which would be a breaking change).

* Use array instead of object to avoid lookups
2016-06-22 22:28:06 +01:00
Jim
c7ba16fbbf webcomponents should use attachedCallback instead of createdCallback. (#7102) 2016-06-22 12:42:50 -07:00
Jared Fox
cd9ad90d05 fix webcomponent example issue #7056 (#7057)
* fix webcomponent example issue #7056

* update fix issue #7056, remove unused web component  callbacks
2016-06-22 10:30:04 -07:00
Paul O’Shannessy
4f00553c15 [docs] Update share button (#7097) 2016-06-21 16:21:10 -07:00
Christopher Chedeau
b0732ef881 [cleanup] Move ReactStateSetters inside of addons/link (#7085)
Summary:
The only callsite of ReactStateSetters is in LinkedStateMixin which lives in addons/link. Better move it there to avoid cluttering the other folder.

Test Plan:
None

Reviewers: @zpao @spicyj
2016-06-21 16:09:09 +02:00
Christopher Chedeau
489caeb2d7 [flow] type adler32 (#7080)
This one is trivial

Test Plan:
npm run flow

Reviewers: @zpao @spicyj
2016-06-20 15:35:59 +02:00
Christopher Chedeau
12a6ad1ef5 [flow] type KeyEscapeUtils (#7079)
Summary:

The only call site ensures that the value is not null: dc6fc8cc07/src/shared/utils/traverseAllChildren.js (L44)

key is stringified inside of createElement, so we are guaranteed to receive a string right now: dc6fc8cc07/src/isomorphic/classic/element/ReactElement.js (L142)

Test Plan:
npm run flow

Reviewers: @zpao @spicyj
2016-06-19 21:58:21 +02:00
Christopher Chedeau
5a21d49e3b Remove injectMixin (#6831)
Summary:
The only callsite left was removed here: e8af100849 (commitcomment-17570210) but the code to handle it remained.

Test Plan:
tbgs and ibgs, make sure there's no callsites.

Reviewers: @jimfb, @spicyj, @sebmarkbage
2016-06-19 21:57:27 +02:00
Christopher Chedeau
5b4dad31f8 Merge pull request #7053 from vjeux/flow_accumulate
[flow] annotate accumulate, accumulateInto and forEachAccumulated
2016-06-17 22:07:39 +02:00
Paul O’Shannessy
4886e028bf Specify possible need for C++ compiler (#7064) 2016-06-17 11:34:04 -07:00
Nik Nyby
a8d8210222 update babel-core to 5.8.34 in tutorial docs (#7059) 2016-06-16 20:50:14 -07:00
Claudio Brandolino
5bca3773ab Standardise format of the three "state" questions. (#7046)
* Standardise format of the three "state" questions.

The original format follows the template:

 > 1. x? if `x` then probably isn't state
 > 2. y? if `!y` then probably isn't state
 > 3. z? if `z` then it's not state

This caused both me and a hallway tester to do a double take.

The proposed reformulation allows the answers to follow the same template.

In the same spirit, it uses the same contraction pattern in the last answer (`it's not state`-> `it isn't state`). This has the welcome side effect to make the lack of "probably" stand out more.

* Update phrasing in thinking in reacr
2016-06-16 10:35:18 -07:00
Christopher Chedeau
1c71970431 [flow] annotate accumulate and accumulateInto
Summary:
Trying to start adding flow types to files in React. I needed to add a script to package.json in order to run flow, flow-bin is already a dependency.

I had to rewrite the implementation a bit. Flow doesn't recognize

```
var currentIsArray = Array.isArray(current);
if (currentIsArray) {
  // not refined
}
```

but the following does work

```
if (Array.isArray(current)) {
  // refined
}
```

Test Plan:
npm run-script flow
npm run-script test accumulate

Reviewers: @zpao @spicyj
2016-06-16 17:33:32 +02:00
Jim
49238b9440 Warn if people mutate children. (#7001) 2016-06-15 22:22:31 -07:00
Toru Kobayashi
718c07c915 Remove setProps and replaceProps from docs (#7044) 2016-06-14 22:13:26 -07:00
Toru Kobayashi
e8fa464d6f Remove setProps and replaceProps from src (#7045) 2016-06-14 22:11:37 -07:00
Jim
97d89fa5bf Move null-input-value-prop warning into devtool, add stack trace (#7040) 2016-06-14 16:34:38 -07:00
Paul O’Shannessy
6e8c2fb828 Revert "Remove setProps and replaceProps completely" (#7039) 2016-06-14 15:02:01 -07:00
Juan
b618b786a9 Update readme to latest React description (#7014)
* Update readme to latest React description

* Update readme to latest wordsmithing
2016-06-14 12:46:21 -07:00
Qin Junwen
a394ed6a6c Update 10.4-test-utils.md (#6971)
The find/scry methods which returns DOM component in react@0.13 now returns DOMElement in react@0.14 and later.
2016-06-14 14:09:20 -04:00
Robert Haritonov
4577db6d3c Add React Amsterdam conference to the list (#7028) 2016-06-14 11:02:13 -07:00
nhducit
eda159cd28 Update 03-interactivity-and-dynamic-uis.md (#7015) 2016-06-14 13:55:38 -04:00
Christoph Pojer
6b8db0e111 Add symbol to identify a ReactTestComponent instance. (#7035) 2016-06-13 22:50:28 -07:00
Ben Alpert
96d2a30c25 Wordsmith the homepage (#7022) 2016-06-13 12:40:18 -07:00
Ryo Shibayama
e487c36ec0 Fix Japanese/Italian/Korean tutorials (#7020)
* Fix japanese tutorial

* Fix Italian tutorial as same as e4fe662

* Fix Korean tutorial as same as e4fe662
2016-06-12 00:03:13 -07:00
Ben Alpert
c7868cc741 New marketing copy on homepage (#7012) 2016-06-10 19:47:23 -07:00
inkinworld
665633a1b7 Update 12-context.md (#6973)
Modify a clerical error
2016-06-10 11:52:10 -07:00
Dominic Gannaway
40f6d3eaca Performance: setTextContent should attempt to set TextNode nodeValue where possible (#7005) 2016-06-10 09:57:31 -07:00
Keyan Zhang
46cd6a0b62 pinned babylon version for eslint to work (#7008) 2016-06-09 16:14:44 -07:00
Jim
2282894d52 Remove console.log from test (#7006) 2016-06-09 09:24:03 -07:00
Jim
0bb0fe8d00 Fix controlled/uncontrolled validation for radio+checkbox inputs (#7003) 2016-06-09 07:58:42 -07:00
Toru Kobayashi
731e42998a Remove setProps and replaceProps completely (#6921) 2016-06-09 03:53:52 -07:00
ogom
9c7f895783 Updte tutorial to ja-JP (#6967) 2016-06-08 19:20:20 -07:00
Jim
f0b140d726 Fix IE11 placeholder textContent value bug. (#7002) 2016-06-08 18:58:37 -07:00
Brandon Dail
c47830d12c Warn if childContextType is defined on SFC (#6933)
Add console.error message content check

Use appropriate name in warning/test
2016-06-08 13:32:43 -07:00
Hiroyuki Wada
518336e2fb Fix #5839 Add error event to source element (#6941)
* Fix #5839 Add error event to source element

* Add test case for <source onError={callback}>
2016-06-08 13:30:27 -07:00
Josh Hunt
99d8524d23 Fix #6950, work around IE missing innerHTML on SVG nodes (#6982)
* Workaround IE lacking innerHTML on SVG elements

* Add tests for setInnerHTML

* Correctly check if node has innerHTML property

* Ensure tests for setInnerHTML actually tests both codepaths

* Provide mock element for setInnerHTML tests

* Only use SVG setInnerHTML workaround for SVG elements
2016-06-08 10:00:03 -07:00
Yusong Liu
5331323cd2 Fix the typo in the documentaion pages for shallowCompare (#6980)
* fix the typo for the docs of shallowCompare at:
https://facebook.github.io/react/docs/shallow-compare.html

* change "value" to "values" to match the two objects.
2016-06-07 23:09:50 -07:00
Sebastian Markbåge
0cafd83834 Merge pull request #6988 from sebmarkbage/newreconciler
[Fiber] Minimize abuse of .alternate
2016-06-07 18:42:18 -07:00
Timothy Yung
7988acaa95 Improve error message for components in bad states (missing instance) (#6990) 2016-06-07 17:23:40 -07:00
Keyan Zhang
1abce1630c Add reactProdInvariant and corresponding babel rewrite pass (#6948) 2016-06-07 17:11:04 -07:00
Sebastian Markbage
40180c4b26 Get rid of ugly and difficult to follow breaks in switch
Because pattern matching or something.
2016-06-07 17:05:25 -07:00
Sebastian Markbage
c83a0428f1 Minimize abuse of .alternate
This avoids using .alternate as much as possible and isolates it
to the root. For anything that is "work in progress" this happens
to be the same as the alternate field. To avoid an extra "current"
field on work in progress fibers, we can just use the alternate.

The timing for when this is true might be a bit tricky to reason
about so I explicitly pass the current value everywhere from the
top. That way we can always change this in the future to use an
explicit field or we can try to maintain a parallel data
structure that remembers which was the "current" fiber for each
wip child.
2016-06-07 15:03:32 -07:00
Sebastian Markbåge
ccd26ee020 Merge pull request #6981 from sebmarkbage/newreconciler
[Fiber] Add support for simple updates and fiber pooling
2016-06-07 14:30:07 -07:00
Sebastian Markbage
3a32d2642f Rename unitOfWork -> workInProgress
These values represent fibers that are incomplete. In the current
model they're mutated in place. In a completely immutable model
they would need to be cloned for every step they make progress.
I.e. one where the child is still in this WIP state and one when
it is complete.

To clarify this I'll name them workInProgress while they're in
that state, which is also what Jordan did in his prototype.
2016-06-07 13:49:12 -07:00
Sebastian Markbage
cce58ffd62 Simple updates using alternate fibers
This splits the Fiber type into Fiber and Instance. This could be
two different object instances to save memory. However, to avoid
GC thrash I merge them into one.

When ReactChildFiber reconciles children, it clones the previous
fiber. This creates a new tree for work-in-progress. The idea is
that once flushed, this new tree will be used at the root.

However, we know that we'll never need more than two trees
at a time. Therefore my clone function stores the clone on the
original. Effectively this creates a fiber pool.

Ideally, the .alternate field shouldn't be used outside of clone
so that everything can work with pure immutability. I cheat a bit
for now so I don't have to pass both trees everywhere.

ReactChildFiber is a bit hacky for reuse and doesn't solve all
cases. Will fix that once I try to get parity.
2016-06-07 13:49:11 -07:00
Jim
eb705d1448 Fix autofocus for input and textarea (#6986) 2016-06-07 12:50:37 -07:00
Dan Abramov
d101f68bce Tweak ReactPerf warning message and code style (#6977) 2016-06-06 20:59:28 +02:00
Ben Alpert
8c60aaf430 Revert "Fallback to legacy set/get in old versions of FF" (#6976) 2016-06-06 11:49:43 -07:00
Alexander
2a46103ac8 Warn that ReactPerf does not work in the production build (#6884)
Fixes #6871
2016-06-06 20:46:57 +02:00
Dan Abramov
afe483790b Revert "Warn that ReactPerf does not work in the production build (#6884, #6975)"
This reverts commit f71dfbcbf0.

Reverting because GitHub stripped the original PR author.
2016-06-06 19:44:40 +01:00
Dan Abramov
f71dfbcbf0 Warn that ReactPerf does not work in the production build (#6884, #6975)
Fixes #6871
2016-06-06 20:37:46 +02:00
Keyan Zhang
cf73de9459 [Docs] Error Decoder Page (#6946) 2016-06-04 14:43:56 -07:00
Ben Alpert
3c3c30a19a Fix function declaration in if statement (#6963)
Firefox doesn't like these and throws.
2016-06-04 13:37:57 -07:00
Keyan Zhang
96994c20b8 added instruction for downloading babel-browser (#6960) 2016-06-03 15:43:32 -07:00
Ben Alpert
1801d56500 Use remarkable instead of marked (#6961)
https://github.com/reactjs/react-tutorial/issues/139
2016-06-03 14:41:38 -07:00
Keyan Zhang
c9eb572a6f Fix null node issue in ReactCSSTransitionGroup (#6958) 2016-06-03 13:42:45 -07:00
Paul O’Shannessy
d3b36d5524 Merge pull request #6957 from zpao/flow026
Upgrade Flow
2016-06-03 13:17:15 -07:00
Paul O’Shannessy
dd093faadf Add <any> type args for ReactElement,Class,Component 2016-06-03 13:13:20 -07:00
Paul O’Shannessy
2efc7186fe Fix $FlowFixMe broken by comment spanning multiple lines 2016-06-03 13:13:19 -07:00
Paul O’Shannessy
36d1a271c4 Upgrade to flow 0.26 & match internal config with strict args
Also ignore examples, important because react can be installed by the commonjs
one and the modules will get detected there too, resulting in duplicate
definitions
2016-06-03 13:12:47 -07:00
Daniel Rosenwasser
6b3f11cdd7 Update link and description of TypeScript support. (#6953) 2016-06-03 10:27:39 -07:00
Andrew Imm
8216125d82 Fallback to legacy set/get in old versions of FF (#6930) 2016-06-02 11:35:21 -07:00
Sasha Aickin
d6e70586b7 Replace the implementation of escapeTextContentForBrowser with escape-html (#6862)
* Replacing the implementation of escapeTextContentForBrowser with escape-html for performance

* Addressing @spicyj's code review comment here: https://github.com/facebook/react/pull/6862#issuecomment-223102868 . Pulled the code of escape-html in to react and changed the encoding of single quote to &#x27.

* Addressing code review comment https://github.com/facebook/react/pull/6862#discussion_r65462074 to make code more inlinable for v8. Thanks, @spicyj.
2016-06-01 17:14:30 -07:00
Ben Alpert
9498747606 Remove Flux from docs nav (#6945)
Most people don't use the official Flux implementation or docs so I think this is likely to be more confusing than helpful. Maybe later we can add a better comparison of data management solutions.
2016-06-01 11:41:35 -07:00
Keyan Zhang
bfd1531eca Add a gulp script for extracting error codes (#6882) 2016-06-01 11:21:26 -07:00
Ben Alpert
50982cea99 Add rudimentary test renderer (#6944) 2016-06-01 11:17:10 -07:00
Jim
51f8b1b40c Remove css px warning, stop appending px to strings (#6899) 2016-05-31 14:32:27 -07:00
Sebastian Markbåge
dc5686a42f Merge pull request #6931 from sebmarkbage/newreconciler
[Fiber] Simple test assertions
2016-05-31 14:20:18 -07:00
Sebastian Markbage
8056fbc2c9 [Fiber] Simple test assertions
I'll split the coroutine and incremental testing into their own
tests so that I can expand them with more edge cases.
2016-05-31 13:52:28 -07:00
Sebastian Markbåge
7de23758f1 Merge pull request #6903 from sebmarkbage/newreconciler
[Fiber] Transfer everything from Element onto the Fiber and use Tag instead of Stage
2016-05-31 13:39:59 -07:00
Sebastian Markbage
811084d74e Use the tag instead of stage field for coroutine stages
This gets rid of a field that we only need for coroutines.

We might need this if we have multi phase handlers in the future
but then maybe we can just use multiple tags.
2016-05-31 13:34:19 -07:00
Sebastian Markbage
aa14d89c7d Transfer everything from Element onto the Fiber
This has a few benefits:

1) This allows the element to always remain on the young generation.
2) The key can be accessed on the fiber which is easier to keep as the
same class and is directly accessible in the child reconciliation of every
object.
3) This conveniently means that we don't have to create a fake element for
continuations which was really hacky.

We can still do the quick bailout of rerendered things using the props
object which is also unique.
2016-05-31 13:34:19 -07:00
hjmoss
4e82e8b6e6 Grammar: less dependencies -> fewer dependencies (#6917)
* Grammar: less dependencies -> fewer dependencies

* changelog.md grammar: less dependencies -> fewer dependencies
2016-05-31 09:17:13 -07:00
Toru Kobayashi
97b44085ff Remove getDOMNode from docs (#6919) 2016-05-30 09:16:15 -07:00
Alex Jacobs
29ed7c6c8c Fix minor lint warnings (#6909) 2016-05-28 22:04:32 +01:00
Ben Alpert
e62384bca4 Fix style test for Jasmine 2 (#6913) 2016-05-28 12:58:08 -07:00
Nate Norberg
38900cc7ca Added more specific warning for using onDblClick instead of onDoubleClick (#6881) 2016-05-27 15:23:05 -07:00
Jim
ba3bfe3e31 Followup to 6896, add explanation of workaround. (#6905) 2016-05-27 09:19:25 -07:00
Bruce Harris
f329099831 Update tutorial with reference to autobinding docs (#6870)
* Update tutorial with reference to autobinding docs

* Update tutorial to clarify that autobinding happens specifically with createClass() API
2016-05-27 04:07:00 -07:00
Paul O’Shannessy
d87005e0b6 [docs] Use existing layout for redirecting html-jsx (#6904) 2016-05-26 23:50:55 -07:00
Ilya Gelman
b0cb4e850d Add ReactNext 2016 conference (#6833) 2016-05-26 23:43:00 -07:00
Daniel Lo Nigro
871116f001 Move HTMLtoJSX page off React site. References https://github.com/reactjs/react-magic/issues/52 (#6608) 2016-05-26 23:39:28 -07:00
Daniel Lo Nigro
d81f3297aa Add link to ReactJS.NET on server-side environments page (#6607) 2016-05-26 23:36:56 -07:00
Keyan Zhang
c8bab76091 switched to codemirror's jsx mode (#6898) 2016-05-26 23:33:04 -07:00
Paul O’Shannessy
5c6f9d31bd Merge pull request #6677 from zpao/dont-warn-css-0-string
Don't warn when style value is '0'
2016-05-26 20:05:32 -07:00
Sebastian Markbåge
0f4a4df12e Merge pull request #6859 from sebmarkbage/newreconciler
[Fiber] Child Reconciler + New Coroutines Primitive
2016-05-26 18:21:08 -07:00
Sebastian Markbage
fd4f74ef95 Coroutines 2016-05-26 18:13:21 -07:00
Sebastian Markbage
7c8a090994 Child Fiber 2016-05-26 17:27:19 -07:00
Robin Berjon
263615573c Stop passing null as second argument to document.createElement() (#6896)
* Stop passing null as second argument to document.createElement()

* rewrap check for props.is to make it more readable
2016-05-26 21:51:15 +01:00
Dan Abramov
ca5a0dad16 Merge pull request #6886 from Weizenlol/patch-1
Added own property check when deleting listeners.
2016-05-26 21:14:50 +01:00
Dan Abramov
1d3aceb6c3 Merge pull request #6890 from grgur/patch-1
Added React Europe 2015 videos
2016-05-26 13:50:55 +01:00
Grgur Grisogono
c5d4978f23 Added React Europe 2015 videos
Linking to the official channel that contains separate playlists for Day 1, Day 2, and Lightning talks
2016-05-26 14:29:48 +02:00
Weizenlol
b1882f870a Added own property check when deleting listeners.
React crash when default object prototype is modified.
2016-05-26 11:30:36 +03:00
Dan Abramov
2d74280679 Merge pull request #6880 from gaearon/clone-key-ref-props-2
Fix issues introduced by createElement() warning
2016-05-26 01:41:24 +01:00
Dan Abramov
58c9fda946 Inline expectations in tests as they are used once 2016-05-26 01:29:54 +01:00
Dan Abramov
55a0e4bf80 Infer displayName in more cases for props.ref/key warning 2016-05-26 01:21:28 +01:00
Ben Alpert
21d271f6d0 Warn when element is missing in devtool (#6869) 2016-05-25 17:11:57 -07:00
Dan Abramov
919eba3c99 Correctly check that element and props are frozen
This fixes an incorrect way of checking introduced in 95373ce769 (it had no effect).
2016-05-26 01:08:29 +01:00
Dan Abramov
a432afa750 Ignore specifically React warning getter in ReactElement
We don’t want to have different behavior in development and production.
Previously, we used to ignore getters on key/ref in dev, but we’d read them in prod.
Now, we only ignore the getters that we *know* we created so the production logic doesn’t differ.
2016-05-26 01:01:15 +01:00
Dan Abramov
e822cbd183 Make sure cloneElement() supports prototype-less config (#6878)
This brings createElement() fix from #6855 to cloneElement().
2016-05-26 00:37:18 +01:00
Dan Abramov
d9ae319821 Move tests concerned with cloning into ReactElementClone-test 2016-05-26 00:27:57 +01:00
Dan Abramov
c77411b1af Short-circuit the check just for getters
This way in other cases both DEV and PROD falls through to the check for undefined.
This fixes #6879 and a similar bug introduced for cloneElement() in 94d0dc68c8.
2016-05-26 00:21:18 +01:00
Dan Abramov
1b802fbd65 Add a test verifying undefined key and ref are ignored
It currently fails in `createElement` because of #6879 which was introduced in #5744.
It also fails in `cloneElement` because the code with that bug was extracted and shared in 94d0dc68c8.
2016-05-26 00:10:10 +01:00
Dan Abramov
15cd66b91b Tweak whitespace 2016-05-25 23:21:29 +01:00
Dan Abramov
f846edcbea Remove indirection when determining valid config and ref 2016-05-25 23:17:20 +01:00
Eric Matthys
94d0dc68c8 Do not clone key and ref getters 2016-05-25 23:02:56 +01:00
Andrew Clark
d7ced68dce Clarify that string refs are considered legacy. (#6692) 2016-05-25 22:47:34 +01:00
Ben Alpert
eb050727ee Revert "Update shallowCompare to accept nextContext" (#6877) 2016-05-25 14:37:48 -07:00
Dan Abramov
c0ecde687a Merge pull request #6872 from gaearon/jest-cli@12
Update to Jest 12.1.1 and Jasmine 2
2016-05-25 22:07:50 +01:00
Dan Abramov
5c509b150d Update Jasmine 2 PR with changes from master 2016-05-25 21:55:35 +01:00
Dan Abramov
9c22ef7e50 Update jest bin command 2016-05-25 21:49:32 +01:00
Dmitrii Abramov
00bc8ceaad jest@12.1.1 2016-05-25 21:49:31 +01:00
Dmitrii Abramov
5d332f22b4 ReactClassEquivalence 2016-05-25 21:49:31 +01:00
Dmitrii Abramov
517ed859b4 Upgrade to Jasmine 2 2016-05-25 21:48:32 +01:00
Paul O’Shannessy
d8a0b9a662 Upgrade to jest-cli@0.9 and use Jasmine2 2016-05-25 21:48:32 +01:00
Ben Alpert
510155e027 Fix instrumentation in shallow rendering (#6867)
Previously, this threw:

```
 FAIL  src/test/__tests__/ReactTestUtils-test.js (7.291s)
● ReactTestUtils › it can fail context when shallowly rendering
  - TypeError: Cannot read property '_source' of null
        at describeID (src/renderers/shared/devtools/ReactComponentTreeDevtool.js:70:46)
        at Object.ReactComponentTreeDevtool.getStackAddendumByID (src/renderers/shared/devtools/ReactComponentTreeDevtool.js:203:15)
        at checkReactTypeSpec (src/isomorphic/classic/types/checkReactTypeSpec.js:76:58)
        at ReactCompositeComponentMixin._checkContextTypes (src/renderers/shared/stack/reconciler/ReactCompositeComponent.js:668:5)
        at ReactCompositeComponentMixin._processContext (src/renderers/shared/stack/reconciler/ReactCompositeComponent.js:607:14)
        at ReactCompositeComponentMixin.mountComponent (src/renderers/shared/stack/reconciler/ReactCompositeComponent.js:191:30)
        at ReactShallowRenderer._render (src/test/ReactTestUtils.js:483:14)
        at _batchedRender (src/test/ReactTestUtils.js:460:12)
        at ReactDefaultBatchingStrategyTransaction.Mixin.perform (src/shared/utils/Transaction.js:140:20)
        at Object.ReactDefaultBatchingStrategy.batchedUpdates (src/renderers/shared/stack/reconciler/ReactDefaultBatchingStrategy.js:65:19)
        at Object.batchedUpdates (src/renderers/shared/stack/reconciler/ReactUpdates.js:112:20)
        at ReactShallowRenderer.render (src/test/ReactTestUtils.js:453:16)
        at Spec.eval (src/test/__tests__/ReactTestUtils-test.js:289:34)
        at jasmine.Block.execute (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:1067:17)
        at jasmine.Queue.next_ (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2100:31)
        at jasmine.Queue.start (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2053:8)
        at Spec.jasmine.Spec.execute (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2380:14)
        at jasmine.Queue.next_ (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2100:31)
        at onComplete (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2096:18)
        at Spec.jasmine.Spec.finish (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2354:5)
        at eval [as onComplete] (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2381:10)
        at jasmine.Queue.next_ (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2110:14)
        at eval (node_modules/jest-jasmine1/vendor/jasmine-1.3.0.js:2090:18)
        at Timeout.e [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:440:19)
        at tryOnTimeout (timers.js:224:11)
        at Timer.listOnTimeout (timers.js:198:5)
```
2016-05-25 09:46:50 -07:00
Dan Abramov
8d7161e004 Don't count the time inside flushes towards lifecycle hooks (#6860)
* Don't count the time inside flushes towards lifecycle hooks

Fixes #6842.

We keep the existing behavior of testing for matching `onBeginLifeCycleTimer`/`onEndLifeCycleTimer` calls, but we push the current timer onto the stack if we enter a flush.
This solves an issue with portals which cause updates while a lifecycle timer is already running.

I chose to subtract the time spent in the flush from the time counted towards the lifecycle method because it would artificially inflate the “total” time of the component due to all the components inside the portal, so it would skew the exclusive table.

* Fix up the comment
2016-05-25 17:39:05 +01:00
Jim
de1de9e18f Add warning for unknown properties. (#6800) 2016-05-25 06:58:41 -07:00
Jim
4338c8db4b Properly set value and defaultValue for input and textarea (#6406)
* Have `defaultValue` reach DOM node for html input box for #4618

* Cleanup and bug fixes for merge.
2016-05-24 18:28:01 -07:00
Ben Alpert
cb4a0af7dd Remove unknown props in ART (#6861) 2016-05-24 17:04:18 -07:00
Ben Alpert
531a6b3265 Merge pull request #6775 from spicyj/fix-art
Copy React ART tests and add hacks to fix them
2016-05-24 16:47:54 -07:00
Ben Alpert
769ab715c2 Fix ART after Native -> Host rename 2016-05-24 16:44:33 -07:00
Ben Alpert
7ecff6a437 Add hacks to make React ART not warn from devtools 2016-05-24 16:44:33 -07:00
Ben Alpert
5cbb68258b Add (failing) React ART tests
This helps us make sure we don't break React ART in a minor or patch release. The idea is to not change these files when making minor or patch changes. Copied directly from react-art with requires fixed. (I also picked a different haste name just in case.)
2016-05-24 16:44:33 -07:00
Dan Abramov
9ba5668d18 Fix componentWillUnmount() not counted by ReactPerf (#6858)
* Fix componentWillUnmount() not counted by ReactPerf

* Test that functional component render() time shows up in ReactPerf

* Test for setState() code path updates being included
2016-05-24 20:50:08 +01:00
Alex Zherdev
6a101b6c10 Context docs updated with ES6 examples (#6852) 2016-05-24 11:27:38 -07:00
Ben Alpert
43b63995a8 Point people to prod build in perf docs (#6857) 2016-05-24 11:08:51 -07:00
Ali Taheri Moghaddar
c313baa0ca Avoid directly calling hasOwnProperty (#6855)
* Avoid directly calling hasOwnProperty

* Fix failing test case
2016-05-24 18:55:51 +01:00
Ben Alpert
fe2002c3d8 Add test to ensure 'undefined' children is used (#6853) 2016-05-23 17:22:05 -07:00
Keyan Zhang
db6ac5c01c Extract the type checker into a separate module (#6851)
The type checker is now a separate module under `isomorphic/classic/types`
2016-05-23 17:12:13 -07:00
Jim
799eae2faf Removed unnecessary null check (#6841) 2016-05-23 11:25:02 -07:00
Keyan Zhang
c136369a81 Remove prop types checking in ReactCompositeComponent (#6824)
Remove prop types checking in ReactCompositeComponent
2016-05-23 11:13:09 -07:00
Vedat Mahir YILMAZ
c7ef0af54b Interactivity and Dynamic UIs Docs page updated with ES6 Example (#6832)
* Interactivity and Dynamic UIs Pages ES6 Example

* Change bind handler
2016-05-22 02:32:14 -07:00
Rui Araújo
d955ee9fae Move ReactElementValidator to __DEV__ block (#6830)
It saves some more bytes in production mode.
2016-05-22 02:01:21 -07:00
Roderick Hsiao
fd589fc8dd Support onLoad event on link element (#6815) 2016-05-20 17:12:00 -07:00
Paul O’Shannessy
09075f8bab Update website for 15.1.0
(cherry picked from commit 7842c19934)
2016-05-20 16:34:56 -07:00
Paul O’Shannessy
015833e594 Update readme for 15.1.0
(cherry picked from commit b7d480986a)
2016-05-20 16:34:56 -07:00
Paul O’Shannessy
619b3e8509 Changelog for 15.1.0
(cherry picked from commit bca912f91e)
2016-05-20 16:34:56 -07:00
Keyan Zhang
47e49ae8b7 Add component stack info to key validation warnings (#6799)
* Add component stack info to key validation warnings

* Add `ReactComponentTreeDevtool.getStackAddendumByID`
2016-05-20 14:19:31 -07:00
Paul O’Shannessy
6a3e9d583b Merge pull request #6804 from dmitriiabramov/update_typescript
Update typescript
2016-05-20 11:09:27 -07:00
Keyan Zhang
e1e34274f6 Merge pull request #6814 from Ivanwangcy/master
Update 03-interactivity-and-dynamic-uis.zh-CN.md
2016-05-20 00:26:53 -07:00
Ivan
c36f5a087f Update 03-interactivity-and-dynamic-uis.zh-CN.md 2016-05-20 14:25:07 +08:00
hao.huang
09fdd1d578 Add permalink (#6813)
Add permalink to this doc,so we can access with 'prev' and 'next'
2016-05-19 19:54:42 -07:00
Dmitrii Abramov
efb6d80e60 match jest.d.ts by regex 2016-05-19 19:24:40 -07:00
chico
655ac0f0dd update typescript 2016-05-19 19:24:40 -07:00
Ben Berman
eda08d9656 Minor comment typo (#6808) 2016-05-19 14:21:59 -07:00
Dan Abramov
d1256825bc Merge pull request #6801 from iamdustan/instrumentation-to-shared
Move instrumentation to renderers/shared. Closes #6797
2016-05-19 13:24:06 +01:00
Dustan Kasten
d51981eeea Move instrumentation to renderers/shared. Closes #6797 2016-05-18 22:34:09 -04:00
Tony Rossi
8ea1cf4ee0 Update shallowCompare to accept nextContext (#6661)
* Update shallowCompare to accept nextContext

Across our application we are using immutable objects as properties and thus using shallowCompare for all our {{shouldComponentUpdate}}.  Because of this children with contextTypes don't get updates when the context on the parent changes.  Adding an additional comparison for context (when it is provided) fixes this problem.

* Remove the undefined check

* Add nextContext
2016-05-17 16:50:23 -07:00
Dan Abramov
7f08961604 Merge pull request #6789 from gaearon/tree-devtool-fixes
Make sure element is reported correctly by tree devtool
2016-05-17 23:34:58 +01:00
Dan Abramov
1070b4aa6c Make sure element is reported correctly by tree devtool
This adds some tests for getElement() and verifies that it works for text components too.
The code that calls the instrumentation is fixed where necessary so that the tests pass.
2016-05-17 23:07:35 +01:00
Jim
2e881aa4b4 Fire unknown prop warning when rendering client side. (#6693) 2016-05-17 15:06:31 -07:00
Dan Abramov
4ab203cd73 Test that elements are tracked by tree devtool
The test is currently failing because text elements are not reported in some cases.
2016-05-17 22:16:53 +01:00
Dan Abramov
503cbd3356 Merge pull request #6787 from gaearon/tree-devtool-test-tweaks
Refactor ReactComponentTreeDevtool test
2016-05-17 21:15:49 +01:00
Dan Abramov
9301cfbc80 Refactor ReactComponentTreeDevtool test
We extract common logic between DOM and native tests so they don't diverge.

Also, rather than build a tree object in advance for testing, we will walk the tree on the go.
This lets us have much more specific error messages with a clear path when something goes wrong.
2016-05-17 20:51:00 +01:00
David Aurelio
151e1d7014 Require modules from React Native as node modules. (#6715) 2016-05-16 13:03:38 -07:00
Ben Alpert
6afd51061a Embed JSX filename paths relative to repo root (#6778)
Test Plan: Changed the preprocessor to log the output of babel.transform and saw

```
var _jsxFileName = 'src/isomorphic/modern/element/__tests__/ReactJSXElementValidator-test.js';
```

in the resulting output, instead of an absolute path.
2016-05-16 11:15:12 -07:00
Sebastian McKenzie
3703b63a11 Remove unnecessary require causing excess memory usage (#6781) 2016-05-16 08:52:05 -07:00
Rachel D. Cartwright
207fe0b478 make test utils format consistent (#6777) 2016-05-15 13:46:03 -07:00
Ben Alpert
378c879a6a Show component stack in PropTypes warnings (#6771) 2016-05-14 17:40:39 -07:00
Ben Alpert
3cc733add4 Fix severe perf problems in component tree devtool (#6770)
One of the ReactMultiChildText tests renders 2145 roots (and even more components) and unmounts none of them. Now we don't loop through them all a bunch of times so the test takes 20 seconds instead of 60.

We should clean up instantiateReactComponent somehow so that the onSetDisplayName call isn't produced for the TopLevelWrapper, which should allow us to just store an array of unmountedIDs instead of a hash map so we at least don't have double maps. This change mirrors the old logic though.

Reviewers: @gaearon, @sebmarkbage
2016-05-14 12:13:48 -07:00
Ben Alpert
5b5bd5eb75 Print stack in devtool exception warning (#6768) 2016-05-14 12:12:19 -07:00
Ben Alpert
03f4ba260b Track source more generically in ReactComponentTreeDevtool (#6765)
Being able to get the source for your parent components seems useful, and ReactComponentTreeDevtool is best poised to be able to do that.

I'm also not sure it makes sense to have separate DOM-specific `onMountDOMComponent` and `onUpdateDOMComponent` events, so I removed them for now. Even if we want them, their timing seemed sort of arbitrary.

I also made it so DOM devtools can listen to non-DOM events too. Willing to change that if people think it's ugly though.
2016-05-14 12:12:12 -07:00
Ben Alpert
c0007d56e9 Interleave trials in benchmark script
This should be more of a fair A/B test so the timings aren't affected by having different load on your system when testing the two alternatives.
2016-05-14 12:04:25 -07:00
Ben Alpert
cab835d3a0 Make benchmark script work in React 15 2016-05-14 12:03:51 -07:00
Nima Jahanshahi
32c750de5c Fixed an invalid escape char in attribute name regexp (#6772)
more info: https://www.w3.org/TR/xml/#NT-Name
2016-05-14 10:10:30 -07:00
Dan Abramov
74cce27fe0 Merge pull request #6767 from gaearon/fix-broken-master
Fix remaining onNativeOperation => onHostOperation rename
2016-05-14 01:47:31 +01:00
Dan Abramov
dea7cafd9d Fix remaining onNativeOperation → onHostOperation rename
We renamed it in #6754 but #6748 got merged after that referencing the old name.
2016-05-14 01:09:53 +01:00
Dan Abramov
5569d1d40e Merge pull request #6763 from nfcampos/is-running
added isProfiling() to ReactDebugTool and isRunning() to PerfTools
2016-05-13 20:50:38 +01:00
Nuno Campos
5b93a2bdbe added tests for repeated calls to ReactPerf.start/stop 2016-05-13 20:28:14 +01:00
Nuno Campos
201d03268e changed test 2016-05-13 08:24:25 +01:00
Ben Alpert
20bcabb1ea Remove some dead code (#6764) 2016-05-12 17:10:18 -07:00
Chad Fawcett
5d64199bb6 Add information on JSX element keys (#6751) 2016-05-12 17:02:07 -07:00
Dmitriy Kubyshkin
0e889d7c72 Fixed removing attributes during custom element update. Fixes #6747 (#6748) 2016-05-12 17:00:04 -07:00
Nuno Campos
a027d15aff added isProfiling() to ReactDebugTool and isRunning() to PerfTools 2016-05-12 19:27:05 +01:00
hao.huang
92bebcad5f Add permalink (#6713)
Add permalink to docs, so we can access with 'prev' and 'next'
2016-05-12 08:57:45 -07:00
djskinner
712b1f75bf Refer to correct example (#6760)
I *think* this should refer to the second example, where the instance to the ref is stored. In any case please can someone confirm for my own understanding?
2016-05-12 07:49:02 -07:00
Ben Alpert
ba9b985406 Rename host-y things to be "host" not "native" (#6754)
For clarity.

I left "native event" as-is because there's a lot of it, it's not particularly ambiguous, and SimulateNative/nativeTouchData are public API in ReactTestUtils.
2016-05-11 23:22:59 -07:00
Dan Abramov
de1bb7a71f Merge pull request #6753 from facebook/fix-6750
Fix a memory leak in ReactComponentTreeDevtool
2016-05-12 03:41:55 +01:00
Dan Abramov
3779a5d18c Fix a memory leak in ReactComponentTreeDevtool
`ReactDebugTool` used to only call `purgeUnmountedComponents()` while profiling, so information about unmounted instances kept accumulating when not profiling.

Additionally, unmounting in React Native and rendering to string did not correctly clean up the devtool.

Finally, the tests tested the wrong behavior and relied on explicit `purgeUnmountedComponent()` calls.

To fix this, we:

* Test specifically that unmounting is enough to clean up the tree devtool.
* Add missing `onBeginFlush` and `onEndFlush` calls to server and native rendering so `ReactDebugTool` knows when to copy the tree.

Fixes #6750
2016-05-12 03:19:55 +01:00
Dan Abramov
027d9a919b Merge pull request #6752 from facebook/fix-6742
Fix ReactPerf.printOperations() crash
2016-05-12 02:59:46 +01:00
Dan Abramov
9cebc26638 Fix a failing test and count IDs from one 2016-05-12 02:45:09 +01:00
Dan Abramov
f0594d2792 Remove the protective clause that is now unnecessary
Instead, we fixed the callsites to stop emitting events for empty components.
2016-05-12 00:50:18 +01:00
Dan Abramov
d80723b237 Check for missing debugID in ReactDebugTool
TopLevelWrapper and empty components have ID of 0.
These are implementation details and we don't want to leak them to devtools.
2016-05-12 00:45:07 +01:00
Dan Abramov
1559111bf9 Switching between null and a native should not be counted as a waste 2016-05-12 00:05:32 +01:00
Dan Abramov
0cd1d3b5a2 Allow empty components in the native operation logs
Fixes #6742
2016-05-11 23:31:50 +01:00
Marshall Bowers
6b1232aa86 Add basic issue and PR templates (#6597)
Issue template adapted from the Angular template, and PR template
adapted from the PR guidelines in CONTRIBUTING.md.
2016-05-11 15:30:25 -07:00
Dan Abramov
c8a7988bf9 Add a failing test case for #6742
getOperations() blows up when replacing null with a native because the null component has debugID of 0 that isn’t registered in the component tree.
2016-05-11 23:27:48 +01:00
Jarrod Mosen
01b060d7dc Fix grammar on homepage (#6746)
* Fix grammar in README

* Change DOM abstraction grammar on homepage
2016-05-11 15:03:05 -07:00
yiminghe
b11540ccb2 consistent owner for stateless component (#6534) 2016-05-10 22:21:16 -07:00
Sebastian Markbåge
cf157886e9 React Fiber Reconciler (#6690)
This is an outline for the new reconciler infrastructure.

I created a noop renderer to have something to get started from.

I split the reconciler folder into old and new, as well as shared.
I put shouldUpdateReactComponent in shared as an example of a
utility that can easily be shared between both. I plan on breaking
out more utilities like these.
2016-05-10 18:24:57 -07:00
Sebastian Markbåge
069f8099d6 Fix flow errors (#6719)
The new flow somehow found these on my machine but nowhere else
and not previously.
2016-05-10 11:56:32 -07:00
Ben Alpert
98cb2f8507 Revert "Don't wrap drag events in IE/Edge in dev builds" (#6741) 2016-05-10 10:58:35 -07:00
Dan Abramov
7bf96c08e6 Merge pull request #6377 from puradox/proptypes-symbol
Add new primitive PropType `Symbol`
2016-05-10 15:09:12 +01:00
Bradford
25be6dc027 fix minor capitalzation typo (#6736) 2016-05-09 21:41:40 -07:00
Dan Abramov
c3d52d8ec1 Fix zh-TW permalink 2016-05-10 02:21:10 +01:00
Dan Abramov
a95494d635 Fix ru-RU doc page permalinks
Fixes #6735
2016-05-10 01:39:15 +01:00
yiminghe
904ee9a678 allow to ignore value attribute for option (#5362) 2016-05-09 09:22:50 -07:00
Dan Abramov
982e096eb5 Merge pull request #6730 from elas7/fix-docs
[docs] Remove mention of 'nested object' as an allowed children in React.Children.map
2016-05-09 02:35:48 +01:00
Seba
46e658711e [docs] add link to create-fragment from React.Children.map docs 2016-05-08 22:12:07 -03:00
Seba
2fa52f375b [docs] Remove mention of 'nested object' as an allowed children in React.Children.map
Replace it with 'keyed fragment', since ReactFragments were made a replecement for Objects as allowed children in #4700
2016-05-08 21:26:40 -03:00
Yaxian
9ddf9e137e refine the translation of chapter 12-context (#6665) 2016-05-07 09:47:38 -07:00
Jim
96cb8c5fc4 Basic SSR support for error boundaries (#6694) 2016-05-06 16:54:06 -07:00
Sebastian Markbåge
700b7148ef Get patch versions of Flow (#6716)
Best practice or whatever.
2016-05-06 14:48:56 -07:00
Ben Alpert
82ab58ea03 Disable coverage on Travis (#6712) 2016-05-05 17:14:26 -07:00
Paul O’Shannessy
873369cc7c Cleanup: remove @nolint (#6703) 2016-05-05 16:12:17 -07:00
Andreas Svensson
2af4765a2a DOMLazyTree, populate <object> before insertion into DOM (#6691) 2016-05-05 15:12:11 -07:00
Ben Alpert
e01bf78a79 Move dev-only flags to only exist on composites (#6709)
_isOwnerNecessary was unused.
2016-05-05 15:07:04 -07:00
Dan Abramov
b6a6078167 Merge pull request #6647 from gaearon/bye-bye-reactperf
Replace ReactPerf with new implementation
2016-05-05 02:57:13 +01:00
Jay Phelps
fbe900265f [DOCS] ReactTextComponent was renamed ReactDOMTextComponent a while ago (#6700) 2016-05-04 14:44:53 -07:00
Dan Abramov
590ee490f9 Merge pull request #6696 from dotu/patch-3
Create 03-interactivity-and-dynamic-uis.ru-RU.md
2016-05-04 20:22:50 +01:00
Andrey Safronov
bbaf02950e Update 03-interactivity-and-dynamic-uis.ru-RU.md 2016-05-04 22:53:39 +04:00
Andrey Safronov
afc032b0a0 Update 03-interactivity-and-dynamic-uis.ru-RU.md
надо ли менять в заголовках слова "помещать в состояние" на "хранить в состоянии" ?
2016-05-04 19:04:26 +04:00
Keyan Zhang
9ce54210ea fixed transform-react-jsx-source devDep (#6697) 2016-05-03 23:50:27 -07:00
Andrey Safronov
dc60780d49 Create 03-interactivity-and-dynamic-uis.ru-RU.md 2016-05-04 10:01:40 +04:00
Paul O’Shannessy
c9504d99a5 Setup grunt flow task and run on travis (#6684) 2016-05-03 18:16:38 -07:00
Troy DeMonbreun
7cf61db257 Fix for #6062 : Show source line number on unknown property warning (#6398)
* New approach for 6062 fix : Show source line number on unknown property warning

* WIP: ReactDebugToolEventForwarderDevTool

* Update event signature to debugID

* Trigger events in ReactDOMComponent

* Renamed to onMountDOMComponent; passing in element directly

* Added debugID; updated simple test

* Added test for multi-div JSX to ref exact line

* Added test for composite component
2016-05-03 15:51:07 -07:00
Paul O’Shannessy
f25a88e965 grunt jest tasks shouldn't use watchman (#6675) 2016-05-03 14:39:11 -07:00
Sebastian Markbåge
771d938fc0 Set up Flow - Yay! (#6682)
This just configures flow to be checked and fixes our existing
Flow typed files.

Possible enhancements:

Export .js.flow declarations from the build. Unclear whether this
will be a supported workflow in the future or not, so let's wait
on that.

We should fail builds and CI on Flow errors.

Ideally we should lint for Flow style guides (like no space before
colon).
2016-05-03 14:37:13 -07:00
Paul O’Shannessy
48f4684b5f Ensure babelrc gets added to zipfile too (#6688) 2016-05-03 13:58:06 -07:00
Kevin Suttle
3370db14bb Fix broken link to TypeScript docs (#6687) 2016-05-03 10:56:01 -07:00
Pieter De Baets
760b1ef4c3 Remove some mocks that are already packaged by InitializeJavaScriptAppEngine (#6642) 2016-05-03 16:46:51 +01:00
Dan Abramov
82e363c464 Fix displayName in ReactPerf.getInclusive() output 2016-05-03 14:21:30 +01:00
Dan Abramov
7b241d1d7f Add tests and fix wasted render calculation 2016-05-03 14:21:30 +01:00
Dan Abramov
bc241bfcfe Add getUpdateCount() to ReactComponentTreeDevtool
It is necessary to exclude just mounted components from wasted calculation.
2016-05-03 14:21:30 +01:00
Dan Abramov
e187affcaf Make stats less noisy for top-level components 2016-05-03 14:21:29 +01:00
Dan Abramov
abe9a0ce94 Ignore lifecycle events outside batches
Technically this shouldn't happen but it seems possible with ReactNativeMount.unmountComponentAtNode().
For now, let's just ignore these lifecycle events because ReactPerf makes a hard assumption that all lifecycle hooks happen inside batches.
We can revisit later when we have a comprehensive test suite for ReactPerf itself.
2016-05-03 14:21:29 +01:00
Dan Abramov
8b9b79eb6b Fix incorrect onBegin/onEnd timer pair 2016-05-03 14:21:29 +01:00
Dan Abramov
103ca4b406 Use performanceNow() instead of performance.now() 2016-05-03 14:21:29 +01:00
Dan Abramov
49a1542c9f Emit flush events on React Native for ReactPerf 2016-05-03 14:21:29 +01:00
Dan Abramov
f22e54a947 Add getLastMeasurements() as it is documented as public API 2016-05-03 14:21:29 +01:00
Dan Abramov
411fc9ca7d Rename the new ReactPerfAnalysis to ReactPerf 2016-05-03 14:21:29 +01:00
Dan Abramov
5f8f1f6c16 Delete the old ReactPerf 2016-05-03 14:21:28 +01:00
Pieter De Baets
222f5087fe Move ReactIOS components to native subfolder (#6643)
* Move ReactIOS components to ReactNative
* Drop ReactNative subfolder
2016-05-03 14:05:33 +01:00
Tanase Hagi
83521bddb0 Update examples/basic-commonjs/package.json (#6685) 2016-05-02 20:50:25 -07:00
Jim
1d49baff63 fixed minor typo (#6568) 2016-05-02 17:59:03 -07:00
Dan Abramov
4ed46ec52f Merge pull request #6669 from dotu/patch-2
Create 02-displaying-data.ru-RU.md
2016-05-03 01:56:27 +01:00
Jake Boone
393a1798fa Grammar correction in ReactDOMInput.js warning (#6657)
Changed "a uncontrolled input" to "an uncontrolled input".
2016-05-02 15:23:22 -07:00
Brandon Dail
eb116482a3 Return early from enqueuePutListener for SSR (#6678) 2016-05-02 14:26:35 -07:00
Paul O’Shannessy
fa89cf53f2 Don't warn when style value is '0' 2016-05-02 13:23:35 -07:00
Paul O’Shannessy
468901c336 Ensure we're using latest object-assign (#6681)
This picks up the change to feature test against order bugs.
2016-05-02 13:16:25 -07:00
Andrey Safronov
d9bc567f77 Update 02-displaying-data.ru-RU
dot
2016-05-03 00:15:14 +04:00
Andrey Safronov
be9f9071d4 Update 02-displaying-data.ru-RU
исправил ошибки
2016-05-02 23:03:34 +04:00
Paul O’Shannessy
be78a41892 Revert "Merge pull request #6458 from mondaychen/master"
This reverts commit 25481083b0, reversing
changes made to 09022b165f.
2016-05-02 11:22:55 -07:00
Paul O’Shannessy
261bf28a99 Update website for 15.0.2
(cherry picked from commit 846b5ea252)
2016-05-02 10:16:03 -07:00
Paul O’Shannessy
9d14cce62f Update readme for 15.0.2
(cherry picked from commit 4dec99c61e)
2016-05-02 10:15:57 -07:00
Paul O’Shannessy
06f538a61e Changelog for 15.0.2
(cherry picked from commit a157791264)
2016-05-02 10:15:45 -07:00
Andrey Safronov
b6c2973b55 Update 02-displaying-data.ru-RU
Многие предложения перестроены, добавлены запятые
2016-05-02 18:43:26 +04:00
Desmond Brand
db175052c0 Add links to docs for addons and top level API (#6555)
This makes it easier to figure out where the docs live.

Googling for e.g. `react-addons-update` also works, but this should
make things easier for people that hyperclick directly to the source.
2016-05-02 06:14:28 -07:00
Andrey Safronov
eeb59246b2 Create 02-displaying-data.ru-RU.md
Translation for language code ru-RU
2016-05-01 15:52:42 +04:00
Sasha Aickin
256753b830 Add test logic to make sure that events get tested when rendering on top of server-generated markup. (#6668) 2016-04-30 11:21:34 -07:00
Greg Hurrell
4f01b4b186 Remove errant console.log (#6664)
That crept in in c1e3f7ec14.
2016-04-30 07:45:23 -07:00
Andrey Safronov
08e568cfc8 Create 01-why-react.ru-RU.md (#6659)
* Create 01-why-react.ru-RU.md

* Create 01-why-react.ru-RU.md

Translation for language code [ru-RU](https://en.wikipedia.org/wiki/Russian_language)

* Create 01-why-react.ru-RU.md

Errors fixes

* Update 01-why-react.ru-RU.md

исправил "чтобы решить".
спасибо за отзывчивость. надеюсь дальнейшие переводы хоть немного помогут распространению React в России :)
2016-04-30 07:43:25 -07:00
Sebastian Markbåge
0e4b046634 Get rid of transformMatrix/decomposeMatrix special case (#6660)
This is no longer needed on the native side.

This is also the last use of the Platform flag. React Core is now
platform agnostic with regard to React Native. So I'll remove
the mocks and dependency.
2016-04-29 15:57:12 -07:00
Jason Quense
a02eeb59f5 Bail out of dedupe logic in cases where there is an incomplete value descriptor (#6648) 2016-04-29 15:21:01 -07:00
Jan Schär
3d31361cfb Allow custom elements extending native ones (#6570)
...by passing the `is` attribute as the second param to `createElement`.
See http://webcomponents.org/polyfills/custom-elements/
2016-04-29 15:05:33 -07:00
Ben Alpert
c1e3f7ec14 Fix bug with double updates in a single batch (#6650)
Fixes #2410. Fixes #6371. Fixes #6538.

I also manually tested the codepen in #3762 and verified it now works.
2016-04-29 14:02:51 -07:00
Jackson Huang
44f84634d7 Create 01-why-react.zh-TW.md (#6470)
* Create 01-why-react.zh-TW.md

Translation for language code [zh-TW](https://en.wikipedia.org/wiki/Zh-TW)

* Update 01-why-react.zh-TW.md

change "封裝性非常好" to "封裝性高"
2016-04-29 08:55:50 -07:00
Dan Abramov
45ec1265eb Merge pull request #6633 from gaearon/native-tree-devtool
Make ReactComponentTreeDevtool work with React Native
2016-04-29 16:20:58 +01:00
Dan Abramov
b7f6a642f6 Make ReactComponentTreeDevtool work with React Native 2016-04-29 16:13:21 +01:00
Dan Abramov
98a8f49068 Merge pull request #6046 from gaearon/new-perf
Add new ReactPerf
2016-04-29 15:35:53 +01:00
Dan Abramov
67b1dbf75f Add new ReactPerf 2016-04-28 20:45:57 +01:00
Ryan Lahfa
9d201abb2b package(node-engine-version): accept 6.x versions (#6645) 2016-04-28 11:33:26 -07:00
Simen Bekkhus
772468183f Add note on how to submit a form (#6594) 2016-04-28 08:42:29 -07:00
Dan Abramov
af1a21289b Merge pull request #6628 from sheerun/patch-1
Document stateless components in formal types
2016-04-28 13:28:06 +01:00
Adam Stankiewicz
16f64c4499 Document stateless components in formal types 2016-04-28 13:47:59 +02:00
Paul O’Shannessy
096e5c7cf7 Ensure babelrc file gets packaged for starter kit (#6617) 2016-04-28 00:24:58 -07:00
Christoph Pojer
64401150a0 Merge pull request #6638 from cpojer/master
Update Jest’s grunt task.
2016-04-28 16:21:54 +09:00
cpojer
681a463240 Update Jest’s grunt task. 2016-04-28 16:08:20 +09:00
Christoph Pojer
d07b554291 Merge pull request #6620 from cpojer/master
Update to Jest 12. Codemod to new Jest APIs.
2016-04-28 15:03:20 +09:00
cpojer
8e34514096 Update to Jest 12. Codemod to new Jest APIs. 2016-04-28 14:54:57 +09:00
Sebastian Markbåge
72ba5971ae Use spread instead of deprecated merge utility (#6634) 2016-04-27 19:54:40 -07:00
Dan Abramov
b8f8360b5c Merge pull request #6388 from gaearon/bye-bye-deprecated-utils
Remove OrderedMap and ReactPropTransferer
2016-04-27 20:36:39 +01:00
Dan Abramov
3bdf09e86f Merge pull request #6612 from gaearon/instrumentation-new-operations
Add ReactNativeOperationHistoryDevtool to track native operations
2016-04-27 19:03:55 +01:00
Dan Abramov
2723323006 Remove OrderedMap and ReactPropTransferer
These are not exposed publicly and have been deprecated.
2016-04-27 17:44:02 +01:00
Dan Abramov
aaadb31827 Add ReactNativeOperationHistoryDevtool to track native operations 2016-04-26 23:50:58 +01:00
Yan Li
71179459de adds ReactRally & Reactive 2016 + conf locations (#6623) 2016-04-26 15:12:13 -07:00
Dan Abramov
f5b20bf79c Try enabling coverage again
It was disabled in d138b286db.
We should have more Travis instances now so it shouldn't run out of memory.
2016-04-26 13:21:41 +01:00
Jim
8dfdac6780 ComponentWillUnmount should only ever be invoked once (#6613) 2016-04-25 18:06:30 -07:00
Dan Abramov
76a4c46dba Merge pull request #6549 from gaearon/instrumentation-new
Provide info about component tree to devtools
2016-04-26 01:12:23 +01:00
Dan Abramov
a9e0896af8 Mute devtool events for TopLevelWrapper and empty components 2016-04-26 01:02:45 +01:00
Stolenkid
aeda84602f fixed a minor typo (#6600) 2016-04-25 14:37:52 -07:00
Dan Abramov
7dbc95f379 Merge pull request #6605 from gaearon/fix-warning-condition
Fix the warning condition in ReactDebugTool and ReactDOMDebugTool
2016-04-25 20:16:52 +01:00
z.ky
f4e608fc2e Update tutorial - add link for starting server (#6602)
To be extra helpful to beginners, and avoid questions like this: http://stackoverflow.com/questions/35758956/react-tutorial-how-do-i-start-the-server
2016-04-25 11:20:47 -07:00
Dan Abramov
1f97103d7b Flip the warning condition in ReactDebugTool and ReactDOMDebugTool
The current warning condition caused the first error to be swallowed, and all the next errors to be logged. I believe the intention was the opposite: to log the first error, and to ignore any next errors for the same method.
2016-04-25 00:41:53 +01:00
Dan Abramov
f89f94d145 Add tests for ReactDebugTool and ReactDOMDebugTool 2016-04-25 00:41:32 +01:00
Dan Abramov
acd67c368d Remove isComposite and hide TopLevelWrapper 2016-04-25 00:05:04 +01:00
Dan Abramov
9f16003e69 Assert that unmounted instances are in the tree until purged 2016-04-24 01:53:53 +01:00
Dan Abramov
829558b8b0 Refactor how native container ID is stored 2016-04-23 22:27:40 +01:00
Sebastian Markbåge
69b6869a3e Ignore events fired on missing React Native instances
This can happen if something gets unmounted before the event gets
dispatched. I'm not sure how this works out exactly but this
preserves previous behavior in this scenario.
2016-04-23 13:10:00 -07:00
Dan Abramov
900a588f63 Add safeguards to ReactComponentTreeDevtool 2016-04-23 02:23:16 +01:00
Sebastian Markbåge
2f2ed71bd0 Merge pull request #6588 from sahrens/patch-3
Delete ReactNativeGlobalInteractionHandler.js
2016-04-22 16:55:08 -07:00
Sebastian Markbåge
aacb5467a0 Merge pull request #6584 from sahrens/patch-1
[RN] Don't hold interaction handles for all touches
2016-04-22 16:54:59 -07:00
Spencer Ahrens
63fbc3f72e Delete ReactNativeGlobalInteractionHandler.js
Depends on https://github.com/facebook/react/pull/6584 to no longer reference is. See FB task #10926500
2016-04-22 16:53:34 -07:00
Sebastian Markbåge
ea504521d5 Merge pull request #6587 from sahrens/patch-2
Move PanResponder back to react-native repo temporarily.
2016-04-22 16:44:26 -07:00
Spencer Ahrens
1fc7487eaa Move PanResponder back to react-native repo temporarily.
We have some more work to do with this before we can pull it out of react-native.  FB Task #10926500
2016-04-22 16:37:00 -07:00
Spencer Ahrens
983a365f74 [RN] Don't hold interaction handles for all touches
We don't want to hold handles while doing native scrolling, etc.

FB Task: #10926500
2016-04-22 16:22:44 -07:00
Paul O’Shannessy
5ddfee8cfe Merge pull request #6576 from yuji0602/tutorial_md_sample_json_change
Changed example json value.
(cherry picked from commit ec036ed185)
2016-04-22 13:08:48 -07:00
Dan Abramov
df3c85886e Stop exposing ReactComponentTreeDevtool internal tree directly 2016-04-22 15:45:35 +01:00
Dan Abramov
1ebffa59fe ReactComponentTreeDevtool should ignore TopLevelWrapper 2016-04-22 02:42:29 +01:00
Ike Peters
9df54e0fce properly handling invalid scryRenderedDOMComponentsWithClass args (#6529)
properly handling invalid scryRenderedDOMComponentsWithClass args

properly handle invalid scryRenderedDOMComponentsWithClass args
2016-04-21 17:09:04 -07:00
Esteban
416f315c96 Fix return type in onlyChild's JSDoc (#6573)
The return type is a 'ReactElement' instead of a 'ReactComponent'.
2016-04-21 16:02:20 -07:00
Ben Alpert
0dc9b91017 Merge pull request #6572 from spicyj/rn-batch
Batch event handling in React Native
2016-04-21 15:14:56 -07:00
Ben Alpert
9f11f8c263 Batch event handling in React Native
This fixes an issue where handling events on a node that was just removed threw a "All native instances should have a tag." error and matches what we do in the DOM renderer in ReactEventListener.
2016-04-21 15:06:48 -07:00
Esteban
9462d0d040 Fix mapFunction parameters in mapChildren's JSDoc (#6569)
Remove 'key' parameter from 'mapFunction(child, key, index)'. It is no longer called with 'key'.
2016-04-21 14:28:08 -07:00
Dan Abramov
e20d366ea8 Fix expect() slipping into the non-test code 2016-04-21 22:23:35 +01:00
Dan Abramov
1f2e78359f No need for a special case here 2016-04-21 18:56:42 +01:00
Dan Abramov
ab0ef89ec7 Track parentID for ReactPerf 2016-04-21 17:59:31 +01:00
Dan Abramov
f530b977ec Test ReactComponentTreeDevtool specifically 2016-04-21 17:32:56 +01:00
Dan Abramov
b5997c8e7b Extract ReactComponentTreeDevtool 2016-04-21 17:31:04 +01:00
Minwei Xu
b7a2409919 ref-09-webcomponents.zh-CN.md (#6561) 2016-04-20 20:07:02 -07:00
Dan Abramov
835ca9bca3 Clean up the devtool tree on server rendering 2016-04-21 02:37:58 +01:00
Dan Abramov
af3603ea2f Devtools should be able to clean up the tree on client rendering 2016-04-20 19:11:38 +01:00
Paul O’Shannessy
bddecc9696 Merge pull request #6553 from zpao/cleanuppkg
Clean up package.json after #6338
2016-04-20 10:34:44 -07:00
Paul O’Shannessy
9354751dc9 Clean up package.json after #6338 2016-04-20 10:29:39 -07:00
Dan Abramov
367594a213 Enforce that info about children is available by the time onSetChildren() fires 2016-04-20 18:20:14 +01:00
Dan Abramov
1587abf6f0 Don't report children for empty and text nodes 2016-04-20 18:12:40 +01:00
Dan Abramov
804c680f06 Report dangerouslySetInnerHTML as no children 2016-04-20 18:01:52 +01:00
Dan Abramov
7884606fdb Handle updates to natives and composites 2016-04-20 17:39:33 +01:00
Dan Abramov
e9f8d57c70 Add an initial implementation of ReactDebugTool events 2016-04-20 16:59:13 +01:00
Dan Abramov
b692893640 Revert "Add ReactDebugInstanceMap"
This reverts commit 575fb79162.
2016-04-20 16:59:13 +01:00
Sebastian Markbåge
c84ad52ddb Merge pull request #6338 from sebmarkbage/reactnative2
Move React Core Integration and Injection to the Core Repo
2016-04-20 03:41:20 +01:00
Sebastian Markbage
ada60c4fd8 Remove ReactDOM.native shim
This is causing build errors.

This should be in the downstream repo if anything.

Relay has its own shim that should be preferred.
2016-04-20 03:35:31 +01:00
Sebastian Markbage
744548ad14 Fix lint for moved ReactNative 2016-04-20 03:35:31 +01:00
Sebastian Markbage
5470972f6a Update devtools injection
This isn't actually used right now so I can't test it. Because the
Chrome devtools are broken for React Native. The Nuclide integration
is in the react-native repo.
2016-04-20 03:35:31 +01:00
Sebastian Markbage
c7d90e2b35 Ensure react-native-renderer package gets copied 2016-04-20 03:35:31 +01:00
Sebastian Markbage
22a8f9964e Don't try to get the target node for responder if there is no listener
This can happen in edge cases where he listeners are already
unmounted or not mounted yet or something.
2016-04-20 03:35:31 +01:00
Sebastian Markbage
064092102d Bump package versions 2016-04-20 03:35:31 +01:00
Sebastian Markbage
dc188dd521 Update ReactNativeDOMIDOperations to deal with a single parent node
This is the new protocol.
2016-04-20 03:35:31 +01:00
Sebastian Markbage
4fcdf02068 Listeners are not attached by ID in the API
...even though they technically still are attached by.
2016-04-20 03:35:31 +01:00
Sebastian Markbage
3287d93235 Build up a native component cache for event dispatching
Changes to event overloading structure
2016-04-20 03:35:31 +01:00
Sebastian Markbage
75cec60e48 Get rid of rootNodeIDs they're just tags now 2016-04-20 03:35:30 +01:00
Sebastian Markbage
97b079b364 Fix ReactNativeComponentEnvironment providesModule
This has a different file name from its providesModule. Screws up
our build scripts.
2016-04-20 03:35:30 +01:00
Sebastian Markbage
f8335168b6 Fix 0.15 compatibility 2016-04-20 03:35:30 +01:00
Sebastian Markbage
d8e8ea5cbb Add test and mocks
Mock UIManager

Comment out dontMock that actually needs mocking
2016-04-20 03:35:30 +01:00
Sebastian Markbage
91e62c718b Strip isomorphic stuff from the ReactNative module
Also, add a shim for the isomorphic module for ios and android so that
react-native doesn't pull in react-dom when React is required.
2016-04-20 03:35:30 +01:00
Sebastian Markbage
240dfae28c Add React Native Modules to module map + fix fbjs
Our module rewrite whitelist needs to ignore providesModule files
that are going to be required from the global React Native
environment.

We also need to add ReactDOM to providesModule since we removed it
from React Native.
2016-04-20 03:35:30 +01:00
Sebastian Markbage
caa6abaecf Build an dedicated npm package for react-native-renderer 2016-04-20 03:35:30 +01:00
Sebastian Markbage
8806463a66 Add Object Spread Support to Our Babel Config
Won't really use this in prod code yet but I have a benchmark that
uses it.
2016-04-20 03:35:30 +01:00
Sebastian Markbage
fe395def65 Move React Native platform files back
These files are really only related to the platform itself and not
the React integration so I'll move them back.
2016-04-20 03:35:30 +01:00
Sebastian Markbage
6c885d28c5 Remove duplicates and move files out of native/vendor
Moving the event plugins into their dedicated folder

Removing the ExecutionEnvironment override. I will just have to fix where needed. Probably related to the Chrome debugger?
2016-04-20 03:35:30 +01:00
Sebastian Markbage
f463b731ee Copy files from the react-native repo 2016-04-20 03:35:30 +01:00
Adrian Sieber
8156ee0cab Minor fixes (#6527)
* Fix typos in CHANGELOG.md

* Fix typos in 2014-11-24-react-js-conf-updates.md
2016-04-19 14:41:42 -07:00
Denis Laxalde
de7d1da997 Remove mention of deprecated ReactLink add-on (#6535) 2016-04-18 06:26:10 -07:00
hkal
dc6fc8cc07 Helper for escaping and unescpaing component keys (#6500)
- Abstract escaping
- Provide human readible same key warnings
2016-04-15 20:55:37 -07:00
Jim
a12aab10cb Mention Enzyme on the test utils page. (#6523) 2016-04-15 16:20:43 -07:00
Jason Quense
045f1a791c Only fire input value change events when the value changes (#5746)
* Only fire input value change events when the value changes

fixes #554, fixes #1471, fixes #2185 (still trying to figure out why)

* catch programmatic value changes

* move value tracking to seperate module
2016-04-15 14:37:26 -07:00
Ben Alpert
4016e71609 Merge pull request #6469 from keyanzhang/validate-foreignObject-children
Ensure validateDOMNesting catches nested body elements
2016-04-14 18:27:13 -07:00
Keyan Zhang
6cf77ef55e Ensure validateDOMNesting catches nested body elements 2016-04-14 20:14:45 -04:00
Dan Abramov
6a93137f0e Merge pull request #6516 from gaearon/ignore-dom-writes-outside-batch
Ignore DOM writes outside the batch in ReactPerf
2016-04-15 00:03:17 +01:00
Paul O’Shannessy
befb70e42f Merge pull request #6519 from zpao/envdocsfixup
Cleanup environments doc
2016-04-14 14:44:25 -07:00
Paul O’Shannessy
bcad0a2973 Cleanup environments doc
- Use correct "Note" formatting so they render correctly
- reordered sections so Node is first
- Use "Node.js" consistently (it is a product name just like Nashorn)
- added/tweaked some of the text
- simplified the Java code so it doesn't hit the internet.
2016-04-14 14:17:44 -07:00
Dan Abramov
3b28602220 Ignore DOM writes outside the batch in ReactPerf
ReactDOMInput and a few other classes handle change event by scheduling updateWrapper() in an asap().
It gets executed after the batch, which confuses ReactPerf that expects all DOM writes to happen during a batch.
Since this implementation of ReactPerf relying on the stack is going away, let's plug the hole temporarily by ignoring DOM writes that occur during postponed updateWrapper(). In any case, they have no relation to actual calculations of wasted renders, as they don't occur due to updateComponent(), but rather due to onChange() special DOM behavior.

This fixes #5548
2016-04-14 20:57:44 +01:00
Jim
6a8c7518d3 Merge pull request #6510 from jimfb/ssr-environment-docs
Added docs for environment integration.
2016-04-14 12:27:59 -07:00
Jim
66bfee6543 Added docs for environment integration. 2016-04-14 12:25:17 -07:00
Dan Abramov
36e4fe54a8 Merge pull request #6215 from nhunzaker/nh-fix-disabled-inputs
Disabled inputs should not respond to clicks in IE
2016-04-14 19:40:21 +01:00
Dan Abramov
ae56910573 Merge pull request #6362 from gaearon/no-owner-in-test-utils
Elements from functional components in TestUtils should have no owner
2016-04-14 18:54:10 +01:00
Jim
0b1fd18685 Merge pull request #6462 from Wildhoney/master
Re-added support for attaching events to document fragments
2016-04-14 10:17:57 -07:00
Paul O’Shannessy
932334d3d4 Merge pull request #6504 from alexlur/patch-1
Replaces Array#map with Array#forEach
2016-04-13 10:43:13 -07:00
Alex
9d94d003a9 Replaces Array#map with Array#forEach 2016-04-13 17:11:08 +08:00
Jim
5785a418a2 Merge pull request #6148 from jimfb/node-package-manager
Create section on using React with package managers.
2016-04-12 22:33:47 -07:00
Jim
c01c46b88a Create section on using React with package managers. 2016-04-12 12:39:49 -07:00
Sam Balana
6e4f3eab84 Merge pull request #3 from RaitoBezarius/fork/proptypes-symbol
Remove unused ES6 Symbol dependency
2016-04-11 14:36:19 -07:00
Raito Bezarius
95fed01634 package(dependency): remove unused es6-symbol dependency 2016-04-11 20:19:09 +02:00
Nate Hunzaker
ec2c542f28 Flip conditional in DisabledInputUtils to cut hasOwnProperty calls 2016-04-08 19:47:40 -04:00
Nate Hunzaker
fc23239b67 Follow style conventions 2016-04-08 19:47:40 -04:00
Nate Hunzaker
0200946112 Move getNativeProps usage inline 2016-04-08 19:47:40 -04:00
Nate Hunzaker
fe739c2883 Disabled inputs should not respond to clicks in IE
This commit migrates over the disabled property behavior from
ReactDOMButton into a general purpose disabled event filter. It also
applies that behavior to inputs, selects, and textareas.
2016-04-08 19:47:40 -04:00
Dan Abramov
6c11bb65e1 Use the same changelog format as 15.0 post 2016-04-08 23:00:20 +01:00
Paul O’Shannessy
0a8f7329b4 Update react-linked-input
- Restores React dep to 15
- Bumps version to 1.0.1 for publishing
2016-04-08 14:53:37 -07:00
Paul O’Shannessy
dc0bea7a52 Fix extraneous markup in changelog 2016-04-08 14:41:20 -07:00
Paul O’Shannessy
44a0bd7478 Actually bump version on website
(cherry picked from commit d72885b383)
2016-04-08 14:39:03 -07:00
Paul O’Shannessy
42c0d4199b Update website for 15.0.1
(cherry picked from commit fd1476e3aa)
2016-04-08 14:39:03 -07:00
Paul O’Shannessy
a7e0da588a 15.0.1 blog post
(cherry picked from commit 142e4ebb57)
2016-04-08 14:39:03 -07:00
Paul O’Shannessy
9bbe80a6cc Update changelog & readme for 15.0.1
(cherry picked from commit a6179d03f3)
2016-04-08 14:39:03 -07:00
Wildhoney
167c27e188 Re-added support for attaching events to document fragments 2016-04-08 19:31:14 +01:00
Jim
5ac51c39a0 Merge pull request #6442 from trevorsmith/master
Correctly select options when nested inside an optgroup
2016-04-08 09:55:43 -07:00
Jim
25481083b0 Merge pull request #6458 from mondaychen/master
No unit-less CSS value warning for `value: "0"`
2016-04-08 09:20:39 -07:00
Jim
09022b165f Merge pull request #6443 from Aweary/patch-1
Grammar fix for 15.0 blog post
2016-04-08 09:09:43 -07:00
Brandon Dail
0149e8a4a9 Grammar fix for 15.0 blog post
Since "This" is the subject and singular, "have" should be "has"

New wording explaining implementation details

Grammar fix for 15.0 blog post

Since "This" is the subject and singular, "have" should be "has"

Fix wording for 15.0 blog post

nitpicks
2016-04-08 11:04:06 -05:00
Dan Abramov
08fd7d4a48 Fix extra parens in CHANGELOG 2016-04-08 17:03:44 +01:00
mondaychen
4e81eb4403 "0" can be the only valid unitless number string 2016-04-08 11:55:31 -04:00
Ben Alpert
2b1bd1d7fe Merge pull request #6449 from spicyj/option-value
Set value using attribute only on initial option render
2016-04-07 21:19:37 -07:00
Ben Alpert
5cb4a620e7 Set value using attribute only on initial option render
Tested that you can now type in the middle of a controlled input in Chrome which previously jumped your cursor to the end.

Fixes #6445.
2016-04-07 19:04:30 -07:00
Sam Balana
ad94295f13 Removed test support for medikoo/es6-symbol
There seems to be a bug with medikoo/es6-symbol where the global state
affects the implementation of the polyfill. I found this by running the
individual test file alone then running all the tests using `grunt
test`. I found that it passes when ran alone and failed when ran
collectively.

I did not find this buggy behavior with zloirock/core-js's
implementation of a polyfill for Symbol. Thus, removing I will keep the
more popular polyfill (core-js) and remove the buggy polyfill
(es6-symbol).

If you are reading this and can think of a confounding factor that is
causing this bug, please let me know and we can try to work together to
add support for medikoo/es6-symbol.
2016-04-07 17:41:42 -07:00
Paul O’Shannessy
516c1d809e Merge pull request #6444 from zpao/re__spreadwarn
Add back React.__spread and make it warn
2016-04-07 17:30:44 -07:00
Paul O’Shannessy
fc1cfb6225 Make React.__spread warn 2016-04-07 17:30:23 -07:00
Sam Balana
05820f89c1 More specific typeof check for polyfilled Symbol
Let's get more specific with our tests. Symbol has to be a function if
it's a polyfill. There are no object polyfills out there. (If there is,
ping me and I'll add support)

Instead of checking if Symbol is undefined, let's check if it's a
function instead since instanceof is depending that Symbol is already a
function.
2016-04-07 16:57:11 -07:00
Paul O’Shannessy
f02d87bdb5 Revert "Merge pull request #6431 from sebmarkbage/killspread"
This reverts commit a37e4e94fc, reversing
changes made to 411951d5b8.
2016-04-07 16:16:37 -07:00
Trevor Smith
f7181e089c Remove an unnecessary call to findDOMNode in the select optgroup test. 2016-04-07 16:43:35 -06:00
Trevor Smith
8577600a61 Add a null check when checking for the native parent of an option element. 2016-04-07 16:42:50 -06:00
Trevor Smith
b102e25663 Correctly select options when nested inside an optgroup 2016-04-07 16:30:51 -06:00
Paul O’Shannessy
6fd2b29ec8 [docs] Clarify data-reactid in v15 post 2016-04-07 15:27:05 -07:00
Paul O’Shannessy
3ed07aca5f Update readme for v15
(cherry picked from commit c49166401a)
2016-04-07 15:15:45 -07:00
Paul O’Shannessy
85372964e5 Update Changelog for v15
(cherry picked from commit 500c0003b2)
2016-04-07 15:15:44 -07:00
Paul O’Shannessy
b2bce139a4 [docs] Update site for v15
(cherry picked from commit 0275d77fc0)
2016-04-07 15:15:44 -07:00
Dan Abramov
75f4925074 Add React 15 post
(cherry picked from commit 67a4b12e27)
2016-04-07 15:15:44 -07:00
Paul O’Shannessy
3abc1f4a88 [docs] Update acknowledgements for v15
(cherry picked from commit 40c0867f63)
2016-04-07 15:15:44 -07:00
Dan Abramov
4537860f7e Add the missing download
(cherry picked from commit 1aee28ef1b)
2016-04-07 14:35:00 -07:00
Jim
2e8f28c29f Merge pull request #6364 from p-jackson/issue-5700
Don't wrap drag events in IE/Edge in dev builds
2016-04-07 14:11:12 -07:00
Jim
7b47e3e537 Merge pull request #6134 from richardscarrott/master
Warn if props obj passed into createElement / cloneElement inherits from anything other than Object
2016-04-07 14:09:18 -07:00
Jim
006058daa5 Merge pull request #6341 from borisyankov/master
Add more information to warning 'Input elements must be either controlled or uncontrolled'
2016-04-07 14:08:03 -07:00
Jim
1dc7c581db Merge pull request #6400 from jimfb/return-value-legacy
Document legacyness of the return value of ReactDOM.render()
2016-04-07 14:03:56 -07:00
Jim
62f64a84a4 Merge pull request #6419 from IvanVergiliev/master
Add documentation about empty functional components
2016-04-07 14:03:21 -07:00
Paul O’Shannessy
caa78f7985 Bump version for v16 development 2016-04-07 11:27:28 -07:00
Paul O’Shannessy
e8615daaed Merge pull request #6428 from zpao/15-docs-attrs
[docs] Update supported attrs, clarified what supported elements actually means
2016-04-07 11:22:55 -07:00
Sebastian Markbåge
a37e4e94fc Merge pull request #6431 from sebmarkbage/killspread
Kill React.__spread
2016-04-06 18:42:45 -07:00
Paul O’Shannessy
411951d5b8 Merge pull request #6432 from zpao/testutilsinlinerequiresinject
Ensure default injection is injected for test utils
2016-04-06 17:43:26 -07:00
Paul O’Shannessy
95cd88d07a Ensure default injection is injected for test utils 2016-04-06 17:43:08 -07:00
Sebastian Markbage
a142fd2578 Kill React.__spread
This was only for a JSTransform related experiment that is now
dead along with JSTransform.
2016-04-06 17:08:50 -07:00
Paul O’Shannessy
e19353cdb5 Merge pull request #6429 from zpao/viceversa2words
Fix "vice versa" in warning message
2016-04-06 16:46:19 -07:00
Jim
ceb377254a Document legacyness of the return value of ReactDOM.render() 2016-04-06 16:30:25 -07:00
Paul O’Shannessy
ff7cc5dc4e Merge pull request #6430 from formido/patch-1
Fix briefly confusing typo
2016-04-06 16:27:38 -07:00
Paul O’Shannessy
a55579af0a Merge pull request #6426 from zpao/valuetest
Fix tests for value change
2016-04-06 16:24:09 -07:00
Michael Terry
edbe103094 Fix briefly confusing typo
There are two examples of a text input with initial value  of "Hello!" on this page, a controlled and an uncontrolled. The explanation for the uncontrolled version mistakenly says it works much like the earlier "uncontrolled" example, but the earlier example was the controlled version.
2016-04-06 15:57:48 -07:00
Paul O’Shannessy
a10665cac0 Fix "vice versa" in warning message
The phrase is 2 words, not 1.
2016-04-06 15:51:06 -07:00
Paul O’Shannessy
a7af9c6ce4 [docs] Update supported attrs, clarified what supported elements actually means 2016-04-06 15:41:56 -07:00
Paul O’Shannessy
65c68b5a04 Merge pull request #6380 from zpao/simulatewarning
Make sure simulated events don't warn when providing extra event properties
2016-04-06 14:59:22 -07:00
Paul O’Shannessy
3f9e21f4eb Merge pull request #6413 from zpao/deps-cleanup
Upgrade a few package dependencies, remove unused task
2016-04-06 14:23:54 -07:00
Paul O’Shannessy
cf1a96611f Fix tests for value change 2016-04-06 13:43:59 -07:00
Ivan Vergiliev
ead6c9323b Document that stateless functional components can return null in v15 2016-04-06 20:19:14 +03:00
Ivan Vergiliev
85e01a1455 Add documentation about empty functional components 2016-04-06 01:29:59 +03:00
Paul O’Shannessy
42b1cba048 Make sure simulated events don't warn when providing extra event properties 2016-04-05 14:53:25 -07:00
Paul O’Shannessy
622e84bcfe Merge pull request #6415 from sebmarkbage/typofix
Fix typo
2016-04-05 14:30:48 -07:00
Sebastian Markbage
2d069fc5e6 Fix typo
Resets currentTarget on the pooled event instead of adding an
expando.
2016-04-05 13:40:49 -07:00
Jim
add9ccedd6 Merge pull request #6408 from facebook/gaearon-patch-2
Remove 15 RC1 changelog entry that was fixed in 0.14
2016-04-05 13:29:59 -07:00
Paul O’Shannessy
d10b355b42 Merge pull request #6228 from everdimension/fix_option_value
set value property explicitly for "option" element even if value is empty
2016-04-05 13:27:13 -07:00
Sam Balana
ced7a3da90 Merge pull request #2 from RaitoBezarius/fork/proptypes-symbol
Fix code-style issue with React guidelines
2016-04-05 13:19:23 -07:00
Raito Bezarius
a98e2cb8b1 prop-types(tests,code-style): fix missing semicolon, unexpected spaces and trailing comma 2016-04-05 22:01:37 +02:00
Sam Balana
f846b54aa2 Merge pull request #1 from RaitoBezarius/fork/proptypes-symbol
Improve symbol check for (local) polyfills
2016-04-05 12:33:55 -07:00
Paul O’Shannessy
b72a098657 Upgrade browserify 2016-04-05 10:53:53 -07:00
Paul O’Shannessy
3cd39cbb8f Upgrade fbjs 2016-04-05 10:50:54 -07:00
Paul O’Shannessy
90856ee61b Remove jsx task & jsx-internal script
These haven't been used in a long time so it's time to get rid of them.
2016-04-05 10:18:42 -07:00
Dan Abramov
67ff7104a1 Remove another 0.14 changelog entry for 15 RC1 release notes 2016-04-05 01:32:38 +01:00
Dan Abramov
b151e7fd3b Remove 15 RC1 changelog entry that was fixed in 0.14 2016-04-05 00:49:07 +01:00
Paul O’Shannessy
80bff5397b Merge pull request #6376 from zpao/object.assign
Use object-assign instead of our own dated "polyfill"
2016-04-04 10:21:39 -07:00
Paul O’Shannessy
1573baaee8 Use Object.assign directly and inject object-assign at compile 2016-04-04 09:53:25 -07:00
Paul O’Shannessy
f7db143b41 Update authors for v15
* fix conor

* one fewer jonathan

* nakazye

* Third9 & translucens

* zjjw

* rebase on master to pick up recent changes

* rebase

* shogunsea

* couple names for mailmap

* iawia002

* rebase

* terry3, speedskater

* rebase, handle duplicate mark

* more
2016-04-04 09:46:23 -07:00
Dan Abramov
b0d1e16271 Merge pull request #6405 from facebook/gaearon-patch-2
Clarify that ReactPerf.getLastMeasurements() is now opaque
2016-04-04 17:02:45 +01:00
Dan Abramov
30dc842e34 Clarify that ReactPerf.getLastMeasurements() is now opaque 2016-04-04 16:29:53 +01:00
Dan Abramov
14b19870fe Merge pull request #5731 from MatthewHerbst/docs-arrayof-custom-validator
Documentation for arrayOf custom item validator
2016-04-02 14:12:23 +01:00
Raito Bezarius
c291f8a81e prop-types(symbols,tests): test for polyfilled Symbol and non-Symbol elements 2016-04-02 14:28:08 +02:00
Raito Bezarius
4239f8ac3b prop-types(symbols): rewrite isSymbol to be simpler
1) If it is a native Symbol
2) If it is spec-compliant
3) Try to match non-spec compliant polyfill by a instanceof check on Symbol if it exists in the global namespace
2016-04-02 14:27:02 +02:00
Raito Bezarius
0d8ab0efa3 devDependencies: add core-js and es6-symbol polyfill for tests 2016-04-02 14:26:35 +02:00
Matthew Herbst
0c89da5b25 Added new documentation showing use of a custom validator for arrayOf or objectOf, specifically how the method signature for such a validator differs from the customProp validator method signature. Made minor edits to error message for customProp example to match error messages found in src. 2016-04-02 19:28:25 +08:00
Raito Bezarius
13d9720804 prop-types(symbols): add a helper is-symbol function 2016-04-02 10:10:05 +02:00
Dan Abramov
44c699a465 Merge pull request #6399 from facebook/gaearon-flip-dev
Flip __DEV__ assignments in ReactDOMProduction-test
2016-04-02 01:25:11 +01:00
Dan Abramov
ec1462834e Update ReactDOMProduction-test.js 2016-04-02 00:53:01 +01:00
Dan Abramov
a5c164daca Merge pull request #6389 from gaearon/reactperf-reactdebuginstancemap
Add ReactDebugInstanceMap
2016-04-01 23:32:20 +01:00
Dan Abramov
599582c3b2 Merge pull request #6392 from facebook/gaearon-add-meeting-notes
Link to the meeting notes from Contributing
2016-04-01 18:32:52 +01:00
Dan Abramov
51bfe2d1f3 Link to the meeting notes 2016-04-01 17:58:55 +01:00
Sam Balana
5485ac8f6c Support for ES6 polyfills
Most ES6 polyfills will add support by implementing `Symbol` as a
function. This causes `typeof` to return `function` rather than `symbol`
for polyfilled clients.
2016-03-31 13:47:03 -07:00
Dan Abramov
575fb79162 Add ReactDebugInstanceMap
This PR is the first in a series of pull requests split from the new `ReactPerf` implementation in #6046.

Here, we introduce a new module called `ReactDebugInstanceMap`. It will be used in `__DEV__` and, when the `__PROFILE__` gate is added, in the `__PROFILE__` builds. It will *not* be used in the production builds.

This module acts as a mapping between “debug IDs” (a new concept) and the internal instances. Not to be confused with the existing `ReactInstanceMap` that maps internal instances to public instances.

What are the “debug IDs” and why do we need them? Both the new `ReactPerf` and other consumers of the devtool API, such as React DevTools, need access to some data from the internal instances, such as the instance type display name, current props and children, and so on. Right now we let such tools access internal instances directly but this hurts our ability to refactor their implementations and burdens React DevTools with undesired implementation details such as having to support React ART in a special way.[1]

The purpose of adding `ReactDebugInstanceMap` is to only expose “debug IDs” instead of the internal instances to any devtools. In a future RP, whenever there is an event such as mounting, updating, or unmounting a component, we will emit an event in `ReactDebugTool` with the debug ID of the instance. We will also add an introspection API that lets the consumer pass an ID and get the information about the current children, props, state, display name, and so on, without exposing the internal instances.

`ReactDebugInstanceMap` has a concept of “registering” an instance. We plan to add the hooks that register an instance as soon as it is created, and unregister it during unmounting. It will only be possible to read information about the instance while it is still registered. If we add support for reparenting, we should be able to move the (un)registration code to different places in the component lifecycle without changing this code. The currently registered instances are held in the `registeredInstancesByIDs` dictionary.

There is also a reverse lookup dictionary called `allInstancesToIDs` which maps instances back to their IDs. It is implemented as a `WeakMap` so the keys are stable and we’re not holding onto the unregistered instances. If we’re not happy with `WeakMap`, one possible alternative would be to add a new field called `_debugID` to all the internal instances, but we don’t want to do this in production. Using `WeakMap` seems like a simpler solution here (and stable IDs are a nice bonus). This, however, means that the `__DEV__` (and the future `__PROFILE__`) builds will only work in browsers that support our usage of `WeakMap`.

[1]: 577ec9b8d9/backend/getData.js
2016-03-31 17:58:55 +01:00
Jim
eb85b7b2c9 Merge pull request #6381 from cbrwizard/clipboard_event_unit_tests
SyntheticClipboardEvent unit tests
2016-03-31 07:37:31 -07:00
Jim
7a8c460e03 Merge pull request #6367 from sottar/translate-thinking-in-react.md-to-Japanese
Translate thinking-in-react.md to Japanese
2016-03-30 20:52:08 -07:00
Dan Abramov
cbe72d4b97 Merge pull request #6383 from gaearon/consistent-spies
Spy at warnings consistently inside test cases
2016-03-30 23:58:15 +01:00
Dan Abramov
b6bc4bd996 Spy at warnings consistently inside test cases
We move any spies on `console.error()` from `beforeEach()` to the individual `it()` tests. This means that if a new test is introduced in these suites, it does not ignore warnings by default, but fails on any unexpected warning, which is Jest's default behavior.

We also change a few old instances of direct `console.error = jest.genMockFn()` assignment to use `spyOn()` for consistency with the rest of the tests.
2016-03-30 22:01:20 +01:00
cbrwizard
e6e38d0f9c SyntheticClipboardEvent unit tests
Adds unit tests for a SyntheticClipboardEvent.
2016-03-30 23:09:23 +03:00
Sam Balana
75c4e03718 Added tests for the new primative, Symbol.
I believe that I covered all the typical use cases for Symbols.
If you think that I missed one, feel free to contribute.
2016-03-29 17:21:24 -07:00
Sam Balana
97bcce5214 Added Symbol primative PropType.
With the edition of ECMA-262, we now have a new primative type called
Symbol. This primative type should be added to the PropTypes, as users
will eventually be using Symbols in their props for describing unique
and immutable data, such as identifiers.
2016-03-29 17:18:34 -07:00
Dan Abramov
05b05c4c81 Merge pull request #6363 from facebook/gaearon-patch-1
Document how to avoid wrapper in ReactTransitionGroup
2016-03-30 01:17:48 +01:00
Dan Abramov
531205065f Document how to avoid wrapper in ReactTransitionGroup
Thanks to @rayshan for some rewording tips too!
2016-03-30 01:16:37 +01:00
Dan Abramov
03fe7dbb37 Fixed paren balance in the doc 2016-03-29 21:30:49 +01:00
Jim
d9ca95c44f Merge pull request #6374 from mfunkie/patch-3
Link to "No Autobinding" section for ES6 classes.
2016-03-29 13:25:52 -07:00
Mark Funk
58a86f6c6c Link to "No Autobinding" section for ES6 classes.
There's a more descriptive section about the lack of Autobinding in ES6 classes and suggestions around it, so this commit adds a link to that section.
2016-03-29 13:19:38 -07:00
Dan Abramov
4910c3bcce Merge pull request #6373 from mfunkie/patch-2
Update ES6 class documentation with binding perf
2016-03-29 20:58:16 +01:00
Mark Funk
fb13cf55fe Update ES6 class documentation with binding perf
Adding a note in the ES6 class documentation about function binding.  Recommending that you bind your handlers in the constructor so that they are referentially the same function every time render is invoked (helps with child components that might potentially call shouldComponentUpdate)
2016-03-29 12:51:57 -07:00
Dan Abramov
b666a44ce1 Merge pull request #6360 from cbrwizard/SyntheticKeyboardEvent_unit_tests
SyntheticKeyboardEvent unit tests
2016-03-29 20:35:06 +01:00
cbrwizard
d743a8dd55 SyntheticKeyboardEvent unit tests
Adds unit tests for SyntheticKeyboardEvent.
2016-03-29 22:28:11 +03:00
Richard
17683e0410 Warn if props obj passed into createElement / cloneElement inherits from anything other than Object 2016-03-29 20:21:39 +01:00
Paul O’Shannessy
22a3d0387b Merge pull request #6337 from zpao/15-examples
Update examples for 15 (and other examples fixes)
2016-03-29 11:02:28 -07:00
Paul O’Shannessy
2baa3b7d2f Update examples for v15
- Update commonjs example to use Babel 6
- Update click counter example to match other examples
- Update jquery example
- Stop shipping webcomponents.js in starter kit
2016-03-29 11:00:48 -07:00
Dan Abramov
7f01c47658 Fix whitespace in 0.14.8 blog entry 2016-03-29 18:31:48 +01:00
Dan Abramov
d7fe7ecca5 Merge pull request #6370 from gaearon/148-post
Blog post for React 0.14.8
2016-03-29 17:22:50 +01:00
Dan Abramov
96c0cd061e Update README and CHANGELOG for 0.14.8 2016-03-29 17:07:21 +01:00
Dan Abramov
815d3514a7 Blog post for React 0.14.8 2016-03-29 16:47:11 +01:00
sottar
2890af02f1 Translate thinking-in-react.md to Japanese 2016-03-29 21:02:58 +09:00
Dan Abramov
291379c272 Elements from functional components in TestUtils should have no owner
Fixes #5292 and #6194
2016-03-28 21:46:33 +01:00
Philip Jackson
4687a03f54 Don't wrap drag events in IE/Edge in dev builds
Dev builds wrap synthetic events inside other events for a better debug
experience. However IE/Edge won't allow access to the
DataTransfer.dropEffect property if it's wrapped in this way.
The first time a drag event is fired, test if we're in an environment
that behaves this way and disable React's improved development
experience if we are.
2016-03-28 00:29:46 +13:00
Dan Abramov
a2780212ae Merge branch 'andreypopp-patch-1' 2016-03-27 00:25:40 +00:00
Dan Abramov
ba76649c3b Rename example package.json command for consistency with README 2016-03-27 00:25:29 +00:00
Boris Yankov
1018e50a1a Add more information to 'Input elements must be either controlled or uncontrolled' warning 2016-03-25 16:36:48 +02:00
Jim
dcd092560d Merge pull request #6305 from maherbeg/maher-error-find-dom-node
Test to verify findDOMNode does not throw in willMount
2016-03-24 18:59:55 -07:00
Maher Beg
70de7e4a38 Test to verify findDOMNode does not throw in willMount
Adds a test to prevent a regression of throwing an error when
calling `findDOMNode(this)` in a component's `componentWillMount`
function. This previously used to throw an invariant violation but
now does not any more.
2016-03-24 18:06:27 -07:00
Paul O’Shannessy
9358ce3b02 Merge pull request #6332 from kentcdodds/pr/beginner-friendly
add beginner friendly resource for learning how to PR
2016-03-24 16:07:01 -07:00
Paul O’Shannessy
6a8ebfc418 Merge pull request #6331 from zpao/isonpmorphic
Make Browserify-specific modules to remove DOM dependencies from npm package
2016-03-24 16:01:51 -07:00
Paul O’Shannessy
d17091ddeb Make Browserify-specific modules to remove DOM dependencies from npm package 2016-03-24 15:28:52 -07:00
Paul O’Shannessy
ae2a7c723f Merge pull request #6333 from kentcdodds/pr/beginner-friendly-badge
add prs welcome badge
2016-03-24 14:58:15 -07:00
Kent C. Dodds
6b307a55fb add prs welcome badge 2016-03-24 14:18:32 -06:00
Kent C. Dodds
f0dbc1e1d3 add beginner friendly resource for learning how to PR 2016-03-24 13:20:18 -06:00
Jim
e119f20927 Merge pull request #6330 from speedskater/patch-1
Updated react conf links
2016-03-24 08:57:21 -07:00
Jim
414f057bc2 Merge pull request #6296 from jontewks/add-warnings
Add warnings for onFocusIn and onFocusOut props
2016-03-24 08:37:45 -07:00
speedskater
c212226fff Updated react conf links
* Added React Conf 2016
* Fixed Links for React Conf 2015
2016-03-24 08:11:35 +01:00
Jim
d8ee071c92 Merge pull request #6195 from mxstbr/perf-links
Add benchling engineering articles about perf to docs
2016-03-23 16:47:42 -07:00
Dan Abramov
f80f2379cd Merge pull request #6326 from gaearon/fix-test
Fix ReactPerf.printOperations() test to work with createElement = false
2016-03-23 22:58:20 +00:00
Dan Abramov
0f1240e877 Fix ReactPerf.printOperations() test to work with createElement = false 2016-03-23 22:24:32 +00:00
Paul O’Shannessy
5e770f4d2d Merge pull request #6191 from strawbrary/edit-on-github-position
[docs] keep position of "Edit on GitHub" link fixed
2016-03-23 12:24:16 -07:00
Paul O’Shannessy
bfb9444300 Merge pull request #6242 from edvinerikson/add-origin-to-css-warnings
added component name to css property warnings
2016-03-23 12:12:51 -07:00
Dan Abramov
f5a9fb378d Add missing set -e to Travis builds
Fixes #6150, corrects a mistake made in d138b286db
2016-03-23 18:59:59 +00:00
Dan Abramov
1e8156143a Merge pull request #6310 from gaearon/setstate-warning
Add more specific error messages for bad callback in setState, replaceState, and ReactDOM.render
2016-03-23 14:50:36 +00:00
Jim
75c2b6ab59 Merge pull request #6257 from terry3/highlight-not-working
Highlight 'NOT' word in example page.
2016-03-22 22:54:48 -07:00
terry3
7169da21ba Highlight 'NOT' word in example page. 2016-03-23 09:19:58 +08:00
Jon Tewksbury
a7fae7e4c7 Add warnings for onFocusIn and onFocusOut props 2016-03-21 17:22:37 -07:00
Jim
c528732504 Merge pull request #6307 from cbrwizard/getEventCharCode_unit_tests
getEventCharCode unit tests
2016-03-21 16:17:06 -07:00
Dan Abramov
af4fe68b14 Change message format to be more consistent with other errors 2016-03-21 23:13:47 +00:00
Dan Abramov
d4657b8331 Add bad callback invariants to ReactDOM.render() calls 2016-03-21 22:33:15 +00:00
Paul O’Shannessy
d433c2f376 Merge pull request #6313 from jimfb/script-integrity-attribute
Removed script security attributes, since fb.me isn't setting the proper headers.
2016-03-21 15:19:16 -07:00
Jim
8b026f901c Removed script security attributes, since fb.me isn't setting the proper headers. 2016-03-21 15:06:08 -07:00
Paul O’Shannessy
39ccdccef1 Merge pull request #6312 from vjeux/fix_docs_jump
[website] Fix jump on the header
2016-03-21 14:44:57 -07:00
Dan Abramov
ebe5128489 Use specific method names in error messages 2016-03-21 21:40:17 +00:00
Dan Abramov
552f00b536 Make setState() callback error message more descriptive
Fixes #6306
2016-03-21 21:24:19 +00:00
Christopher Chedeau
fe617082d9 [website] Fix jump on the header
Algolia adds two inline styles

```css
  position: relative;
  vertical-align: top;
```

to the element once the script inserted at the end of the page runs which super slightly moves the header. The fix is to always apply those two rules this way it doesn't jump. I did not notice it on my machine because it doesn't move when custom fonts are not being used.

Test Plan:
- Open two tabs: reactjs.com and localhost:4000/react
- Click around on reactjs.com to prime the cache with the fonts
- Switch tabs and click around on localhost (but do not force refresh!)
- Now you get custom fonts loaded locally and it doesn't jump when you change tabs
2016-03-21 14:12:20 -07:00
Paul O’Shannessy
40c4635e17 Merge pull request #6303 from qerub/use-loose-envify
Use loose-envify instead of envify
2016-03-21 12:24:46 -07:00
Christoffer Sawicki
ecf824cc2a Use loose-envify instead of envify
This reduces the number of transitive dependencies and decreases the build time (by ~6% on my machine).
2016-03-21 20:18:17 +01:00
Paul O’Shannessy
75e4ef167e Merge pull request #6309 from victor-homyakov/patch-1
Free memory allocated by testElement after usage
2016-03-21 12:16:16 -07:00
Victor Homyakov
0393488f39 Free memory allocated by testElement after usage
IE11 reports `testElement` as detached DOM node consuming memory. It is captured in closure of `setInnerHTML` function and could be safely cleared after feature test.
2016-03-21 14:07:26 +03:00
cbrwizard
7bdf4dba75 getEventCharCode unit tests
Adds unit tests to getEventCharCode.
2016-03-21 12:56:45 +03:00
Dan Abramov
441d9b65bd Merge pull request #6301 from gaearon/remove-dead-export
Remove unused export from DOMChildrenOperations
2016-03-20 00:41:29 +00:00
Dan Abramov
cfec10bd51 Remove unused export from DOMChildrenOperations 2016-03-19 21:05:05 +00:00
Jim
2f24f89111 Merge pull request #6281 from rgarifullin/microfix_docs
Microfix docs
2016-03-19 11:24:27 -07:00
Dan Abramov
67f8524e88 Merge pull request #6289 from gaearon/strip-circular-refs
Strip complex values from ReactPerf.printDOM() output
2016-03-18 22:24:18 +00:00
Dan Abramov
d138b286db Try disabling coverage on master to prevent Travis crashes
We suspect that memory overhead caused by coverage might be the reason Travis fails on master. No guarantees it will work but worth a try.
2016-03-18 00:14:25 +00:00
Dan Abramov
b6547734c6 Strip complex values from ReactPerf.printDOM() output
Fixes #6288
2016-03-17 21:23:43 +00:00
Dan Abramov
5520c399a6 Merge pull request #6287 from gaearon/rename-perf-methods
Rename ReactPerf methods to match the upcoming ReactPerf revamp
2016-03-17 20:47:02 +00:00
Dan Abramov
ea55d66760 Rename ReactPerf methods to match the upcoming ReactPerf revamp 2016-03-17 20:18:42 +00:00
rgarifullin
8e6996267f Add missing semicolon in test-utils part of docs 2016-03-17 22:51:11 +03:00
Dan Abramov
8046cbda10 Merge pull request #6285 from gaearon/no-addons
Remove react/addons
2016-03-17 19:26:03 +00:00
Dan Abramov
b322d65320 Fix the ReactDefaultPerf test to match changes in #6286 2016-03-17 19:23:21 +00:00
Dan Abramov
67647fd82f Merge pull request #6286 from gaearon/opaque-perf-measurements
Make ReactPerf.getLastMeasurements() opaque
2016-03-17 19:12:07 +00:00
Dan Abramov
51d37c64c3 Make ReactPerf measurements opaque
We intend to change the measurement format significantly in #6046. In order to introduce the new ReactPerf during 15.x release cycle, we are making the measurement structure opaque-ish in 15.0.
2016-03-17 18:48:55 +00:00
Dan Abramov
a7ed9fd199 Remove react/addons 2016-03-17 18:18:04 +00:00
Jim
663a78399c Merge pull request #6273 from cbrwizard/getEventKey_tests
getEventKey unit tests
2016-03-17 10:38:16 -07:00
Dan Abramov
e04a138634 Merge pull request #6276 from gaearon/fix-custom-components
Skip all special props when setting attributes on web components
2016-03-17 15:44:40 +00:00
Dan Abramov
8bff1f50a6 Add v15 RC2 download 2016-03-16 22:22:47 +00:00
Dan Abramov
7dd71ca488 Add v15 RC2 blog post 2016-03-16 21:48:24 +00:00
Dan Abramov
97038d1ff7 v15.0.0-rc.2 2016-03-16 21:21:34 +00:00
Dan Abramov
c395c0977f Skip all special props when setting attributes on web components 2016-03-16 21:10:47 +00:00
Dan Abramov
c5f7c8dae1 Merge pull request #6274 from facebook/revert-6226-PR-5202
Revert "Bug fix for issue 5202"
2016-03-16 20:51:07 +00:00
Dan Abramov
9f418df8b3 Revert "Bug fix for issue 5202" 2016-03-16 20:42:28 +00:00
cbrwizard
07824258c6 getEventKey unit tests
Adds unit tests to getEventKey function.
2016-03-16 22:09:41 +03:00
Jim
745108f625 Merge pull request #6270 from rofrischmann/unitless-css-property
added several new unitless properties
2016-03-16 11:21:41 -07:00
Jim
93752bb175 Merge pull request #6226 from antoaravinth/PR-5202
Bug fix for issue 5202
2016-03-16 09:48:01 -07:00
Dan Abramov
a261c45ccf Merge pull request #6267 from gaearon/svg-whitelist
Add more properties to the SVG whitelist
2016-03-16 16:24:40 +00:00
rofrischmann
318e024338 added several new unitless properties 2016-03-16 10:04:09 +01:00
Dan Abramov
9268c1a710 Add vector-effect to SVG whitelist
Requested in https://github.com/facebook/react/issues/1657#issuecomment-148420568
2016-03-15 20:51:54 +00:00
Dan Abramov
6882c7ca40 Add focusable attribute to SVG whitelist
Fixes #6212
2016-03-15 20:18:57 +00:00
Jim
9e1a637644 Merge pull request #6260 from iawia002/master
Update 02-displaying-data.zh-CN.md
2016-03-15 03:32:15 -07:00
Jim
b8682e0f20 Merge pull request #6258 from iamchenxin/zh_docs031316rest
[DOCS] Update zh-docs to v15-rc.1 (with #3240c09)
2016-03-15 02:56:05 -07:00
iamchenxin
28caa8882b [DOCS] Update zh-docs to v15-rc.1 (with #3240c09) 2016-03-15 09:42:29 +00:00
iawia002
37c3b081d9 Update 02-displaying-data.zh-CN.md
每三个是子节点 --> 第三个是子节点
2016-03-14 09:44:52 +08:00
Jim
c927cfa0b4 Merge pull request #6256 from iamchenxin/zh_docs031316
[DOCS] Update zh-docs to v15-rc.1 (with #3240c09)
2016-03-12 21:39:37 -08:00
iamchenxin
02b4d18252 [DOCS] Update zh-docs to v15-rc.1 (with #3240c09) 2016-03-13 04:24:00 +00:00
Christopher Chedeau
3240c09a06 Merge pull request #6202 from vjeux/search
Introduce search
2016-03-11 15:55:55 -08:00
Paul O’Shannessy
20e1acb7dd Merge pull request #6210 from rofrischmann/unitless-border-image-outset
added borderImageOutset to unitless CSS properties
2016-03-11 11:34:30 -08:00
Paul O’Shannessy
ec25297def Merge pull request #6243 from zpao/fuck-svg-2
Revert SVG passthrough and expand whitelist
2016-03-11 11:33:45 -08:00
Paul O’Shannessy
5a17a1ef1d Update DOMLazyTree fragments comment to reflect reality 2016-03-11 11:30:03 -08:00
Paul O’Shannessy
a0a72004e5 Fix lint warnings due to backouts 2016-03-11 11:23:53 -08:00
Paul O’Shannessy
48a1cc52d7 Remove attributes already specified in the HTML config 2016-03-11 11:08:56 -08:00
Paul O’Shannessy
37fc21f1e8 Use 0 instead of null in property config
We're using this value to check bits and null is 0 in that sense anyway. This shaves off a few bytes (though as expected, gzip is virtually unchanged)
2016-03-11 11:08:56 -08:00
Paul O’Shannessy
79a62b09ea Consolidate SVG config to avoid some duplication 2016-03-11 11:08:56 -08:00
Paul O’Shannessy
afda226cb9 Scrape MDN for latest SVG 2016-03-11 11:08:56 -08:00
Paul O’Shannessy
b7e8b7f239 Stop specifying MUST_USE_ATTRIBUTE again (bring back null) 2016-03-11 11:08:56 -08:00
Paul O’Shannessy
9f4f88b21f Revert "Merge pull request #5714 from gaearon/passthrough-svg-attributes"
This reverts commit 53dabe748c, reversing
changes made to 82fe64a456.
2016-03-11 11:08:56 -08:00
Paul O’Shannessy
2fb74cd1ac Revert "Merge pull request #6184 from gaearon/fix-svg-warning"
This reverts commit 36798f7395, reversing
changes made to b89e7d25d5.
2016-03-11 11:08:56 -08:00
Paul O’Shannessy
e8005bf01a Revert "Merge pull request #6164 from gaearon/fix-svg"
This reverts commit 4bbd8d25e1, reversing
changes made to 56c423afd6.
2016-03-11 11:08:56 -08:00
Paul O’Shannessy
0229f48815 Revert "Merge pull request #5736 from gaearon/document-svg-passthrough"
This reverts commit 713401f2eb, reversing
changes made to 53dabe748c.
2016-03-11 11:08:56 -08:00
Paul O’Shannessy
2326d1af9a Merge pull request #6251 from zpao/docfragfix
Add nodes to DocumentFragments before attaching
2016-03-11 11:05:43 -08:00
Paul O’Shannessy
1f2d9b208d Add nodes to DocumentFragments before attaching 2016-03-11 11:02:34 -08:00
Paul O’Shannessy
6eda7d2b25 Merge pull request #6245 from koba04/fix-test-is-not-a-function
Fix markup.test is not a function
2016-03-10 23:46:26 -08:00
Toru Kobayashi
5e98dceded Fix markup.test is not a function 2016-03-11 16:41:22 +09:00
Paul O’Shannessy
c912a1b367 Merge pull request #6233 from sairion/15rc1-comment-bug
Fix ReactMarkupChecksum.addChecksumToMarkup() adds checksum to comments
2016-03-10 23:36:36 -08:00
Jaeho Lee
f30fb748f8 Fix ReactMarkupChecksum.addChecksumToMarkup() adds checksum to comments
`ReactMarkupChecksum.addChecksumToMarkup()` should not add checksum to
comment markup, which is generated from components returns null. This
fixes #6209.
2016-03-11 16:12:54 +09:00
Edvin Erikson
72f33ce892 added component name to css property warnings 2016-03-11 01:33:53 +01:00
everdimension
28a97dbd74 update to set value property with empty string; add test; update ReactDOMComponent test 2016-03-10 20:48:02 +03:00
Paul O’Shannessy
c52265884a Merge pull request #6224 from koba04/adding-a-warning-for-responder-synthetic-event
Add a warning for adding properties into ResponderSyntheticEvent
2016-03-09 14:06:54 -08:00
Paul O’Shannessy
8c57fd9d31 Fix style= formatting in v15 rc blog post 2016-03-09 10:28:13 -08:00
everdimension
ea15fa31b6 set value property explicitly for "option" element even if value is empty 2016-03-09 19:21:35 +03:00
Anto
0fb1cd61e1 Bug fix for issue 5202 2016-03-09 19:16:20 +05:30
Toru Kobayashi
181db5b1f6 Add a warning for adding properties into ResponderSyntheticEvent
This is a additional work for #5947.
2016-03-09 19:30:24 +09:00
Ben Alpert
f9a08b0e9c Merge pull request #6223 from lelandrichardson/patch-1
[fix] key/ref warnings incorrectly throw on DOM Elements
2016-03-08 20:43:08 -08:00
Jim
2f4a8e9d47 Merge pull request #6095 from yiminghe/fix-async-ref-destruct
fix instance null when involve async destruction
2016-03-08 23:06:31 -05:00
Leland Richardson
f938299765 [fix] key/ref warnings incorrectly throw on DOM Elements 2016-03-08 18:51:06 -08:00
Jim
11b55231c4 Merge pull request #6214 from koba04/patch-6
Fix a mixin name in a blog post
2016-03-08 05:57:03 -08:00
Toru Kobayashi
88e1bb33aa Fix a mixin name in a blog post 2016-03-08 21:56:38 +09:00
rofrischmann
36392534a8 added border-image-outset CSS property to unitless properties
According to
https://drafts.csswg.org/css-backgrounds-3/#border-image-outset it
supports both number and length values.
Always applying ‘px’ might in that case perhaps return unwanted
behavior.
2016-03-08 11:52:47 +01:00
Jim
f6463576ee Merge pull request #6208 from JinxiuLee/patch-2
Missed parentheses for matchMeida parameter
2016-03-07 21:39:57 -08:00
Jinxiu
2a7b50a48e Missed parentheses for matchMeida parameter
https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia
2016-03-08 11:23:18 +08:00
Paul O’Shannessy
bb9629476e Merge pull request #6207 from zpao/15rc-blog-post-corrections
Remove a couple old updates from blog post
2016-03-07 18:03:31 -08:00
Paul O’Shannessy
d4371aafcf Remove a couple old updates from blog post 2016-03-07 18:00:00 -08:00
Paul O’Shannessy
e245ed6ba9 v15 rc1 starter kit 2016-03-07 17:09:45 -08:00
Paul O’Shannessy
846fd5fbf0 v15.0 rc1 blog post 2016-03-07 17:09:45 -08:00
Paul O’Shannessy
36796348f2 v15.0.0-rc.1 2016-03-07 17:02:10 -08:00
Paul O’Shannessy
e61e6dd4ed Revert "Change release to multi task"
This reverts commit c77f0b2fc5.
2016-03-07 17:02:10 -08:00
Christopher Chedeau
3d51c7523a Introduce search
Powered by the awesome Algolia :)
2016-03-07 13:15:41 -08:00
Paul O’Shannessy
340b344b20 Merge pull request #6201 from zpao/docs-babel-6
[docs] Upgrade to work with babel 6, fetch remote babel-browser for now
2016-03-07 11:43:26 -08:00
Paul O’Shannessy
dc93efaf11 Merge pull request #6200 from cpojer/master
Update to jest 0.9.0.
2016-03-07 10:46:22 -08:00
Paul O’Shannessy
56f8321559 [docs] Upgrade to work with babel 6, fetch remote babel-browser for now 2016-03-07 10:37:06 -08:00
Paul O’Shannessy
f3738d2cd0 Merge pull request #5781 from ara4n/master
support onLoad synthetic event attribute on 'object' tags
2016-03-06 18:57:37 -08:00
cpojer
626bb81241 Update to jest 0.9.0. 2016-03-06 17:35:53 -08:00
Jim
2b0f730081 Merge pull request #6199 from jquense/patch-4
Reset Jest to use Jasmine1 so tests pass again
2016-03-06 12:49:05 -08:00
Jason Quense
6a5866f286 Reset Jest to use Jasmine1 so Tests pass again
fixes #6198
2016-03-06 15:16:50 -05:00
Paul O’Shannessy
f430c47467 Merge pull request #6185 from zpao/fbjs-upgrade
Upgrade fbjs, fbjs-scripts
2016-03-06 12:12:48 -08:00
Max
7e20243516 Add benchling articles about perf to docs
Temporary solution until new react perf is released.

Ref #6174
2016-03-05 20:23:44 +01:00
Jim
10f9476f3a Merge pull request #6121 from raineroviir/rainer
Fix #6114 - Calling setState inside getChildContext should warn
2016-03-05 08:24:39 -08:00
rainer oviir
9c1916dedb Fix #6114 - Calling setState inside getChildContext should warn 2016-03-04 23:20:29 -08:00
Jim
3b86cb10c4 Merge pull request #6177 from yuanyan/patch-1
Remove dead code.
2016-03-04 22:07:17 -08:00
Paul O’Shannessy
4e2a0d14a9 Upgrade fbjs, fbjs-scripts 2016-03-04 16:07:20 -08:00
Jim
1dc705aa0b Merge pull request #6180 from camjc/master
Update PureRenderMixin docs, adding ES6 example
2016-03-04 16:06:31 -08:00
Cameron Chamberlain
9fff1693f6 Update PureRenderMixin docs, adding ES6 example 2016-03-05 11:04:14 +11:00
Craig Akimoto
6432625c6b [docs] keep position of "Edit on GitHub" link fixed 2016-03-04 15:24:31 -08:00
Paul O’Shannessy
8b22a82162 Merge pull request #6189 from zpao/sythetic-events-fix
Fix issue with SyntheticEvents and Proxies
2016-03-04 14:25:14 -08:00
Paul O’Shannessy
f707ee53e2 Extend the correct object in the SyntheticEvent proxy 2016-03-04 13:59:51 -08:00
Jim
25c2bfcd52 Merge pull request #6183 from jimfb/rec-update
Fixed typo in reconciliation docs.
2016-03-04 13:13:23 -08:00
Dan Abramov
36798f7395 Merge pull request #6184 from gaearon/fix-svg-warning
Warn about deprecated SVG attributes only once
2016-03-04 18:14:35 +00:00
Jim
0ba1073e17 Fixed typo in reconciliation docs. 2016-03-04 10:01:35 -08:00
Dan Abramov
8a9ab75261 Warn about SVG attributes once
This fixes a missing check in #5714
2016-03-04 16:26:49 +00:00
Paul O’Shannessy
b89e7d25d5 Merge pull request #6175 from zpao/eslintrc-fixes
ESLint upgrade & fixes
2016-03-03 10:18:53 -08:00
Paul O’Shannessy
093bb22030 Update lint config, dependencies, fix issues
This also fixes messages from new synthetic events warnings
2016-03-03 10:16:02 -08:00
yuanyan
45a321d686 Remove dead code. 2016-03-03 23:08:47 +08:00
Paul O’Shannessy
b271efb7d3 Convert to .eslintrc.js 2016-03-02 23:52:20 -08:00
Jim
f8046f2dc2 Merge pull request #6172 from mgmcdermott/master
Fixed linting warnings and some mis-spacing in SyntheticEvent warnings
2016-03-02 18:54:27 -08:00
Michael McDermott
18af9bc91e Fixed some linting warnings and some mis-spacing in SyntheticEvent warnings. 2016-03-02 18:40:23 -05:00
Jim
09666ad486 Merge pull request #6159 from mxstbr/move-jsx-comment
Move no-jsx note in ReactElement tests
2016-03-02 11:00:20 -08:00
Dan Abramov
4bbd8d25e1 Merge pull request #6164 from gaearon/fix-svg
Don't set children attribute on SVG nodes
2016-03-02 11:02:50 +00:00
Dan Abramov
5eab1bbe29 Don't interpret reserved props as attributes for SVG elements
This fixes a bug introduced in #5714.
The code paths are now similar to web components where we worked around the same issue in #5093.

Additionally, we also skip dangerouslySetInnerHTML and suppressContentEditableWarning.
2016-03-02 02:48:57 +00:00
Max
32b0c62214 Copy and paste no-jsx note from top of file to places where it's used
Closes #6157
2016-03-01 20:06:20 +01:00
Jim
56c423afd6 Merge pull request #6152 from jimfb/fix-blog-code-fragment
Updated code fragment for correctness.
2016-02-29 21:03:18 -08:00
Paul O’Shannessy
4da7e7ef9c Merge pull request #6151 from zpao/docs-external-sidebar-followup
Docs external sidebar followup
2016-02-29 19:28:30 -08:00
jim
aec8a9b4fe Updated code fragment for correctness. 2016-02-29 17:52:43 -08:00
Paul O’Shannessy
e0442f6915 Add redirect layout (again) and use it 2016-02-29 16:48:09 -08:00
Paul O’Shannessy
ab6041bad6 Don't add class="" if we don't need to 2016-02-29 16:30:03 -08:00
Jim
8f2b7d8e71 Merge pull request #6090 from joecritch/docs-external-link-icon
[Docs] Added icon for external links in nav
2016-02-29 15:19:25 -08:00
Paul O’Shannessy
a026b35626 Merge pull request #6140 from NogsMPLS/removeBabelBrowser
[Docs] Remove babel-browser link
2016-02-29 10:03:21 -08:00
Paul O’Shannessy
730e5ac2e6 Merge pull request #6132 from chicoxyzzy/use_object_is_in_oneof_validate_method
Using Object.is implementation when compare values inside React.PropTypes.oneOf
2016-02-29 09:59:09 -08:00
chico
03925f4f06 Using Object.is implementation when compare values inside React.PropTypes.oneOf 2016-02-29 18:46:19 +03:00
Jim
4045747af6 Merge pull request #6141 from wikinee/master
Update 10.2-form-input-binding-sugar.zh-CN.md
2016-02-29 04:56:44 -08:00
Nee
132a291747 Update 10.2-form-input-binding-sugar.zh-CN.md
translation other English Party to Chinese.
2016-02-29 17:28:47 +08:00
Ben Alpert
96eb7ffdda Merge pull request #6139 from mxstbr/fix-rendertostaticmarkup-invariant
Fix renderToStaticMarkup() invariant
2016-02-28 22:27:02 -08:00
Nathan Smith
7dc8910373 remove babel-browser link 2016-02-28 18:03:05 -06:00
Max
4d1bfcc8e1 Fix renderToStaticMarkup invariant 2016-02-28 22:33:23 +01:00
Paul O’Shannessy
5696ccfcd7 Merge pull request #6005 from milesj/synthetic-transition
Added support for synthetic animation/transition events.
2016-02-28 11:09:30 -08:00
Paul O’Shannessy
adc9104d84 Merge pull request #6133 from stevenvachon/patch-1
support standard "cssFloat" css property
2016-02-28 10:59:49 -08:00
Steven Vachon
f68325f5d7 support standard "cssFloat" css property
For tools that compile CSS may have already converted the name.

More info:
https://npmjs.com/camelcase-css
https://npmjs.com/postcss-js
2016-02-27 01:13:15 -05:00
Paul O’Shannessy
5bb4303f9d Merge pull request #6113 from kittens/babel-6
Update to Babel 6
2016-02-26 18:36:55 -08:00
Sebastian McKenzie
1365498b81 Update to Babel 6 2016-02-26 16:49:32 -08:00
Dan Abramov
4c804361e0 Fix the lint issue introduced in #6129 2016-02-26 21:57:16 +00:00
Dan Abramov
1e5bb2e9e4 Merge pull request #6129 from gaearon/syranide-lessvpm
Disable ViewportMetrics unless MouseEvent lacks support for pageX/pageY
2016-02-26 20:56:38 +00:00
Andreas Svensson
471b4af2c8 Disable ViewportMetrics unless MouseEvent lacks support for pageX/pageY 2016-02-26 20:35:48 +00:00
Jim
13871886ba Merge pull request #6127 from jimfb/LinkedInput-to-packages
Moved LinkedInput from addons to packages.
2016-02-26 11:02:52 -08:00
Dan Abramov
92530b4ddc Merge pull request #6068 from gaearon/react-instrumentation
Add ReactInstrumentation
2016-02-26 17:18:19 +00:00
Ben Alpert
74070e5838 Merge pull request #6082 from spicyj/nq-set-props
Remove unused enqueueSetProps methods
2016-02-26 00:39:48 -08:00
Ben Alpert
5b13cbc0e8 Merge pull request #5877 from spicyj/mount-class-error
Clarify error when passing class to render()
2016-02-26 00:26:11 -08:00
Ben Alpert
895fab782b Clarify error when passing class to render() 2016-02-26 00:26:02 -08:00
Miles Johnson
260353e977 Added support for synthetic animation/transition events. 2016-02-25 23:52:32 -08:00
jim
8ab15c1d84 Moved LinkedInput from addons to packages. 2016-02-25 17:49:35 -08:00
Paul O’Shannessy
e2866ae412 Merge pull request #6123 from changhw01/patch-1
Clarify a step in the quick start
2016-02-25 14:52:25 -08:00
Huang-Wei Chang
040e94b7f5 Clarify a step in the quick start
I propose to add a sentence to indicate the page is ready, and the next step (Separate File) is optional. IMMO, the quick-start guide should be really short so that readers can see the result asap. Furthermore, the "Separate File" might not work for readers using Chrome anyway.
2016-02-25 13:17:07 -08:00
yiminghe
df095c005f fix instance null when involve async destruction 2016-02-25 15:42:03 +08:00
Jim
dff05beeff Merge pull request #5947 from koba04/add-warning-for-adding-synthetic-event-property
Add a warning for adding a property in the SyntheticEvent object
2016-02-24 13:30:49 -08:00
Jim
7a3009c2b4 Merge pull request #6112 from mxstbr/surpressContentEditableWarning
Add suppressContentEditableWarning
2016-02-24 13:02:12 -08:00
Max
f7276b304c Add suppressContentEditableWarning
See #5837
2016-02-24 20:41:07 +01:00
Jim
308badbc03 Merge pull request #6094 from AprilArcus/cite-attribute
add "cite" attribute to whitelist for <blockquote> elements
2016-02-24 11:15:37 -08:00
April Arcus
39c597f523 add "cite" attribute to whitelist for <blockquote> elements (fixes #6084) 2016-02-22 20:58:17 -08:00
Joe Critchley
8886cee285 Added icon for external links in Docs nav and unlinked Complementary Tools and Examples in favor of this icon 2016-02-23 02:18:20 +00:00
Jim
de09e0acd8 Merge pull request #6092 from dpercy/patch-2
Fix inverted definition of Controlled component
2016-02-22 15:59:20 -08:00
David Percy
8011112cc1 Fix inverted definition of Controlled component 2016-02-22 18:45:36 -05:00
Jim
fb75341769 Merge pull request #6085 from srph/patch-1
Add ReactLink deprecation notice
2016-02-22 14:49:01 -08:00
Paul O’Shannessy
5652c710c0 Merge pull request #6089 from chromakey/bb-fix-htmltojsx-script-link
Fix script source HTTPS error in html-jsx.md doc
2016-02-22 14:37:26 -08:00
Bill Blanchard
6ec8f078f1 Change script src for htmltojsx.min.js to referral target to fix https error 2016-02-22 16:20:23 -05:00
Kier Borromeo
01b3196896 Add deprecation notice. 2016-02-23 01:24:23 +08:00
Jim
5ebb784be5 Merge pull request #6071 from nakazye/fix_highlight
fix sample code highlight
2016-02-22 07:08:54 -08:00
nakazye
ccfd1ffb30 Replace the code sample in all the languages.
Replace the code sample in all the languages.

But I leave below sample code because of wording relation.

* tutorial6:see 25ef456
* from tutorial16:see 3812b95
2016-02-23 00:05:26 +09:00
Ben Alpert
cf4255445e Remove unused enqueueSetProps methods 2016-02-21 14:30:23 -08:00
Jim
70b5eda83e Merge pull request #5997 from truongduy134/clone-element
Fix #5929. Resolve to default props when config key is set to undefined in cloneElement
2016-02-19 14:53:38 -08:00
Sebastian Markbåge
dcc86b63dc Merge pull request #6074 from sebmarkbage/versionpost
Clarify what the current version scheme is
2016-02-19 12:02:57 -08:00
Sebastian Markbage
a080d863c5 Clarify what the current version scheme is
In case you don't remember what version we're currently on.

Also, clarify that this is semver and that v1.0 comes with preconceived
notions.
2016-02-19 12:02:26 -08:00
Ben Alpert
628a16c84d Hashrockets 2016-02-19 11:39:42 -08:00
Sebastian Markbåge
b3335f371f Merge pull request #6073 from sebmarkbage/versionpost
Versioning Blog Post
2016-02-19 11:34:01 -08:00
Sebastian Markbage
559fed7988 Versioning Blog Post 2016-02-19 11:31:01 -08:00
Ben Alpert
98d3327a5d Merge pull request #6070 from spicyj/server-text
Fix build for useCreateElement: false, run Travis
2016-02-19 09:48:37 -08:00
Ben Alpert
81e5dd0a29 Fix build for useCreateElement: false, run Travis
It's important that we keep these code paths working because they're the only comprehensive test of adopting server-rendered HTML that we have right now. This is terrible and hacky but I am hopeful that it will at least catch stuff.
2016-02-19 09:48:06 -08:00
Ben Alpert
e8fb8c7870 Fix text component rendering with server markup
These weren't caught by CI in #5753 because we don't automatically test that yet... fixing that next.
2016-02-19 09:48:05 -08:00
Dan Abramov
3863330524 Add ReactInstrumentation
This adds `ReactInstrumentation` for the isomorphic package that uses the same approach as `ReactDOMInstrumentation`. Currently it is gated behind `__DEV__` but we will likely change this later to a runtime flag determined by whether there are any active listeners.

The first few events we add here should be sufficient for React DevTools, as determined by the `hook.emit()` calls in d90c432016/backend/attachRenderer.js.

These events will also be useful for reconstructing the parent tree in the ReactPerf rewrite in #6046.
2016-02-18 22:52:22 +00:00
Ben Alpert
684ef3e320 Merge pull request #5753 from mwiencek/no-text-span-2
Don't wrap text in <span> elements
2016-02-18 12:02:17 -08:00
Paul O’Shannessy
f818fa38b4 [docs] Use consistent formatting for headers 2016-02-18 11:53:47 -08:00
Michael Wiencek
203850013a Don't wrap text in <span> elements
Instead, use opening and closing comment nodes to delimit text data.
2016-02-18 13:49:14 -06:00
Jim
5d7cd93b0e Merge pull request #6064 from jimfb/provide-msunsafe-wrapper
Create ms-unsafe functions in one place, simplifies code.
2016-02-18 11:14:47 -08:00
Jim
efa8624eb9 Merge pull request #6059 from jimfb/tutorial-children-callback
Clearify callback text in the tutorial
2016-02-18 11:14:24 -08:00
Toru Kobayashi
decff26e81 Add a warning for adding some properties in the SyntheticEvent object if Proxy is supported 2016-02-18 19:26:32 +09:00
Jim
6454bfb9de Merge pull request #6065 from benjycui/fix-comments
Update comments for EventPluginHub.js
2016-02-18 00:31:50 -08:00
Benjy Cui
c54249c868 Update comments for EventPluginHub.js 2016-02-18 16:23:00 +08:00
Jim
e8e56e8723 Merge pull request #5940 from kentcdodds/pr/warn-event-pool-access
Add warning when reading from event which has been returned to the pool
2016-02-17 21:51:40 -08:00
Kent C. Dodds
6312852688 warn(SyntheticEvent): Warn when accessing or setting properties on released syntheticEvents
Closes #5939
2016-02-17 22:46:12 -07:00
jim
51d16473b0 Create ms-unsafe functions in one place, simplifies code. 2016-02-17 21:10:20 -08:00
Jim
5879c9e1a4 Merge pull request #6063 from Andrew8xx8/master
Wrap insertBefore in Windows 8 apps
2016-02-17 20:28:27 -08:00
Andreww8xx8
8d08f3f00a Wrap insertBefore in Windows 8 apps 2016-02-18 06:12:29 +03:00
Ben Alpert
3a4e1dbb5b Fix merge conflict in #4940 2016-02-17 17:20:37 -08:00
jim
5ffd1db570 Clearify callback text in the tutorial 2016-02-17 16:30:11 -08:00
Ben Alpert
62e9531023 Merge pull request #4940 from spicyj/no-construct
Remove "construct" call except on composites
2016-02-17 15:53:25 -08:00
Ben Alpert
acb49363d5 Remove "construct" call except on composites
This is a little simpler (and a teeny tiny bit faster). The one in ReactCompositeComponent stays because of the way we create ReactCompositeComponentWrapper inside instantiateReactComponent.
2016-02-17 15:48:24 -08:00
Jim
c9e0fc766f Merge pull request #5720 from edmellum/master
Fix #4963 - SVG <use> swallows click events
2016-02-17 07:01:50 -08:00
David Ed Mellum
2fdaba49c7 Fix #4963 - SVG <use> swallows click events 2016-02-17 15:25:45 +01:00
Christoph Pojer
50c28fa9c4 Merge pull request #6052 from cpojer/master
Update to jest-cli 0.9.
2016-02-17 15:44:28 +09:00
cpojer
383e2f938d Update to jest-cli 0.9. 2016-02-17 13:01:14 +09:00
Jim
73ad44567c Merge pull request #6039 from mxstbr/convert-docs-to-stateless
Update documentation to stateless components
2016-02-16 12:25:39 -08:00
Jim
356fa4e8c0 Merge pull request #6048 from mxstbr/update-tutorial-versions
Update jQuery and marked versions in tutorial docs
2016-02-16 12:10:06 -08:00
Max
d26ec08cf1 Update jQuery and marked versions in tutorial 2016-02-16 12:07:03 -08:00
Paul O’Shannessy
41dea65abf Merge pull request #6017 from zpao/docs-sri-task
Generate SRI hashes for docs
2016-02-16 11:50:31 -08:00
Jim
3bee2d962a Merge pull request #5744 from prometheansacrifice/warn-if-user-accesses-key-ref-props
Warns on access of `props.key` and `props.ref`
2016-02-16 10:11:28 -08:00
Manas
c3980a6d08 Warns on access of props.key and props.ref 2016-02-16 22:04:32 +05:30
Jim
ee64241e90 Merge pull request #6044 from bellanchor/master
Fix typo in Chinese tutorial
2016-02-16 03:11:34 -08:00
liudongsheng
5b80f9009f Fix typo in Chinese tutorial 2016-02-16 18:24:07 +08:00
Max
ec41af0557 Update documentation to stateless components
Ref #5949 @jimfb
2016-02-15 10:24:04 -08:00
Jim
2410dc7f15 Merge pull request #6028 from sambev/issue/6027-uncaught-type-error
Fix for issue/6027.
2016-02-13 13:19:11 -08:00
Sam Beveridge
57d59ea344 Remove check for _wrapperState.pendingUpdate.
We can just set it to true regardless.
2016-02-13 12:01:49 -07:00
Paul O’Shannessy
8aacf1e850 Merge pull request #6032 from saiichihashimoto/allow-profile-attr
Allow Profile attr
2016-02-13 09:26:20 -08:00
Paul O’Shannessy
175d0978cc Merge pull request #6031 from jontewks/update-docs
Add npm install instructions to readme
2016-02-13 09:24:04 -08:00
Saiichi Hashimoto
0b87d7f56f Update HTMLDOMPropertyConfig.js 2016-02-13 00:42:47 -08:00
Jon Tewksbury
17c9dffed4 Add npm install instructions to readme 2016-02-12 23:20:52 -08:00
Jim
d684b1598d Merge pull request #5864 from TheBlasfem/master
Warn when an input switches between controlled and uncontrolled
2016-02-12 16:34:55 -08:00
Ben Alpert
b3eaab9f75 Merge pull request #6030 from facebook/vjeux-patch-1
Add thanks for the react org
2016-02-12 15:00:27 -08:00
Christopher Chedeau
5ce1fea75a Add thanks for the react org 2016-02-12 14:50:37 -08:00
Sam Beveridge
385cadf8e3 Forgot to 'not' the pendingUpdate condition. 2016-02-12 14:32:47 -07:00
Sam Beveridge
c4a2425eca Fix for issue/6027.
ReactDOMSelect's _handleChange function tries to set
this._wrapperState.pendingUpdate = true after executing the onChange
function. However, if the select was removed as a result of said
fuction, this._wrapperState would be null. Resulting in an
Uncaught TypeError: Cannot set property 'pendingUpdate' of null.
2016-02-12 14:00:15 -07:00
Jim
bbd5a78efa Merge pull request #6009 from jimfb/error-boundaries-initial-render-componentWillUnmount
Errors in componentWillUnmount should be caught by error boundary on initial render.
2016-02-11 18:11:35 -08:00
jim
dd390b3e36 Errors in componentWillUnmount should be caught by error boundary on initial render. 2016-02-11 17:44:35 -08:00
Jim
293dc75584 Merge pull request #6008 from jimfb/module-pattern
Enable module pattern.
2016-02-11 17:26:46 -08:00
jim
428ef03bbb Enable module pattern. 2016-02-11 12:59:25 -08:00
Ben Alpert
3e41da767f Merge pull request #5892 from ianobermiller/children-map-key-slash
ReactChildren.map: only add slash if new child has key
2016-02-10 16:53:59 -08:00
Paul O’Shannessy
b560fea08d Merge pull request #5909 from rajatsehgal/patch-1
Use const instead of var (ES6 best practices)
2016-02-10 13:32:21 -08:00
Paul O’Shannessy
e5b304ebe3 Merge pull request #6016 from zpao/rm-batched-updates-addons
Remove React.addons.batchedUpdates
2016-02-10 12:23:55 -08:00
Paul O’Shannessy
fcfbcf79a0 [docs] Reformat script tags on download page 2016-02-10 12:13:01 -08:00
Paul O’Shannessy
3ce7e91946 [docs] Automate SRI hash generation with rake task 2016-02-10 12:11:45 -08:00
Paul O’Shannessy
bd3979980f Merge pull request #6004 from TheBlasfem/sri-links
Included SRI hashes for fb.me links on download page
2016-02-10 11:40:08 -08:00
Paul O’Shannessy
6fe495a5ab Remove React.addons.batchedUpdates 2016-02-10 11:20:50 -08:00
Julio Lopez
0509950e74 Included SRI hashes for fb.me links on download page 2016-02-08 22:40:57 -05:00
Nguyen Truong Duy
48ded230fc Resolve default prop values in cloneElement
In cloneElement, when key in input config is set to undefined, the associated
prop value should be resolved to default prop values
2016-02-09 09:02:07 +07:00
Paul O’Shannessy
4a1b0b7dfa Merge pull request #5977 from jfairbank/remove-new-call
Remove instance of invoking ReactElement with new operator
2016-02-08 14:14:50 -08:00
Paul O’Shannessy
9d22ce8440 Merge pull request #6000 from shinnn/process
Do not get `process` object by using `require`
2016-02-08 11:33:15 -08:00
Paul O’Shannessy
08c7b1aa40 Update jsdelivr url 2016-02-08 11:26:46 -08:00
Jim
1e85460909 Merge pull request #5999 from shinnn/https
Use HTTPS protocol for jsdelivr.com URL
2016-02-08 10:22:57 -08:00
Shinnosuke Watanabe
38bf3583cb Do not get process object by using require
Because `process` object is globally available in Node.js.
2016-02-09 01:41:24 +09:00
Shinnosuke Watanabe
a90344a9c1 Use HTTPS protocol for jsdelivr.com URL 2016-02-09 01:00:51 +09:00
Jim
725a723e27 Merge pull request #5992 from pra85/patch-1
[docs] Fix typo in blog
2016-02-05 22:00:54 -08:00
Prayag Verma
e4b463f921 [docs] Fix typo in blog
Found a spelling mistake -
writting > writing
2016-02-06 11:21:40 +05:30
Paul O’Shannessy
886044312c Merge pull request #5986 from zpao/fix-lint
Fix lint
2016-02-05 10:57:57 -08:00
Paul O’Shannessy
a1dab9edbf Fix lint
- Upgrade babel-eslint
- Ignore coverage
- Fix actual lint warning
2016-02-05 10:56:51 -08:00
Jim
81e41ae1b1 Merge pull request #5982 from jimfb/error-boundaries-composite-unmount
Error boundries should not unmount composite components which were not mounted.
2016-02-04 17:20:09 -08:00
jim
86305fba41 Error boundries should not unmount composite components which were not mounted. 2016-02-04 17:10:18 -08:00
Jim
220b4b6b50 Merge pull request #4437 from gajus/patch-1
Improve definition of the controlled and uncontrolled input
2016-02-04 08:34:30 -08:00
Julio Lopez
b38b39a696 warn when an input switches between controlled and uncontrolled
added controlled key to DEV

warn for checkbox inputs

warn for radio inputs

compute controlled instead of value

displaying owner name in warning

displaying input type in warnings
2016-02-04 09:31:41 -05:00
Gajus Kuizinas
97e0fe5d91 Improve definition of the controlled and uncontrolled input. 2016-02-04 12:02:53 +00:00
Jeremy Fairbank
dbb54b1990 Remove instance of invoking ReactElement with new operator 2016-02-03 21:03:32 -05:00
Jim
f2bb01506a Merge pull request #5965 from karczk/issue-5957
Fix for #5957: Bug on resolving default props (HTMLAllCollection)
2016-02-03 14:39:11 -08:00
karczk
ef2b1f26ef Unnecessary type comparisons have been changed to value comparison 2016-02-02 19:35:58 +01:00
krystian.karczewski
8c7d743361 Fix for #5957: Bug on resolving default props (HTMLAllCollection) 2016-02-02 11:51:31 +01:00
Jim
292f2b7608 Merge pull request #5961 from MarkMurphy/issue-5959
Fixes #5959 - jquery-bootstrap example uses handleHidden which does not exist
2016-02-01 22:06:01 -08:00
Mark Murphy
0bd65aa028 Fixes #5959 - jquery-bootstrap example uses which does not exist
1. Add a handleHidden method to the BootstrapModal component.
2. Add an event listener for 'hidden.bs.modal' on the modal root
3. Add a new onHidden prop to the BootstrapModal component.
4. Add a new 'handleModalDidClose' method to the Example component to be used as the onHidden prop of it's modal component.
2016-02-01 21:54:56 -04:00
Jim
2981bef075 Merge pull request #5953 from davidvgalbraith/dont-redundantly-set
test: get rid of 'should be 1' comment
2016-02-01 13:07:46 -08:00
Dave
1beae0c4ff test: get rid of 'should be 1' comment
This should not be 1, since boolean properties always get set.
2016-02-01 12:53:25 -08:00
Jim
823966ef33 Merge pull request #5955 from pekeq/patch-docs-1
Add note in "Fetching from the server" section.
2016-02-01 11:54:27 -08:00
Hideo Matsumoto
d136d28f55 Add note in "Fetching from the server" section. 2016-02-01 23:19:08 +09:00
Jim
1ccec8b711 Merge pull request #5946 from tjfryan/fix-docs-css
Fixes highlight issue for code blocks with overflow (css)
2016-01-29 17:33:44 -08:00
John Ryan
cded0c5c23 Fixes highlight issue for code blocks with overflow 2016-01-29 16:46:16 -08:00
Jim
188e8cde2f Merge pull request #5884 from jimfb/component-extends-react-component
Enable null return values in plain functions
2016-01-29 15:05:08 -08:00
Jim
9d5825cf4b Merge pull request #3372 from jonhester/void-elements
ReactDOMComponent should throw error when provided children for void elements
2016-01-29 13:27:35 -08:00
Jim
67e1291ef7 Merge pull request #1510 from syranide/propattr
Use removeAttribute to forcefully remove properties from the DOM
2016-01-29 12:48:25 -08:00
Rajat Sehgal
a0c32cb629 Use const instead of var (ES6 best practices) 2016-01-29 00:47:43 -05:00
Paul O’Shannessy
9c3f595597 Merge pull request #5923 from puppybits/patch-1
Update 12-context.md
2016-01-28 20:06:09 -08:00
Bobby
6986fdd6bd Update 12-context.md
Context was missing info on how to update the context after the initial render. Added a simple blurb and an example.

[Docs] 12-context.md code review changes
2016-01-28 16:47:56 -08:00
Scott Feeney
c569b329e9 Update website for 0.14.7
(cherry picked from commit e48343bd03)
2016-01-28 12:28:25 -08:00
Scott Feeney
6ecf06ce60 Update CHANGELOG.md and README.md
(cherry picked from commit 741124548d)
2016-01-28 12:28:18 -08:00
Paul O’Shannessy
e9636b1f6a Merge pull request #5903 from zpao/rm-build-deps
Clean up ununsed devDeps
2016-01-28 10:29:03 -08:00
Paul O’Shannessy
4b2b7b0d3e Merge pull request #5911 from Mathieuu/patch-1
Fix broken guide example in "Motivation: Separation of Concerns"
2016-01-28 10:22:33 -08:00
Paul O’Shannessy
fc547e8380 Merge pull request #5928 from scjody/patch-1
Add a link to the list of supported events
2016-01-27 15:47:57 -08:00
Jody McIntyre
01f10eb7ba Add a link to the list of supported events 2016-01-27 18:09:47 -05:00
Paul O’Shannessy
ed40119db8 Merge pull request #5922 from zpao/package-empty-deps
Add empty dependencies for packages
2016-01-27 11:05:21 -08:00
Paul O’Shannessy
a92bc51e0a Add empty dependencies for packages
This ensures that broken npm versions won't crash when doing install --production
2016-01-26 08:37:30 -08:00
Paul O’Shannessy
6f5e619fae Merge pull request #5912 from chrisbolin/patch-1
Small copy changes to TestUtils and Perf summaries
2016-01-25 16:09:57 -08:00
Chris Bolin
edaf5b43b4 Small copy changes to TestUtils and Perf summaries 2016-01-25 19:02:21 -05:00
Paul O’Shannessy
ea79138156 Merge pull request #5917 from zeke/homepage-urls
Fix homepage URLs in package.json files
2016-01-25 12:58:32 -08:00
Zeke Sikelianos
0ce28c6e88 fix homepage URLs in package.json files 2016-01-25 14:44:17 -06:00
Mathieu Savy
e1b7c3aa0c Fix broken guide example in "Motivation: Separation of Concerns"
The code example in `Motivation: Separation of Concerns` now fetches the `Engineering` facebook page instead of the user `pwh`.

With the current version of the graph api, it is impossible to fetch the user picture from an username. However it is still doable for public pages.
2016-01-24 17:04:17 -08:00
Paul O’Shannessy
096115c5c9 Merge pull request #5904 from sercaneraslan/master
Overflow problem fixed
2016-01-22 11:30:06 -08:00
Sercan Eraslan
080ff5ad73 Overflow problem fixed 2016-01-22 20:51:15 +02:00
Paul O’Shannessy
7c52b802b4 Clean up ununsed devDeps
Also removed object-assign. We only support building with node v4+ which has Object.assign.
2016-01-22 10:17:30 -08:00
Paul O’Shannessy
4c03bafa4e Merge pull request #5891 from zpao/vendor-semi
Add semicolon for react-dom source files.
2016-01-21 17:06:48 -08:00
Jim
1aa7fd0d24 Merge pull request #5900 from tmysz/ja-doc
Fix mistranslation "never write to this.props."
2016-01-21 10:53:29 -08:00
tmysz
7e779a9d44 Fix mistranslation "never write to this.props." 2016-01-22 01:41:39 +09:00
Paul O’Shannessy
b41f5a1cdf v0.15.0-alpha.1 2016-01-20 20:07:37 -08:00
Ian Obermiller
30f7641873 ReactChildren.map: only add slash if new child has key
See the new test for the scenario I am trying to fix; if you clone an
element in React.cloneElement, vs just returning it directly, you will
get a different key (with a slash in front) even though the two
children are identical.
2016-01-20 19:20:22 -08:00
Ian Obermiller
76da1f8599 Merge remote-tracking branch 'facebook/master' 2016-01-20 14:50:30 -08:00
jim
757756f682 Enable null return values in plain functions 2016-01-20 14:11:41 -08:00
Paul O’Shannessy
e9e70365c3 Add semicolon for react-dom source files. 2016-01-20 13:35:03 -08:00
Jim
af43d06e97 Merge pull request #5887 from natejlee/patch-1
Fixup missing semi-colon
2016-01-20 00:56:29 -08:00
Nate Lee
7f98dc897d Fixup missing semi-colon
an inconsistency with a missing semi-colon on a variable
2016-01-19 21:35:10 -08:00
Ben Alpert
e420edda36 Merge pull request #5886 from goatslacker/cant-dangerouslysetinnerhtml-for-option
Only add children in ReactDOMOption when there are children
2016-01-19 15:12:09 -08:00
Josh Perez
3da6e2889b Only add children when there are children 2016-01-19 14:48:47 -08:00
Jim
7cee5022f8 Merge pull request #5885 from knpwrs/patch-1
Clarify stateless function component optimizations.
2016-01-19 13:50:41 -08:00
Ken Powers
49fa7d139d Clarify stateless function component optimizations.
As discussed on Discord.
2016-01-19 16:46:00 -05:00
Paul O’Shannessy
31d3bfa763 Merge pull request #5811 from jontewks/warn-nan-style
Warn when a style object has NaN for a value
2016-01-18 17:06:19 -08:00
Paul O’Shannessy
ae5ff24da6 Merge pull request #5865 from leeyoungalias/master
update react example basic-jsx-precompile comand line
2016-01-17 19:42:32 -08:00
Jim
c7808cac69 Merge pull request #5872 from SimenB/patch-1
Fix example from #5870 to avoid double rendering
2016-01-17 14:31:27 -08:00
Simen Bekkhus
f5a9a26a43 Fix example from #5870 to avoid double rendering 2016-01-17 23:25:29 +01:00
Jim
e09dfe1e0e Merge pull request #5870 from SimenB/patch-1
Remove the recommendation to use `isMounted` from beginner docs
2016-01-17 12:08:50 -08:00
Simen Bekkhus
1186cb9ab4 Remove the recommendation to use isMounted from beginner docs 2016-01-17 20:53:20 +01:00
Jon Tewksbury
7a6000c093 Add warning for NaN in style object 2016-01-16 11:10:50 -08:00
leeyoungalias
aedfa3011e update react example basic-jsx-precompile comand line on markdown file,new version of babel needed a react presets dependency. 2016-01-16 22:53:24 +08:00
Jim
2f792d5a60 Merge pull request #5859 from jimfb/clonewithprops
Removed cloneWithProps addon.
2016-01-15 17:25:24 -08:00
jim
accd0d874d Removed cloneWithProps addon. 2016-01-15 17:17:36 -08:00
Paul O’Shannessy
422b4e105c Merge pull request #5840 from koba04/release-event-target-on-destructor
Release syntheticEvent.target on the destructor
2016-01-15 16:38:42 -08:00
Paul O’Shannessy
909cba2254 Merge pull request #5724 from iamchenxin/docs122315
Update zh-docs with 4865ddf(v0.14.3+)
2016-01-15 11:18:35 -08:00
iamchenxin
209b7522d9 update zh-docs14.3 ,fixed confliction 2016-01-14 18:38:07 +08:00
Toru Kobayashi
be0551d01e Release syntheticEvent.target on the destructor 2016-01-14 15:09:56 +09:00
Paul O’Shannessy
f1c1544401 Merge pull request #5849 from david0178418/master
Added additional detail to "props-in-getInitialState" anti-pattern doc
2016-01-13 21:32:33 -08:00
David Granado
fb5cd2f7ae Added additional detail to "props-in-getInitialState" anti-pattern doc
While seemingly self-explanatory, this clarifies the reasons props usage in getInitialState might be considered an antipattern.
2016-01-13 23:22:52 -06:00
Jim
fcc63e1fff Merge pull request #5832 from jimfb/cleanup-top-level-dom-api
Remove DOM functions from top-level isomorphic API
2016-01-13 15:41:03 -08:00
Jim
7334fece2c Merge pull request #5718 from jimfb/linked-input
Added LinkedInput addon.
2016-01-13 15:40:46 -08:00
Jim
689efd1abf Merge pull request #5833 from jimfb/remove-getDOMNode
Removed getDOMNode from react classes.
2016-01-13 15:40:12 -08:00
jim
0acdb7b56a Added LinkedInput addon. 2016-01-13 12:29:00 -08:00
Paul O’Shannessy
1da992a0ab Merge pull request #5735 from cody/refs
[docs] Small fixes to "more about refs"
2016-01-12 13:02:27 -08:00
Stefan Dombrowski
ad4e31c312 [docs] Small fixes to "more about refs"
* Add a null check to "A Complete Example".
* Fix outdated comment. (Found by @mjomble)
* Replace short dash - with longer dash –.
* Remove backticks from state, because it is not code.
2016-01-12 19:07:35 +01:00
Ben Alpert
fdd7fabd12 Merge pull request #5728 from spicyj/input-gc
Remove now-unused instancesByReactID in DOMInput
2016-01-12 10:00:43 -08:00
Paul O’Shannessy
9494ec80c2 Merge pull request #5732 from iamchenxin/en-docs
[docs] deleting some unecessary newline
2016-01-12 09:57:32 -08:00
Ben Alpert
dd93eb7f40 Merge pull request #5834 from spicyj/no-ie8
blog post: Discontinuing IE 8 Support in React DOM
2016-01-12 10:27:46 -07:00
Ben Alpert
1b3adff1ca blog post: Discontinuing IE 8 Support in React DOM 2016-01-12 10:27:30 -07:00
Jim
da1fcd0fbf Merge pull request #5836 from koba04/fixup-jsdoc-for-syntheticevent
Fixup jsdoc for SyntheticEvent
2016-01-12 09:11:31 -08:00
Jim
70097ea27c Merge pull request #5826 from jacenko/master
Fixed typo in shouldComponentUpdate.png
2016-01-12 08:45:38 -08:00
Toru Kobayashi
6f976dfbbe Fixup jsdoc for SyntheticEvent 2016-01-13 00:52:59 +09:00
jim
2e1fb4b529 Remove DOM functions from top-level isomorphic API 2016-01-11 23:57:08 -08:00
jim
e8af100849 Removed getDOMNode from react classes. 2016-01-11 23:32:22 -08:00
Ben Alpert
ee03c19b3b Remove references to IE 8 in docs 2016-01-11 23:32:29 -07:00
Paul O’Shannessy
b60e8c255d Merge pull request #5829 from zpao/style-followup
Fixup style for long lines
2016-01-11 20:55:56 -08:00
Paul O’Shannessy
26f53de4a6 Fixup style for long lines 2016-01-11 17:27:37 -08:00
Jim
171305f7e2 Merge pull request #5823 from mgmcdermott/master
Warn when value and defaultValue props are both specified on input or textarea.
2016-01-11 15:33:43 -08:00
Michael McDermott
f2b62e9d90 Warn when both value and defaultValue or both check and defaultChecked props are specified on input, textarea, or select elements 2016-01-11 18:09:37 -05:00
Deniss Jacenko
d51a1d4ec1 Fixed typo in shouldComponentUpdate.png
Reconciiation -> Reconciliation
2016-01-11 17:29:40 -05:00
Paul O’Shannessy
f7850dd3d7 Merge pull request #5686 from vitorbal/master
Improve documentation for using React with Webpack
2016-01-11 12:25:26 -08:00
Paul O’Shannessy
67e85df1fa Merge pull request #5814 from zpao/docs-update-attrs-0.14.6
[docs] Updated supported attrs
2016-01-11 10:37:33 -08:00
Andreas Svensson
77a137adf9 Use removeAttribute to forcefully remove properties from the DOM, drop MUST_USE_ATTRIBUTE and manage all regular properties as attributes instead 2016-01-09 11:55:56 +01:00
Jim
ea0ac61945 Merge pull request #5813 from graue/tips-unneeded-finddomnode
[docs] remove unnecessary findDOMNode from example
2016-01-08 20:30:25 -08:00
Paul O’Shannessy
708e1b3f03 Sort attrs in HTMLDOMPropertyConfig 2016-01-08 17:23:25 -08:00
Scott Feeney
0c6b909322 [docs] remove unnecessary findDOMNode from example
This call is not needed anymore due to https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#dom-node-refs
2016-01-08 17:19:28 -08:00
Paul O’Shannessy
3574e60867 [docs] Updated supported attrs 2016-01-08 17:17:59 -08:00
Jim
23167f287e Merge pull request #5806 from Zhangjd/master
Update thinking-in-react.zh-CN.md
2016-01-08 10:03:47 -08:00
Zhangjd
a3ec1c34d6 Update thinking-in-react.zh-CN.md 2016-01-08 17:58:23 +08:00
Jim
a1584053cc Merge pull request #5790 from jimfb/componentWillReceiveProps-blogPost
Blog post explains to verify prop mutations in componentWillReceiveProps
2016-01-07 16:21:03 -08:00
Paul O’Shannessy
31fc7fd627 Merge pull request #5801 from zpao/docs-bigger-embeds
[docs] Bigger jsfiddle embeds
2016-01-07 15:08:57 -08:00
Paul O’Shannessy
c3cea365e7 [docs] Bigger jsfiddle embeds 2016-01-07 11:44:25 -08:00
jim
70938de9ae Blog post explains to verify prop mutations in componentWillReceiveProps 2016-01-07 11:11:54 -08:00
Paul O’Shannessy
a7f7ef6ac3 Update website for 0.14.6
(cherry picked from commit d5bf8c553f)
2016-01-07 10:11:21 -08:00
Paul O’Shannessy
5597873d7c Changelog & Readme for v0.14.6
(cherry picked from commit 06cad05d49)
(cherry picked from commit 44e90c040d)
2016-01-07 10:10:38 -08:00
Paul O’Shannessy
19db8e13bc Upgrade to fbjs@^0.6.1
(cherry picked from commit f305deb065)
2016-01-07 10:10:14 -08:00
Jim
78be6f45cc Merge pull request #5799 from gmcquistin/patch-1
[docs] Fix typo in ref-08-reconciliation.md
2016-01-07 09:13:32 -08:00
Gavin McQuistin
d3e315193a Fix typo in ref-08-reconciliation.md 2016-01-07 14:40:44 +00:00
Jim
9b679ab56a Merge pull request #5787 from milesj/receive-props-context-fix
Trigger componentWillReceiveProps when context changes
2016-01-06 15:54:38 -08:00
Miles Johnson
f4c5b2c00b Updated ReactCompositeComponent to trigger componentWillReceiveProps when either props or context change. Fixes issue #5756 2016-01-06 15:49:47 -08:00
Jim
2751e8179d Merge pull request #5784 from jimfb/getNativeNode
Add getNativeNode back, so we can get the native node when performing reorderings (instead of relyin
2016-01-05 15:32:24 -08:00
jim
4e3d38ed27 Removed note explaining why the logic is there, since the justification is now different. 2016-01-05 15:30:00 -08:00
Ben Alpert
0e8db6ba42 Merge pull request #5782 from spicyj/img
Move nodes around by reference instead of by index
2016-01-05 15:13:25 -08:00
Ben Alpert
eb00290673 Remove now-unused prepareToManageChildren
This was a temporary hook needed for the DOM implementation. We no longer need it because we now necessarily load every node into cache (via calling getNativeNode on it) before manipulating any of its siblings.
2016-01-05 15:08:42 -08:00
Ben Alpert
27926572f6 Move nodes around by reference instead of by index
This makes things easier if we ever want to use more than one DOM node for a component. Notably, this is more convenient if we want to remove the wrappers around text components (since text nodes can be split and joined however a browser feels like) or if we want to support returning more than one element from render (#2127).

I left the old indexes so that implementations aren't forced to use the node/image if they prefer indices, because I'm not sure yet whether the changes corresponding to my rewrite of DOMChildrenOperations are easy or hard yet in React Native. (The tests pass with and without the DOMChildrenOperations changes here.)
2016-01-05 15:08:42 -08:00
Ben Alpert
0ebc7b60e1 Revert "Merge pull request #5689 from jimfb/cleanup-5151"
This reverts commit 067547c1d1, reversing
changes made to 102cd29189.
2016-01-05 15:08:15 -08:00
Jim
067547c1d1 Merge pull request #5689 from jimfb/cleanup-5151
Get rid of getNativeNode()
2016-01-05 14:42:05 -08:00
Matthew Hodgson
7f322b5a46 support onLoad synthetic event attribute on 'object' tags - useful for telling when SVGs embedded as objects have loaded 2016-01-05 02:28:25 +00:00
Jim
102cd29189 Merge pull request #5775 from facebook/fix-checkbox-wording
Fix wording to make it more clear that checkbox (input) supports defaultChecked
2016-01-04 13:34:20 -08:00
Jim
a8c2c80fdc Fix wording to make it more clear that checkbox (input) supports defaultChecked
Fix some confusion about why `input` would support `defaultChecked` (it's because you can have an input of type checkbox).  This has come up a couple of times (https://github.com/facebook/react/pull/5633, https://github.com/facebook/react/pull/5774) but both those PRs were wrong and it was just easier to fix it myself.
2016-01-04 13:19:22 -08:00
Paul O’Shannessy
bdcb69f43d Merge pull request #5767 from yhagio/patch-2
Update 10.4-test-utils.md
2016-01-03 13:45:26 -08:00
Yuichi Hagio
c035179ef8 Update 10.4-test-utils.md
Added `var renderer = ReactTestUtils.createRenderer();` (Line 235) to clarify where `renderer` (Line 236) comes from.
2016-01-01 23:15:37 -05:00
Paul O’Shannessy
3b96650e39 Merge pull request #5748 from rickbeerendonk/year-agnostic-copyright
Year-agnostic copyright message, like React Native uses, to prevent the need for yearly changes.
2015-12-29 23:24:24 -08:00
Ben Alpert
2a042a3060 Website for 0.14.5
(cherry picked from commit fb6b3b05f4)
2015-12-29 14:43:30 -08:00
Ben Alpert
e15e059d73 Readme for 0.14.5
(cherry picked from commit d6a0a083e4)
2015-12-29 14:43:30 -08:00
Ben Alpert
dd2dbd0a5c Changelog for 0.14.5
(cherry picked from commit e7b178390d)
2015-12-29 14:43:30 -08:00
Ben Alpert
6dc7f13343 Upgrade fbjs to 0.6 in npm package too
(cherry picked from commit a9732ba548)
2015-12-29 14:43:30 -08:00
Ben Alpert
2a64098271 0.14.4 blog post 2015-12-29 14:19:18 -08:00
Ben Alpert
7cc6738061 Update a few changelog things forgotten in 3f355d99
(cherry picked from commit 0d5d0b2688)
2015-12-29 14:11:45 -08:00
Ben Alpert
8f720f8cd9 update website for 0.14.4
(cherry picked from commit c8398491d8)
2015-12-29 14:11:45 -08:00
Ben Alpert
a58cde6c79 Update readme for 0.14.4
(cherry picked from commit 0516e74473)
2015-12-29 14:11:45 -08:00
Ben Alpert
53920e7c38 Changelog for 0.14.4
(cherry picked from commit 3f355d99c5)
2015-12-29 14:11:45 -08:00
Ben Alpert
99dc2a73f6 Upgrade fbjs to 0.6
(counterpart to a29b4938a8)
2015-12-29 14:11:33 -08:00
Ben Alpert
62c9d999be Merge pull request #5749 from spicyj/lib-native
Add shim files for RN in npm package
2015-12-29 13:34:55 -08:00
Ben Alpert
c29642d6ed Add shim files for RN in npm package 2015-12-29 12:14:22 -08:00
Rick Beerendonk
bef45b0b1a Year-agnostic copyright message, like React Native uses, to prevent the need for yearly changes. 2015-12-29 20:20:32 +01:00
Paul O’Shannessy
51295bf7d0 Merge pull request #5741 from mziwisky/patch-1
Remove extraneous comment
2015-12-29 00:21:24 -08:00
Michael Ziwisky
a0d6a98cbf Remove extraneous comment
This little guy should have been removed in 6bd6ef208b
2015-12-28 19:28:41 -06:00
Dan Abramov
713401f2eb Merge pull request #5736 from gaearon/document-svg-passthrough
Document changes in #5714
2015-12-26 03:09:13 +00:00
Dan Abramov
feb4c487be Document changes in #5714 2015-12-25 18:51:09 +00:00
Dan Abramov
53dabe748c Merge pull request #5714 from gaearon/passthrough-svg-attributes
Pass all SVG attributes through
2015-12-25 13:53:33 +00:00
Dan Abramov
98a7100930 Use JSX in the new tests 2015-12-25 13:50:10 +00:00
Dan Abramov
f27e3aa750 Move the specific else if clause up 2015-12-25 13:48:13 +00:00
Dan Abramov
251d6c30b5 Move SVG attribute deprecation warnings into a devtool
In #5590 a new system was introduced for tracking dev-time warnings.
This commit uses it for reporting SVG attribute deprecation warnings.
2015-12-24 17:50:46 +00:00
Dan Abramov
232a47ad04 Pass SVG attributes through
All attributes defined on SVG elements will now be passed directly regardless of the whitelist. The casing specified by user will be preserved, and setAttribute() will be used.

In the future we will remove support for the camel case aliases to the hyphenated attributes. For example, we currently map `strokeWidth` to `stroke-width` but this is now deprecated behind a warning. When we remove support for this we can remove some of the code paths introduced in this commit.

The purpose of this change is to stop maintaining a separate SVG property config. The config still exists for two purposes:

* Allow a migration path for deprecated camelcased versions of hyphenated SVG attributes
* Track special namespaced attributes (they still require a whitelist)

However it is no longer a blocker for using new non-namespaced SVG attributes, and users don't have to ask us to add them to the whitelist.

Fixes #1657
2015-12-24 17:18:33 +00:00
iamchenxin
6e0a023572 deleting some unecessary newline 2015-12-24 14:57:30 +08:00
iamchenxin
badc15e3c0 update zh-docs (v0.14.3+) 2015-12-24 13:57:07 +08:00
Jim
82fe64a456 Merge pull request #5590 from jimfb/use-devtool-for-unknown-property-warning
Use devtool for unknown property warning
2015-12-23 19:02:58 -08:00
Ben Alpert
edf1952421 Merge pull request #5730 from spicyj/input-type-value
Add another test for #5729
2015-12-23 17:55:08 -08:00
Ben Alpert
432578ef03 Add another test for #5729 2015-12-23 16:25:35 -08:00
Ben Alpert
5043b89d5e Merge pull request #5729 from spicyj/input-type-value
Set input .type before .value always
2015-12-23 15:49:32 -08:00
Ben Alpert
07c0bc6166 Set input .type before .value always
In IE11 (and below), if you run

```
var input = document.createElement('input');
input.value = 'wat';
input.type = 'radio';
console.log(input.value);
```

you get the string "on" logged. Because that makes sense.

So we set the type first.
2015-12-23 15:44:33 -08:00
Ben Alpert
d9dabac48d Remove now-unused instancesByReactID in DOMInput 2015-12-23 15:14:13 -08:00
Paul O’Shannessy
0d5312559a Merge pull request #5725 from RochesterinNYC/patch-1
Clarify React class constructor comments
2015-12-23 11:53:12 -08:00
Paul O’Shannessy
a0741ab468 Merge pull request #5716 from jwworth/pull-request-1450816256
Fix typos in posts
2015-12-23 11:50:08 -08:00
Paul O’Shannessy
56365f4eda Merge pull request #5721 from jdalton/fast-finish
Remove fast_finish in travis.yml.
2015-12-23 11:35:56 -08:00
James Wen
6ff96441da Clarify React class constructor comments
- The constructor is not always overridden by mocks. Makes viewing this constructor during debugging less confusing.
2015-12-23 12:58:18 -05:00
Jake Worth
35e1908bb4 Fix typos in posts 2015-12-23 07:47:17 -05:00
John-David Dalton
f0a15b993c Remove fast_finish in travis.yml. 2015-12-23 00:24:20 -06:00
Jim
4865ddf7ea Merge pull request #5712 from dortonway/master
Fix misunderstanding in tutorial
2015-12-22 16:04:09 -08:00
dortonway
109c9a91e2 Fix misunderstanding in tutorial 2015-12-23 03:01:02 +03:00
Ben Alpert
bae0f19543 Merge pull request #5308 from spicyj/rep
Import ResponderEventPlugin changes from RN
2015-12-22 15:53:11 -08:00
Ben Alpert
bb11639e25 Import ResponderEventPlugin changes from RN 2015-12-22 15:45:51 -08:00
Paul O’Shannessy
89a0ef4ff9 Update badges to include coverage
Also switch to use a different badge provider for consistent styling
2015-12-22 15:41:28 -08:00
Paul O’Shannessy
85e646015d Ensure build directory works when running jest:coverage on its own 2015-12-22 14:36:27 -08:00
Paul O’Shannessy
1d8b816496 Merge pull request #5711 from iamchenxin/docs122215
[docs] Update zh-docs with 7e2a7f0
2015-12-22 14:10:41 -08:00
Paul O’Shannessy
8fa1dfaa8c Merge pull request #5713 from zpao/jest-coverage-followups
Followups to get test coverage reporting to coveralls
2015-12-22 14:07:13 -08:00
Paul O’Shannessy
39c24bf6a6 Addjust travis for jest coverage 2015-12-22 11:47:14 -08:00
Paul O’Shannessy
e68e17503e Remove coverage options from package.json
They don't provide any value and since one of them isn't a valid config usage,
it blurs the line. Instead just store these pieces in the tasks and write them
to the temp config.
2015-12-22 11:14:44 -08:00
Paul O’Shannessy
f3dbc40261 Split jest task into two
This ensures that we don't make jest do the additional tracking it needs to make coverage work.
2015-12-22 10:25:34 -08:00
Paul O’Shannessy
bbef2958b2 Merge pull request #5707 from jdalton/coveralls
Add coveralls support.
2015-12-22 10:07:36 -08:00
Paul O’Shannessy
5b98152a3d Merge pull request #5709 from zpao/youtubenocookie
[docs] fixup other broken youtube-nocookie uses
2015-12-22 10:00:47 -08:00
iamchenxin
a9a4c9d9d0 Update zh-docs with 7e2a7f0 2015-12-23 00:54:48 +08:00
John-David Dalton
9b0ef9244d Add coveralls. 2015-12-22 06:48:33 -06:00
Paul O’Shannessy
82ed8fb0cd [docs] fixup other broken youtube-nocookie uses 2015-12-22 00:54:04 -08:00
Jim
7e2a7f0ce6 Merge pull request #5706 from kchia/patch-3
Capitalizes first letter of first word in the Step 1 instruction
2015-12-21 17:26:10 -08:00
Jim
88ce0fc95f Merge pull request #5708 from kchia/patch-4
Corrects grammatical errors in tutorial
2015-12-21 16:28:34 -08:00
Hou Chia
c465c2ab77 Corrects grammatical errors 2015-12-21 15:03:09 -08:00
Hou Chia
744b1175f3 Capitalizes first letter of first word in the Step 1 instruction
This proposed change makes the documentation formatting more consistent.
2015-12-21 14:51:10 -08:00
Dan Abramov
14d8593102 Fix a minor typo in Contributing 2015-12-21 21:23:07 +00:00
Dan Abramov
d872c25739 Fix the incorrect Jest watch command in Contributing 2015-12-21 21:07:20 +00:00
Paul O’Shannessy
ac20cb2d8c Merge pull request #5705 from facebook/gaearon-patch-1
Mention how to run specific tests in Jest
2015-12-21 12:57:18 -08:00
Jim
9c57c30049 Merge pull request #5699 from jwworth/pull-request-1450702663
Fix typo (duplicate word)
2015-12-21 12:55:55 -08:00
Dan Abramov
cd0c62ef74 Mention how to run specific tests in Jest 2015-12-21 20:54:16 +00:00
Dan Abramov
50af034108 Merge pull request #5695 from gaearon/patch-2
Fix children to be a prop in the blog post example
2015-12-21 20:04:52 +00:00
Dan Abramov
dae1152e66 Merge pull request #5702 from gaearon/patch-3
Mention that Jest can be used directly in Contributing
2015-12-21 19:18:42 +00:00
Dan Abramov
ca31e9f3f7 Remove mention of grunt test --debug from README
It isn't supported anymore.
2015-12-21 19:18:23 +00:00
Dan Abramov
dc9b3fedb2 Mention that Jest can be used directly in Contributing 2015-12-21 19:14:26 +00:00
Jim
8d0efaf980 Merge pull request #5701 from cesarwbr/patch-1
Fix typo in youtube url for video in blog post.
2015-12-21 10:29:09 -08:00
Cesar William Alvarenga
a8b953327a Fix typo
Fix the conference talk youtube url.
2015-12-21 16:02:53 -02:00
Jake Worth
a067949c99 Fix typo 2015-12-21 06:57:52 -06:00
Paul O’Shannessy
aad8024d09 Merge pull request #5697 from kolodny/stricter-update-tests
improved react-addons-update tests
2015-12-20 21:11:29 -08:00
Paul O’Shannessy
1b85c9a6c4 Merge pull request #5698 from facebook/Daniel15-patch-1
Remove smart quotes from code snippet in blog post
2015-12-20 21:09:00 -08:00
Daniel Lo Nigro
abddb558ec Remove smart quotes from code snippet
"Smart" quotes aren't actually very smart.
2015-12-21 15:53:30 +11:00
Moshe Kolodny
7c0189fbad improved react-addons-update tests 2015-12-20 22:01:54 -05:00
Dan Abramov
89538d44a9 Fix minor typos in the blog post 2015-12-18 23:24:07 +00:00
Dan Abramov
421d177dd2 Fix children to be a prop in the blog post example 2015-12-18 21:32:32 +00:00
Ben Alpert
5563771ace Merge pull request #5694 from spicyj/div-html-nesting
Make sure div > html nesting is considered invalid
2015-12-18 12:53:27 -08:00
Ben Alpert
40d5692980 Make sure div > html nesting is considered invalid
See #5128.
2015-12-18 12:49:54 -08:00
Paul O’Shannessy
bdca170d2a Merge pull request #5693 from gaearon/elements-post
Added post about components, elements, and instances
2015-12-18 12:42:33 -08:00
Paul O’Shannessy
9a6c5deeb6 Merge pull request #5692 from zpao/small-style-fixups
A couple small style fixups that were missed in recent PRs
2015-12-18 12:23:54 -08:00
Dan Abramov
f56b28c07a Added post about components, elements, and instances 2015-12-18 20:22:24 +00:00
Paul O’Shannessy
7a1d87bd33 A couple small style fixups that were missed in recent PRs 2015-12-18 11:27:49 -08:00
jim
8eabf84204 Get rid of getNativeNode() 2015-12-17 19:04:27 -08:00
Vitor Balocco
a3d6553a30 Improve documentation for using React with Webpack
Fixes #5679
2015-12-17 17:22:56 +01:00
jim
26f3785a8c Use duck typing instead of allocating event objects 2015-12-16 19:32:55 -08:00
Paul O’Shannessy
83328d4923 Merge pull request #5683 from zpao/build-no-vendor
Don't build vendor files into build/modules
2015-12-16 18:57:14 -08:00
Paul O’Shannessy
b8315fdd59 Don't build vendor files into build/modules 2015-12-16 18:08:26 -08:00
Ben Alpert
963b3cacab Merge pull request #5346 from prometheansacrifice/warn-immutable-props
Warns when mutated props are passed.
2015-12-16 16:09:33 -08:00
Jim
c9c3c339b7 Merge pull request #5216 from nLight/number-in-data-attrs-2329
Allow numbers after `data-` in custom attributes fixes #2329
2015-12-16 15:37:41 -08:00
Jim
ab37776cc2 Merge pull request #5599 from zramaekers/shallow-compare-docs
Add documentation for shallowCompare addon
2015-12-16 15:34:04 -08:00
Jim
0c15b01c38 Merge pull request #5602 from jimfb/error-boundaries
Error boundaries
2015-12-16 13:04:45 -08:00
Jim
3afced6a75 Error boundaries. 2015-12-16 12:15:26 -08:00
Paul O’Shannessy
a15293704a Merge pull request #5673 from DJCordhose/reactelement-doc-fix
fixed docs on ReactElement that were out of sync with code
2015-12-16 11:50:36 -08:00
Jim
ccb97d8e59 Merge pull request #5587 from jimfb/ismounted-alternatives
Added post about upgrading your code to avoid isMounted()
2015-12-16 05:54:55 -08:00
Oliver Zeigermann
20e5a95fe3 fixed docs on ReactElement that were out of sync with code 2015-12-16 11:26:32 +01:00
Jim
bec238a7c9 Added post about upgrading your code to avoid isMounted() 2015-12-15 16:25:07 -08:00
Paul O’Shannessy
6c8cbcae8f Merge pull request #5663 from jonathanp/fix-code-comment
Rephrase comment to better describe use of `warning()`
2015-12-15 14:32:40 -08:00
jpersson
13080f99ba Rephrase comment to better describe use of warning() 2015-12-14 23:27:37 -05:00
Jim
30ef056731 Moved unknown-prop warning into a devtool 2015-12-14 16:29:04 -08:00
Jim
a55ab282fa Initial outline for new devtools api 2015-12-14 16:29:02 -08:00
Ben Alpert
33217f0fb9 Merge pull request #4888 from spicyj/ssr-no-queue
Don't build up mount-ready queue for server side rendering
2015-12-14 14:46:04 -08:00
Ben Alpert
3997164418 Merge pull request #5550 from spicyj/cc-speed
Make createClass 10-15% faster on complex specs
2015-12-14 14:45:44 -08:00
Paul O’Shannessy
eee5d466a6 Merge pull request #5623 from freddyrangel/autocorrect_autocapitalize
Autocorrect and autocapitalize should not be property
2015-12-14 14:11:15 -08:00
Paul O’Shannessy
b6a01d7733 Merge pull request #5658 from applegrain/clarify-dependency-installation
Clarify dependency installation
2015-12-14 11:20:54 -08:00
Lovisa Svallingson
2ff1b2e9e3 Clarify dependency installation
Split browserify and webpack to separate sections.
Remove `babelify` from the webpack section since it's only for browserify
2015-12-14 09:28:20 -07:00
Freddy Rangel
db37deb17c Autocorrect and autocapitalize should not be property
Fixes facebook/react#5436
2015-12-13 23:37:29 -08:00
Jim
55bd203310 Merge pull request #5655 from adraeth/patch-1
Correct highlight in tutorial7.js snippet
2015-12-13 13:13:44 -08:00
Jim
83ee3c38a4 Merge pull request #5654 from jutaz/bugfix/typos
Bugfix - Typos
2015-12-13 10:43:50 -08:00
adraeth
682d61537d Correct highlight in tutorial7.js snippet 2015-12-13 17:38:30 +01:00
Justas Brazauskas
0886273438 Fix few typos in React docs and comments 2015-12-13 16:39:07 +02:00
Jim
410cc30bf9 Merge pull request #5605 from thekevlau/patch-1
Adding class->className as a JSX gotcha
2015-12-11 12:13:48 -08:00
Kevin Lau
fcf74fe9da Finalized wording 2015-12-11 12:05:05 -08:00
Jim
f282710072 Merge pull request #5644 from AndrewHenderson/patch-1
Helps avoid a common Issue when following tutorial
2015-12-11 10:56:01 -08:00
Andrew Henderson
ef32927eb5 Helps avoid a common Issue when following tutorial
https://github.com/reactjs/react-tutorial/issues/87
2015-12-10 22:44:36 -08:00
Jim
eeee272268 Merge pull request #5643 from koh-taka/patch-1
Fix wrong script name (showdown -> marked)
2015-12-10 18:27:17 -08:00
koh-taka
94325ea3ef Fix wrong script name (showdown -> marked)
jp: チュートリアル内のshowdown を marked に修正
2015-12-11 11:23:56 +09:00
Jim
bb084eba24 Merge pull request #5609 from vitorbal/patch-1
Clarify usage of `.propTypes` when using functional components
2015-12-10 15:21:55 -08:00
Vitor Balocco
b1964ad8a7 Clarify usage of .propTypes and .defaultProps when using stateless functional components
I've seen some people unaware about the fact that you can still specify `.propTypes` and `.defaultProps` when you are defining a functional component by setting them as properties of the function.
I thought clarifying this in the docs could help!
2015-12-10 23:21:59 +01:00
Ben Alpert
4f7a2766e4 Merge pull request #5640 from spicyj/no-typechecks
Remove @typechecks
2015-12-10 11:30:40 -08:00
Ben Alpert
46f5251c66 Remove @typechecks
These don't really do anything.

```
codemod.py -d src --extensions js -m '\s* \* @typechecks.*?\n' '\n'
```

with "yes to all".
2015-12-10 11:26:45 -08:00
Jim
be964561ed Merge pull request #5610 from yangshun/change-devtools-message
Change devtools install message on file: URLs
2015-12-10 08:55:57 -08:00
Tay Yang Shun
3deca65a89 Change devtools install message on file: URLs 2015-12-11 00:48:53 +08:00
Kevin Lau
0130a04f05 added nuance about identifiers used in custom elements 2015-12-09 00:33:25 -08:00
Ben Alpert
c65ff201fc Merge pull request #5614 from mark-rushakoff/avoid-negative-lookahead
Avoid negative lookahead in regular expression
2015-12-06 20:27:03 -08:00
Mark Rushakoff
86b44349de Avoid negative lookahead in regular expression
I'm trying to use React with otto
(https://github.com/robertkrimen/otto), which is implemented in Go and
does not support lookaheads or backreferences in regular expressions.
(Unfortunately that *does* mean that otto isn't fully compatible with
the ECMA5 spec; but since this is the only lookahead I am aware of in
the React codebase, this change makes React once again compatible with
otto, and any other JS implementation that may not be fully compliant on
regular expressions).

As far as I can tell, the previous code replaced a sequence of slash
characters with one more slash than before. The new code avoids the
negative lookahead by matching any sequence of slash characters and then
using the special `$&` placeholder to replace the matched sequence with
the original sequence, plus one more slash.
2015-12-06 13:46:16 -08:00
Jim
178fe648de Merge pull request #5611 from dittos/irc-remove-2ndarg
Clean up caller sites of instantiateReactComponent
2015-12-06 05:01:15 -08:00
Taeho Kim
14725ba768 Clean up caller sites of instantiateReactComponent
The 2nd argument was removed since #4139.
2015-12-06 17:31:30 +09:00
Kevin Lau
1d3ff2a159 Adding class->className as a JSX gotcha
It's mentioned as a note in "JSX in Depth" however I think for clarity and ease of look-up, it would be a good idea to also include it in the JSX Gotchas list?
2015-12-04 16:51:38 -08:00
Paul O’Shannessy
856eb72b4f Merge pull request #5593 from zwhitchcox/patch-3
Remove dead code
2015-12-04 15:57:27 -08:00
zwhitchcox
b15c80696c Remove dead code
This isn't used anywhere in React
2015-12-04 18:28:37 -05:00
Paul O’Shannessy
3faf9569d4 [blog] Diversity Scholarship 2016 2015-12-04 14:51:12 -08:00
Paul O’Shannessy
67663ba2c9 Merge pull request #5603 from henryw4k/patch-3
chore(ReactComponentWithPureRenderMixin.js): made "Mixin" lowercase
2015-12-04 13:08:58 -08:00
Paul O’Shannessy
4f9d8c31b8 Merge pull request #5600 from zwhitchcox/patch-4
Change release to multi task
2015-12-04 13:08:08 -08:00
Ben Alpert
2f77367863 Merge pull request #5595 from remko/select-bug
Fix single select incorrectly updating
2015-12-04 11:12:23 -08:00
Henry Wong
4a971c2d1c chore(ReactComponentWithPureRenderMixin.js): made "Mixin" lowercase
When referring to mixin, the rest of the comment is in lowercase; see line 36 and line 37. 
This change helps with the consistency of the usage of "mixin", and not to confuse it with a variable name.
2015-12-04 11:12:07 -08:00
zwhitchcox
c77f0b2fc5 Change release to multi task
More concise and consistent with the other multitasks
2015-12-04 13:29:58 -05:00
Zach Ramaekers
ad54e49f0c adding documentation pages for shallowCompare addon 2015-12-04 08:53:33 -06:00
Remko Tronçon
7d699f4063 Fix single select incorrectly updating
Closes #5592
2015-12-04 11:21:02 +01:00
Jim
f4744f3a70 Merge pull request #5588 from jimfb/setprops-replaceprops-deprecated
Increase severity of setprops and replaceprops deprecations, since their removal is now imminent.
2015-12-03 10:29:20 -08:00
jim
8c7603311a Increase severity of setprops and replaceprops deprecations, since their removal is now imminent. 2015-12-03 04:08:53 -08:00
Jim
526d5c0edc Merge pull request #5589 from wrakky/fix-minlength-docs
Rename minlength to minLength in the tags and attributes documentation page
2015-12-03 04:04:45 -08:00
Peter Newnham
31253c251f Rename minlength to minLength in the tags and attributes documentation page 2015-12-03 09:35:08 +00:00
Jim
50c7b1792c Merge pull request #5570 from jimfb/remove-setprops-replaceprops
Remove setProps and replaceProps.
2015-12-02 19:09:19 -08:00
Paul O’Shannessy
0be7786e1c Merge pull request #5559 from shogunsea/docs-add-marked
[docs]Add marked source in tutorial doc
2015-12-02 11:30:49 -08:00
Paul O’Shannessy
3ca15b0090 Merge pull request #5584 from zwhitchcox/patch-2
Update ref-10-glossary.md
2015-12-02 11:14:22 -08:00
zwhitchcox
b0ae955977 Update ref-10-glossary.md 2015-12-02 08:52:51 -05:00
Scott Feeney
8557cc0d67 Merge pull request #5561 from graue/setstate-cwm
shallow render: fix setState in componentWillMount
2015-12-01 19:49:15 -08:00
Scott Feeney
9c21e2f3c4 shallow render: fix setState in componentWillMount 2015-12-01 19:43:52 -08:00
Ben Alpert
6b3ee0e74d Merge pull request #5576 from spicyj/log-top-level
Log top-level renders with console.time
2015-12-01 11:34:40 -08:00
Ben Alpert
a0f88d29df Log top-level renders with console.time
Behind a flag.
2015-12-01 11:29:13 -08:00
Paul O’Shannessy
f5840e685e Merge pull request #5581 from yuyokk/patch-1
Update 08.1-more-about-refs.md
2015-12-01 11:03:59 -08:00
Iurii Kucherov
36dfe62f68 Update 08.1-more-about-refs.md 2015-12-01 19:28:34 +01:00
Paul O’Shannessy
13c398bef6 Merge pull request #5536 from zpao/keys-on-prototypes
Don't use `key` when defined on String, Number prototypes
2015-11-30 23:33:26 -08:00
xxin
25ef456b13 add marked source in tutorial doc
update wording of later section

no first, no next

more on wording
2015-11-30 19:08:11 -06:00
jim
fbf81a8435 Remove setProps and replaceProps. 2015-11-30 11:46:07 -08:00
Jim
940a75b1fe Merge pull request #5564 from jackiewung/master
Fix file reference typo in starter
2015-11-30 09:34:15 -08:00
Jackie Wung
f1d3f78334 Fix file reference typo in starter 2015-11-29 18:07:31 -08:00
Paul O’Shannessy
34fbcf20d8 Merge pull request #5526 from yangshun/todo-app-id
[docs] Use id for TodoApp example
2015-11-28 11:58:20 -08:00
Paul O’Shannessy
f48bb3a274 Merge pull request #5520 from mhujer/docs-spread-fix-babel
Docs: Transform rest and spread properties using Babel 6
2015-11-28 11:47:30 -08:00
Paul O’Shannessy
6b641de6b8 Merge pull request #5546 from cody/singlechild
[docs] Single Child
2015-11-28 11:46:47 -08:00
Paul O’Shannessy
d54b151bc2 Merge pull request #5556 from timuric/patch-1
Avoid mutating state in the example code
2015-11-28 11:30:35 -08:00
Timur Carpeev
1e98c78541 Avoid mutating state in the example code
According to react documentation it is advised to: 
NEVER mutate this.state directly, as calling setState() afterwards may replace the mutation you made. Treat this.state as if it were immutable.
https://facebook.github.io/react/docs/animation.html

In this particular case it is probably doesn't matter since setState is called directly after mutation, but it does provide a bad example of state mutation.

Another way of removing an item from an array can be `newItems = this.state.slice(0,i).concat(this.state.slice(i+1))` however the meaning can be less obvious to some.
2015-11-27 12:33:57 +01:00
Martin Hujer
ed8727ade7 Transform rest and spread properties using Babel 6
> Out of the box Babel doesn't do anything. In order to actually do
> anything to your code you need to enable plugins.
> (https://babeljs.io/docs/plugins/)
2015-11-26 09:17:01 +01:00
Ben Alpert
50c81d5fe6 Make createClass 10-15% faster on complex specs 2015-11-25 18:24:46 -08:00
Ben Alpert
ba0792e72b Add createClass stress test
Running this is left as an exercise for the reader, since my measure.py isn't designed for this at present. But something like this might work:

```diff
diff --git a/scripts/bench/measure.py b/scripts/bench/measure.py
index 4cedf47..627ec97 100755
--- a/scripts/bench/measure.py
+++ b/scripts/bench/measure.py
@@ -79,15 +79,12 @@ def _measure_ssr_ms(engine, react_path, bench_name, bench_path, measure_warm):
             if (typeof React !== 'object') throw new Error('React not laoded');
             report('factory_ms', END - START);

-            globalEval(readFile(ENV.bench_path));
-            if (typeof Benchmark !== 'function') {
-              throw new Error('benchmark not loaded');
-            }
+            globalEval("bm = (function(){" + readFile("bench-createclass-madman.js") + "})");
+            bm();
             var START = now();
-            var html = React.renderToString(React.createElement(Benchmark));
-            html.charCodeAt(0);  // flatten ropes
+            bm();
             var END = now();
-            report('ssr_' + ENV.bench_name + '_cold_ms', END - START);
+            report('cc_' + ENV.bench_name + '_cold_ms', END - START);

             var warmup = ENV.measure_warm ? 80 : 0;
             var trials = ENV.measure_warm ? 40 : 0;
@@ -119,7 +116,7 @@ def _main():
         return 1
     react_path = sys.argv[1]

-    trials = 30
+    trials = 60
     sys.stderr.write("Measuring SSR for PE benchmark (%d trials)\n" % trials)
     for i in range(trials):
         for engine in [
@@ -132,7 +129,7 @@ def _main():
         sys.stderr.flush()
     sys.stderr.write("\n")

-    trials = 3
+    trials = 0#3
     sys.stderr.write("Measuring SSR for PE with warm JIT (%d slow trials)\n" % trials)
     for i in range(trials):
         for engine in [
```
2015-11-25 18:24:46 -08:00
Ben Alpert
8248470bd9 Merge pull request #5547 from spicyj/mc-noq
Kill global queue in ReactMultiChild
2015-11-25 13:13:01 -08:00
Ben Alpert
418ba27485 Kill global queue in ReactMultiChild
As we move away from using HTML for updates, this becomes less useful.
2015-11-25 12:59:02 -08:00
Ben Alpert
08499f9938 Turn on useCreateElement by default
Facebook has been running with this on for a couple weeks now with no ill effects.
2015-11-25 12:59:01 -08:00
Ben Alpert
3722616349 Merge pull request #5543 from spicyj/rt103
Clarify wording in the tutorial
2015-11-25 09:37:28 -08:00
Stefan Dombrowski
c6025da952 [docs] Single Child
* Single Child belongs to Prop Validation, so it was moved there.
* "throw" was changed to "warn".
2015-11-25 17:34:40 +01:00
Paul O’Shannessy
54e6057b1a Merge pull request #5523 from hejld/add-selection-and-composition-events-on-reference-page
[docs] Add missing sections to events reference page in IT and CN
2015-11-24 09:44:49 -08:00
Paul O’Shannessy
e95d3dd812 Merge pull request #5539 from matthewlooi/addCodeHighlightToTutorialDoc
Add highlight to a line of code to tutorial21.js
2015-11-24 09:44:03 -08:00
Ben Alpert
58901af7a6 Clarify wording in the tutorial
reactjs/react-tutorial#103
2015-11-24 09:30:33 -08:00
hejld
18a3a3979e Add missing sections to events reference page in IT and CN 2015-11-24 15:56:58 +01:00
Matthew
e02bd0543f add highlight to a line of code to tutorial20.js (all languages included) 2015-11-24 01:23:55 -05:00
Paul O’Shannessy
f44a0778e3 Don't use key when defined on String, Number prototypes 2015-11-23 15:33:34 -08:00
Paul O’Shannessy
d01188133e Merge pull request #5533 from kryogenic/patch-1
Use null instead of '' in ternary expression
2015-11-23 12:12:14 -08:00
Kale
b74e53c3ca Use null instead of '' in ternary expression
A blank string ('') resolves to <span></span> which produces a warning when place inside a <tr>
2015-11-23 06:38:08 -07:00
Paul O’Shannessy
7ea1d15197 Merge pull request #5524 from chenglou/woohoo-its-me
Remove unreachable return from shouldUpdateReactComponent
2015-11-22 18:54:17 -08:00
Tay Yang Shun
bf4bd19101 [docs] Use id for TodoApp example 2015-11-22 11:54:39 +08:00
Cheng Lou
60af7d1c3d Remove unreachable return from shouldUpdateReactComponent
Eslint didn't catch this (we do have this rule turned on) because it's a
big. There are no other locations I think. Detected that when I minified
some code.
2015-11-21 18:00:40 -05:00
Paul O’Shannessy
c5867ea401 Merge pull request #5518 from mhujer/docs-spread-fix
Docs: Rest and Spread Properties - ECMAScript
2015-11-20 11:30:02 -08:00
Ben Alpert
812e1a877f Merge pull request #5500 from hejld/master
Update DOM_OPERATION_TYPES mappings for ReactDefaultPerfAnalysis
2015-11-20 11:21:06 -08:00
Sebastian Markbåge
64f795e5ef Merge pull request #5411 from simonewebdesign/master
ReactShallowRenderer.render returns the rendered output
2015-11-20 11:20:37 -08:00
Martin Hujer
23edc0d274 Rest/Spread Properties may not be part of ES7
According to the http://www.2ality.com/2015/11/tc39-process.html it is
not a good idea to guess target ES version until the proposal reaches
later phases.

Even the proposal repository now states
  > It is a Stage 2 proposal for ECMAScript. <
(it has been changed in e9813ac78a)
2015-11-20 19:36:29 +01:00
Ben Alpert
acabb22a1d Merge pull request #5503 from spicyj/measure-analyze
benchmarking: measure and analyze scripts
2015-11-19 17:01:53 -08:00
Ben Alpert
907dee2b5d Merge pull request #5451 from spicyj/empty-comments
Use comment nodes for empty components
2015-11-19 16:56:23 -08:00
Paul O’Shannessy
1cdbff26ab Merge pull request #5511 from KeweiCodes/patch-1
Typo
2015-11-19 15:56:25 -08:00
Paul O’Shannessy
aa1e58a41b Merge pull request #5508 from yangshun/patch-1
Add in missing closing </li> for docs template
2015-11-19 13:57:37 -08:00
Kewei Jiang
179263c72f Typo 2015-11-20 10:01:29 +13:00
Jim
22a3f6724a Merge pull request #5510 from jimfb/useless-find-dom-nodes
Removed unnecessary variables/assertions.
2015-11-19 12:14:05 -08:00
jim
1d071c20e8 Removed unnecessary variables/assertions. 2015-11-19 11:32:51 -08:00
Jim
c643ecd7c7 Merge pull request #5495 from jimfb/remove-public-dom-instance
Remove legacy dom node/ref stuff.
2015-11-19 11:27:24 -08:00
Tay Yang Shun
ab6892956d Add in missing closing </li> for docs template 2015-11-20 00:56:25 +08:00
Paul O’Shannessy
0440de9f89 update website for 0.14.3
(cherry picked from commit 3f2f763dea)
2015-11-18 22:39:49 -08:00
Paul O’Shannessy
399a6cfd1c Update readme for 0.14.3
(cherry picked from commit 1cef6ebabf)
2015-11-18 22:39:49 -08:00
Paul O’Shannessy
b40221973c v0.14.3 blog post
(cherry picked from commit f92a630737)
2015-11-18 22:39:49 -08:00
Paul O’Shannessy
fd03270372 Changelog for 0.14.3
(cherry picked from commit 55b6839684)
2015-11-18 22:39:49 -08:00
Ben Alpert
844ca8b6b2 benchmarking: measure and analyze scripts
This uses wall-clock time (for now) so it's noisier than alternatives
(cachegrind, CPU perf-counters), but it's still valuable. In a future diff we
can make it use those.

`measure.py` outputs something that `analyze.py` can understand, but you can use `analyze.py` without `measure.py` too. The file format is simple:

```
$ cat measurements.txt
factory_ms_jsc_jit 13.580322265625
factory_ms_jsc_jit 13.659912109375
factory_ms_jsc_jit 13.67919921875
factory_ms_jsc_nojit 12.827880859375
factory_ms_jsc_nojit 13.105224609375
factory_ms_jsc_nojit 13.195068359375
factory_ms_node 40.4891400039196
factory_ms_node 40.6669420003891
factory_ms_node 43.52413299679756
ssr_pe_cold_ms_jsc_jit 43.06005859375
...
```

(The lines do not need to be sorted.)

Comparing 0.14.0 vs master:

```
$ ./measure.py react-0.14.0.min.js >014.txt
Measuring SSR for PE benchmark (30 trials)
..............................
Measuring SSR for PE with warm JIT (3 slow trials)
...
$ ./measure.py react.min.js >master.txt
Measuring SSR for PE benchmark (30 trials)
..............................
Measuring SSR for PE with warm JIT (3 slow trials)
...
$ ./analyze.py 014.txt master.txt
Comparing 014.txt (control) vs master.txt (test)
Significant differences marked by ***
% change from control to test, with 99% CIs:

* factory_ms_jsc_jit
    % change:  -0.56% [ -2.51%,  +1.39%]
    means: 14.037 (control), 13.9593 (test)
* factory_ms_jsc_nojit
    % change:  +1.23% [ -1.18%,  +3.64%]
    means: 13.2586 (control), 13.4223 (test)
* factory_ms_node
    % change:  +3.53% [ +0.29%,  +6.77%]  ***
    means: 42.0529 (control), 43.54 (test)
* ssr_pe_cold_ms_jsc_jit
    % change:  -6.84% [ -9.04%,  -4.65%]  ***
    means: 44.2444 (control), 41.2187 (test)
* ssr_pe_cold_ms_jsc_nojit
    % change: -11.81% [-14.66%,  -8.96%]  ***
    means: 52.9449 (control), 46.6953 (test)
* ssr_pe_cold_ms_node
    % change:  -2.70% [ -4.52%,  -0.88%]  ***
    means: 96.8909 (control), 94.2741 (test)
* ssr_pe_warm_ms_jsc_jit
    % change: -17.60% [-22.04%, -13.16%]  ***
    means: 13.763 (control), 11.3439 (test)
* ssr_pe_warm_ms_jsc_nojit
    % change: -20.65% [-22.62%, -18.68%]  ***
    means: 30.8829 (control), 24.5074 (test)
* ssr_pe_warm_ms_node
    % change:  -8.76% [-13.48%,  -4.03%]  ***
    means: 30.0193 (control), 27.3964 (test)
$
```
2015-11-18 16:26:01 -08:00
Paul O’Shannessy
d1eba1f78c Merge pull request #5501 from zpao/release-react-dom-server
Make sure react-dom-server is shipped in release process
2015-11-18 13:16:57 -08:00
Paul O’Shannessy
5a80b20017 Make sure react-dom-server is shipped in release process
Also removed some duplicated code to simplify a bit
2015-11-18 13:08:44 -08:00
hejld
a3779421a1 Update DOM_OPERATION_TYPES mappings for ReactDefaultPerfAnalysis 2015-11-18 20:58:32 +01:00
Ben Alpert
1a6d1e74e0 Merge pull request #5330 from laskos/fix-shallow-rendering-function-refs
Fix shallow renderer with ref as function
2015-11-17 23:53:00 -08:00
Paul O’Shannessy
e7a5a98044 Merge pull request #5417 from zpao/ol-reversed
Support reversed for <ol>s
2015-11-17 23:24:27 -08:00
Paul O’Shannessy
904e9e3ea6 Merge pull request #5445 from yangshun/controlled-components-in-tutorial
Use controlled components in tutorial
2015-11-17 22:59:40 -08:00
Tay Yang Shun
3812b95450 [docs] Use controlled components for tutorial 2015-11-18 14:43:03 +08:00
Paul O’Shannessy
c4f134883d Support reversed for <ol>s 2015-11-17 22:42:01 -08:00
Paul O’Shannessy
60cba8fcf7 Merge pull request #5496 from zpao/reactdomserverfollowup
Followup to #5381
2015-11-17 21:57:51 -08:00
Paul O’Shannessy
7729d51726 Followup to #5381
- Export to the right variable
- Simplify lintignore
- Fix cURL command for TravisCI
2015-11-17 17:57:43 -08:00
Paul O’Shannessy
c07b304c76 Merge pull request #5381 from kevinrobinson/react-dom-server-package
Add additional secret property to build artifact for react-dom-server
2015-11-17 16:48:08 -08:00
jim
538d0b08f2 Remove legacy dom node/ref stuff. 2015-11-17 15:30:35 -08:00
Ben Alpert
e03df26e62 Merge pull request #5493 from spicyj/gh-4589
Finish comment in ReactDOMComponentTree
2015-11-17 09:54:23 -08:00
Ben Alpert
6c89857cdc Finish comment in ReactDOMComponentTree 2015-11-17 09:41:24 -08:00
Ben Alpert
892352e95d Merge pull request #5489 from hejld/master
Fix typos and redundant words
2015-11-17 09:37:43 -08:00
hejld
ba8c987391 Fix typos and redundant words 2015-11-17 12:39:29 +01:00
Ben Alpert
85a3142f04 Merge pull request #5481 from hejld/master
Fixed typo
2015-11-16 11:24:04 -08:00
Jim
80bcc519d7 Merge pull request #2774 from jimfb/webcomponents
Added info (example+doc) about react with webcomponents
2015-11-16 11:19:26 -08:00
hejld
94504c3767 Remove rendundant 'the'; keep iff (if and only if) 2015-11-16 20:05:37 +01:00
Jim
7a453646be Added info (example+doc) about react with webcomponents 2015-11-13 20:22:24 -08:00
Paul O’Shannessy
96549a1f48 Merge pull request #5458 from chicoxyzzy/update_deps
Update deps
2015-11-12 16:45:27 -08:00
Paul O’Shannessy
034cfc96c7 [docs] Properly fix Korean docs 2015-11-12 15:57:17 -08:00
Paul O’Shannessy
72d9a8bc15 [docs] Use updated Korean translation
See #5456 for details
2015-11-12 14:23:52 -08:00
Paul O’Shannessy
09b7ff1fc4 Merge pull request #5444 from zpao/tutorial-ids-for-data
[tutorial] Use ids in comments data
2015-11-12 14:22:00 -08:00
Paul O’Shannessy
3bcb0d63f0 [tutorial] Use ids in comments data 2015-11-12 14:20:54 -08:00
chico
dbe8212974 update deps 2015-11-13 01:15:23 +03:00
Manas
593a234c1e Warns when mutated props are passed. 2015-11-13 01:15:38 +05:30
Paul O’Shannessy
2d5612913f Merge pull request #5456 from hugo-agbonon/fix-classname-manipulation-doc
Revert class name manipulation doc to english
2015-11-12 09:57:55 -08:00
Dmitriy Rozhkov
a2b471e098 Allow all characters (except astral) specified in XML specs. fixes #2329 2015-11-12 16:21:34 +01:00
Hugo Agbonon
47253733d3 Revert class name manipulation doc to english 2015-11-12 11:32:08 +01:00
Ben Alpert
ea31f924b8 Merge pull request #5368 from spicyj/adler32
adler32: Properly break loop into 4096-char blocks
2015-11-11 22:21:22 -08:00
Paul O’Shannessy
8104262043 Merge pull request #5390 from chicoxyzzy/arrayof-objectof-tests
Add validation for arrayOf and objectOf in ReactPropTypes
2015-11-11 16:48:33 -08:00
Sebastian Markbåge
951f3b6ba8 Merge pull request #5406 from acdlite/better-error-message-for-setState-in-constructor
Updates the warning that is displayed when `setState` is called within either `render` or a component constructor.
2015-11-11 16:45:12 -08:00
Paul O’Shannessy
12a20b184c Merge pull request #5387 from MattijsKneppers/master
updated Basic Example with External JSX instructions
2015-11-11 10:31:01 -08:00
Ben Alpert
358140679c Use comment nodes for empty components
This makes more sense and avoids DOM nesting problems.

![image](https://cloud.githubusercontent.com/assets/6820/11098713/952348ca-885b-11e5-9757-e4a76467b0b8.png)

(ReactSimpleEmptyComponent isn't used here but React Native can use it as it currently does.)
2015-11-11 10:04:14 -08:00
Mattijs
1220ccc805 update instructions of the following examples: basic-commonjs, basic-jsx-external and basic-jsx-precompile 2015-11-11 10:51:47 +01:00
Paul O’Shannessy
fc245226f9 Merge pull request #5431 from zpao/license-in-packages
Ensure license and patents files are packaged for npm
2015-11-10 15:22:34 -08:00
Jim
4cb210a9da Merge pull request #5412 from yangshun/document-next-context
Add more documentation to Context page
2015-11-10 15:12:08 -08:00
Tay Yang Shun
7d0ee24514 Add more documentation to Context page 2015-11-11 07:06:56 +08:00
Paul O’Shannessy
575d1a5093 Merge pull request #5442 from nickclaw/patch-1
Allow nonce attribute
2015-11-10 14:43:57 -08:00
Paul O’Shannessy
eecd2953cd Merge pull request #5416 from bbrooks/undo-optimistic-update-on-error
Reset state if comment submit fails
2015-11-10 14:42:28 -08:00
Nicholas Clawson
e39f51429b Allow nonce attribute 2015-11-10 10:46:30 -08:00
Jim
d6a547f793 Merge pull request #5403 from yuyokk/patch-1
Clarify note about stable keys
2015-11-10 10:28:49 -08:00
Iurii Kucherov
30ca6619dc State that Math.random() is not a good way to generate keys 2015-11-10 19:02:50 +01:00
Ben Alpert
b4b1adddda Merge pull request #5434 from spicyj/two-reconcile
Handle multiple DOM updates without interference
2015-11-09 17:38:11 -08:00
Ben Alpert
4b80ea23a1 Merge pull request #5433 from spicyj/unmount-children-order
Unmount children before unsetting DOM node info
2015-11-09 17:38:06 -08:00
Ben Alpert
f9a8bdcafe Handle multiple DOM updates without interference
This test failed before! How embarrassing.
2015-11-09 15:22:23 -08:00
Ben Alpert
586653935c Unmount children before unsetting DOM node info 2015-11-09 15:04:57 -08:00
Paul O’Shannessy
10edb83166 Ensure license and patents files are packaged for npm 2015-11-09 12:47:22 -08:00
Jim
95da62765e Merge pull request #5430 from jimfb/changelog-broken-links
Fixed broken links in changelog
2015-11-09 11:28:15 -08:00
jim
5bdb808a46 Fixed broken links in changelog 2015-11-09 11:11:05 -08:00
Jim
a88c39be86 Merge pull request #5424 from stowball/animation-docs-whitespace
Removed unnecessary whitespace before closing bracket
2015-11-09 09:12:49 -08:00
Matt Stow
bc0dc86ae6 Removed unnecessary whitespace before closing bracket 2015-11-09 15:10:01 +11:00
Simone Vittori
c8b8c818b5 ReactShallowRenderer.render returns the rendered output 2015-11-08 13:07:07 +00:00
Ben Brooks
240d7c82cc Reset state if comment submit fails 2015-11-07 13:26:17 -05:00
Ben Alpert
99fbde54a1 Merge pull request #5287 from benhalpern/patch-1
Updated conference page
2015-11-05 13:58:46 -08:00
benhalpern
00eddc2060 Fixed ReactEurope date 2015-11-05 15:33:52 -05:00
Jim
2f7f1a9d45 Merge pull request #5405 from yangshun/inconsistent-error-messages
More consistent error message for findRenderedDOMComponentWithX
2015-11-05 12:03:05 -08:00
Andrew Clark
5fec308d60 Updates the warning that is displayed when setState is called
within either `render` or a component constructor.

Follow up to #5343
2015-11-05 11:12:58 -08:00
Tay Yang Shun
d16754125f More consistent error message for findRenderedDOMComponentWithX 2015-11-06 03:05:08 +08:00
Jim
59dd7b33ee Merge pull request #5391 from zjjw/transition_timeouts
Clear transition timeouts when component unmounts. Fixes #4876
2015-11-05 10:32:18 -08:00
jj
73b496db95 Clear transition timeouts when component unmounts. Fixes #4876 2015-11-05 10:23:15 -08:00
Jim
22b8952fbf Merge pull request #5231 from davidkpiano/patch-1
Updating "JSX Gotchas" docs for Custom Attributes
2015-11-05 09:43:36 -08:00
Jon Hester
aca4ccda35 ReactDOMComponent should throw error when provided children for void elements 2015-11-05 01:52:54 -05:00
Paul O’Shannessy
6d5fe44c86 Merge pull request #5396 from zpao/packagejsons
Improve npm packages' metadata
2015-11-04 21:29:35 -08:00
Paul O’Shannessy
88584a96b7 Generate better readmes for addons npm packages 2015-11-04 21:25:28 -08:00
Paul O’Shannessy
2f6fb746b9 Make sure npm packages have repo and keywords set 2015-11-04 21:25:28 -08:00
chico
a86d25d584 update error messages 2015-11-05 06:12:27 +03:00
Paul O’Shannessy
9b7cc43330 Merge pull request #5352 from chicoxyzzy/eslint-upgrade
remove eslint-disable when possible and update babel-eslint version
2015-11-04 18:17:23 -08:00
chico
b9fd77a4bd update eslint and eslint-plugin-react 2015-11-05 05:14:51 +03:00
chico
4a7456a136 review fixes 2015-11-05 05:11:39 +03:00
chico
8987522a2a remove eslint-disable when possible and update eslint version 2015-11-05 05:11:39 +03:00
Ben Alpert
e131357c23 Merge pull request #5394 from spicyj/tu-shallow-ref
Revert #4993 with an added test for refs
2015-11-04 18:00:27 -08:00
Ben Alpert
9419976e51 Revert #4993 with an added test for refs
We were shallow-rendering a component that used refs at FB so this can't go in as-is. It's a little unclear what we _should_ do though, since there is nothing to hold a ref to (since we're shallowly rendering) and we generally promise that child refs are resolved before a parent's componentDidMount. Also, changing shallow rendering to use the original `_renderValidatedComponent` (instead of `_renderValidatedComponentWithoutOwnerOrContext`) breaks tests because now the `_owner` field doesn't match up for `toEqual` (non-null in `getRenderOutput` but null if constructed in a test).
2015-11-04 17:53:40 -08:00
Paul O’Shannessy
578312e267 Update website for 0.14.2
(cherry picked from commit fdf6f6bbb0)
2015-11-04 17:38:31 -08:00
Paul O’Shannessy
76bbd9e660 Update readme for 0.14.2
(cherry picked from commit 01622a4442)
2015-11-04 17:38:31 -08:00
Paul O’Shannessy
e2fdcb1990 Blog post for 0.14.2
(cherry picked from commit a4fd08973b)
2015-11-04 17:38:31 -08:00
Paul O’Shannessy
cd7387c465 Changelog for 0.14.2
(cherry picked from commit c2dd57c6a6)
2015-11-04 17:38:31 -08:00
Paul O’Shannessy
80af7c7be4 Merge pull request #5353 from chicoxyzzy/patch-1
add Node 5 to devEngines
2015-11-04 15:02:26 -08:00
Jim
4fae036269 Merge pull request #5385 from marocchino/update-korean
Update korean translation to 84af306
2015-11-04 13:57:00 -08:00
Arkist
1c14477a47 Update Korean translation to 84af306 2015-11-05 06:56:48 +09:00
chico
7ae67916cc Adding validation for arrayOf and objectOf in ReactPropTypes 2015-11-05 00:20:33 +03:00
Ben Alpert
35962a0008 Merge pull request #5205 from spicyj/cotree-num
Use incrementing numerical IDs to identify DOM components
2015-11-04 11:41:38 -08:00
Ben Alpert
c193d1a0c2 Don't put IDs in the DOM in createElement mode 2015-11-04 11:39:44 -08:00
Ben Alpert
b80f676d27 Add hooks back for devtools 2015-11-04 11:39:44 -08:00
Ben Alpert
35543c6312 Remove unused modules
- Remove last references to ReactInstanceHandles (still used in responder unit test)
- Remove ClientReactRootIndex/ServerReactRootIndex
2015-11-04 11:39:44 -08:00
Ben Alpert
3cebadaa6b Remove now-unused _rootNodeID from composites 2015-11-04 11:39:44 -08:00
Ben Alpert
e48c8be556 Use incrementing numerical IDs to identify DOM components 2015-11-04 11:39:44 -08:00
Ben Alpert
f06ddf7905 Turn ReactInstanceHandles-test into ReactDOMTreeTraversal-test
This test relied on the fact that ReactDOMComponent still produced hierarchical IDs -- although this module could be used standalone, we're replacing it completely so it makes more sense to just move the tests over to test ReactDOMTreeTraversal.
2015-11-04 11:39:44 -08:00
Ben Alpert
663c4b7d2e Stop relying on hierarchical IDs in ReactDefaultPerf 2015-11-04 11:39:43 -08:00
Ben Alpert
5d94d7d43c Perf: Static children count for wasted time 2015-11-04 11:39:43 -08:00
Ben Alpert
4ba0e95a96 Kill ReactMount.getNode/getID/purgeID with fire 2015-11-04 11:39:43 -08:00
Ben Alpert
796f8c353c put/deleteListener take an instance, not an ID
This removes SimpleEventPlugin's dependency on ReactMount.getID.
2015-11-04 11:39:43 -08:00
Ben Alpert
d11ccd6956 Propagate events based on component tree, not IDs 2015-11-04 11:39:43 -08:00
Ben Alpert
f470cb88f8 Events: Pass native instances up until propagation
Next step: take advantage of having the native instances in EventPropagators instead of converting right back to IDs.
2015-11-04 11:39:43 -08:00
Ben Alpert
6d20556c78 Add functions to find the instance given a node 2015-11-03 17:03:40 -08:00
Ben Alpert
ce528457a4 ReactDOMComponentTree
New module! With this, we have a new module that uses the component tree to store DOM nodes. Most of the logic in this file relates to markup adoption -- if we were to drop that (along with server rendering) this file could just be a `return inst._nativeNode;`.

This works with useCreateElement only because we need to reference each node as it's created.

Events is now the only thing using ReactMount.getNode -- I'll introduce pointers back from the DOM nodes (and a `ReactDOMComponentTree.getInstanceFromNode`) and make that work.
2015-11-03 17:03:40 -08:00
Ben Alpert
5a7c273a1b Always do useCreateElement for updates
Initial render can still be a markup string.
2015-11-03 17:03:40 -08:00
Ben Alpert
276ef737fe Make ReactDOMComponent-test pass with useCreateElement 2015-11-03 17:03:40 -08:00
Ben Alpert
5becbe3f08 Remove obsolete tests with new tree-walking 2015-11-03 17:03:40 -08:00
Ben Alpert
19e2cf5ad5 Make ReactEmptyComponent-test not swallow logs 2015-11-03 17:03:40 -08:00
Kevin Robinson
45c612ed7a Add additional secret property and build for react-dom-server
Update eslintrc, travis build and add task to Gruntfile
2015-11-03 16:39:58 -05:00
Jim
84af306044 Merge pull request #5372 from csbok/patch-1
Update getting-started.ko-KR.md
2015-11-03 03:44:31 -08:00
Ben Alpert
2858bca2e3 Merge pull request #5361 from ali/warn-on-missing-event-handlers
Warn on missing event handler properties
2015-11-02 20:23:20 -08:00
Ali Ukani
9ad4be0316 Warn on missing event handler properties
Fixes #3548. Warns on properties that are case-insensitive matches for
registered event names (e.g. "onclick" instead of "onClick").
2015-11-02 23:13:20 -05:00
Ben Alpert
a4b5f2fffa Merge pull request #5376 from spicyj/gh-4993
Test fixups after #4993
2015-11-02 18:27:25 -08:00
Ben Alpert
c802e9ede9 Test fixups after #4993 2015-11-02 18:26:52 -08:00
Ben Alpert
d2888798f0 Merge pull request #4993 from jsdf/shallow-render-lifecycle
Run all component lifecycle methods when shallow rendering
2015-11-02 18:16:55 -08:00
Ben Alpert
17289020f7 Merge pull request #5356 from rpominov/patch-1
fix shallowRenderer.getRenderOutput() return type in docs
2015-11-02 17:27:08 -08:00
Ben Alpert
5724fca7ae Merge pull request #5358 from conorhastings/invariant-testutils-simulate-shallow-render
#5284 - Show a friendly error when using TestUtils.Simulate with shallow rendering
2015-11-02 17:22:07 -08:00
conorhastings
fbb8d2fe2d Show a friendly error when using TestUtils.Simulate with shallow rendering 2015-11-02 20:14:26 -05:00
Paul O’Shannessy
b9371bc216 Merge pull request #5370 from zpao/babel6docs
Update docs for Babel 6
2015-11-02 16:58:17 -08:00
csbok
2b54e5417d Update getting-started.ko-KR.md
correcting misspelled words
2015-11-03 09:56:41 +09:00
Paul O’Shannessy
bc3b32c968 [docs] Update tooling integration for more babel 6 2015-11-02 13:10:40 -08:00
Paul O’Shannessy
db7ea058e7 [docs] Update Getting Started for babel 6 2015-11-02 12:56:30 -08:00
Paul O’Shannessy
dbab71bbf4 Merge pull request #5350 from ludovicofischer/master
Correct Babel 6 command line usage instructions.
2015-11-02 11:42:44 -08:00
Ben Alpert
ff6714064f adler32: Properly break loop into 4096-char blocks
I believe this was lost in translation in #4400. Can't say I fully understand why this is significant at all though...
2015-11-02 11:29:48 -08:00
Paul O’Shannessy
72a11421d2 Merge pull request #5367 from spicyj/haste-manifest
Add package.json for react-haste package
2015-11-02 11:15:28 -08:00
Paul O’Shannessy
a82400faa2 Merge pull request #5366 from zpao/react-dom-peer-dep
Make React a peerDep of react-dom
2015-11-02 11:14:29 -08:00
Ben Alpert
d44c45f8a5 Add package.json for react-haste package
This will probably go away in a release or two.
2015-11-02 11:03:18 -08:00
Paul O’Shannessy
3c1c02394e Make React a peerDep of react-dom 2015-11-02 10:19:04 -08:00
Roman Pominov
e9f931653d fix shallowRenderer.getRenderOutput() return type in docs 2015-11-01 16:54:41 +03:00
Sergey Rubanov
57b0c8efd0 add Node 5 to devEngines 2015-11-01 04:55:33 +03:00
Ludovico Fischer
6e1f642273 Correct Babel 6 command line usage instructions.
The user should install the babel-cli package, see http://babeljs.io/docs/usage/cli/.
2015-11-01 00:17:16 +01:00
Paul O’Shannessy
88bae3fb73 Merge pull request #5348 from hzoo/patch-2
add docs for babel 6
2015-10-31 12:11:26 -07:00
Henry Zhu
41fc5f21e5 add docs for babel 6 2015-10-31 14:34:20 -04:00
Jim
bbffc36534 Merge pull request #5344 from chicoxyzzy/update-rcc
maskedContext should not be instantiated as null
2015-10-30 18:23:55 -07:00
chico
8a9039891b maskedContext should not be instantiated as null 2015-10-31 04:05:44 +03:00
Ben Alpert
c525732147 Merge pull request #5023 from spicyj/jsc-perf
Add rudimentary jsc perf-counters runner
2015-10-30 17:06:30 -07:00
Paul O’Shannessy
b5d90f8c6b Merge pull request #5331 from tbroadley/typescript-test-windows
Fix for TypeScript test on Windows
2015-10-30 15:45:51 -07:00
Thomas Broadley
d77e161f99 use path library to normalize filepath 2015-10-31 07:38:47 +09:00
Jim
a2d26c82ea Merge pull request #5093 from jimfb/avoid-children-to-string-coercion
Should not coerce children prop on custom elements to a string.  Fixes #5088
2015-10-30 13:42:05 -07:00
Jim
0c790baf31 Merge pull request #5341 from zpao/domprop-integrity
Add integrity to HTML property config
2015-10-30 13:39:17 -07:00
Paul O’Shannessy
68eb1a6fb6 Add integrity to HTML property config 2015-10-30 13:35:51 -07:00
Jim
86fc94750a Should not coerce children prop on custom elements to a string. Fixes #5088 2015-10-30 13:33:21 -07:00
Paul O’Shannessy
bd6417e24e Merge pull request #5293 from chicoxyzzy/update-deps
update dependancies
2015-10-30 13:25:31 -07:00
Paul O’Shannessy
3d75a4234d Merge pull request #5339 from jimfb/contributing-first-bug
Added a note about finding a good-first-bug
2015-10-30 12:10:22 -07:00
Jim
6fd7892a4d Added a note about finding a good-first-bug 2015-10-30 11:05:49 -07:00
chico
38b80b5b37 update deps 2015-10-30 16:34:39 +03:00
Paul O’Shannessy
761921499c Merge pull request #5049 from xelad1/patch-1
Fixed unclear wording in comment
2015-10-29 23:21:05 -07:00
Alex Dajani
aa6fcf902c Fixed unclear wording in comment
Perhaps not understanding what "key a set a fragment..." is supposed to mean.  Hopefully I'm not misreading this as a typo.
2015-10-29 23:20:18 -07:00
Paul O’Shannessy
c35b4384f7 Merge pull request #5235 from wincent/update-blog-syntax
Update syntax in older Relay blog post that may be causing confusion
2015-10-29 23:14:19 -07:00
Paul O’Shannessy
f02584d807 Merge pull request #5300 from zpao/lint-eqeqeq
[lint] Make eqeqeq a failure
2015-10-29 23:06:44 -07:00
Jim
0ef5112e89 Merge pull request #5334 from facebook/revert-5320-overwrite_props
Revert "Overwriting of mutated props in constructor"
2015-10-29 22:47:35 -07:00
Sebastian Markbåge
d914f15c0e Revert "Overwriting of mutated props in constructor" 2015-10-29 22:36:38 -07:00
Christoph Pojer
1384d43f53 Merge pull request #5321 from cpojer/update-tests
Update tests
2015-10-29 18:42:12 -07:00
Thomas Broadley
d80710b0ae fix for TypeScript test on Windows 2015-10-30 10:22:50 +09:00
Jim
d15e2fcd8e Merge pull request #5320 from drdelambre/overwrite_props
Overwriting of mutated props in constructor
2015-10-29 18:15:52 -07:00
Alex Boatwright
cc09ed940f classes in the tests when can 2015-10-29 18:11:28 -07:00
Paul O’Shannessy
12c214a992 Merge pull request #5328 from zpao/non-native-event-name-dispatch
Use a custom event type for our event dispatching in ReactErrorUtils
2015-10-29 17:54:18 -07:00
Sławomir Laskowski
f00d45d65f Fix shallow renderer with ref as function 2015-10-30 00:23:24 +01:00
cpojer
ac17bdaaba Remove generateFromMetadata and getMetadata usage. 2015-10-29 15:45:30 -07:00
Paul O’Shannessy
606aa61209 Merge pull request #5327 from zpao/definepropgetter
Use a getter for canDefineProperty check.
2015-10-29 15:41:02 -07:00
Paul O’Shannessy
29523d0113 Use a custom event type for our event dispatching in ReactErrorUtils
It turns out that IE doesn't like when native events types are used. There may
have been more involved at play but this fixes the issue.
2015-10-29 15:39:14 -07:00
Paul O’Shannessy
d95a2239a8 Use a getter for canDefineProperty check.
This ensures that we treat es5-sham as a broken implementation of defineProperty and we won't try to use it.
2015-10-29 15:17:50 -07:00
Paul O’Shannessy
b8f502b224 Merge pull request #5326 from tbroadley/grunt-lint-windows
Fix for 'grunt lint' on Windows
2015-10-29 14:51:21 -07:00
Thomas Broadley
c0f0d12f96 'grunt lint' now works on Windows 2015-10-30 06:43:43 +09:00
cpojer
2ecfc4f8fb Codemod old APIs away. 2015-10-29 12:40:52 -07:00
cpojer
9d25303d89 Update jest. 2015-10-29 12:40:52 -07:00
Alex Boatwright
c341269ab2 simple fix to prevent overwriting of mutated props 2015-10-28 23:37:29 -07:00
Jim
01341480c2 Merge pull request #5317 from nickbalestra/patch-1
Update 02.1-jsx-in-depth.md
2015-10-28 22:13:57 -07:00
Jim
fbf4cbbae6 Merge pull request #5316 from Third9/master
update Korean docs to 0.14
2015-10-28 21:43:16 -07:00
Nick Balestra
2257d8aa76 Update 02.1-jsx-in-depth.md
Update 02.1-jsx-in-depth.md
2015-10-28 20:14:02 -07:00
KwonH
afc118e3c4 update Korean docs to 0.14
Update getting-started in Korean
2015-10-29 11:51:52 +09:00
Paul O’Shannessy
ee06df1ac5 Bring over updates for 0.14.1 release
Update changelog for 0.14.1

(cherry picked from commit aaf8f870cb)

Update readme for 0.14.1

(cherry picked from commit c2dde8df0b)

0.14.1 blog post

(cherry picked from commit 6e2450e8f2)

Update website for 0.14.1

(cherry picked from commit f0782e2b2e)
2015-10-28 14:43:56 -07:00
Ben Alpert
a65a4851c6 Merge pull request #5309 from spicyj/bench
Add a simple initial-render benchmark test case
2015-10-28 13:58:50 -07:00
Ben Alpert
e849819cb6 Add a simple initial-render benchmark test case 2015-10-28 13:14:24 -07:00
Paul O’Shannessy
2c176da7e8 Merge pull request #5304 from evanvosberg/master
Add non-standard property for supporting Safari mask-icon.
2015-10-28 10:28:21 -07:00
Evan Vosberg
f8b4affb87 Add non-standard property for supporting Safari mask-icon.
See also: https://developer.apple.com/library/prerelease/mac/releasenotes/General/WhatsNewInSafari/Articles/Safari_9.html#//apple_ref/doc/uid/TP40014305-CH9-SW20
2015-10-28 17:35:43 +01:00
Paul O’Shannessy
ad00a6e672 [lint] Make eqeqeq a failure 2015-10-27 15:39:54 -07:00
Ben Alpert
b0a7a00dba Merge pull request #5237 from spicyj/gh-5125
Make sure top-level callback has correct context
2015-10-27 13:26:45 -07:00
Ben Alpert
7f205e9c1b Make sure top-level callback has correct context
Closes #5125 -- incorporates essentially the same fix with a much simpler test case. Thanks @yiminghe for reporting!
2015-10-27 13:11:45 -07:00
Ben Alpert
65b9ceb4f8 Merge pull request #5209 from antoaravinth/5189
Don't instrument listeners for ReactDefaultPerf
2015-10-27 11:59:02 -07:00
Paul O’Shannessy
517872817f Merge pull request #5297 from quadrupleslap/master
Mangle __html in prop validation.
2015-10-27 09:40:29 -07:00
Ram Kaniyur
ad654ceb66 Took keyOf outside the function. 2015-10-28 00:48:54 +11:00
Ram Kaniyur
e26666fb1e Mangle __html in prop validation. 2015-10-28 00:18:00 +11:00
Ants
59db07c4f9 Fix for the issue #5189
Fix for lint issues

Added the test cases for the issue 5189

Removing empty space

Removing the Eventplugin instrumentation code

Removing unwanted white space
2015-10-27 16:33:22 +05:30
Ben Alpert
e603644255 Merge pull request #5291 from spicyj/afu-cycle
Fix cycle in AutoFocusUtils
2015-10-26 15:03:15 -07:00
Ben Alpert
f558b95584 Fix cycle in AutoFocusUtils
In 5c5d2ec182 I accidentally introduced a dependency cycle:

AutoFocusUtils -> findDOMNode -> ReactDOMComponent -> AutoFocusUtils

This breaks some tools internally. We're not actually using findDOMNode in AutoFocusUtils any more so we can just delete it.
2015-10-26 14:52:23 -07:00
Paul O’Shannessy
0f76873ebb Merge pull request #5289 from jonathanp/patch-1
Update 2015-05-01-graphql-introduction.md
2015-10-26 14:19:48 -07:00
jpersson
e2267613ac Update 2015-05-01-graphql-introduction.md 2015-10-26 17:14:11 -04:00
Jonathan Persson
924cddc505 Update 2015-05-01-graphql-introduction.md 2015-10-26 16:32:11 -04:00
benhalpern
a51ef94384 Updated conference info 2015-10-26 16:20:57 -04:00
Ben Alpert
055ecd7f14 Merge pull request #5266 from spicyj/lt-fix-2
Three more fixes for document.createElement mode
2015-10-26 11:41:27 -07:00
Paul O’Shannessy
d17ad0f0c0 Merge pull request #5089 from thomasp9/patch-1
Create 01-why-react.de-DE.md
2015-10-26 10:14:16 -07:00
Patrick
0508a07446 Create 01-why-react.de-DE.md
Translation of 01-why-react.de-DE.md to German
2015-10-26 10:13:45 -07:00
Paul O’Shannessy
0ddc0817e4 Merge pull request #5252 from zpao/eslintlock
[lint] Lock eslint version
2015-10-26 10:12:52 -07:00
Paul O’Shannessy
11919b6d90 Merge pull request #5286 from translucens/add_reactdom_js
Add react-dom.js to tutorials
2015-10-26 09:24:54 -07:00
translucens
73ec3713b3 Add react-dom.js to tutorials 2015-10-26 22:23:50 +09:00
Ben Alpert
22a240fd39 Avoid lastProps[key] lookup in initial render
This makes both Firefox and IE 15-20% faster in initial render (!!). On my PE benchmark, createElement is now on par with HTML in Firefox and faster in IE11 (before, it was slower).
2015-10-24 12:19:30 -07:00
Paul O’Shannessy
56c91248fd Merge pull request #5274 from SpartaSixZero/master
Corrected highlighted line in tutorial example in tutorial7.js
2015-10-24 12:19:28 -07:00
Mark Sun
2f48cc4327 Corrected highlighted line in tutorial example in tutorial7.js 2015-10-24 15:01:14 -04:00
Jim
75e9045719 Merge pull request #5268 from dnshi/update-readme
Update README's example
2015-10-24 06:29:06 -10:00
Dean Shi
2b136a4f84 Update README's example
According to current React version, when I use `React.render`, console shows `React.render is deprecated. Please use ReactDOM.render from require('react-dom') instead.`.

So this PR is a tiny update for the README example.
2015-10-24 00:59:05 -07:00
Ben Alpert
6269ef62cf Two more fixes for document.createElement mode
Is this all of them? I hope so.

- Set text content after creating hierarchy, like the text is a child. I should've done this originally but I guessed it wouldn't matter. I was wrong (~20% perf difference in IE11).
- IE throws when setting an enum-like property to an invalid value. I tried setting every property to the string 'a' and changed the ones that threw to be MUST_USE_ATTRIBUTE. I think these are all correct -- encType is the most suspicious one based on the existing comments but I tested in IE8 and it works fine as an attribute.
2015-10-23 22:46:02 -07:00
Ben Alpert
8aaa66c292 Merge pull request #5263 from spicyj/npmreactreadme
Update addons paths in npm react README
2015-10-23 17:36:23 -07:00
Ben Alpert
3a0ab000bf Update addons paths in npm react README 2015-10-23 17:31:01 -07:00
Ben Alpert
4106251316 Merge pull request #5261 from spicyj/dom-null-undef
Bug fixes for createElement mode
2015-10-23 15:56:21 -07:00
Ben Alpert
939c7596ad Merge pull request #5253 from spicyj/dt-lazy
Perf: Insert nodes top-down in IE and Edge
2015-10-23 15:56:08 -07:00
Ben Alpert
b447b40958 Use attributes to set .type
According to the internet, this should work and it appears to work fine on all the browsers I tested.
2015-10-23 12:08:10 -07:00
Ben Alpert
7221e1b2e9 Don't set DOM props when switching between unset/undefined/null 2015-10-23 11:52:29 -07:00
Ben Alpert
263ca4792e Perf: Insert nodes top-down in IE and Edge 2015-10-23 10:59:27 -07:00
Paul O’Shannessy
4d41cf740a Merge pull request #5250 from conorhastings/track-default-property
add default attribute for use with track element
2015-10-22 20:20:44 -07:00
Paul O’Shannessy
a79fcd7a7f [lint] Lock eslint version
The automatic updating really sucks here as bugs are fixed / behavior of rules changes. Local versions are updated, cached versions on Travis aren't. It's messy. Now we must explicitly update for any thing to change.
2015-10-22 20:15:25 -07:00
Paul O’Shannessy
be6bd3404e Merge pull request #5236 from spicyj/eslint-17
Fix lint for eslint 1.7
2015-10-22 19:59:26 -07:00
conorhastings
bb3a326ecd add default attribute for use with track element 2015-10-22 22:47:17 -04:00
Ben Alpert
b106e96864 Fix lint for eslint 1.7 2015-10-21 14:48:47 -07:00
Ben Alpert
7b97d8d58f Merge pull request #5233 from yiminghe/fix-typo
fix wrong method name
2015-10-21 14:33:38 -07:00
Greg Hurrell
1bcd6804f3 Update syntax in older Relay blog post that may be causing confusion
Just seen on Stack Overflow a question that suggests people may be
confused if they run across some of the old syntax in one of our old
blog posts:

http://stackoverflow.com/questions/33261751/why-does-relay-ql-result-in-unterminated-string-constant-error/

Ideally people would consult the (up-to-date) documentation instead, and
we don't want to have to maintain old blog posts, but in this case the
cost of updating the syntax was low so I just went ahead and did it.
2015-10-21 11:53:22 -07:00
Jim
1dafac9e0c Merge pull request #5230 from kohashi/patch-1
Fix tutorial.ja-JP.md
2015-10-21 07:46:17 -10:00
yiminghe
85fc28624c fix wrong method name 2015-10-22 00:29:22 +08:00
David Khourshid
29939b7270 Updating "JSX Gotchas" docs for Custom Attributes
Adds note that custom attributes are supported on custom elements.
2015-10-21 08:18:48 -04:00
kohashi85
ce002e61b1 Update tutorial.ja-JP.md 2015-10-21 17:04:08 +09:00
Paul O’Shannessy
a468eed33f Merge pull request #5217 from zpao/rm-react-codemod
Move react-codemod to standalone repo
2015-10-20 15:46:49 -07:00
Paul O’Shannessy
8848984c46 Update blog posts linking to react-codemod 2015-10-19 14:39:40 -07:00
Paul O’Shannessy
caece8b4b7 Remove react-codemod 2015-10-19 14:31:31 -07:00
Paul O’Shannessy
5bd04cf259 Merge pull request #5154 from cmatheson/master
add npm 3.x to devengines
2015-10-19 13:52:20 -07:00
Paul O’Shannessy
fc96f31fad Merge pull request #5185 from yungsters/invariant
Remove "Invariant Violation: " from Invariant Error Messages
2015-10-19 12:07:59 -07:00
Paul O’Shannessy
244dd5da4c Merge pull request #5214 from benigeri/patch-1
small edit on reactiflux blog post
2015-10-19 12:03:01 -07:00
Paul Benigeri
7aac368253 small edit on reactiflux blog post 2015-10-19 12:01:47 -07:00
Ben Alpert
3d7def0b48 Merge pull request #5213 from spicyj/gh-5187-f
Follow-ups to #5187
2015-10-19 11:19:10 -07:00
Ben Alpert
545f31741e Follow-ups to #5187 2015-10-19 11:15:02 -07:00
Paul O’Shannessy
8f1ce99cc3 Fix up stray markdown in blog post 2015-10-19 10:23:28 -07:00
Christopher Chedeau
2a7d054bfc Merge pull request #5211 from vjeux/reactiflux
Reactiflux is moving to Discord blog post
2015-10-19 07:42:40 -07:00
Christopher Chedeau
db7522f2c5 Reactiflux is moving to Discord blog post 2015-10-19 07:35:46 -07:00
Jim
9cb01de1bc Merge pull request #5203 from WanderWang/docs-cn
update Chinese docs to 0.14
2015-10-18 09:38:18 -07:00
WanderWang
1044d4c7d5 update Chinese docs to 0.14 2015-10-19 00:34:04 +08:00
Jim
dd3c4474d1 Merge pull request #4051 from jquense/ie-noisy-input-event
opt out of input events for ie 10 and 11
2015-10-18 09:26:52 -07:00
Ben Alpert
617f03518a Merge pull request #5192 from spicyj/ev-ind
Remove unnecessary indirection in events
2015-10-16 21:43:09 -07:00
Jim
7a164fd3a0 Merge pull request #5187 from tomduncalf/support_invalid_event-issue_5152
Add support for "invalid" event within Form elements
2015-10-16 18:02:18 -07:00
Timothy Yung
278939ec58 Upgrade dependency fbjs@0.4.0 2015-10-16 16:10:06 -07:00
Timothy Yung
cdaea311a3 Remove "Invariant Violation: " from Invariant Error Messages 2015-10-16 16:09:28 -07:00
Jim
98c96b6460 Merge pull request #5199 from jimfb/number-found
Print number of matches (previously unclear if zero or multiple)
2015-10-16 13:00:49 -07:00
Jim
e0904a0a90 Print number of matches (previously unclear if zero or multiple) 2015-10-16 13:00:10 -07:00
Jim
3260b00385 Merge pull request #5195 from trickford/patch-1
Specify focus events work on all elements in the React DOM
2015-10-16 11:50:22 -07:00
Ben Alpert
e67ceae1ad Merge pull request #5198 from spicyj/gh-5071a
Fix buggy DOM nesting warning for text components
2015-10-16 11:42:20 -07:00
Ben Alpert
f7816cdbfe Fix buggy DOM nesting warning for text components
cf. #5071
2015-10-16 11:36:16 -07:00
Jim
0fc8f6ade3 Merge pull request #5193 from conorhastings/enqueue-callback-error
update enqueueCallback invariant to more specifically denote type of passed callback
2015-10-16 09:39:56 -07:00
Rick Ford
3d4e8affcd Specify focus events work on all elements in the React DOM
Generally, focus/blur events only apply to focusable elements found in forms. In React, you can listen to focus/blur events on any element.
2015-10-16 11:02:04 -05:00
conorhastings
20ec78d9f0 update enqueueCallback invariant to more specifically explain what caused error 2015-10-16 11:57:08 -04:00
jquense
b5e7a8447c opt out of input events for ie 10 and 11
while supported then Input event is too noisy in IE. Firing on
placeholder sets, and when an input is focused with a placeholder.

fixes #3377 and fixes #3484
2015-10-16 11:28:36 -04:00
Ben Alpert
ef95128ae2 Remove unnecessary indirection in events 2015-10-15 20:13:14 -07:00
Paul O’Shannessy
ed7ab7b94a Merge pull request #5176 from jimfb/tweak-props-change-wording
Tweak wording when talking about props changing
2015-10-15 12:21:14 -07:00
Paul O’Shannessy
e12ee95e09 [docs] Don't make authors links on all posts page 2015-10-15 12:18:15 -07:00
Tom Duncalf
5ceb22953c Add support for "invalid" event within Form elements
Fixes #5152
2015-10-15 20:15:34 +01:00
Paul O’Shannessy
ccfc2d8049 Merge pull request #5178 from jimfb/multiple-authors
Fix blog post authors
2015-10-15 12:04:56 -07:00
Paul O’Shannessy
95afe4608f Merge pull request #5184 from zpao/fix-style-issues
Fix indentation issues
2015-10-15 11:55:37 -07:00
Paul O’Shannessy
0dc6596dc2 Fix indentation issues 2015-10-15 09:29:28 -07:00
Jim
b735dd4ab4 Merge pull request #5048 from antoaravinth/PR-5013
Issue: 5013 Added necessary code for firing warning if value is null
2015-10-14 23:06:54 -07:00
Ants
b42c1dafcc Issue: 5013 Added necessary code for firing warning if value is null
Fixed the lint issues

Added logic for handling the warning only once and added the test cases for the same. Also moved the warning part to only DEV mode

Changed few lines related to the formatting issues

Removing the empty whitespace
2015-10-15 10:13:35 +05:30
Jim
5ae4f035c7 Fix blog post authors 2015-10-14 18:01:33 -07:00
Ben Alpert
8168c8eac6 Merge pull request #5175 from spicyj/text-no-frag
Don't test frag cases in ReactMultiChildText-test
2015-10-14 16:07:11 -07:00
Jim
c47d2cfada Tweak wording when talking about props changing 2015-10-14 14:43:09 -07:00
Paul O’Shannessy
8e9682c542 Merge pull request #5174 from zpao/dom-attributes-track
Add srcLang and kind to better support track elements
2015-10-14 14:35:03 -07:00
Ben Alpert
5f8fe7d614 Don't test frag cases in ReactMultiChildText-test
These are now just testing the same as the array cases directly above. This should make this test a bunch faster because it (intentionally) has n^2 runtime.
2015-10-14 14:31:45 -07:00
Ben Alpert
8e67b7f624 Merge pull request #4988 from spicyj/fdn
Walk down internal tree to find DOM node
2015-10-14 14:31:28 -07:00
Ben Alpert
5c5d2ec182 Walk down internal tree to find DOM node
This reduces our reliance on hierarchical IDs.
2015-10-14 14:22:53 -07:00
Paul O’Shannessy
659172df50 Add srcLang and kind to better support track elements 2015-10-14 12:05:56 -07:00
Jim
555fd46c7e Merge pull request #5140 from pluma/patch-1
Fix #1357. Don't append "px" suffix to CSS string values.
2015-10-14 11:18:53 -07:00
Alan Plum
a299a366ce Fix #1357. Warn when appending "px" to strings. 2015-10-14 18:36:24 +02:00
Sebastian Markbåge
da1135618e Merge pull request #5166 from spicyj/gh-5157
Add feature test for document.createEvent
2015-10-14 00:08:56 -07:00
Ben Alpert
4f9fdeeec1 Merge pull request #5165 from spicyj/cache-lenient
Be more lenient with invalid nodes in the cache
2015-10-13 17:22:12 -07:00
Ben Alpert
1206d8d2eb Add feature test for document.createEvent
See #5157.
2015-10-13 16:34:05 -07:00
Ben Alpert
e89e675508 Be more lenient with invalid nodes in the cache
This matches our old behavior. I was a little too aggressive in turning on this
error and it's still possible to trigger it (using the test added here).
2015-10-13 16:07:06 -07:00
Paul O’Shannessy
af99b2c2a3 Merge pull request #5164 from zpao/fix-csstransitiongroup-proptype
Correctly handle 0 in CSSTransitionGroup timeout props
2015-10-13 14:54:21 -07:00
Paul O’Shannessy
dc21b95244 Correctly handle 0 in CSSTransitionGroup timeout props 2015-10-13 14:39:55 -07:00
Ben Alpert
dddbca472a Merge pull request #5160 from spicyj/gh-5151
Fetch node to unmount separately from unmounting
2015-10-13 12:19:24 -07:00
Ben Alpert
622db4ee4f Fetch node to unmount separately from unmounting
My last strategy of getting each node recursively while unmounting was a pain to make work properly with ReactMount's confusing cache. Now, we get the node before unmounting anything in the subtree (and we don't try to find the nodes of descendants).

This is a temporary solution and can go away when we get rid of the giant ReactMount node hash map.

Fixes #5151.
2015-10-13 12:07:57 -07:00
Ben Alpert
194ab16d7b Merge pull request #5157 from spicyj/createevent
Use 'document.createEvent' not 'new Event'
2015-10-13 11:40:35 -07:00
Paul O’Shannessy
51c0f86ec7 Merge pull request #5147 from zpao/update-release-task
Stop generating gh-pages during release, update message
2015-10-13 11:20:40 -07:00
Ben Alpert
6488a4c187 Use 'document.createEvent' not 'new Event'
Fixes #5153.

This seems to work in all browsers I tested, including old Android and all IE > 8 which didn't work before.
2015-10-13 11:14:23 -07:00
Ben Alpert
50c9b94552 Merge pull request #5156 from spicyj/bp-codemods
Mention codemods more prominently in release blog
2015-10-13 10:50:38 -07:00
Ben Alpert
4a37796f88 Mention codemods more prominently in release blog 2015-10-13 10:37:42 -07:00
Paul O’Shannessy
f7a3ac2d56 Stop generating gh-pages during release, update message 2015-10-13 09:37:32 -07:00
Cameron Matheson
2c1c7fad4d add npm 3.x to devengines 2015-10-13 02:06:48 -06:00
Jim
bffed177f4 Merge pull request #5150 from jimfb/node-v4-readme
Updated node version requirement in README.md
2015-10-12 18:07:29 -07:00
Jim
e46e5784ce Updated node version requirement in README.md 2015-10-12 18:06:06 -07:00
Jim
c1c9b383a0 Merge pull request #5137 from vipulnsward/2576-add-comparison-tests
Added tests to compare testing of components using different types of element creation
2015-10-12 14:08:08 -07:00
Vipul A M
b4a6bc89c2 - Added tests to compare testing of components using different types of element creation
Fixes [#2576]

- Fixed Lint warnings and errors
2015-10-12 16:44:00 -04:00
Ben Alpert
b32835ea61 Merge pull request #5146 from spicyj/ce-scripts
Don't execute <script> tags w/ createElement mode
2015-10-12 13:43:51 -07:00
Ben Alpert
db989bf686 Don't execute <script> tags w/ createElement mode
Each script will execute at most once so we could also set `.textContent` to something like `;`, then add it to the document, then change the `.textContent`, but this seems like the simplest approach. See http://dev.w3.org/html5/spec-preview/the-script-element.html for details.
2015-10-12 13:43:40 -07:00
Jim
37c71a6e1f Merge pull request #5142 from MaxPRafferty/add-selection-and-composition-events-on-reference-page
Add selection and composition events on reference page
2015-10-12 13:37:56 -07:00
maxprafferty
48ada00bdb added selection and composition events to reference page
added composition events to reference page

added selection events to reference page
2015-10-12 15:44:44 -04:00
Paul O’Shannessy
abaf0051de Merge pull request #5124 from bhamodi/master
Documentation Cleanup Round 1.
2015-10-12 12:34:54 -07:00
Baraa Hamodi
45d4296ac5 Documentation cleanup. 2015-10-12 15:33:32 -04:00
Paul O’Shannessy
875e2b36cc Merge pull request #5144 from zpao/grunt-gulp-windows
Use the right gulp executable on Windows
2015-10-12 12:28:21 -07:00
Ben Alpert
b03b195759 Merge pull request #5130 from matiassingers/jasmine-spy-call-args-consistency
Jasmine spies call args property consistency
2015-10-12 10:24:56 -07:00
Paul O’Shannessy
227ba42f81 Use the right gulp executable on Windows 2015-10-12 10:01:23 -07:00
Jim
e45e46a567 Merge pull request #5141 from pluma/patch-2
Removed ESLint warning
2015-10-12 09:59:17 -07:00
Alan Plum
0e451162bc Removed eslint warning. 2015-10-12 17:42:38 +02:00
Matias Singers
f8f2be05ce Consistently use calls[n].args[n] instead of argsForCall[n][n] for Jasmine spies 2015-10-12 22:39:19 +08:00
Ben Alpert
01817c143c Merge pull request #5129 from matiassingers/jasmine-spy-calls-length-consistency
Jasmine spies call count property consistency, take II
2015-10-11 15:03:27 -07:00
Matias Singers
dd0b1a643b Consistently use calls.length instead of callCount for Jasmine spies, take II
See #3105 for take I
2015-10-11 15:42:24 +08:00
Paul O’Shannessy
5dc2858bc9 Merge pull request #5126 from bhamodi/white-space
File Cleanup.
2015-10-10 19:30:29 -07:00
Paul O’Shannessy
0b21632f8e Merge pull request #5123 from vipulnsward/fix-html-jsx-page
- Bring back JSX compiler styling still being used on HTML JSX page
2015-10-10 19:11:26 -07:00
Baraa Hamodi
a86e349535 File Cleanup. 2015-10-10 16:05:58 -04:00
Vipul A M
2b81ea0d20 - Bring back JSX compiler styling still being used on HTML JSX page
Fixes [#5121]
2015-10-10 13:53:59 -04:00
Jim
0b29035484 Merge pull request #5120 from abloomston/patch-1
Include react-dom
2015-10-10 07:35:19 -07:00
Adam Bloomston
ab1be09d7d Include react-dom
Fixes `Uncaught ReferenceError: ReactDOM is not defined`
2015-10-10 10:17:08 -04:00
Paul O’Shannessy
be90351add Update Readme with for 0.14 2015-10-09 17:48:44 -07:00
Jim
5c3e99c7f4 Merge pull request #5116 from jimfb/download-page-links
Added react-dom to individual downloads
2015-10-09 15:17:08 -07:00
Jim
f6e09f1903 Added react-dom to individual downloads 2015-10-09 15:11:11 -07:00
Ben Alpert
fb9e1ed475 Merge pull request #5014 from spicyj/native-parents
Thread native-parent pointers through everything
2015-10-09 15:07:59 -07:00
Ben Alpert
8210299437 Add SVG/MathML support for createElement mode 2015-10-09 14:56:57 -07:00
Ben Alpert
1dca72ebfa Thread native-parent pointers through everything
Now we don't repurpose context for our own secret needs (hi Dan). In this diff I avoid storing the native parent on native (DOM) components and store it only on composites, but we'll probably want to store it on native components too soon for event bubbling.
2015-10-09 14:56:08 -07:00
Ben Alpert
a907da9430 Make Danger-test simpler and more robust 2015-10-09 14:54:42 -07:00
Ben Alpert
4e48c67120 Merge pull request #5113 from spicyj/document-context
Document context
2015-10-09 14:46:56 -07:00
Ben Alpert
28b10a9d6a Document context
Fixes #580.
2015-10-09 14:44:24 -07:00
Paul O’Shannessy
09b688efce [docs] Fix line highlights for linked-state-mixin 2015-10-09 12:32:01 -07:00
Jim
15c731edca Merge pull request #5109 from Josh-a-e/undefined_this_on_controlled_components
add test to show `this` is indeed undefined - closes #3613
2015-10-09 11:44:19 -07:00
Ben Alpert
d95381387e Merge pull request #5111 from spicyj/vdn-current
validateDOMNesting: parentTag -> current
2015-10-09 11:43:31 -07:00
Ben Alpert
9c836b09f2 validateDOMNesting: parentTag -> current 2015-10-09 11:40:55 -07:00
Joshua Evans
8f4c2997a0 add test to show this is indeed undefined - closes #3613 2015-10-09 19:37:58 +01:00
Jim
845135531a Merge pull request #5105 from jimfb/changelog-0.14
Added changelog for 0.14
2015-10-09 10:51:36 -07:00
Paul O’Shannessy
3359e2f64c Merge pull request #5101 from bcbcb/patch-1
[docs] fix forms Default Value example
2015-10-09 10:47:01 -07:00
Jim
e8be7013ba Merge pull request #4981 from iamchenxin/zh_docs
[docs] Sync up tutorial.zh-CN with en(a440f40)
2015-10-09 10:46:16 -07:00
iamchenxin
a8459214d1 [docs] Sync up tutorial.zh-CN with en(a440f40)
[docs] Amend wrong words in zh-CN

08.1-more-about-refs.zh-CN.md

Update zh-CN docs

add thinking-in-react.zh-CN.md

[docs] Update two zh-CN docs

       new file:   ref-01-top-level-api.zh-CN.md
       new file:   ref-02-component-api.zh-CN.md
2015-10-10 01:35:03 +08:00
Jim
72e70f345b Added changelog for 0.14 2015-10-09 10:26:18 -07:00
Ben Alpert
407e88d6c8 Merge pull request #5107 from mbrookes/patch-1
Grammar
2015-10-09 08:59:47 -07:00
Matt Brookes
98aecac34c Grammar
I'm assuming this was meant to say that the JSX spread syntax saves typing, not copying attributes.
2015-10-09 14:31:59 +01:00
Jim
1a7c0a4b16 Merge pull request #5102 from TracyJordan/master
Fixed some comment punctuation in ReactDOMComponent.js
2015-10-09 00:33:39 -07:00
Kevin Cheng
ff17bc25d1 Fixed punctuation 2015-10-08 19:36:05 -07:00
Brenard Cubacub
d96f319d6e [docs] fix forms Default Value example
The Default Value section in the forms docs says "This example will function much like the Controlled Components example above."

The example actually functions like the Uncontrolled Components example, not the Controlled Components example.
2015-10-08 16:41:19 -07:00
Ben Alpert
f522371cee Merge pull request #5100 from spicyj/ssr-dupe
Remove duplication in ReactServerRendering
2015-10-08 15:11:34 -07:00
Ben Alpert
d4420eca8a Remove duplication in ReactServerRendering 2015-10-08 15:06:09 -07:00
Ben Alpert
3f5747009d Merge pull request #5083 from spicyj/warn-min
Warn when using a minified copy of dev React
2015-10-08 14:08:50 -07:00
Paul O’Shannessy
c511f161df Merge pull request #5096 from songawee/docs_babel_fix
fix(docs): adjust babel release to match the babel.js changelog
2015-10-08 11:52:42 -07:00
Ben Alpert
f3a506bc0c Warn when using a minified copy of dev React
Fixes #4842.
2015-10-08 11:44:56 -07:00
songawee
8fb436a5eb fix(docs): adjust babel release to match the babel.js changelog 2015-10-08 12:44:24 -06:00
Ben Alpert
2253405dcc Merge pull request #5085 from spicyj/cdp
Extract defineProperty feature testing to one file
2015-10-08 11:33:07 -07:00
Ben Alpert
4fb39ce984 Merge pull request #5081 from spicyj/svg-tu
Don't break on SVG tags in scryRenderedDOMComponentsWithClass
2015-10-08 08:38:32 -07:00
Ben Alpert
4bb83d237e Don't break on SVG tags in scryRenderedDOMComponentsWithClass
Fixes #5076.
2015-10-08 08:29:53 -07:00
Ben Alpert
e9796cc447 Merge pull request #5084 from spicyj/rearrange-utils
Move escapeTextContentForBrowser and quoteAttributeValueForBrowser to DOM directory
2015-10-08 08:28:40 -07:00
Ben Alpert
3fb2d3f5d4 Extract defineProperty feature testing to one file
This makes it slightly more bearable to debug in IE8 with an exception breakpoint. Also the old way was just silly and could mask other bugs.
2015-10-07 18:33:13 -07:00
Ben Alpert
2637a8eaf4 Move escapeTextContentForBrowser and quoteAttributeValueForBrowser to DOM directory
Only DOM files use these.
2015-10-07 18:11:15 -07:00
Ben Alpert
a7189c57fc Merge pull request #5057 from camsong/patch-1
Text fix in ReactClass.js
2015-10-07 17:19:19 -07:00
Cam Song
9af15d3ecd Text fix in ReactClass.js
Rename 'component class' to 'function' as it should be.
2015-10-08 08:13:27 +08:00
Ben Alpert
0d12643652 Merge pull request #5078 from nickpresta/master
Add docs for `React.Children.toArray` in 0.14.0.
2015-10-07 17:02:06 -07:00
Nick Presta
319b374097 Add docs for React.Children.toArray in 0.14.0.
* Update the docs to change return type of `React.Children.map` from `object` to `array`.
2015-10-07 19:16:05 -04:00
Jim
d0970ee8b8 Merge pull request #5063 from facebook/revert-5062-revert-4959-no-shams
Remove dependence on ES5 shams per #4189
2015-10-07 14:23:35 -07:00
Jim
f97d759db1 Merge pull request #5032 from jimfb/remove-react-link
Added warning for use of ReactLink.
2015-10-07 14:23:11 -07:00
Ben Alpert
40cce38330 Merge pull request #5075 from spicyj/docs-downloads
Update downloads page for 0.14
2015-10-07 13:04:41 -07:00
Ben Alpert
f31a46cb18 Merge pull request #4983 from spicyj/id-swap
Refactor how composite type changes work, fix memory leak in ReactMount caching
2015-10-07 13:02:58 -07:00
Ben Alpert
34d84a36d6 Merge pull request #5066 from camsong/patch-2
Always use ANONYMOUS const in  ReactPropTypes.js
2015-10-07 12:57:59 -07:00
Ben Alpert
8ce7b7120c ReactMount now never expects invalid nodes in its cache
It never really made sense for us to have "invalid" nodes in the cache -- when we unmount things, we should always remove them from the cache properly. Now that swapping composite types doesn't repopulate the cache, we should be okay to now assume that everything in the cache is good.
2015-10-07 12:57:34 -07:00
Ben Alpert
fe9a76ef25 Rewrite ReactInstanceHandles-test to be less brittle 2015-10-07 12:57:34 -07:00
Ben Alpert
60491d89f8 Use returned native node for composite type-change
With this change, all unmounted components should be properly purged from ReactMount's cache.
2015-10-07 12:57:34 -07:00
Ben Alpert
743ccf090f Cache native node on native components, return it when unmounting
This is probably slightly slower for unmounts in the case that no updates were ever performed, but caching the node on the instance should make updates faster. In any case, the more important consequence of this change is that we can fix the current memory leak that happens when swapping composite types.
2015-10-07 12:57:34 -07:00
Ben Alpert
e4a43389b8 Don't use existing "root" ID if non-root
Before, if you had

```
container = <div data-reactid=".0"><div data-reactid=".0.0" /></div>;
```

and did `ReactDOM.render(<span />, container)` you would get

```
<div data-reactid=".0"><span data-reactid=".0" /></div>;
```

(along with a warning not to replace React-rendered children with a new tree like that). But that makes no sense -- the span should have a new index, not truncate the ID of the old child it's replacing.

(Now tests pass again with useCreateElement on; before they threw a "valid but unequal" on our test for this warning.)
2015-10-07 12:57:34 -07:00
Ben Alpert
8ebbb7802c Merge pull request #4918 from glenjamin/shallow-getinstance
Expose component instance in shallow rendering
2015-10-07 12:52:09 -07:00
Ben Alpert
501a2765ac Merge pull request #4947 from fabiomcosta/server_render_index
[react] making sure ReactDOMServer always uses ServerReactRootIndex, …
2015-10-07 12:51:59 -07:00
Ben Alpert
4a29fd892a Merge pull request #4779 from mnordick/master
Support CSS3 Grid Layout Module for inline styles
2015-10-07 12:51:26 -07:00
Ben Alpert
e1d4668fd5 Update downloads page for 0.14 2015-10-07 12:50:59 -07:00
Paul O’Shannessy
926f372dc5 Merge pull request #5073 from mfunkie/patch-2
Update Pure Render Mixin docs to point to new npm package
2015-10-07 12:22:04 -07:00
Paul O’Shannessy
30386b2e86 Final docs update for 0.14 2015-10-07 11:25:50 -07:00
Paul O’Shannessy
42481fe51f [docs] Update acknowledgements for 0.14 2015-10-07 11:25:44 -07:00
Mark Funk
c2ae332718 Update Pure Render Mixin docs to point to new npm package 2015-10-07 14:16:26 -04:00
Paul O’Shannessy
59cd224a03 Bump version in master for 0.15 development 2015-10-07 09:57:53 -07:00
Paul O’Shannessy
c8374d6db8 Merge pull request #4785 from zpao/0.14-authors
Update AUTHORS for 0.14
2015-10-07 09:50:42 -07:00
Paul O’Shannessy
e2211ab826 Update AUTHORS for 0.14 2015-10-07 09:49:10 -07:00
Ben Alpert
55cab74312 Merge pull request #5072 from spicyj/14blog
0.14 blog post
2015-10-07 09:46:44 -07:00
Ben Alpert
2bedb4ae96 Write 0.14 blog post 2015-10-06 23:59:20 -07:00
Ben Alpert
e292df781e Copy 0.14 RC blog post to 0.14 blog post 2015-10-06 23:19:50 -07:00
Ben Alpert
84dff0be5d Fix bower info in RC blog post
Fixes #5054.
2015-10-06 23:19:46 -07:00
Cam Song
a69f05c881 Always use ANONYMOUS const in ReactPropTypes.js 2015-10-07 11:28:38 +08:00
Ben Alpert
1711c7aae3 Merge pull request #5065 from spicyj/docs-pkgs
Update some more docs for package split
2015-10-06 18:38:19 -07:00
Ben Alpert
26bde37cf8 Updat docs for refs/findDOMNode 2015-10-06 17:53:38 -07:00
Ben Alpert
0faf4b752f Update some more docs for package split 2015-10-06 17:36:16 -07:00
Jim
ff533cb4db Merge pull request #5055 from jimfb/reactdom-render
React -> ReactDOM for render() and findDOMNode()
2015-10-06 15:04:15 -07:00
Sebastian Markbåge
6d3a11e602 Merge pull request #4943 from bspaulding/throw-stateless-ref
Composite component throws on attaching ref to stateless component #4939
2015-10-06 14:33:48 -07:00
Jim
fc043bb3a5 Revert "Revert "Remove dependence on ES5 shams per #4189"" 2015-10-06 14:31:20 -07:00
Jim
6446a45a00 Merge pull request #5062 from facebook/revert-4959-no-shams
Revert "Remove dependence on ES5 shams per #4189"
2015-10-06 14:30:26 -07:00
Jim
571edd85c2 Revert "Remove dependence on ES5 shams per #4189" 2015-10-06 14:30:03 -07:00
Jim
0b73099301 Merge pull request #4959 from dgreensp/no-shams
Remove dependence on ES5 shams per #4189
2015-10-06 13:57:49 -07:00
David Greenspan
f95747b929 Remove dependence on ES5 shams per #4189
Docs not updated
2015-10-06 13:49:47 -07:00
Bradley Spaulding
c6a3eb14db Wrapping StatelessComponent ref warning in __DEV__ block 2015-10-05 21:44:42 -07:00
Jim
712199ef98 React -> ReactDOM for render() and findDOMNode() 2015-10-05 17:46:58 -07:00
Jim
870a15adec Merge pull request #5056 from jimfb/reactdom-in-src
React->ReactDOM in src/
2015-10-05 16:30:25 -07:00
Jim
5a9dea00b9 React->ReactDOM in src/ 2015-10-05 16:29:33 -07:00
Ben Alpert
94ccda8543 Merge pull request #5041 from spicyj/val-key-err
Don't blow up in key warning for undefined type
2015-10-05 13:57:25 -07:00
Paul O’Shannessy
d1065355a9 Merge pull request #5045 from CoderK/master
rename renderSubtreeIntoContainer.js to renderSubtreeIntoContainer-test.js
2015-10-03 07:57:26 -07:00
KimCoding
f316839b90 rename renderSubtreeIntoContainer.js to renderSubtreeIntoContainer-test.js
To distinguish between testing file and implementation file.
2015-10-03 18:11:48 +09:00
Jim
c103c8d065 Added warning for use of ReactLink. 2015-10-02 11:33:48 -07:00
Ben Alpert
1959aaa1f9 Don't blow up in key warning for undefined type 2015-10-02 11:31:28 -07:00
Jim
a71a06077f Merge pull request #5019 from jimfb/renderer-blog-post
Blog post for react render and top level API
2015-10-02 10:42:48 -07:00
Jim
e25753fdf1 Merge pull request #5038 from chicoxyzzy/docs-notation-fixes
make properties notation consistent over docs
2015-10-01 19:01:37 -07:00
chico
89e28a3fbe make properties notation in docs consistent 2015-10-02 03:44:47 +03:00
Paul O’Shannessy
95c5491781 Merge pull request #5001 from claudiopro/master
[docs] Italian localization of documentation
2015-10-01 14:46:21 -07:00
claudiopro
a4ec19500a Translate documentation to Italian 2015-10-01 23:40:14 +02:00
Paul O’Shannessy
9aa4546410 Merge pull request #5034 from zpao/fbjs-0.3
Update to fbjs@0.3
2015-10-01 14:33:40 -07:00
Paul O’Shannessy
693dd3567b Update to fbjs@0.3
As far as we're concerned, the only difference is that we moved some files from React to fbjs.
2015-10-01 14:30:05 -07:00
Ben Alpert
2a51d1bf93 Merge pull request #5016 from spicyj/tu-stateless
Make scry* look through stateless components
2015-10-01 14:13:32 -07:00
Jim
c0f951665d Blog post for react render and top level API 2015-10-01 14:12:01 -07:00
Sebastian Markbåge
4fa3ce48e8 Merge pull request #5021 from sebmarkbage/prototypetag
isReactClass -> .prototype.isReactComponent
2015-10-01 14:05:13 -07:00
Ben Alpert
3606702245 Merge pull request #5026 from chicoxyzzy/clarify-events-doc
clarify that events work for elements not for components
2015-10-01 10:49:25 -07:00
Jim
b53df5446e Merge pull request #5029 from jabbrass/patch-1
[docs] Fix typo in videos.md
2015-10-01 10:38:39 -07:00
J. Andrew Brassington
32b8135f94 [docs] Fix typo in videos.md
Line 111: "integate" =>  "integrate".
Thanks to all core contribs for open sourcing such a great tool!
2015-10-01 09:38:02 -07:00
Jim
1c385c0484 Merge pull request #5025 from chicoxyzzy/fix-event-methods-notation
fix methods notation of SyntheticEvent in docs
2015-10-01 06:18:50 -07:00
chico
e6314641ce fix isDefaultPrevented() and isPropagationStopped() methods of SyntheticEvent notation 2015-10-01 14:06:30 +03:00
chico
38a3150f62 clarify that events work for elements not for components 2015-10-01 14:00:05 +03:00
Ben Alpert
3b28c72142 Add rudimentary jsc perf-counters runner
Works at least on a CentOS 7 machine after running `sudo yum install
webkitgtk webkitgtk-devel`.

The only globals you get are `print` and `PerfCounters`. No `console` nor the other globals provided by the `jsc` command-line tool (load, readFile, etc) though they're probably not hard to implement.

You can disable the JIT by setting the environment variable `JSC_useJIT=false`.

Test Plan:
```
~/local/react/scripts/perf-counters$ make
~/local/react/scripts/perf-counters$ build/jsc-perf <(echo 'PerfCounters.init(); var a = PerfCounters.getCounters().instructions; print("moo"); var b = PerfCounters.getCounters().instructions; print(b - a);')
moo
72182
~/local/react/scripts/perf-counters$
```
2015-09-30 23:36:06 -07:00
Jim
6dbdea15b2 Merge pull request #4964 from jimfb/stateless-functions-and-render-docs
Documentation for stateless functions/components, condensed two pages about refs into one
2015-09-30 20:59:29 -07:00
Jim
5ee8a93280 Added documentation for stateless components, condensed the two pages about refs into a single page. 2015-09-30 18:54:19 -07:00
Sebastian Markbage
83644185f4 isReactClass -> .prototype.isReactComponent
Put the flag on the prototype instead to help certain limited forms
of class extensions that doesn't properly transfer static properties.

Fixes #4836
2015-09-30 18:28:49 -07:00
Sebastian Markbåge
401e6f1058 Merge pull request #5020 from sebmarkbage/fixjestcli
Enforce NODE_ENV=test
2015-09-30 17:57:52 -07:00
Sebastian Markbage
41cba2e77b Enforce NODE_ENV=test
You could make the argument that this should be optional, but it doesn't
work without it so we might as well just enforce it.

Makes `jest` work by default.
2015-09-30 17:43:06 -07:00
Ben Alpert
29fbbe7263 Merge pull request #5017 from spicyj/gh-5005
Fix dev/prod mismatch in context === bailout
2015-09-30 17:05:25 -07:00
Ben Alpert
3ad5419ce5 Merge pull request #5018 from spicyj/ev-l-bool
Don't throw for onClick={false} in initial render
2015-09-30 17:05:20 -07:00
Ben Alpert
2b63601472 Don't throw for onClick={false} in initial render
I accidentally regressed this in #3246. Now this matches what we already checked for updates.
2015-09-30 16:53:47 -07:00
Ben Alpert
cf86cd8ebf Fix dev/prod mismatch in context === bailout
Fixes #5005.
2015-09-30 16:47:40 -07:00
Ben Alpert
7bd51659d6 Make scry* look through stateless components
Fixes #4882.
2015-09-30 16:00:21 -07:00
Paul O’Shannessy
249e0f7331 Merge pull request #5008 from james4388/patch-3
Add missing comma (,) between propTypes and render
2015-09-30 14:34:08 -07:00
Paul O’Shannessy
45b63c55a0 Merge pull request #4736 from yhagio/patch-1
Update 02-displaying-data.ja-JP.md
2015-09-30 14:22:53 -07:00
Paul O’Shannessy
cf0e6dfae7 Merge pull request #4980 from edvinerikson/add-window-document-note
Added a note about needing document globally available
2015-09-30 11:08:29 -07:00
Edvin Erikson
f9417a5da1 Added a note about needing document globally available
Added a note in ``10.4-test-utils.md` about needing window, document and
document.createElement globally available before importing React.
2015-09-30 14:28:57 +02:00
Trinh Hoang Nhu
3c56146a44 Add missing comma (,) between propTypes and render
Add missing comma (,) between `propTypes` and `render`
2015-09-30 03:48:51 -05:00
Ben Alpert
5a4b92d8c5 Merge pull request #5003 from spicyj/gh-4996
Improve warning for old element objects
2015-09-29 22:52:08 -07:00
Ben Alpert
35f731b012 Merge pull request #5002 from spicyj/check-no-warn-jest
Fail jest tests on any un-spied warnings
2015-09-29 22:51:47 -07:00
Ben Alpert
d561949711 Improve warning for old element objects
Fixes #4996.
2015-09-29 18:02:47 -07:00
Ben Alpert
b8c7b13042 Fail jest tests on any un-spied warnings
Originally #4223 -- we lost this when we switched to jest.
2015-09-29 17:35:39 -07:00
Andrey Popp
41640a7475 Update CommonJS example with build script 2015-09-29 12:55:01 +03:00
Ben Alpert
9a234e1d48 Merge pull request #4995 from gregrperkins/master
Rename TYPE_SYMBOL to REACT_ELEMENT_TYPE
2015-09-28 14:18:18 -07:00
Greg Perkins
c9320142ec Rename TYPE_SYMBOL to REACT_ELEMENT_TYPE
See D2454031 for context.
2015-09-28 14:11:40 -07:00
Ben Alpert
c512603a8c Merge pull request #4987 from spicyj/perf
Add unit test to ensure DOM mutations are instrumented
2015-09-28 11:48:18 -07:00
Paul O’Shannessy
1b5cd36f03 Merge pull request #4901 from zpao/npm-react-dom-dist
Build ReactDOM browser builds into react-dom/dist
2015-09-28 11:41:00 -07:00
Paul O’Shannessy
ed264b548b Merge pull request #4953 from zpao/test-utils-scry
Make ReactTestUtils.scryRenderedComponentWithClass find multiple classes
2015-09-28 10:31:21 -07:00
Paul O’Shannessy
e9c571acc6 Make ReactTestUtils.scryRenderedComponentWithClass find multiple classes 2015-09-28 10:06:54 -07:00
James Friend
107e3014ef Perform transaction around shallow render to run lifecycle methods 2015-09-28 22:48:15 +10:00
Ben Alpert
013bf16501 Merge pull request #4985 from mbrookes/patch-1
Correct the CSS example for 'appear' transition
2015-09-27 16:23:09 -07:00
Ben Alpert
7938650ca9 Make new perf unit test pass 2015-09-27 14:26:26 -07:00
Ben Alpert
47de0a8ce6 Add unit test to ensure DOM mutations are instrumented 2015-09-27 14:26:01 -07:00
Matt
208f20b787 Correct the CSS example for 'appear' transition
Move transition from `.example-appear` to `.example-appear.example-appear-active`
2015-09-27 17:33:16 +01:00
cpojer
2c973796e3 Add trailing commas to react-codemod output by default. 2015-09-26 22:58:45 +02:00
Paul O’Shannessy
ce8fed7592 Merge pull request #4893 from jw-00000/patch-1
Fix documentation of behavior of v0.12 and v0.13
2015-09-26 10:46:07 -07:00
JW
3b6697f177 Fix documentation of event propagation: 0.13 to 0.14 2015-09-26 12:31:48 +02:00
Vipul A M
1d4371a1d2 [docs] Replace JSXTransformer with babel/browser
Closes #4131
2015-09-25 20:13:19 -07:00
Paul O’Shannessy
d3d2504e72 Merge pull request #4846 from zpao/docs-use-babel
[docs] Remove references to react-tools, JSXTransformer, replace with Babel.
2015-09-25 20:06:47 -07:00
Paul O’Shannessy
105554fe5c [docs] Remove JSXTransformer, react-tools from downloads page 2015-09-25 17:58:07 -07:00
Paul O’Shannessy
bef8942cb7 [docs] Remove JSXTransformer from tutorial 2015-09-25 17:58:07 -07:00
Paul O’Shannessy
4d9c1d1126 [docs] Update script mimetypes: text/jsx -> text/babel 2015-09-25 17:56:42 -07:00
Paul O’Shannessy
097b32b7d2 [docs] Remove mentions of react-tools/jsx command 2015-09-25 17:56:42 -07:00
Paul O’Shannessy
411ed31cb1 [docs] Stop supporting our JSX compiler page
Link to Babel REPL directly instead.
2015-09-25 17:56:42 -07:00
Paul O’Shannessy
6ff4ba9512 Merge pull request #4978 from zpao/tutorial-server
[docs] Make the server required for the tutorial
2015-09-25 17:54:47 -07:00
Paul O’Shannessy
a440f40713 [docs] Make the server required for the tutorial 2015-09-25 17:52:45 -07:00
Bradley Spaulding
63cfcca74e Updated stateless ref warning message with more info 2015-09-25 16:21:59 -07:00
Ben Alpert
59466a0b52 Merge pull request #4977 from spicyj/gh-4870
Actually don't store <input> until mount-ready
2015-09-25 13:41:45 -07:00
Ben Alpert
6e62a010dd Actually don't store <input> until mount-ready
So #4976 was a lie. Fixes #4870 for real (thanks @STRML).
2015-09-25 13:39:05 -07:00
Ben Alpert
b82f3ab55d Merge pull request #4976 from spicyj/gh-4870
Don't store <input> instance until mount-ready
2015-09-25 13:30:01 -07:00
Ben Alpert
c04d10f033 Don't store <input> instance until mount-ready
Fixes #4870.

This more or less matches what we were doing with the old wrapper components (not storing until componentDidMount).
2015-09-25 13:20:40 -07:00
Ben Alpert
c05a6570ec Merge pull request #4975 from spicyj/gh-3285
Don't blow up on missing _store in element validation
2015-09-25 13:11:40 -07:00
Ben Alpert
e352475ddc Don't blow up on missing _store in element validation
Seems better to fail gracefully, especially now that we support inlining. If people do this by accident we can figure out how to add a helpful warning instead.

Fixes #3285.
2015-09-25 13:09:03 -07:00
Paul O’Shannessy
530b6332ed Merge pull request #4973 from zpao/lint-again
[lint] Update and fix
2015-09-25 13:05:38 -07:00
Paul O’Shannessy
7037ef9d8b [lint] Update and fix 2015-09-25 12:32:51 -07:00
Jim
4215002200 Merge pull request #4965 from iamchenxin/translate
[docs] Update zh-CN docs.
2015-09-25 11:34:05 -07:00
Jim
3936e3fddb Merge pull request #4967 from zhangjg/zhangjg-br
Translation  08.1-more-about-ref.md to Chinese
2015-09-25 11:33:36 -07:00
Sebastian Markbåge
8854a31e31 Merge pull request #4942 from darobin/rdfa-attributes
Add RDFa attributes not already covered (fixes #3459)
2015-09-25 09:32:40 -07:00
Fabio Costa
e65fe182e7 [react] making sure ReactDOMServer always uses ServerReactRootIndex, even on an environment that can use DOM 2015-09-24 19:59:39 -07:00
zhangjg
1dbde787d0 Published with https://stackedit.io/ 2015-09-25 09:34:37 +08:00
Paul O’Shannessy
707ffc74fd Merge pull request #4966 from zpao/examples-rm-server-rendering
[examples] Remove Server Rendering Example
2015-09-24 18:06:07 -07:00
iamchenxin
6094739757 [docs] Update zh-CN docs
Update
	09-tooling-integration.zh-CN.md
	10-addons.zh-CN.md
	10.1-animation.zh-CN.md
2015-09-25 06:55:34 +08:00
Paul O’Shannessy
c529e652bd [examples] Remove Server Rendering 2015-09-24 15:12:15 -07:00
Paul O’Shannessy
99b9ece565 Merge pull request #4914 from zpao/0.14-examples
Update examples for Babel, 0.14; remove 3rd party code
2015-09-24 15:11:40 -07:00
Paul O’Shannessy
3c0f46e3da [examples] Use refs instead of findDOMNode 2015-09-24 15:08:28 -07:00
Paul O’Shannessy
145ca279f9 [examples] Update basic-commonjs for new React, watchify 2015-09-24 15:08:28 -07:00
Paul O’Shannessy
f1ede3e6d2 [examples] Fix transtion example with timeout prop 2015-09-24 15:08:28 -07:00
Paul O’Shannessy
c475699d6b [examples] Use ReactDOM for appropriate APIs 2015-09-24 15:08:28 -07:00
Paul O’Shannessy
715dea085b [examples] Use Babel 2015-09-24 15:08:27 -07:00
Paul O’Shannessy
4d3d14af78 [exmaples] Remove local 3rd party code, use CDN (mostly) 2015-09-24 14:57:50 -07:00
Paul O’Shannessy
16608e3688 [examples] Assume es5 compatible browsers with console 2015-09-24 14:57:50 -07:00
Paul O’Shannessy
78b50485f6 Merge pull request #4853 from zpao/jsfiddle-babel
[docs] Add jsfiddle integration for Babel
2015-09-24 14:54:13 -07:00
iamchenxin
3fd7686d22 [docs] Update zh-CN docs.
add  08.1-more-about-refs.zh-CN.md
2015-09-25 03:11:58 +08:00
Bradley Spaulding
af79118148 attachRef to a stateless component warns instead of throwing #4939 2015-09-24 11:52:46 -07:00
Bradley Spaulding
8b4663d722 Renamed componentInstance to publicComponentInstance 2015-09-24 11:46:41 -07:00
Paul O’Shannessy
4b6e5d06cf Merge pull request #4961 from iamchenxin/en_docs
[docs] Fix syntac error
2015-09-24 09:48:34 -07:00
iamchenxin
82637eae45 Fix syntac error
Split {{ in example code to avoid an Exception in jekyll.
> Liquid Exception: Variable '{{' was not properly terminated with regexp: /\}\}/ in docs/10.1-animation.md
2015-09-24 23:46:22 +08:00
Jim
f988511b0a Merge pull request #4960 from iamchenxin/translate
[docs] Sync up zh-CN docs
2015-09-24 08:03:14 -07:00
iamchenxin
7a316ab034 [docs] Sync up zh-CN docs
Sync up with current en docs.
2015-09-24 22:48:20 +08:00
Paul O’Shannessy
1ce5ba4c56 Merge pull request #4956 from reggi/patch-1
doc: typo existant to existent
2015-09-24 01:35:28 -07:00
Thomas Reggi
648cb52b72 doc: typo existant to existent 2015-09-23 19:56:26 -04:00
Paul O’Shannessy
d12ec60dd5 Merge pull request #4658 from zpao/iojs
Upgrade to node@4, jest@0.5
2015-09-23 14:01:48 -07:00
Paul O’Shannessy
873e3a9816 Cleanup Jest preprocessor, use cache key 2015-09-23 13:46:41 -07:00
Paul O’Shannessy
8857e12c9e Use main document for getTestDocument
This should be fine in a jest environment, which is all we really care about now.
2015-09-23 13:46:41 -07:00
Paul O’Shannessy
2afc9a445f Upgrade to node@4, jest@0.5 2015-09-23 13:46:41 -07:00
Ben Alpert
ab03f34965 Merge pull request #4951 from spicyj/gh-4840
Improve traverseAllChildren object error message
2015-09-23 12:17:35 -07:00
Ben Alpert
1922db1711 Improve traverseAllChildren object error message
Fixes #4840.
2015-09-23 12:17:20 -07:00
Paul O’Shannessy
33e44f041b Merge pull request #4944 from zpao/rm-event-path
Remove SyntheticEvent.path
2015-09-23 10:03:19 -07:00
Ben Alpert
7398606ccf Merge pull request #4683 from JaeHunRo/master
temporarily fixes printWasted abnormality
2015-09-23 00:34:51 -07:00
Paul O’Shannessy
96b3ef54bf Merge pull request #4935 from saifelse/fix-firefox-dom-sel
Fix ReactDOMSelection to avoid erroring on Firefox's anonymous divs
2015-09-22 17:57:24 -07:00
JaeHunRo
6244a985c4 updates printWasted 2015-09-23 01:46:31 +01:00
Ben Alpert
b06be9bc2d Merge pull request #4946 from spicyj/nan
Improve error for style mutation
2015-09-22 16:34:05 -07:00
Ben Alpert
9faf1f3969 Improve error for style mutation
Fixes #4877. I opted not to change shallowEqual for this since it seems relatively one-off.
2015-09-22 16:29:40 -07:00
Ben Alpert
8c75e792ab Merge pull request #4945 from spicyj/nocatch-sim
Don't use magic browser event dispatching for simulated events
2015-09-22 15:41:00 -07:00
Ben Alpert
838b963f55 Merge pull request #4916 from spicyj/hwc
Add perf-counters npm module to scripts
2015-09-22 15:39:56 -07:00
Ben Alpert
57c516cb0e Don't use magic browser event dispatching for simulated events
When calling ReactTestUtils.Simulate, sometimes you want to test that an exception is thrown by the event handler. This lets you do that without relying on the fact that old jsdom doesn't implement `Event`.
2015-09-22 15:31:08 -07:00
Saif Hakim
0267cfbb8f Fix ReactDOMSelection to avoid erroring on Firefox's anonymous divs 2015-09-22 15:28:33 -07:00
Paul O’Shannessy
8a837cbd3f Remove SyntheticEvent.path 2015-09-22 15:12:19 -07:00
Ben Alpert
0f67febad7 Merge pull request #3069 from WickyNilliams/patch-1
document checkbox using click handlers for change events
2015-09-22 14:34:40 -07:00
Bradley Spaulding
650fa58ab9 Composite component throws on attaching ref to stateless component #4939 2015-09-22 14:28:38 -07:00
Robin Berjon
fd682b5cac add RDFa attributes not already covered 2015-09-22 16:58:48 -04:00
Paul O’Shannessy
06568114f3 Merge pull request #4931 from bspaulding/safe-taint-docs
Extracted "safe taint" in docs/homepage to align with best practice
2015-09-22 10:53:50 -07:00
Ben Alpert
c561324e7e Merge pull request #4903 from spicyj/event-unmounted
Just ignore events on unmounted components
2015-09-22 09:54:04 -07:00
Bradley Spaulding
52d8d3b2ff Extracted "safe taint" in docs/homepage to align with best practice #4212 2015-09-21 22:24:51 -07:00
Paul O’Shannessy
56ccd82374 Merge pull request #4921 from benjaffe/master
[docs] Clarify when autobinding does(n't) happens
2015-09-20 16:42:48 -07:00
Ben Jaffe
0203071251 Update 03-interactivity-and-dynamic-uis.md
This clarifies when autobinding does and does not happen. I spun my wheels on this for a while.

https://medium.com/@goatslacker/react-0-13-x-and-autobinding-b4906189425d
2015-09-20 09:38:50 -07:00
Glen Mailer
241533782c Expose component instance in shallow rendering
Fixes #4056
2015-09-20 15:16:51 +01:00
Ben Alpert
b3bccf2273 Add node bindings 2015-09-19 11:30:28 -07:00
Ben Alpert
e922f869e6 Make hardware-counter.cpp compile
`g++ -std=c++11 -lpthread src/hardware-counter.cpp
src/thread-local.cpp src/test.cpp` works and runs where `src/test.cpp` is:

```

int main() {
  bool enable = true;
  std::string events = "";
  bool recordSubprocesses = false;
  HPHP::HardwareCounter::Init(enable, events, recordSubprocesses);

  HPHP::HardwareCounter::s_counter.getCheck();

  int64_t start = HPHP::HardwareCounter::GetInstructionCount();
  volatile int x;
  for (int i = 0; i < 1000000; i++) {
    x += i;
  }
  int64_t end = HPHP::HardwareCounter::GetInstructionCount();

  printf("%d\n", end - start);
}
```
2015-09-19 11:00:27 -07:00
Ben Alpert
42e523ea4d Update license to match React repo license 2015-09-19 11:00:27 -07:00
Ben Alpert
cfbf115b26 Add hardware-counter.cpp and deps from HHVM 2015-09-18 22:10:10 -07:00
Paul O’Shannessy
ff542de59d Build ReactDOM browser builds into react-dom/dist 2015-09-18 14:02:31 -07:00
Ben Alpert
88cdc27618 Merge pull request #4904 from spicyj/npm-2
Don't install npm 3 on Travis
2015-09-17 21:23:41 -07:00
Ben Alpert
45f85a6cc5 Just ignore events on unmounted components
Fixes #4865 and also seems to fixes #3790.
2015-09-17 17:42:01 -07:00
Ben Alpert
41e4bfb41a Don't install npm 3 on Travis 2015-09-17 17:37:00 -07:00
Paul O’Shannessy
aac4219e80 Merge pull request #4899 from iamchenxin/master
Update zh-CN docs.
2015-09-17 12:22:04 -07:00
iamchenxin
2a5e6b3c91 Update zh-CN translation.
To keep up with en docs.
2015-09-18 02:31:11 +08:00
Paul O’Shannessy
e147c4942b [docs] Remove unused file 2015-09-16 14:09:52 -07:00
Paul O’Shannessy
d42254c40f Merge pull request #4891 from igncp/documentation-fix
Fix documentation errata
2015-09-16 13:48:09 -07:00
Ignacio Carbajo
e11631eea7 Fix documentation errata 2015-09-16 22:25:46 +02:00
Paul O’Shannessy
f9bbc06960 Merge pull request #4858 from zpao/eslint-1.4
Upgrade eslint to 1.4.1
2015-09-16 12:35:12 -07:00
Paul O’Shannessy
20f0b0f464 Upgrade eslint to 1.4.1 2015-09-16 12:16:46 -07:00
Paul O’Shannessy
0fb49fc4dc Merge pull request #4859 from zpao/stateless-arrow-functions
Support native arrow functions as stateless components
2015-09-16 12:02:38 -07:00
Paul O’Shannessy
e5c3fb14fa Support arrow functions as stateless components 2015-09-16 11:39:41 -07:00
Ben Alpert
2db38bf935 Merge pull request #4887 from spicyj/form-proptypes-dev
Check input and textarea propTypes only in DEV
2015-09-16 11:31:08 -07:00
Ben Alpert
b7bf1ccafe Don't build up mount-ready queue for server side rendering
This is a little faster when rendering iframe/img/form/video/audio on the server.
2015-09-15 21:47:30 -07:00
Ben Alpert
65370ff752 Check input and textarea propTypes only in DEV 2015-09-15 21:46:37 -07:00
Paul O’Shannessy
a48ffb04dc Merge pull request #4884 from moretti/patch-1
[docs] Fix syntax errors in Animation
2015-09-15 11:30:20 -07:00
Paolo Moretti
fb45ef3679 Fix syntax errors 2015-09-15 18:12:42 +01:00
Paul O’Shannessy
609f14eed4 Merge pull request #4874 from brigand/patch-6
Clarifies "Fetching from the server"
2015-09-14 20:42:54 -07:00
Frankie Bagnardi
584a7c5f1c Clarifies "Fetching from the server" 2015-09-14 20:21:52 -07:00
Paul O’Shannessy
0bb906ed8c Merge pull request #4829 from zpao/docs-jekyll-feed
[docs] Use a generator to assign complete author data before generating site
2015-09-14 20:18:27 -07:00
Paul O’Shannessy
b0bf35a361 [docs] Use a generator to assign complete author data before generating site
This makes sure that `post.author` will be the actual data we want and we don't have to assign it every time, potentially messing it up.
2015-09-14 19:55:01 -07:00
Paul O’Shannessy
e97da42b67 Merge pull request #4868 from AnSavvides/docs-readability
Make docs more consistent
2015-09-14 13:10:57 -07:00
Paul O’Shannessy
b53dfa6d27 Merge pull request #4869 from arush/patch-1
DOCS - typo in ref callback example
2015-09-14 11:42:08 -07:00
arush
29551f84b8 DOCS - typo in ref callback example
deleted extra ending curly brace in arrow function
2015-09-14 11:40:44 -07:00
Christoph Pojer
95eee11b66 Merge pull request #4866 from andrewsokolov/bug/--no-explicit-require-didnt-works
[react-codemod] --no* options automatically set to false
2015-09-14 11:05:19 -07:00
Andreas Savvides
e04602f8ee Use same type of markdown as everywhere else for Glossary 2015-09-14 18:55:34 +01:00
Andreas Savvides
3c5a91c3c3 Make it easier to create an issue 2015-09-14 18:45:29 +01:00
Andreas Savvides
c207ab2901 Make "Component Specs and Lifecycle" more readable 2015-09-14 18:43:16 +01:00
Andreas Savvides
f98112f24d Make "Component API" more readable 2015-09-14 18:23:00 +01:00
Steven Luscher
15b57b1658 Merge pull request #4845 from steveluscher/community-roundup-27-relay-edition
Community Roundup #27 – Relay Edition
2015-09-14 08:14:43 -07:00
andrewsokolov
0610fd93b4 --no* options automatically set to false 2015-09-14 17:30:25 +03:00
Steven Luscher
f30b0d1f1c Community Roundup #27 – Relay Edition 2015-09-13 21:26:34 -07:00
Paul O’Shannessy
0cc8af37c3 Merge pull request #4861 from zpao/symbol-test-node4
Better simulate Symbol-less environment
2015-09-13 13:55:26 -07:00
Paul O’Shannessy
d54fa9e563 Better simulate Symbol-less environment
This ensures that our tests expecting Symbol not to exist pass.
2015-09-13 13:15:26 -07:00
Jim
2fcf54939b Merge pull request #4855 from iamchenxin/master
Maintain why-react-zh-CN sync to the current why-react
2015-09-12 08:57:31 -07:00
iamchenxin
d92f4782ac Update translation for jsx-in-depth-zh-CN 2015-09-12 18:09:58 +08:00
iamchenxin
787b49ae78 Maintain why-react-zh-CN sync to the current why-react 2015-09-12 16:29:46 +08:00
Paul O’Shannessy
4a45ad38b3 [docs] Add jsfiddle integration for Babel 2015-09-11 11:19:23 -07:00
Paul O’Shannessy
ed11f83763 Merge pull request #4833 from youngminz/master
Update Korean translation
2015-09-10 16:25:58 -07:00
Paul O’Shannessy
c6ecda7503 Merge pull request #4802 from 8398a7/patch-1
Update Japanese translation to 75fafe1
2015-09-10 15:35:06 -07:00
839
852753c13a Update Japanese translation to 75fafe1 2015-09-10 15:33:34 -07:00
Mike Nordick
8da4efa899 Adding support for CSS3 Grid layout module.
grid-row and grid-column must be unitless numbers.
2015-09-10 15:56:11 -05:00
Ben Alpert
4b3b56f36a Add Babel version to blog post 2015-09-10 13:28:46 -07:00
Ben Alpert
04e5ee70cc Merge pull request #4797 from spicyj/rc14blog
0.14 RC blog post
2015-09-10 09:50:56 -07:00
Ben Alpert
5bf56134be 0.14 RC blog post 2015-09-10 09:21:56 -07:00
Ben Alpert
4a4174b9e8 0.14.0-rc1 2015-09-10 08:47:40 -07:00
Ben Alpert
21a1f7e6fd Don't copy JSXTransformer in grunt release 2015-09-10 08:47:40 -07:00
Paul O’Shannessy
31f25255b9 Stop building JSXTransformer
Pick of/closes #4148.
2015-09-10 08:45:04 -07:00
Koo Youngmin
2ae036123c Update Korean translation 2015-09-10 16:47:15 +09:00
Sebastian Markbåge
7a00239b1f Merge pull request #4832 from sebmarkbage/xssfix
Use a Symbol to tag every ReactElement
2015-09-09 23:19:33 -07:00
Sebastian Markbage
031fc24dae Use a Symbol to tag every ReactElement
Fixes #3473

I tag each React element with `$$typeof: Symbol.for('react.element')`. We need
this to be able to safely distinguish these from plain objects that might have
come from user provided JSON.

The idiomatic JavaScript way of tagging an object is for it to inherent some
prototype and then use `instanceof` to test for it.

However, this has limitations since it doesn't work with value types which
require `typeof` checks. They also don't work across realms. Which is why there
are alternative tag checks like `Array.isArray` or the `toStringTag`. Another
problem is that different instances of React that might have been created not knowing about eachother. npm tends to make this kind of problem occur a lot.

Additionally, it is our hope that ReactElement will one day be specified in
terms of a "Value Type" style record instead of a plain Object.

This Value Types proposal by @nikomatsakis is currently on hold but does satisfy all these requirements:

https://github.com/nikomatsakis/typed-objects-explainer/blob/master/valuetypes.md#the-typeof-operator

Additionally, there is already a system for coordinating tags across module
systems and even realms in ES6. Namely using `Symbol.for`.

Currently these objects are not able to transfer between Workers but there is
nothing preventing that from being possible in the future. You could imagine
even `Symbol.for` working across Worker boundaries. You could also build a
system that coordinates Symbols and Value Types from server to client or through
serialized forms. That's beyond the scope of React itself, and if it was built
it seems like it would belong with the `Symbol` system. A system could override
the `Symbol.for('react.element')` to return a plain yet
cryptographically random or unique number. That would allow ReactElements to
pass through JSON without risking the XSS issue.

The fallback solution is a plain well-known number. This makes it unsafe with
regard to the XSS issue described in #3473. We could have used a much more
convoluted solution to protect against JSON specifically but that would require
some kind of significant coordination, or change the check to do a
`typeof element.$$typeof === 'function'` check which would not make it unique to
React. It seems cleaner to just use a fixed number since the protection is just
a secondary layer anyway. I'm not sure if this is the right tradeoff.

In short, if you want the XSS protection, use a proper Symbol polyfill.

Finally, the reason for calling it `$$typeof` is to avoid confusion with `.type`
and the use case is to add a tag that the `typeof` operator would refer to.
I would use `@@typeof` but that seems to deopt in JSC. I also don't use
`__typeof` because this is more than a framework private. It should really be
part of the polyfilling layer.
2015-09-09 23:19:00 -07:00
Ben Alpert
a05691f0ad Merge pull request #4747 from spicyj/gh-1939
Don't crash in event handling when mixing React copies
2015-09-09 22:10:19 -07:00
Ben Alpert
dc2570e1ce Merge pull request #4825 from spicyj/gh-2770
Preserve DOM node when updating empty component
2015-09-09 22:09:34 -07:00
Ben Alpert
14ede77123 Merge pull request #4827 from spicyj/occured
occured -> occurred
2015-09-09 16:29:43 -07:00
Ben Alpert
0b857a473a occured -> occurred 2015-09-09 16:19:40 -07:00
Ben Alpert
db589a7175 Preserve DOM node when updating empty component
Fixes #2770.
2015-09-09 14:00:59 -07:00
Ben Alpert
999b0f9b3e Refactor empty component handling
Now doesn't use ReactCompositeComponent and `._currentElement` is actually null/false.
2015-09-09 14:00:58 -07:00
Ben Alpert
3dbdb63a7d Merge pull request #4823 from spicyj/gh-4776
Don't try to iterate over non-objects
2015-09-09 12:55:20 -07:00
Ben Alpert
35b7fe175d Merge pull request #4821 from spicyj/dom-dist
Add react-dom to dist/ in npm package
2015-09-09 12:02:47 -07:00
Paul O’Shannessy
12b6f3d03c Merge pull request #4824 from facebook/prefill-stack-overflow-tag
Pre-fill tag when asking a Stack Overflow question
2015-09-09 11:31:00 -07:00
Steven Luscher
9ca4dd6024 Pre-fill tag when asking a Stack Overflow question 2015-09-09 11:28:14 -07:00
Ben Alpert
b004bc5f22 Don't try to iterate over non-objects
Fixes #4776.
2015-09-09 09:03:05 -07:00
Ben Alpert
a87c8555fa Merge pull request #4719 from djrodgerspryor/fix_css_transition_group_child_props
Fix transitionName prop-type on CSS transition group child

Closes #4719.
2015-09-09 08:35:44 -07:00
Ben Alpert
324bec17e3 Fix up style in #4719 2015-09-09 08:35:04 -07:00
Ben Alpert
0cce198c28 Merge pull request #4796 from spicyj/lazy-node
Fetch DOM node lazily for updates
2015-09-09 08:29:56 -07:00
Ben Alpert
cdd8096974 Add react-dom to dist/ in npm package 2015-09-09 07:58:28 -07:00
Daniel Rodgers-Pryor
91555f6f9e Fix name prop-type on CSS transition group child
And share it with the parent. There's now a test for varying class names by transition-type.
2015-09-09 23:21:15 +10:00
Paul O’Shannessy
6eda65209a Merge pull request #4818 from gdi2290/patch-1
Fix typo combatibility => compatibility
2015-09-09 00:52:19 -07:00
PatrickJS
ab0c84f53f Fix typo combatibility => compatibility 2015-09-09 00:47:01 -07:00
Paul O’Shannessy
77703dbb80 Merge pull request #4724 from AnSavvides/test-util-readability
Make definitions more readable & optional params more obvious
2015-09-09 00:02:18 -07:00
Paul O’Shannessy
011c2a2e07 Merge pull request #4793 from edvinerikson/document-svg-attributes
[docs] Updated SVG attributes
2015-09-08 23:24:54 -07:00
Paul O’Shannessy
2f1b08347c Fix lint warning in react-dom codemod 2015-09-08 23:06:25 -07:00
Paul O’Shannessy
b5b74c5f22 Fix travis cURL call 2015-09-08 22:56:59 -07:00
Paul O’Shannessy
69ab7145bc Merge pull request #4814 from zpao/build-react-dom-browser-2
Build react dom browser 2
2015-09-08 22:33:08 -07:00
Paul O’Shannessy
3e672017a7 Upload new build files to build server 2015-09-08 22:18:45 -07:00
Paul O’Shannessy
353a01cf5e Add react-dom to bower when releasing 2015-09-08 22:18:44 -07:00
Paul O’Shannessy
b2ca3349c2 Actually build react-dom file with the build 2015-09-08 22:18:44 -07:00
Paul O’Shannessy
135c554b23 Move headers to shared location, use grunt templates 2015-09-08 22:00:05 -07:00
Ben Alpert
e7ce46ff28 Don't crash in event handling when mixing React copies
Should fix #1939.

Test Plan:
With two copies of React, render a div using React1 and use that as a container to render a div with React2. Add onMouseEnter/onMouseLeave to both divs that log. Mouse around and see correct logs (as if each React was isolated), no errors.
2015-09-08 17:40:20 -07:00
Paul O’Shannessy
c0270a1673 Merge pull request #4798 from zpao/pull-out-version
Move version to standalone module in preparation for reuse
2015-09-08 16:30:05 -07:00
Ben Alpert
27996377e0 Fetch DOM node lazily for updates
Previously, we fetched the node once for every changed attribute. In my createElement diff, I changed it to fetch the node (once) regardless of if there were changes -- fetching it once only if there are changes is even better.
2015-09-08 14:53:41 -07:00
Paul O’Shannessy
58d62989bd Move version to standalone module in preparation for reuse 2015-09-08 10:18:41 -07:00
Ben Alpert
b01af40ae6 Merge pull request #4663 from spicyj/isreactclass
Require instantiable components to extend React.Component
2015-09-08 10:01:15 -07:00
Ben Alpert
f3b7749c37 Require instantiable components to extend React.Component 2015-09-08 10:01:13 -07:00
Paul O’Shannessy
2fa59aa2d2 Merge pull request #4787 from Simek/patch-5
simplify valid attribute regex in DOMPropertyOperations
2015-09-04 17:42:32 -07:00
Ben Alpert
be36dbd88d Merge pull request #4786 from jontewks/master
Resolve eslint error
2015-09-04 17:35:02 -07:00
Jon Tewksbury
87963c4d01 Resolve eslint error 2015-09-04 17:31:12 -07:00
Ben Alpert
4fb7df1733 Merge pull request #4767 from spicyj/com
Add react-to-react-dom codemod
2015-09-04 13:55:04 -07:00
Edvin Erikson
a3b0b7ca25 [docs] Updated SVG attributes
Added all properties listed in the SVGDOMPropertyConfig.js file to the SVG attributes
section in the docs.
2015-09-04 18:26:47 +02:00
Jim
48942b85ea Merge pull request #4788 from jontewks/html-attribute-docs
Update docs to match standard HTML attribute support
2015-09-04 03:04:58 -07:00
Jon Tewksbury
f445dd91b0 Update docs to match standard HTML attribute support 2015-09-03 22:59:29 -07:00
Bartosz Kaszubowski
f99c83ba06 simplify valid attribute regex in DOMPropertyOperations 2015-09-04 07:41:19 +02:00
cpojer
cfe0351b8f Do not codemod classes with invalid fields, fixes #4628 2015-09-03 17:04:19 -07:00
Ben Alpert
10ab0c8915 Merge pull request #2065 from crm416/container-warnings
Warn when passing invalid containers to render and unmountComponentAtNode
2015-09-03 17:00:55 -07:00
Ben Alpert
9d93693b2e Update wording and style for #2065 2015-09-03 17:00:16 -07:00
Charles Marsh
270a805369 Warn when passing invalid containers to render and unmountComponentAtNode 2015-09-03 17:00:11 -07:00
Ben Alpert
4139b2e223 Merge pull request #3942 from spicyj/el-plain-obj
Make ReactElement really a plain object and freeze it
2015-09-03 15:02:56 -07:00
Ben Alpert
750338ef47 Make ReactElement really a plain object
This should guarantee that the hidden class is the same after inlining.
2015-09-03 14:58:52 -07:00
Ben Alpert
189f42f56a Merge pull request #4781 from jontewks/master
Add console message to get devtools for firefox
2015-09-03 14:26:37 -07:00
Jon Tewksbury
a4bd998edc Update console messages regarding devtools 2015-09-03 14:16:26 -07:00
Paul O’Shannessy
341f26a662 Add insert_final_newline to editorconfig 2015-09-03 13:43:42 -07:00
Paul O’Shannessy
ea8e06283c Merge pull request #4780 from matchu/patch-1
avoid the phrase "key property"
2015-09-03 12:50:36 -07:00
matchu
6541903bc4 avoid the phrase "key property"
React components can be assigned a special property named `key`. Therefore, it's helpful to avoid the phrase "key property" unless you're talking about the `key` property :)

I'm not sold on the replacement phrase, though... I think it's solid, but two fancy words like "fundamental" and "invariant" next to each other just seem a bit unwelcoming xP then again, we're talking about some heavy technical stuff; if there aren't any lighter words that are equally precise, then these should probably stand.
2015-09-03 12:03:15 -07:00
Ben Alpert
566dba25ef Merge pull request #4773 from spicyj/new-dt-blog
New devtools blog post
2015-09-02 15:15:27 -07:00
Ben Alpert
f5bd8fc0ad New devtools blog post 2015-09-02 12:34:10 -07:00
Ben Alpert
fb7e566b12 Add react-to-react-dom codemod
I ran it over Facebook so it probably works.
2015-09-01 17:44:27 -07:00
Ben Alpert
697c09a26e Merge pull request #4759 from spicyj/devprod
Fix diverging behavior of ReactFragment in `__DEV__`
2015-09-01 17:35:14 -07:00
Ben Alpert
4b9c349fd0 Merge pull request #4702 from spicyj/react-mod-depr
Add deprecation warnings to React module
2015-09-01 14:40:48 -07:00
Ben Alpert
4d29125d39 Merge pull request #4764 from spicyj/pre-commit
Remove leftover env variable logic in pre-commit hook
2015-09-01 14:39:53 -07:00
Ben Alpert
c04d02e5e8 Add warnings to React module 2015-09-01 14:36:41 -07:00
Ben Alpert
c74977c091 Remove leftover env variable logic in pre-commit hook 2015-09-01 14:35:47 -07:00
Ben Alpert
b1e16b9d7e React -> ReactDOM in test files 2015-09-01 14:34:37 -07:00
Ben Alpert
d9d8aae33e Merge pull request #4763 from spicyj/pre-commit
Add linting pre-commit hook
2015-09-01 14:33:49 -07:00
Ben Alpert
31cb102650 Merge pull request #4762 from spicyj/ts
Make TypeScript test work with ReactDOM
2015-09-01 14:30:56 -07:00
Ben Alpert
25fec05ab4 Add linting pre-commit hook
Anyone who wants it will have to do

```
ln -s scripts/git/pre-commit .git/hooks/pre-commit
```

or similar.
2015-09-01 14:29:52 -07:00
Ben Alpert
589c8364b0 Make TypeScript test work with ReactDOM 2015-09-01 14:28:12 -07:00
Ben Alpert
7e5ce19a94 Fix diverging behavior of ReactFragment in __DEV__
We could also remove the return statements but this is not a hot path and this seems safer.
2015-09-01 13:27:17 -07:00
Paul O’Shannessy
9400b34363 Merge pull request #4746 from zpao/use-fbjs-lint
Use eslintrc from fbjs
2015-08-31 23:21:29 -07:00
Paul O’Shannessy
7645c07720 Use eslintrc from fbjs 2015-08-31 23:05:04 -07:00
Ben Alpert
2d63dfd73c Merge pull request #4755 from MichelleTodd/react-warnings-0.14
Update warning messages to use ReactDOM and ReactDOMServer as appropriate
2015-08-31 23:03:10 -07:00
Michelle Todd
719fe15b9e Update warning messages to use ReactDOM and ReactDOMServer as appropriate
Fixes #4710.

- `React.findDOMNode` => `ReactDOM.findDOMNode`
- `React.render` => `ReactDOM.render` or "top-level render" (depends on whether we're in DOM-specific usage or generic cases)
- `React.renderToString` => `ReactDOMServer.renderToString`
- `React.renderToStaticMarkup` => `ReactDOMServer.renderToStaticMarkup`
2015-08-31 22:55:27 -07:00
Paul O’Shannessy
f118e5ebe7 Merge pull request #4750 from zpao/fbjs-0.2
Upgrade to fbjs, fbjs-scripts @ 0.2
2015-08-31 22:47:02 -07:00
Ben Alpert
487cc586f7 Merge pull request #4731 from spicyj/map-one-pass
Make React.Children.map do one pass only
2015-08-31 18:52:51 -07:00
Ben Alpert
6013105a9c Make React.Children.map do one pass only
Changed: createFragment no longer includes nulls in its output (since toArray doesn't and they share code).

Changed: React.Children.map no longer warns for clashing keys; traverseAllChildren will later when rendering.

Also change the generated key format around to accomodate. My keys are probably not bulletproof but should definitely be safe against accidental collisions.
2015-08-31 18:47:09 -07:00
Paul O’Shannessy
52b4c9eabf Upgrade to fbjs, fbjs-scripts @ 0.2 2015-08-31 17:19:42 -07:00
Ben Alpert
dc4f011f57 Merge pull request #4735 from spicyj/shallow-error
Better error for invalid element when shallow rendering
2015-08-31 13:30:56 -07:00
Ben Alpert
0e2bf2fe75 Merge pull request #4744 from spicyj/gh-4635-f
Fix code style/grammar on synthetic event warning
2015-08-31 13:06:46 -07:00
Paul O’Shannessy
dc23faf64d Merge pull request #4739 from henrik/patch-1
docs: "also lets pass" -> "also lets you pass"
2015-08-31 11:44:29 -07:00
Ben Alpert
42602a8922 Fix code style/grammar on synthetic event warning 2015-08-31 11:32:12 -07:00
Jim
0ff65cc892 Merge pull request #4635 from edvinerikson/event-pooling-warning
Added warning when calling methods on a released event.
2015-08-31 10:49:01 -07:00
Henrik Nyh
01151c1dea docs: "also lets pass" -> "also lets you pass" 2015-08-30 10:19:34 +02:00
Ben Alpert
f641f29db0 Merge pull request #4737 from oliviertassinari/patch-1
[adler32] fix wrong name
2015-08-29 11:18:18 -07:00
Olivier Tassinari
0304051591 [adler32] fix wrong name 2015-08-29 19:07:36 +01:00
Yuichi Hagio
d724393f0e Update 02-displaying-data.ja-JP.md
1. Fixed a spelling mistake to be more readable.
2. Removed the English lines that were already translated below.
2015-08-29 14:02:06 -04:00
Ben Alpert
f4d7feb8be Better error for invalid element when shallow rendering
Fixes #4721, fixes #4730.
2015-08-28 18:21:30 -07:00
Ben Alpert
a7230de902 Merge pull request #4727 from spicyj/gh-4233
Make findDOMNode error clearer
2015-08-28 12:52:18 -07:00
Paul O’Shannessy
e53cee9af6 Merge pull request #4734 from zpao/reverse-logic
Reverse condition of a ternary for readability
2015-08-28 11:39:48 -07:00
Paul O’Shannessy
2e5b047f04 Reverse condition of a ternary for readability 2015-08-28 11:34:50 -07:00
Ben Alpert
024f71535c Merge pull request #4720 from spicyj/destructor
Add destructors to pooled classes in ReactChildren
2015-08-27 19:06:11 -07:00
Ben Alpert
16d8f20576 Add destructors to pooled classes in ReactChildren
And make destructors mandatory so we're less likely to forget again.
2015-08-27 19:05:56 -07:00
Paul O’Shannessy
bdc7ce9f01 Merge pull request #4482 from niole/issue4168
Add additional contextual information to invalid-style-prop warning
2015-08-27 18:13:29 -07:00
Niole Nelson
70c07c67b7 resolves issue #4168, style prop error now names React class that erroring element is a child of. 2015-08-27 18:10:51 -07:00
Ben Alpert
8b967052d8 Merge pull request #4732 from spicyj/eslint-undef
Enable no-undef for eslint
2015-08-27 18:07:51 -07:00
Ben Alpert
75873707f9 Enable no-undef for eslint 2015-08-27 18:03:14 -07:00
Andreas Savvides
807c62851c Make definitions more readable & optional params more obvious 2015-08-27 16:32:07 +01:00
Ben Alpert
72d5b8f116 Merge pull request #4700 from spicyj/frag-array
Make createFragment return an array, disallow objects as children
2015-08-26 11:12:06 -07:00
Ben Alpert
127917d454 Merge pull request #4701 from spicyj/gh-4525
Add deprecation notice for React.addons.batchedUpdates
2015-08-25 11:40:33 -07:00
Ben Alpert
d4f38933f2 Merge pull request #4703 from spicyj/rarr
Clarify use of arrow functions
2015-08-25 11:38:13 -07:00
Ben Alpert
66881ae083 Fix formatting in test utils docs 2015-08-25 09:47:38 -07:00
Edvin Erikson
34af8f8597 Added warning when calling methods on a released event. 2015-08-25 14:45:56 +02:00
Ben Alpert
d15938cd92 Clarify use of arrow functions
Per 1db20999f0 (commitcomment-12865588).
2015-08-24 17:21:10 -07:00
Ben Alpert
e64b402df9 Add deprecation notice for React.addons.batchedUpdates
Fixes #4525.
2015-08-24 16:20:56 -07:00
Ben Alpert
6a2cdd58a4 Make findDOMNode error clearer
Fixes #4233.
2015-08-24 16:15:44 -07:00
Ben Alpert
6abf025d46 Make createFragment return an array, disallow objects as children 2015-08-24 16:09:08 -07:00
Paul O’Shannessy
10c8166043 Merge pull request #4682 from lyip1992/patch-2
Update Gruntfile.js
2015-08-22 16:11:04 -07:00
Paul O’Shannessy
27e5a563db Merge pull request #4684 from lyip1992/patch-3
Update 10.1-animation.md
2015-08-22 16:10:05 -07:00
Paul O’Shannessy
d5e5261e38 Merge pull request #4686 from lyip1992/patch-5
Update 06-transferring-props.md
2015-08-22 16:09:02 -07:00
Paul O’Shannessy
7dbcff2df4 Merge pull request #4687 from lyip1992/patch-6
Update 04-multiple-components.md
2015-08-22 16:08:27 -07:00
Paul O’Shannessy
cca1065183 Merge pull request #4688 from lyip1992/patch-7
Update 02.3-jsx-gotchas.md
2015-08-22 16:08:02 -07:00
Paul O’Shannessy
adfbc64d4b Merge pull request #4685 from lyip1992/patch-4
Update 08.1-more-about-refs.md
2015-08-22 16:07:20 -07:00
Leon Yip
71454365f2 Update 02.3-jsx-gotchas.md
Fix typo.
2015-08-22 00:57:51 -07:00
Leon Yip
2f4ea60571 Update 04-multiple-components.md
Added an extra word to make the sentence read a little easier.
2015-08-22 00:56:23 -07:00
Leon Yip
f8fe717ea2 Update 06-transferring-props.md
"This ensures that" sounds a better than "That ensures that." This change is just my personal opinion, so I totally understand my change doesn't get merged.
2015-08-22 00:51:38 -07:00
Leon Yip
3849710d8b Update 08.1-more-about-refs.md
Change render to `render()` for consistency within the paragraph.
2015-08-22 00:46:18 -07:00
Leon Yip
c0e21d1b85 Update 10.1-animation.md
Changed "if" to "even when" for clarity.
2015-08-22 00:42:25 -07:00
Leon Yip
e99e8b66b2 Update Gruntfile.js
Added punctuation to make the comment consistent with other comments.
2015-08-21 18:06:55 -07:00
Paul O’Shannessy
6508b1ad27 Merge pull request #4678 from ning-github/patch-1
Remove redundancy regarding 'latest React news'
2015-08-21 17:48:57 -07:00
Ning Xia
b629289cea Fix repetition by editing second sentence
edited based on paul's input
2015-08-21 16:33:20 -07:00
Jim
b36ee449cb Merge pull request #4679 from ning-github/patch-2
Fix typo
2015-08-21 13:28:33 -07:00
Ning Xia
3232a59743 Fix typo
Can not should be a single word: 'cannot'
2015-08-21 13:26:58 -07:00
Ning Xia
5ba1831d76 Remove redundancy regarding 'latest React news'
Previously, it repeated 'latest React news' when the first sentence already begins with the same words.
2015-08-21 13:00:24 -07:00
Ben Alpert
80b7391d64 Merge pull request #2081 from rexxars/search-input-attributes
Allow `results` and `autosave` attributes (WebKit/Blink)
2015-08-21 09:27:06 -07:00
Espen Hovlandsdal
75805e4835 Allow results and autosave attributes (WebKit/Blink) 2015-08-21 10:10:32 +02:00
Paul O’Shannessy
b38509cade Merge pull request #4540 from scottburch/ie8-fix
removed dangling comma that messes up loading in IE8
2015-08-20 14:37:20 -07:00
Paul O’Shannessy
0f963bb478 Merge pull request #4654 from zpao/checkversionsoninstall
Check for compatible node,npm versions on install
2015-08-20 14:36:09 -07:00
Ben Alpert
61962c1751 Capitalize Babel 2015-08-20 13:34:04 -07:00
Ben Alpert
cd268fdfcd Merge pull request #4546 from rgbkrk/patch-1
Update tooling docs to suggest babel
2015-08-20 13:16:11 -07:00
Kyle Kelley
009902bcd0 Update tooling docs to suggest babel
`react-tools` is deprecated, `babel` is our future

* https://facebook.github.io/react/blog/2015/06/12/deprecating-jstransform-and-react-tools.html
* https://babeljs.io/docs/usage/jsx/
2015-08-20 14:24:20 -05:00
Ben Alpert
5fa72c2659 Merge pull request #4666 from spicyj/prod
Add a simple production-mode sanity check test
2015-08-20 11:03:09 -07:00
Ben Alpert
102fafce7f Add a simple production-mode sanity check test 2015-08-19 22:26:42 -07:00
Ben Alpert
ea827eb39d Merge pull request #4561 from djrodgerspryor/css_transition_group_robust_cleanup
Robust animation-end handling in ReactCSSTransitionGroup
2015-08-19 19:15:51 -07:00
Daniel Rodgers-Pryor
6bd6ef208b ReactCSSTransitionGroup timeouts
As discussed in issue 1326
(https://github.com/facebook/react/issues/1326) transitionend events are
unreliable; they may not fire because the element is no longer painted,
the browser tab is no longer focused or for a range of other reasons.
This is particularly harmful during leave transitions since the leaving
element will be permanently stuck in the DOM (and possibly visible).

The ReactCSSTransitionGroup now requires timeouts to be passed in
explicitly for each type of animation. Omitting the timeout duration
for a transition now triggers a PropTypes warning with a link to the
updated documentation.
2015-08-20 11:38:27 +10:00
Ben Alpert
b88592a354 Merge pull request #4665 from spicyj/gh-2407
Ensure IE8 style expansion list is up to date
2015-08-19 17:38:32 -07:00
Ben Alpert
b126926390 Ensure IE8 style expansion list is up to date
In conjunction with #1953, fixes #2407. This seems to be all of the shorthand style properties that IE8 supports, excluding a few nonstandard ones.
2015-08-19 17:22:37 -07:00
Andreas Svensson
f4f22a0baa Apply CSS shorthand expansion to IE8 only
Closes #1953.
2015-08-19 17:17:51 -07:00
Ben Alpert
3de7a281de Merge pull request #4664 from spicyj/ref-docs
Spruce up refs docs
2015-08-19 16:34:44 -07:00
Ben Alpert
1db20999f0 Spruce up refs docs
Fixes #4651.
2015-08-19 16:14:35 -07:00
Ben Alpert
2f96d70087 Merge pull request #4660 from TylerBrock/patch-2
Clarify invocation order of componentDidMount
2015-08-19 11:13:24 -07:00
Paul O’Shannessy
17d5440751 Merge pull request #4567 from koba04/fix-set-boolean-properties
Fixed consistency of behavior boolean properties
2015-08-19 10:20:49 -07:00
Tyler Brock
1e10bb5923 Clarify invocation order of componentDidMount
OP is delivering on promise made here: https://discuss.reactjs.org/t/how-do-you-invoke-the-render-callback-in-jsx/1744
2015-08-19 10:04:34 -07:00
Paul O’Shannessy
50adfeb421 Merge pull request #4657 from zpao/abcorderevents
Re-sort some constants
2015-08-19 09:26:02 -07:00
Paul O’Shannessy
ec9b866bc0 Check for compatible node,npm versions on install
This is only for building React and doesnn't apply to production installs.
2015-08-18 23:45:12 -07:00
Paul O’Shannessy
eb056fcf5d Re-sort some constants 2015-08-18 22:33:51 -07:00
Ben Alpert
9c98a5998a Merge pull request #4656 from spicyj/jest-fast
hax to make jest fast
2015-08-18 21:45:42 -07:00
Ben Alpert
a8b6c8292b hax to make jest fast
Turns out jest is _incredibly_ slow at resolving require paths like `require('fbjs/lib/foo')`. Like several milliseconds per require. Really adds up when all our files require `invariant` and `warning`. Here's a temporary hack to make things fast again.

Test Plan:
```
npm test src/renderers/shared/reconciler/__tests__/ReactCompositeComponent-test.js
```

has a self-proclaimed runtime of ~8 seconds now instead of ~35 seconds.
2015-08-18 21:40:58 -07:00
Jim
2a82689e6e Merge pull request #4655 from levibuzolic/patch-1
Update Advanced Performance code examples so they would output values
2015-08-18 20:57:34 -07:00
Levi Buzolic
009f766d6e Update Advanced Performance code examples so they would output values
Noticed the code examples in *Advanced Performance* wouldn't be rendering the example props, this could lead to some minor confusion for new users.
2015-08-19 13:50:43 +10:00
Sebastian Markbåge
4a92860b00 Merge pull request #4089 from sebmarkbage/killowner
Don't use owner to determine if the auto-bailout should be used
2015-08-18 18:09:01 -07:00
Ben Alpert
81b4f7295d Merge pull request #4611 from spicyj/create-element
Use createElement instead of HTML generation
2015-08-18 18:04:54 -07:00
Ben Alpert
cfd6f7a1b8 Use createElement instead of HTML generation
Behind a feature flag. This is a relatively simple change; adopting this strategy universally would mean that we could clean up a lot of code but this doesn't attempt to restructure more than necessary.
2015-08-18 17:44:20 -07:00
Sebastian Markbage
9315517dec Don't use owner to determine if the auto-bailout should be used
I didn't realize that we actually special cased this. This is an
unfortunate heuristic but it helps minimize the harm that this optimization
does.
2015-08-18 17:33:13 -07:00
Ben Alpert
5375b503e9 Merge pull request #4652 from spicyj/no-isre
Remove _isReactElement
2015-08-18 16:41:45 -07:00
Ben Alpert
6663fb3135 Remove _isReactElement
As of this commit, we still support objects as maps so if anyone has an object with keys 'type' and 'props' this will change behavior, but otherwise this should be pretty safe.
2015-08-18 12:55:34 -07:00
Paul O’Shannessy
b4ee5b5bf1 Merge pull request #4451 from dmatteo/TestUtils.Simulate-docs
improve ReactTestUtils.Simulate documentation
2015-08-17 14:51:05 -07:00
Jim
d984b687ec Merge pull request #4634 from edvinerikson/event-pooling
Added documentation about pooled events
2015-08-17 14:33:33 -07:00
Jim
87530049f8 Merge pull request #4481 from dmatteo/Simulate.change-tests
add tests for React.addons.TestUtils.Simulate.change
2015-08-17 11:23:12 -07:00
Paul O’Shannessy
cac9c88978 Merge pull request #4641 from mik01aj/master
Updated the Performance tools doc page.
2015-08-17 11:01:10 -07:00
Paul O’Shannessy
b5a9cfc8b0 Merge pull request #4643 from yasaricli/master
Examples jquery-mobile thirdparty files move
2015-08-17 09:48:07 -07:00
Yasar icli
0c0119b70d examples jquery-mobile thirdparty files move 2015-08-17 13:43:33 +03:00
Mikolaj Dadela
75fafe1c0b Updated the Performance tools doc page.
Now it’s possible to read the page from top to the bottom without
asking oneself “Ok, but how do I get these measurements?”
2015-08-17 11:18:04 +02:00
Edvin Erikson
6793a7197e Updated event pooling note in docs 2015-08-15 21:47:59 +02:00
Edvin Erikson
1e3c3e1b6b Added documentation about pooled events 2015-08-15 17:03:21 +02:00
Paul O’Shannessy
56527cda64 Merge pull request #4631 from Simek/tiny-code-tweak-reactMultiChild
tiny code tweak in ReactMultiChild
2015-08-14 16:44:49 -07:00
Paul O’Shannessy
9257fbbadc Merge pull request #4632 from Simek/react-codemod-lint-fix
react-codemod lint fix
2015-08-14 16:43:44 -07:00
Bartosz Kaszubowski
f53b960741 react-codemod-lint-fix 2015-08-15 01:36:44 +02:00
Bartosz Kaszubowski
1ca77c6ae6 tiny code tweak in ReactMultiChild 2015-08-15 01:25:09 +02:00
Paul O’Shannessy
b4b028dec0 Merge pull request #4622 from jorrit/instanceofreporttype
Report the actual type when PropTypes.instanceOf fails
2015-08-14 11:05:57 -07:00
cpojer
989caa870d Support export default in the class codemod. 2015-08-14 10:27:31 -07:00
Merrick Christensen
5395c815de fix(es6-import-export): initial commit actually applying 2015-08-14 10:27:31 -07:00
Jorrit Schippers
cf6222dd71 Report the actual type when PropTypes.instanceOf fails 2015-08-14 17:46:24 +02:00
Jim
534e277c10 Merge pull request #4627 from tako-black/translate_top-level-api_to_japanese
Translate ref-01-top-level-api.md to Japanese
2015-08-14 05:14:53 -07:00
Kohei TAKATA
ae38ea9275 Translate ref-01-top-level-api.md to Japanese 2015-08-14 19:16:59 +09:00
Paul O’Shannessy
6708059b51 Merge pull request #4607 from hekar/add/html-table-summary-attr
Added support for more HTML attributes: `summary`
2015-08-13 21:28:50 -07:00
Hekar Khani
be1fc794f0 Added support for more HTML attributes: summary
This attribute is used on <table> to support screen readers.
It is deprecated, so take a look at <caption> instead.
2015-08-13 22:41:37 -05:00
Matthew Johnston
0b07fed32c ReactEurope roundup blog post 2015-08-13 17:14:17 -07:00
Ben Alpert
4d614cfc87 Merge pull request #4624 from Torwori/null-check-fix
Swap places of mounted and pending update checks
2015-08-13 14:48:56 -07:00
Paul O’Shannessy
6c84a57a2d Merge pull request #4610 from lili21/fix-component-api-doc
update component api docs
2015-08-13 13:08:28 -07:00
Paul O’Shannessy
6a9c789076 Merge pull request #4626 from yoshuki/fix-markdown-conversion
Fix Markdown conversion with marked
2015-08-13 13:02:32 -07:00
MIKAMI Yoshiyuki
47ce8ecacb Fix Markdown conversion with marked 2015-08-14 01:07:19 +09:00
Igor Scekic
0e834fabca swap places of mounted and pending update checks
prevents a type error if the component isn't mounted
2015-08-13 16:34:47 +02:00
Jim
d8998354ee Merge pull request #4623 from tako-black/translate_introduction_to_japanese
Translate 01-introduction.md to Japanese
2015-08-13 07:25:36 -07:00
Kohei TAKATA
edca54fb93 Translate 01-introduction.md to Japanese 2015-08-13 21:27:00 +09:00
li.li
f027ca8ca0 update component api docs 2015-08-13 15:34:21 +08:00
Paul O’Shannessy
530a30c1d5 Fix grammar in Relay blog post
Brings in #4617 properly
2015-08-12 12:09:24 -07:00
Paul O’Shannessy
1b7d6c381f Merge pull request #4619 from jaredly/beta-2
update devtools post to note beta 2
2015-08-12 11:53:25 -07:00
Jared Forsyth
3ed9581adb update devtools post to note beta 2 2015-08-12 11:29:41 -07:00
Jim
d7b59de1c3 Merge pull request #4613 from tako-black/translate_advanced-performance_to_japanese
Translate 11-advanced-performance.md to Japanese
2015-08-12 07:39:03 -07:00
Kohei TAKATA
239eb0fc23 Translate 11-advanced-performance.md to Japanese 2015-08-12 19:40:30 +09:00
Sebastian Markbåge
d3f338ff27 Fix typecheck 2015-08-12 00:32:52 -07:00
Ben Alpert
cb2f4de4ca Merge pull request #4609 from spicyj/warn-r2
Remove accidental .only
2015-08-11 18:20:05 -07:00
Ben Alpert
a54d321765 Remove accidental .only 2015-08-11 18:19:42 -07:00
Ben Alpert
dc5a5adfaf Merge pull request #4477 from mridgway/autobind-opt-out
Allow classes created with React.createClass to opt out of autobinding
2015-08-11 18:03:41 -07:00
Ben Alpert
655b82fb7b Merge pull request #3332 from spicyj/warn-r2
Warn with two copies of React
2015-08-11 17:17:53 -07:00
Ben Alpert
d002abf0e7 Warn with two copies of React 2015-08-11 17:15:02 -07:00
Jim
079a6b0092 Merge pull request #4470 from jimfb/ref-error-means-multiple-react
Added note about multiple Reacts, since this error commonly implies that.
2015-08-11 16:24:01 -07:00
Ben Alpert
6160216b22 Merge pull request #3650 from spicyj/toarray
Add React.Children.toArray
2015-08-11 16:13:51 -07:00
Ben Alpert
53d8bbddc7 Add React.Children.toArray 2015-08-11 16:13:40 -07:00
Jim
e984d2b7d2 Added note about multiple Reacts, since this error commonly implies that. 2015-08-11 12:59:55 -07:00
Joseph Savona
aa55a71c62 Relay Technical Preview - blog post
(cherry picked from commit cac6bc870d)
2015-08-11 12:46:37 -07:00
Sebastian Markbåge
2457823227 Merge pull request #4182 from sebmarkbage/fixguards
Move guards from auto binding to event dispatch
2015-08-11 12:05:08 -07:00
Sebastian Markbage
216026418c Simplify event dispatching
This simplifies event dispatching by removing the `return false` special
case for the SimpleEventPlugin which allow us to inline much more here
and the code becomes easier to follow.
2015-08-11 11:55:07 -07:00
Sebastian Markbage
16cc45156f Move guards from auto binding to event dispatch
This wraps a proper guard around event dispatching so that errors doesn't
interupt other event callbacks.

Instead we rethrow the first error after all callbacks have been invoked.

For DEV mode we use native event dispatching if available. This has the
benefit that caught exceptions show up in the dev tools even without caught
exceptions being turned on. Yet, all callbacks are guaranteed to fire.
2015-08-11 11:55:07 -07:00
Jim
1b67acc168 Merge pull request #4344 from jimfb/update-children-because-context
Don't skip reconcilation if context differs
2015-08-11 10:44:14 -07:00
Jim
bcd32768e6 Merge pull request #4602 from tako-black/update_tutorial_ja-JP
Change tutorial.ja-JP.md to use marked
2015-08-11 09:26:53 -07:00
Kohei TAKATA
1ceded865b Change tutorial.ja-JP.md to use marked 2015-08-11 22:54:36 +09:00
Paul O’Shannessy
7deab28347 Merge pull request #4598 from zpao/eslint-1.1
Upgrade ESLint, fix code
2015-08-10 21:11:23 -07:00
Ben Alpert
d1a2193127 Merge pull request #4587 from spicyj/stateless-fn
Minimal implementation of stateless components
2015-08-10 17:49:31 -07:00
Paul O’Shannessy
ecb34de574 Upgrade ESLint, fix code 2015-08-10 17:04:29 -07:00
Sebastian Markbåge
37ee03f29c Merge pull request #4596 from jaredly/add-source-self
adding __self and __source special props
2015-08-10 16:22:12 -07:00
Ben Alpert
cd15dc60b8 Merge pull request #4597 from spicyj/coco
Apply codemod for React -> ReactDOM split
2015-08-10 15:33:49 -07:00
Ben Alpert
9adcff442a Apply codemod for React -> ReactDOM split
Ran the codemod automatically then ran

```
codemod.py -m -d src '(var React\b[^\n]*;)\n\n(var ReactDOM)' '\1\n\2'
```

to clean up spacing of requires.
2015-08-10 15:24:30 -07:00
Ben Alpert
b98b6ea2ac Clean up files before automated codemod 2015-08-10 15:23:12 -07:00
Jared Forsyth
009b7c8ae1 adding __self and __source special props 2015-08-10 13:52:17 -07:00
Paul O’Shannessy
1e90de692e Merge pull request #4584 from jessebeach/jessebeach-reactComponentExpect-silent-fail
reactComponentExpect fails silently
2015-08-10 13:15:14 -07:00
Toru Kobayashi
eb4e44a3c9 Fixed consistency of behavior boolean properties 2015-08-09 17:00:37 +09:00
Sebastian Markbåge
2f079359e8 Merge pull request #4588 from sebmarkbage/ownersforcontext
Add property key names + type of value to fragment warning
2015-08-08 15:11:22 -07:00
Sebastian Markbage
754ee176d0 Add property key names + type of value to fragment warning
This provides useful context in the logs to help us filter out things like
{__html:...}.
2015-08-07 20:01:03 -07:00
Ben Alpert
f3440c0d6f Merge pull request #4581 from Youmoo/patch-1
Update 2015-05-01-graphql-introduction.md
2015-08-07 19:32:22 -07:00
Ben Alpert
5a7bd964b4 Minimal implementation of stateless components
Stateless pure-function components give us more opportunity to make performance optimizations. For now, we'll do a minimal implementation which has similar performance characteristics to other components in the interests of shipping 0.14 and allowing people to begin writing code using this pattern; in the future we can refactor to allocate less and avoid other unnecessary work.
2015-08-07 19:27:42 -07:00
Ben Alpert
3ec9f86573 Deduplicate logic in ReactElementValidator
Shouldn't be much change. Notably, this calls `.getName()` instead of trying to derive it manually, which is more consistent.
2015-08-07 18:53:42 -07:00
Ben Alpert
b927110fb2 Merge pull request #4585 from spicyj/disable-path
Disable event.path handling
2015-08-07 13:41:11 -07:00
Ben Alpert
016a1907e1 Disable event.path handling
Looks like #4558 isn't ready yet and we'd like an interim fix.
2015-08-07 13:33:42 -07:00
J. Renée Beach
39c3fb2b09 reactComponentExpect fails silently
```reactComponentExpect``` fails silently when passed an undefined  value. It calls ```ReactTestUtils.isCompositeComponent``` with the undefined value, in which a ```render``` property is accessed, throwing a prop on undefined not found error which isn't surfaced to jest.

```
TypeError: Cannot read property 'render' of undefined
        at Object.ReactTestUtils.isCompositeComponent (./react/test/ReactTestUtils.js:127:23)
        at new reactComponentExpect (./react/test/reactComponentExpect.js:46:20)
        at reactComponentExpect (./react/test/reactComponentExpect.js:40:12)
```

Expecting the passed-in instance to not be undefined surfaces this issue in the test runner.
2015-08-07 11:21:45 -07:00
Sebastian Markbåge
7f119d41c7 Merge pull request #4554 from chernysh/chernysh-added-docs-img-events
Added documentation for <img> events
2015-08-07 11:07:24 -07:00
youmoo
0a19e0c0e5 Update 2015-05-01-graphql-introduction.md
Or the alternative:

`REST is an acronym for Representational State Transfer, which is an architectural style rather than a formal protocol`.

Sorry , I'am not a native speaker:)
2015-08-07 14:11:03 +08:00
Ben Alpert
6871ec2e29 Merge pull request #4580 from spicyj/gh-4578
Fix missing change event target in old IE
2015-08-06 15:24:02 -07:00
Ben Alpert
264bc2e7f2 Fix missing change event target in old IE
Events have `.srcElement` in old IE, not `.target`.

Fixes #4578.
2015-08-06 15:08:59 -07:00
Sebastian Markbåge
375734731d Merge pull request #4579 from sebmarkbage/ownersforcontext
Only set the owner during flattening
2015-08-06 13:04:56 -07:00
Sebastian Markbage
9fc2f8de26 Only set the owner during flattening
This used to do the update as well, which could have side-effects that
rely on owner being null.
2015-08-06 12:57:17 -07:00
Jim
13acbd2424 Merge pull request #4577 from marjan-georgiev/add-stopOpacity-to-unitless-props
Add stop-opacity to unitless style properties
2015-08-06 10:19:27 -07:00
Marjan
2b4d98fa52 Revert change to docs/js/reactj.js 2015-08-06 19:16:29 +02:00
Marjan
0d8c3f9cba Add stop-opacity to unitless style properties 2015-08-06 16:46:13 +02:00
Sebastian Markbåge
7ffff573ae Merge pull request #4569 from sebmarkbage/ownersforcontext
Set the owner during traverseAllChildren
2015-08-05 22:46:08 -07:00
Sebastian Markbage
cd1ab32d2f Set the owner during traverseAllChildren
This is basically just adding some context to the warning in ReactFragment
so that we can more easily find the callers.
2015-08-05 21:04:52 -07:00
Ben Alpert
f7b9545c15 Merge pull request #4559 from salier/ie-selection
Use onSelect fallback in IE
2015-08-05 20:35:24 -07:00
Ben Alpert
bdfa948121 Fix lint 2015-08-05 20:34:48 -07:00
Paul O’Shannessy
e64fc51984 Merge pull request #4565 from koba04/remove-fasttest
Remove fasttest task. fasttest is not fast
2015-08-05 14:40:41 -07:00
Toru Kobayashi
656c2ef173 Remove fasttest task. fasttest is not fast 2015-08-05 19:00:23 +09:00
Isaac Salier-Hellendag
2ff7512975 Use onSelect fallback in IE
In response to https://github.com/facebook/react/issues/2722. Use the Firefox selection change fallback for IE.
2015-08-04 17:36:34 -07:00
Vadim Chernysh
56e9d4aa4d Added events documentation for <img> elements 2015-08-04 15:27:56 +03:00
Jim
c97ed7b804 Merge pull request #4552 from psibi/patch-1
Include Haskell language
2015-08-04 03:35:34 -07:00
Sibi
1c1cfe95ee Include Haskell language 2015-08-04 14:06:08 +05:30
Ben Alpert
b4f40ba95f Merge pull request #4473 from facebook/devtools-blog-post
[docs] Add blog post about the new devtools beta
2015-08-03 15:13:33 -07:00
Jared Forsyth
1343cc0c9b Add blog post about the new devtools beta 2015-08-03 14:55:05 -07:00
Paul O’Shannessy
3f6bca7b16 0.14.0-beta3 2015-08-03 14:24:24 -07:00
Paul O’Shannessy
da8fc4e91b Merge pull request #4545 from salzhrani/patch-2
Update addons.js
2015-08-02 21:05:45 -07:00
Jim
ff7996b58a Merge pull request #4381 from mikrofusion/clarify-main-ideas
clarify the two main ideas behind react.
2015-08-02 20:04:37 -07:00
Mike Groseclose
38818189a5 remove two ideas from why react to add clarity 2015-08-02 19:34:20 -07:00
Samy Al Zahrani
5f01a90954 Update addons.js 2015-08-02 16:12:34 +03:00
Jim
134e0700cd Merge pull request #4541 from marocchino/update-korean
Update Korean translation to e88c7bf
2015-08-01 10:43:11 -07:00
Scott Burch
1da2b29897 added suggested comment to get file to pass es-lint 2015-08-01 01:43:24 -07:00
Shim Won
28261783ed Update Korean translation to e88c7bf 2015-08-01 12:35:09 +09:00
Paul O’Shannessy
e88c7bf495 Merge pull request #4539 from zpao/fix-encrypted-media-event
Listen to encrypted event, not onencrypted
2015-07-31 17:49:33 -07:00
Paul O’Shannessy
b321925cfa Listen to encrypted event, not onencrypted 2015-07-31 17:08:57 -07:00
Scott Burch
0f1ecc3ae3 removed dangling comma that messes up loading in IE8 2015-07-31 16:36:04 -07:00
Christoph Pojer
2d239006c5 Merge pull request #4528 from cpojer/codemod-updates
Simplify react-codemod.
2015-07-31 10:33:12 -07:00
cpojer
2ae9921945 Simplify react-codemod. 2015-07-31 10:32:53 -07:00
Jim
50d73f9a13 Merge pull request #4537 from afhole/patch-1
Update 02.1-jsx-in-depth.md
2015-07-31 10:13:58 -07:00
Alastair Hole
72a1fd6ce5 Update 02.1-jsx-in-depth.md
'setup' is a noun, not a verb
2015-07-31 17:40:48 +01:00
Paul O’Shannessy
681bbb629f 0.14.0-beta2 2015-07-30 21:29:09 -07:00
Paul O’Shannessy
e9c53364e5 Update fbjs dependency 2015-07-30 21:28:11 -07:00
Paul O’Shannessy
617ba9c21a Merge pull request #4501 from zpao/build-more-addons
Build perf and test-utils addon npm packages
2015-07-30 13:29:50 -07:00
Paul O’Shannessy
3d197e2a88 Merge pull request #4010 from zpao/really-deprecate-react-tools
Remove react-tools
2015-07-30 10:29:20 -07:00
Paul O’Shannessy
94bc29b400 Remove react-tools completely 2015-07-30 10:15:36 -07:00
Paul O’Shannessy
d982d5e153 Move react-tools from root.
ReactTools is deprecated, it doesn't belong at the root of the project. We'll remove it after 0.14 but for now this moves it so that it's contained and not intermixed with the rest of the project. The currect behavior of copying src/ into the package is maintained.
2015-07-30 10:15:36 -07:00
Jim
cc98f83b53 Merge pull request #4370 from blainekasten/video-events
Add Video/Audio Media Events
2015-07-29 21:57:25 -07:00
blainekasten
bdf377ff02 Add MediaEvent Handlers for Video/Audio components 2015-07-29 23:25:01 -05:00
Jim
f46c631091 Merge pull request #4513 from jimfb/fix-global-events
Fixed global events (like enter/leave events) when event has path.
2015-07-29 16:59:31 -07:00
Paul O’Shannessy
7989b34dd4 Merge pull request #4512 from zpao/codeofconduct
Explicitly call out code of conduct in CONTRIBUTING
2015-07-29 13:17:10 -07:00
Jim
b3d5b7f8db Fixed global events (like enter/leave events) when event has path. 2015-07-29 11:42:04 -07:00
Paul O’Shannessy
48e47fd25b Merge pull request #4493 from dmatteo/scryRenderedDOMComponents.bug
ensure tags are upperCase before comparing. #4388
2015-07-28 18:41:00 -07:00
Paul O’Shannessy
e8d79c3548 Fix a couple lint issues as a followup for #3761 2015-07-28 17:49:53 -07:00
Paul O’Shannessy
edf4d24c49 Merge pull request #3761 from alexpien/CustomClassesForReactCSSTransitionGroup
Custom class names in ReactCSSTransitionGroup
2015-07-28 16:59:51 -07:00
Paul O’Shannessy
6eb5a15049 Merge pull request #3742 from mminer/order-css-vendor-prefixes
Treat boxOrdinalGroup and flexOrder as unitless
2015-07-28 16:44:14 -07:00
Paul O’Shannessy
b766c62bb9 Merge pull request #2664 from jasonwebster/patch-1
Add additional supported methods to event documentation
2015-07-28 16:09:23 -07:00
Paul O’Shannessy
d80b1b89ae Explicitly call out code of conduct in CONTRIBUTING 2015-07-28 13:49:00 -07:00
Paul O’Shannessy
8a81d0cea2 Note that npm >= 2.0.0 is required for building 2015-07-28 11:59:06 -07:00
Jim
98d4fde55c Merge pull request #4506 from tako-black/translate_perf_to_japanese
Translate 10.9-perf.md to Japanese
2015-07-28 08:51:51 -07:00
Kohei TAKATA
2392217f32 Translate 10.9-perf.md to Japanese 2015-07-28 17:54:10 +09:00
Paul O’Shannessy
a7da0f22c4 Merge pull request #4503 from jimfb/remove-npm-run-jest
Removed `npm run jest` script.  Users can use `npm test` instead.
2015-07-27 16:05:38 -07:00
Jim
6296d1cad2 Removed npm run jest script. Users can use npm test instead. 2015-07-27 16:03:59 -07:00
Jim
9b30176122 Merge pull request #4422 from jimfb/reconciler-cleanup
Cleaned up a few names in the reconciler.
2015-07-27 15:59:44 -07:00
Jim
a4459558c1 Cleaned up a few names in the reconciler. 2015-07-27 15:07:44 -07:00
Paul O’Shannessy
ff71d7a939 Build perf and test-utils addon npm packages 2015-07-27 15:04:38 -07:00
Paul O’Shannessy
9d4a805eb7 Merge pull request #4499 from zpao/update-fbjs
Update fbjs dependency
2015-07-27 14:26:07 -07:00
Paul O’Shannessy
be5c09c24d Update fbjs dependency
- remove a file that got moved over there
- update for renamed babel transform
2015-07-27 13:37:48 -07:00
Jim
fab001aa80 Merge pull request #4469 from KevinTCoughlin/kevintcoughlin/#4265
Fixes #4265 - Clarify React.render note in documentation
2015-07-27 11:06:58 -07:00
Jim
be39979460 Merge pull request #4495 from tako-black/translate_pure-render-mixin_to_japanese
Translate 10.8-pure-render-mixin.md to Japanese
2015-07-26 19:25:09 -07:00
Kohei TAKATA
21d1e0004e Translate 10.8-pure-render-mixin.md to Japanese 2015-07-27 11:22:45 +09:00
Kevin Coughlin
ee11412933 remove footnote reference asterisk, no longer needed 2015-07-26 21:35:12 -04:00
Domenico Matteo
cc02c22cb4 ensure tags are upperCase before comparing. #4388 2015-07-27 00:32:59 +02:00
Paul O’Shannessy
3056066ede Merge pull request #4486 from yangmillstheory/docfix
Fix grammar
2015-07-25 10:10:18 -07:00
Victor Alvarez
912d71c9ce Fix grammar 2015-07-25 10:08:23 -07:00
Jim
44997df9eb Merge pull request #4483 from marocchino/update-korean
Update Korean translation to 991c437
2015-07-24 21:15:22 -07:00
Shim Won
b2caf1e4e3 Update Korean translation to 991c437 2015-07-25 11:06:00 +09:00
Paul O’Shannessy
7b37f8ac36 Fix gulp 2015-07-24 14:41:34 -07:00
Domenico Matteo
94d536f2ef add tests for React.addons.TestUtils.Simulate.change 2015-07-24 22:26:33 +02:00
Paul O’Shannessy
991c437b93 Merge pull request #4167 from zpao/vendor2fbjs
Move vendor to fbjs package
2015-07-24 10:51:07 -07:00
Jim
f23fe004bb Merge pull request #4478 from tako-black/translate_update_to_japanese
Translate 10.7-update.md to Japanese
2015-07-24 05:15:23 -06:00
Kohei TAKATA
b13b9975b8 Translate 10.7-update.md to Japanese 2015-07-24 17:52:48 +09:00
Michael Ridgway
b1fc5f949d Allow classes created with React.createClass to opt out of autobinding 2015-07-23 18:07:00 -07:00
Paul O’Shannessy
6fc53e0438 Enable (and apply) global transforms with browserify
This ensures that we can consume code from npm that has our process.env pattern. Unfortunately we'll run the same transform on minified builds but it's pretty quick.
2015-07-23 17:52:58 -07:00
Paul O’Shannessy
83c88578e9 Replace grunt-jest with our own runner
This gives us more control
2015-07-23 17:52:58 -07:00
Paul O’Shannessy
1d0c1b1817 Use fbjs package from npm, gulp
This reworks a few things in building and distributing React. The biggest change is using fbjs to share dependencies with other libraries. We're also using Gulp for some build steps.
2015-07-23 15:48:02 -07:00
Paul O’Shannessy
ac5e5d789f Merge pull request #4367 from Simek/traverse-children-cleanup
traverseAllChildren code clarity
2015-07-23 14:48:23 -07:00
Paul O’Shannessy
bcfba9178f Merge pull request #4386 from AnSavvides/4369-walkthrough-clarification
[#4369] Make getting started a little less confusing
2015-07-23 13:45:33 -07:00
Paul O’Shannessy
ee410d68d6 Merge pull request #4395 from wibud/v0.0.1
add animationIterationCount in isUnitlessNumber
2015-07-23 13:44:08 -07:00
Paul O’Shannessy
e0b8597dbb Merge pull request #4474 from zpao/ts14
Lock typescript dep at 1.4
2015-07-23 13:33:14 -07:00
Paul O’Shannessy
458714ab2f Lock typescript dep at 1.4 2015-07-23 12:49:21 -07:00
Ben Alpert
d16481d0e7 Merge pull request #4453 from spicyj/react-dom
Rename ReactDOMClient to ReactDOM
2015-07-23 11:27:25 -07:00
Sebastian Markbåge
d1169b54dd Merge pull request #4466 from jimfb/path-events-in-detached-nodes
Use old event propagation if path is not reasonable (eg. detached DOM).  Fixes #4452
2015-07-23 11:05:33 -07:00
Jim
318c288bd3 Merge pull request #4472 from tako-black/translate_create-fragment_to_japanese
Translate 10.6-create-fragment.md to Japanese
2015-07-23 01:35:36 -07:00
Kohei TAKATA
2b35ba6f40 Translate 10.6-create-fragment.md to Japanese 2015-07-23 17:06:21 +09:00
Jim
42caf036e2 Merge pull request #4471 from Yeti-or/yeti-or.fix-docs
Docs: Fix jsx iife example
2015-07-22 21:04:59 -07:00
Vasiliy Loginevskiy
3ce58df87d Docs: Fix jsx iife example 2015-07-23 06:08:11 +03:00
Kevin Coughlin
60a081e66b remove markdown remnant & unnecessary whitespace 2015-07-22 22:26:03 -04:00
Paul O’Shannessy
e055a1a28a Merge pull request #4456 from zpao/babel58
Upgrade babel, babel-eslint; remove babel-core dep
2015-07-22 15:11:50 -07:00
Jim
054fa0e16b Use old event propagation if path is not reasonable (eg. detached DOM). Fixes #4452 2015-07-22 12:43:59 -07:00
Jim
b71ad1f600 Merge pull request #4460 from tako-black/enclose_variables_in_back_quote
Enclose variables in back quote
2015-07-22 09:00:58 -07:00
Jim
3dcc4b8b90 Merge pull request #4459 from tako-black/translate_clone-with-props_to_japanese
Translate 10.5-clone-with-props.md to Japanese
2015-07-22 09:00:16 -07:00
Kohei TAKATA
ae0f9189fc Enclose variables in back quote 2015-07-22 16:19:04 +09:00
Kohei TAKATA
2a81f1229a Translate 10.5-clone-with-props.md to Japanese 2015-07-22 16:12:08 +09:00
Ben Alpert
6c20271488 Rename ReactDOMClient to ReactDOM
This closer matches the npm package name and (I assume) is what we want to call it internally.
2015-07-21 19:30:09 -07:00
Paul O’Shannessy
ecb4433cc9 Upgrade babel, babel-eslint; remove babel-core dep 2015-07-21 17:23:52 -07:00
Jim
e10c873d09 Merge pull request #4455 from marocchino/update-korean
Update Korean translation to e928c65
2015-07-21 16:13:28 -07:00
Shim Won
dc56073d68 Update Korean translation to e928c65 2015-07-22 08:11:26 +09:00
Paul O’Shannessy
e928c65340 Merge pull request #4449 from zpao/lock-babel
Lock babel @ 5.6.x.
2015-07-21 14:09:47 -07:00
Domenico Matteo
97e219e785 improve ReactTestUtils.Simulate documentation 2015-07-21 22:27:20 +02:00
Paul O’Shannessy
ce8a152c49 Lock babel @ 5.6.x.
5.7 and 5.8 are having big issues with linting
2015-07-21 12:20:39 -07:00
Ben Alpert
6faa225fe8 Merge pull request #4447 from spicyj/tag-end
Pull out tag end regex
2015-07-21 12:00:45 -07:00
Ben Alpert
6fe034e6f9 Pull out tag end regex
For perf -- avoids allocating another object.
2015-07-21 11:53:13 -07:00
Paul O’Shannessy
82a9a5595e Merge pull request #4404 from jbonta/component_api_docs
Make component api docs clearer
2015-07-21 11:11:37 -07:00
Jim
f000fa564e Merge pull request #4443 from tako-black/translate_test-utils_to_japanese
Translate 10.4test-utils.md to Japanese
2015-07-21 05:14:52 -07:00
Jim
dc0d4bae7b Merge pull request #4444 from tako-black/Add_period
Add period
2015-07-21 05:14:28 -07:00
Kohei TAKATA
d8961311c5 Add period 2015-07-21 21:08:42 +09:00
Kohei TAKATA
75d0486202 Translate 10.4test-utils.md to Japanese 2015-07-21 21:04:46 +09:00
Jim
57d14ec33a Merge pull request #4400 from jimfb/adler32
Improved performance for our adler32 implementation.
2015-07-20 18:53:58 -07:00
Jim
57e9e5bf23 Improved performance for our adler32 implementation 2015-07-20 18:50:05 -07:00
Ben Alpert
16483e3cca Merge pull request #4427 from spicyj/gh-1232
Fix switching between dangerouslySetInnerHTML and children
2015-07-20 16:57:01 -07:00
Ben Alpert
caae627cd5 Fix switching between dangerouslySetInnerHTML and children
With this, ReactMultiChild handles all of the children-related operations for ReactDOMComponent so that we don't process operations out of order. This is necessary because ReactMultiChild does its own batching so there's no way without its cooperation to get the timing right here.

Ideally we'll factor this logic out a bit better in subsequent updates but this is the simplest way to fix #1232 which has embarrassingly been open for over a year.
2015-07-20 16:37:43 -07:00
Paul O’Shannessy
3ca5c15c1e Merge pull request #4092 from mking/remove-react-source-gem
Stop building react-source gem
2015-07-20 15:18:26 -07:00
Paul O’Shannessy
d66fd21446 Merge pull request #4435 from rtfeldman/fix-error-message
Fix typo in removeComponentAsRefFrom error message
2015-07-20 13:04:00 -07:00
Richard Feldman
c13588ef0a Fix typo in removeComponentAsRefFrom error message. 2015-07-20 11:16:15 -07:00
Ben Alpert
21fff2daa6 Merge pull request #4432 from spicyj/eslint-upg
Upgrade eslint
2015-07-20 08:45:29 -07:00
Ben Alpert
06304d59de Upgrade eslint
Fixes #4428.
2015-07-20 08:37:47 -07:00
Ben Alpert
d13fafa5dd counterexample -> antipattern 2015-07-20 08:28:53 -07:00
dongmeng.ldm
28329e8655 add animationIterationCount in isUnitlessNumber 2015-07-20 10:45:23 +08:00
Ben Alpert
33a5a64160 Merge pull request #4387 from spicyj/aep
Remove AnalyticsEventPlugin
2015-07-18 21:27:36 -07:00
Jason Bonta
bae4e586e5 Make component api docs clearer
I'm proposing these changes because I found some repetition / lack of
clarity and some language that suggested that you could mutate
`this.state` directly.
2015-07-18 17:20:36 -07:00
Jim
c73f95292c Merge pull request #4408 from jimfb/remove-children-map
Removed flattened children object.  Fixes #4405
2015-07-17 22:19:39 -07:00
Jim
fe99e59c81 Removed flattened children object for initial render. Fixes #4405 2015-07-17 22:01:59 -07:00
Paul O’Shannessy
2ea0bd77b4 Merge pull request #4419 from Simek/invert-if-else-with-negation
invert few if-else with negation for better readability
2015-07-17 16:39:15 -07:00
Bartosz Kaszubowski
da11691e26 invert few if-else with negation for readability 2015-07-18 00:19:28 +02:00
Jim
c844899187 Fixed basic-jsx example, which got clobbered during a prior bug investigation 2015-07-17 14:42:55 -07:00
Paul O’Shannessy
cc85f42f0f Merge pull request #4414 from zpao/lint-src-test
Enable linting in src/tests, cleanup
2015-07-17 13:56:32 -07:00
Paul O’Shannessy
a28325e412 Enable linting in src/tests, cleanup 2015-07-17 13:35:17 -07:00
Paul O’Shannessy
d435556920 Merge pull request #4412 from hawsome/patch-2
Switch to using comma-dangle: always-multiline
2015-07-17 13:34:33 -07:00
Paul O’Shannessy
c72f2e455a Merge pull request #4413 from zpao/more-default-value-docs-chagnes
Tweaks to new content in forms documentation
2015-07-17 13:32:47 -07:00
Paul O’Shannessy
8f419c956e Merge pull request #4393 from zpao/rm-browser-tests
Remove in-browser unit testing
2015-07-17 00:24:03 -07:00
Paul O’Shannessy
5da408297f Remove in-browser unit testing
Rely on jest for now until we get a better and less hacky solution to running tests in the browser, probably a totally different test suite with different behavior/goals.
2015-07-17 00:13:16 -07:00
Paul O’Shannessy
2b97bc63f0 Tweaks to new content in forms documentation 2015-07-16 23:50:18 -07:00
Chris Ha
c085c85045 Switch to using comma-dangle: always-multiline 2015-07-16 23:40:16 -07:00
Jim
976b51adf8 Merge pull request #4379 from eriklharper/patch-1
Add more information about defaultValue
2015-07-16 19:13:31 -07:00
Jim
aa5f503595 Merge pull request #4407 from Simek/patch-4
split code block for readability
2015-07-16 19:08:50 -07:00
Jim
b66fa7eb05 Merge pull request #4409 from tako-black/translate_class-name-manipulation_to_japanese
Translate 10.3-class-name-manipulation.md to Japanese
2015-07-16 19:06:08 -07:00
Paul O’Shannessy
ddb84f44a8 Merge pull request #3186 from benekastah/patch-1
Modify sample CSS so that it works in Safari
2015-07-16 16:52:21 -07:00
Kohei TAKATA
990caa4a9a Translate 10.3-class-name-manipulation.md to Japanese 2015-07-17 08:51:22 +09:00
Bartosz Kaszubowski
46d0bf825c split code block for readability 2015-07-16 23:49:40 +02:00
eriklharper
fabdeaa6b8 Review changes
Fixing spelling errors and revising based on feedback.
2015-07-16 10:57:16 -07:00
Ben Alpert
44ed6010d3 Merge pull request #4306 from brigand/patch-5
Blog: move "refs to custom components..." fixes #4305
2015-07-15 16:36:16 +02:00
Ben Alpert
6858c7120c Remove AnalyticsEventPlugin
We only ever had a couple internal users of this, and now we have none. Removing it from the repo for cleanliness.
2015-07-15 15:36:55 +02:00
Andreas Savvides
4a05be3459 [#4369] Make getting started a little less confusing 2015-07-15 11:25:58 +01:00
Jim
d6c062b213 Merge pull request #4382 from tako-black/enclose_a_name_of_library_in_back_quote
Enclose a name of library in back quote
2015-07-14 22:30:26 -07:00
Jim
d76a686c7f Merge pull request #4383 from tako-black/translate_form-input-binding-sugar_to_japanese
Translate 10.2-form-input-binding-sugar.md to Japanese
2015-07-14 22:29:49 -07:00
Paul O’Shannessy
ea6b0dd1b0 Merge pull request #4384 from zpao/jest-on-travis-again
Use more specific ignore pattern for jest
2015-07-14 18:35:27 -07:00
Paul O’Shannessy
91a87174bc Use more specific ignore pattern for jest
TravisCI clones into /home/travis/build/facebook/react, which /build/ matches so we never ran any of our tests.
2015-07-14 18:28:30 -07:00
Kohei TAKATA
9a95ce8308 Enclose a name of library in back quote 2015-07-15 09:26:56 +09:00
Kohei TAKATA
024f5fc595 Translate 10.2-form-input-binding-sugar.md to Japanese 2015-07-15 09:20:29 +09:00
eriklharper
95a810ac01 Add more information about defaultValue
I came across an issue on a React project where I needed to programatically set the default value of an input as the result of an async call.  (I was prepopulating a zip code field from the Google Maps Geocoding API).  It didn't work when I passed in an updated defaultValue prop, until I came across this StackOverflow: http://stackoverflow.com/questions/30146105/react-input-defaultvalue-doesnt-update-with-state.  I was able to get it to do what I wanted by passing in the value prop instead.
2015-07-14 13:28:55 -07:00
Jim
432d887f4a Merge pull request #4377 from sugarshin/typo_docs
Delete unnecessary control code.
2015-07-14 10:27:19 -07:00
sugarshin
75a0049433 Delete unnecessary control code. 2015-07-15 00:39:52 +09:00
Jim
704ea0bb83 Merge pull request #4371 from tako-black/translate_animation_to_japanese
Translate 10.1-animation.md to Japanese
2015-07-14 00:00:10 -07:00
Kohei TAKATA
fe466e5842 Translate 10.1-animation.md to Japanese 2015-07-14 15:54:42 +09:00
Paul O’Shannessy
64dafb17a9 Merge pull request #4237 from jas14/issue-4226
Allow wrap attribute in textarea
2015-07-13 16:58:43 -07:00
Joe Stein
1b5bfb516a Add wrap attribute 2015-07-13 15:00:03 -07:00
Bartosz Kaszubowski
ea2496b6f6 traverseAllChildren code clarity 2015-07-13 23:45:00 +02:00
Jim
9baaeec21d Don't skip reconcilation if context differs 2015-07-13 14:21:38 -07:00
Paul O’Shannessy
4d178415e8 Merge pull request #4144 from lukehorvat/docs/iife-jsx
Add IIFE example to JSX documentation
2015-07-13 14:01:51 -07:00
Paul O’Shannessy
e9b3974d7c Merge pull request #4291 from rwoodnz/patch-2
indicate file name requried for static file
2015-07-13 13:34:51 -07:00
Paul O’Shannessy
e9915f0735 Merge pull request #4357 from yangmillstheory/docfix
Warn against JSX transform failure for non-HTTP-served JSX
2015-07-13 13:20:09 -07:00
Victor Alvarez
36ee340fe5 Add warning for protocol sandboxing near pain point in Getting Started 2015-07-13 12:50:42 -07:00
Paul O’Shannessy
820c695612 Merge pull request #4355 from makky3939/use_html5_meta_charset_tag
Use html5 meta charset tag
2015-07-13 11:45:53 -07:00
Paul O’Shannessy
fa7aeb65ac Merge pull request #4363 from tako-black/change_css_to_uppercase
Change `css` to uppercase
2015-07-13 10:35:22 -07:00
Kohei TAKATA
4715dec510 Change css to uppecase 2015-07-13 21:07:40 +09:00
Jim
bd390afc22 Merge pull request #4362 from makky3939/translate_04_self_closing_tag
Translate 4-self-closing-tag.md to Japanese
2015-07-12 22:15:25 -07:00
Masaki KOBAYASHI
3098a6f66e Translate 04-self-closing-tag.md to Japanese 2015-07-13 12:38:24 +09:00
Jim
ea964e760c Merge pull request #4356 from makky3939/fix_03-interactivity-and-dynamic-uis_ja-JP_md
Update 03-interactivity-and-dynamic-uis.ja-JP.md
2015-07-11 21:39:25 -07:00
Jim
0572747d74 Merge pull request #4358 from makky3939/remove_controll_character_from_jp_docs
Remove controll character from jp.md
2015-07-11 21:38:13 -07:00
Masaki KOBAYASHI
ec98fa9e3d remove controll character from 07-forms.ja-JP.md, 10-addons.ja-JP.md and 10-addons.ja-JP.md 2015-07-12 11:39:05 +09:00
Masaki KOBAYASHI
ca34c57a5e fix typo 2015-07-12 11:17:41 +09:00
Masaki KOBAYASHI
dee6726080 change http-equiv with charset 2015-07-12 10:54:54 +09:00
Jim
3ee65cc653 Merge pull request #4349 from makky3939/remove_type_attribute_in_script_tag
Remove type attribute in script tag
2015-07-11 11:40:37 -07:00
Jim
2b3d83fe34 Merge pull request #4351 from tako-black/translate_addons_to_japanese
Translate 10-addons.md to Japanese
2015-07-11 11:36:57 -07:00
Jim
13c9bb4845 Merge pull request #4348 from himkt/master
remove controll character from 02-displaying-data.ja-JP.md
2015-07-11 11:36:33 -07:00
Kohei TAKATA
b35de1db4e Translate 10-addons.md to Japanese 2015-07-11 15:55:04 +09:00
Masaki KOBAYASHI
81e3b632fd remove type="text/javascript" 2015-07-11 15:02:54 +09:00
himkt
41858a77a3 remove controll character from 02-displaying-data.ja-JP.md 2015-07-11 15:00:25 +09:00
Jim
7661d6c7da Merge pull request #4346 from makky3939/fix_typo_09-tooling-integration_ja-JP_md
fix typo 09-tooling-integration.ja-JP.md
2015-07-10 21:56:02 -07:00
Masaki KOBAYASHI
445e99b7d9 fix typo 2015-07-11 13:50:42 +09:00
Jim
52ad6bc61a Merge pull request #4324 from drd/improve-warning-in-react-mount
Improve warning in react mount
2015-07-10 11:06:32 -07:00
Paul O’Shannessy
f0caf89dad Merge pull request #4342 from laiso/unexpected_character
Remove the unexpected character in ReactEventListener
2015-07-10 09:18:54 -07:00
laiso
804b109ba6 Remove the unexpected character in ReactEventListener 2015-07-11 01:00:21 +09:00
Paul O’Shannessy
441a6ec378 Merge pull request #4338 from dcousens/patch-1
s/currentPathElemenID/currentPathElementID
2015-07-09 23:56:50 -07:00
Paul O’Shannessy
4ec2575cd8 Merge pull request #4337 from tako-black/translate_tooling-integration_to_japanese
Translate 09.tooling-integration.md to Japanese
2015-07-09 23:53:01 -07:00
Daniel Cousens
dfe5f19917 s/currentPathElemenID/currentPathElementID 2015-07-10 16:38:39 +10:00
Cheng Lou
37cd9277a9 Merge pull request #4336 from zpao/ID-not-Id
ID not Id
2015-07-09 23:11:17 -07:00
Kohei TAKATA
e6832b5136 Translate 09.tooling-integration.md to Japanese 2015-07-10 15:09:26 +09:00
Paul O’Shannessy
7032e88c25 ID not Id 2015-07-09 22:49:26 -07:00
Jim
6c0ab0b60e Merge pull request #4334 from tako-black/add_meta_tag_in_the_header_of_html
Add meta tag in the header of HTML in translated documentation.
2015-07-09 19:59:51 -07:00
Kohei TAKATA
a9e0b4a0a3 Change number of html{} to highlight correct line 2015-07-10 09:16:26 +09:00
Kohei TAKATA
87ecb0ba1f Add meta tag in the header of HTML 2015-07-10 08:49:43 +09:00
Benjamin Woodruff
4d4e0bd699 Merge pull request #4330 from zpao/eslint-jest
Use jest for eslint-rules
2015-07-09 16:04:15 -07:00
Paul O’Shannessy
d967ea4658 Merge pull request #4332 from bgw/eslint-tests-use-jest
Run eslint tests with jest
2015-07-09 16:04:01 -07:00
Benjamin Woodruff
fc0b42dc07 Run eslint tests with jest
Turns out eslint-tester works with jest (!)

We take advantage of this internally at FB, so we'll do it here too.

Fixes #4328
2015-07-09 15:59:59 -07:00
Eric O'Connell
d2e8449bf0 Only perform expensive checks in __DEV__, clean up after inserted iframe 2015-07-09 15:49:49 -07:00
Paul O’Shannessy
44c98704ff Use jest for eslint-rules 2015-07-09 15:40:52 -07:00
Paul O’Shannessy
78f1369380 Merge pull request #4329 from zpao/fix-jest
Reset module cache between tests
2015-07-09 15:31:32 -07:00
Paul O’Shannessy
d6183570e3 Reset module cache between tests
This ensures that module caches for warnings is reset between runs. This makes
it so the deprecations warnings always fire.
2015-07-09 15:24:43 -07:00
Jim
cf164f1aa2 Merge pull request #4327 from jimfb/markup-unit-test
Add unit test: should generate simple markup for attribute with `>` symbol
2015-07-09 15:05:08 -07:00
Jim
7b1f03f4f8 Merge pull request #4311 from jimfb/fix-input-events
Fix event target for input change events.  Fixes #4288
2015-07-09 15:03:37 -07:00
Eric O'Connell
0941cc9884 Use a test case that demonstrates the fix. 2015-07-09 14:56:55 -07:00
Jim
b89f7ebff4 Add unit test: should generate simple markup for attribute with > symbol 2015-07-09 14:26:41 -07:00
Jim
75c4311a04 Merge pull request #4325 from jimfb/self-closing-checksum
Fix checksum hash attribute insertion for self-closing root tags.  Fixes #4323
2015-07-09 14:23:07 -07:00
Jim
dfeeb3f673 Fix checksum hash attribute insertion for self-closing root tags. Fixes #4323 2015-07-09 14:21:40 -07:00
Eric O'Connell
902b607f1f Fix some lint 2015-07-09 14:06:42 -07:00
Eric O'Connell
1316160b86 Properly handle rendering into document when comparing markup 2015-07-09 11:48:42 -07:00
Jim
a9e2111b34 Merge pull request #4320 from tako-black/translate_more-about-refs_to_japanese
Translate 08.1-more-about-refs.md to Japanese
2015-07-09 08:25:56 -07:00
Jim
34c8b2366c Merge pull request #4317 from koba04/add-deprecation-warning-for-clonewithprops
Add runtime deprecation warning for cloneWithProps
2015-07-09 08:24:20 -07:00
Toru Kobayashi
17a4dc83e0 Add runtime deprecation warning for cloneWithProps 2015-07-09 19:12:26 +09:00
Kohei TAKATA
55c3d92bc8 Translate 08.1-more-about-refs.md to Japanese 2015-07-09 18:41:19 +09:00
Paul O’Shannessy
59eddf8943 Merge pull request #4319 from tako-black/enclose_a_name_of_function_in_back_quote
Enclose a name of function in back quote
2015-07-08 23:13:59 -07:00
Kohei TAKATA
ecb483f307 Enclose a name of function in back quote 2015-07-09 15:11:20 +09:00
Eric O'Connell
0249adf3db Handle escaping when comparing server/client markup 2015-07-08 20:31:10 -07:00
Paul O’Shannessy
84efb8a4f3 Merge pull request #4318 from jlongster/master
respect NODE_ENV environment variable if set when building
2015-07-08 15:14:59 -07:00
Jim
418e03e96e Merge pull request #4309 from mmoss/addons-warning-fix
Concatenate warning message, due to parsing issues
2015-07-08 12:17:35 -07:00
James Long
ce61a49bca respect NODE_ENV environment variable if set when building 2015-07-08 14:45:21 -04:00
Murray M. Moss
334372758c Add comment to explain string concatenation 2015-07-08 13:26:36 -04:00
Murray M. Moss
fa4063455b Concatenate warning message, due to parsing issues
The addons module warning is currently causing issues with babel/JSPM due to the warning message getting parsed as a require statement. Adding a break using string concatenation appears to prevent any issues.

Example error using JSPM:

```
Error loading "react-addons-{addon}" from...
```
2015-07-08 13:24:01 -04:00
Paul O’Shannessy
6eaf03df1a Merge pull request #4314 from devonharvey/patch-1
Fix typo on line 91 of tutorial.md
2015-07-08 09:30:49 -07:00
Devon Harvey
b3ae6891b7 Fix typo on line 91 of tutorial.md 2015-07-07 22:16:14 -07:00
Jim
c3f0d7c6bd Merge pull request #4312 from tako-black/translate_working-with-the-browser_to_japanese
Translate 08-working-with-the-browser.md to Japanese
2015-07-07 20:09:13 -07:00
Kohei TAKATA
5d7f24c67f Translate 08-working-with-the-browser.md to Japanese 2015-07-08 09:21:09 +09:00
Jim
4b804e485d Fix event target for input change events. Fixes #4288 2015-07-07 17:14:52 -07:00
Jim
ed0d41bb88 Merge pull request #4310 from tako-black/enclose_a_value_of_variable_in_back_quote
Enclose a value of variable in back quote
2015-07-07 16:27:30 -07:00
Kohei TAKATA
4dbb8b307c Enclose a value of variable in back quote 2015-07-08 08:24:42 +09:00
Richard Wood
24c41b6849 Add backticks to highlight comment.json file name 2015-07-08 10:16:21 +12:00
Jim
abf965c3c5 Merge pull request #4290 from rwoodnz/patch-1
Suggest open index.html in browser regularly.
2015-07-07 15:08:27 -07:00
Frankie Bagnardi
335f7d5e57 Blog: move "refs to custom components..." fixes #4305
Just to prevent the TL;DR confusion. Separate paragraph and moved up above the code block. `s/References/Refs` for consistency.
2015-07-06 19:28:23 -07:00
Kevin Coughlin
e685da53ee Clarify React.render note in documentation 2015-07-06 21:47:37 -04:00
Jim
2284c0f449 Merge pull request #4299 from tako-black/enclose_a_value_in_back_quote
Enclose a value of variable in back quote
2015-07-06 08:20:47 -07:00
Jim
25be80c959 Merge pull request #4300 from tako-black/translate_forms_to_japanese
Translate 07-forms.md to Japanese
2015-07-06 08:20:03 -07:00
Kohei TAKATA
b66a520d13 Translate 07-forms.md to Japanese 2015-07-06 19:17:52 +09:00
Kohei TAKATA
f0a7b5df64 Enclose a value of variable in back quote 2015-07-06 17:57:44 +09:00
Jim
500d4c3f87 Merge pull request #4209 from aruberto/iterable_node_proptype
Allow iterables to pass node prop type check
2015-07-05 17:19:37 -07:00
Jim
a8955e7c3e Merge pull request #4292 from dariocravero/patch-1
Update 2015-07-03-react-v0.14-beta-1.md
2015-07-05 17:01:24 -07:00
Jim
19e1918ccd Merge pull request #4287 from Simek/semicolon-cleanup
semicolon cleanup
2015-07-05 15:55:09 -07:00
Darío Javier Cravero
8f9800193c Update 2015-07-03-react-v0.14-beta-1.md
Highlight all packages names so that they're easier to read /cc @spicyj
2015-07-05 14:39:24 +01:00
Richard Wood
50ea437bf8 indicate file name requried for static file
the text doesn't say explicitly to call your file comments.json, nor to put it in the public directory.
2015-07-05 23:38:23 +12:00
Richard Wood
a9d0135f84 Suggest open index.html in browser regularly. 2015-07-05 23:05:53 +12:00
Paul O’Shannessy
a4034b37eb Merge pull request #4283 from Yeti-or/patch-1
Remove unnecessary semicolon;
2015-07-05 16:02:50 +07:00
Paul O’Shannessy
3b54d5cd57 Merge pull request #4284 from Simek/patch-3
add IntelliJ IDEA project related ignores
2015-07-05 15:59:57 +07:00
Paul O’Shannessy
5370987cc0 Merge pull request #4289 from joshuago/patch-1
Fix typos
2015-07-05 15:56:11 +07:00
Joshua Go
1c831b186c Fix typos
Just s/Javascript/Javascript/g and punctuation changes.
2015-07-05 00:15:08 -07:00
Bartosz Kaszubowski
7a2be27d63 semicolon cleanup
One unnecessary semicolon removed and few missing added.
2015-07-05 01:06:04 +02:00
Bartosz Kaszubowski
3ac6dfa5f7 add IntelliJ IDEA project related ignores 2015-07-04 21:27:33 +02:00
Vasiliy
01535bfc18 Remove unnecessary semicolon;
For the God of css
2015-07-04 21:43:12 +03:00
Ben Alpert
cb5913a842 Fix react-addons-update package name 2015-07-04 17:26:24 +02:00
Ben Alpert
d0d57ad7a3 Merge pull request #4278 from koba04/fix-addons-update-package
Fix a library path for react-addons-updates
2015-07-04 17:22:58 +02:00
Toru Kobayashi
ddf27b6299 Rename react-addons-updates to react-addons-update 2015-07-04 16:53:16 +09:00
Jim
5a7019de7b Merge pull request #3798 from levibuzolic/attribute-inputmode
Add inputMode to allowed HTML DOM properties
2015-07-03 17:23:13 -07:00
Levi Buzolic
3b2df5fd9c Add inputMode to HTML DOM Property Whitelist 2015-07-04 02:17:22 +02:00
Ben Alpert
10f8e22e20 Add missing semicolon 2015-07-03 10:53:00 +02:00
Ben Alpert
b2db10f43e beta1 blog post
Closes #4275.
2015-07-03 10:46:36 +02:00
Ben Alpert
b4e74e38e4 Bump version to beta1 2015-07-03 10:46:35 +02:00
Ben Alpert
41aa3496aa Add setProps/replaceProps warning 2015-07-03 10:46:35 +02:00
Ben Alpert
2b68ea21ee Removed most uses of setProps in unit tests
Picked from 721fe73541.
2015-07-03 10:46:35 +02:00
Ben Alpert
4eb889b72e Revert "Removed setProps and replaceProps (both previously deprecated)"
This reverts commit 721fe73541. We'll keep these with a warning for one more release.
2015-07-03 10:46:35 +02:00
Jim
2d86486fd1 Merge pull request #4276 from tako-black/translate_transferring-props_to_japanese
Translate 06-transferring-props.md to Japanese
2015-07-02 20:34:59 -07:00
Kohei TAKATA
680d4e7933 Translate 06-transferring-props.md to Japanese 2015-07-03 09:49:17 +09:00
Ben Alpert
ee85efc03c Merge pull request #4273 from spicyj/addons
Finish addons packaging
2015-07-02 23:39:04 +02:00
Ben Alpert
33d5201a94 Finish addons packaging
- Add missing object-assign dependency
- Add batchedUpdates to ReactDOMClient, rename the two addons to `unstable_`
- Delete react/addons/* (leaving react/addons with a slightly updated warning)
- Add README.md, LICENSE, PATENTS to each addons package
2015-07-02 23:33:16 +02:00
Ben Alpert
a88c3c9f85 Merge commit 'pr/4185'
Closes #4185.
2015-07-02 23:05:15 +02:00
Ben Alpert
0eaa0a6ff7 Fix jest tests 2015-07-02 22:54:22 +02:00
Ben Alpert
07107ca936 Merge pull request #4184 from zpao/move-from-addons
Move renderSubtreeIntoContainer into ReactDOMClient
2015-07-02 22:53:47 +02:00
Jim
ddffc7cebe Merge pull request #4270 from kamronbatman/patch-1
Fixed header comment spacing in ReactComponentWithPureRenderMixin.
2015-07-02 10:31:48 -07:00
Kamron Batman
72b432df03 Fixed header comment spacing.
Fixed header comment spacing in the header for ReactComponentWithPureRenderMixin.
2015-07-02 09:36:52 -07:00
Jim
2baf4bf4e8 Merge pull request #4268 from jimfb/remove-setprops
Removed setProps and replaceProps (both previously deprecated)
2015-07-02 04:47:18 -07:00
Jim
6a92179d6f Merge pull request #4221 from jimfb/ryans-context-bug
updateComponent should update the context iff it has changed
2015-07-02 04:45:41 -07:00
Jim
851378b0b2 Merge pull request #4150 from jimfb/event-path
Make events propagate through shadow DOMs.
2015-07-02 04:35:44 -07:00
Jim
4a465fbd9a Make events propagate through shadow DOMs. 2015-07-02 04:32:22 -07:00
Jim
721fe73541 Removed setProps and replaceProps (both previously deprecated) 2015-07-02 04:00:58 -07:00
Paul O’Shannessy
d268a9fbe3 Merge pull request #4238 from bhamodi/bhamodi/update-dependency-notation
More conservative dependency update.
2015-07-02 10:27:26 +07:00
Jim
8953033454 Merge pull request #4259 from janraasch/patch-1
Add IE-only security attr to HTMLDOMPropertyConfig
2015-07-01 18:15:39 -07:00
Jim
feee7a1868 Merge pull request #4231 from DarkScorpion/clickCounter
Click counter example
2015-07-01 17:46:43 -07:00
Jim
bde585f4e0 Merge pull request #4262 from coryhouse/patch-1
Removed redundant word
2015-07-01 17:37:53 -07:00
Jim
c3e411a0dc Merge pull request #4266 from tako-black/translate_reusable-components_to_japanese
Translate 05-reusable-components.md to Japanese
2015-07-01 17:04:29 -07:00
Kohei TAKATA
f5e0d0c8f2 Translate 05-reusable-components.md to Japanese 2015-07-02 08:44:42 +09:00
Jan Raasch
b089b427ab Add IE-only security attr to HTMLDOMPropertyConfig
See https://msdn.microsoft.com/en-us/library/ms534622(v=vs.85).aspx for an in-depth specification.

This fixes #4169.
2015-07-01 19:47:48 +02:00
Cory House
e869c58a1d Removed redundant word 2015-07-01 11:26:31 -05:00
Sebastian Markbåge
8f9643485d Merge pull request #4162 from sebmarkbage/updator
Inject the update queue into classes
2015-07-01 17:46:05 +02:00
Ben Alpert
9f0042cd8d Merge pull request #4258 from mjomble/patch-1
Typo fix
2015-06-30 15:57:37 +02:00
Andres Kalle
af2071af63 Typo fix 2015-06-30 15:05:57 +03:00
Alex Smith
83c8118c7c update title 2015-06-30 19:43:44 +09:00
Alex Smith
6b669aa37d used JSX 2015-06-30 17:49:25 +09:00
Alex Smith
099c227c35 lowercase index file 2015-06-30 17:26:50 +09:00
Jim
ae9b2c0649 Merge pull request #4252 from bhamodi/patch-2
Update url to save a redirect
2015-06-29 10:28:29 -07:00
Baraa Hamodi
91de455909 Update React Link
Saves a redirect from occurring.
2015-06-29 10:21:35 -07:00
Ben Alpert
454d47fa09 Merge pull request #4223 from spicyj/check-no-warn
Fail tests on any un-spied warnings
2015-06-29 07:57:56 -07:00
Ben Alpert
c22153e25a Fail tests on any un-spied warnings
Fixes #3890.
2015-06-29 07:57:35 -07:00
Jim
d9d442808a Merge pull request #4249 from tako-black/translate_multiple-components_to_japanese
Translate 04-multiple-components.md to Japanese
2015-06-29 05:15:33 -07:00
Kohei TAKATA
d32f8b5a38 Translate 04-multiple-components.md to Japanese 2015-06-29 21:11:39 +09:00
Paul O’Shannessy
859a5d5c3c Merge pull request #4229 from tako-black/translate_jsx-spread_to_japanese
Translate 02.2-jsx-spread.md to Japanese
2015-06-28 23:59:34 -07:00
Paul O’Shannessy
dd3244c4f2 Merge pull request #4242 from tako-black/translate_interactivity-and-dynamic-uis_to_japanese
Translate 03-interactivity-and-dynamic-uis.md to Japanese
2015-06-28 23:57:20 -07:00
Kohei TAKATA
308db9a866 Translate 03-interactivity-and-dynamic-uis.md to Japanese 2015-06-28 19:31:47 +09:00
Matthew King
fc63cebd29 Stop building react-source gem
fixes #4069
2015-06-27 13:44:08 -07:00
Jim
e695ebb5c6 Merge pull request #4240 from tako-black/translate_jsx-gotchas_to_japanese
Translate 02.3-jsx-gotchas.md to Japanese
2015-06-27 09:20:09 -07:00
Kohei TAKATA
19e1d11d2f Translate 02.3-jsx-gotchas.md to Japanese 2015-06-27 19:11:40 +09:00
Ben Alpert
6bbd6976eb Merge pull request #4239 from tako-black/change_word_to_uppercase
Change 'Javascript' to 'JavaScript'
2015-06-27 03:01:49 -07:00
Kohei TAKATA
aefb608fd6 Change 'Javascript' to 'JavaScript' 2015-06-27 18:49:41 +09:00
Alex Smith
67c70b8690 R: handleClick function 2015-06-27 12:13:29 +09:00
Baraa Hamodi
c1ec407bd9 More conservative dependency update. 2015-06-26 18:37:15 -07:00
Jim
5fb8cbc6ca Merge pull request #4232 from marocchino/update-docs
Update translated docs
2015-06-26 10:22:01 -07:00
Shim Won
ca6fa4b7e6 Add site title to first code snippet of getting started (bd9d4b2) 2015-06-26 19:39:44 +09:00
Shim Won
c1b0550acf Update script source (c227a39) 2015-06-26 19:39:25 +09:00
Alex Smith
2b554703af add new line at and of some files 2015-06-26 13:50:43 +09:00
Alex Smith
e58d31022c update click message 2015-06-26 13:39:59 +09:00
Alex Smith
456135eb04 rename folder 2015-06-26 13:35:30 +09:00
Alex Smith
d19aa7a363 use react from bild 2015-06-26 13:34:20 +09:00
Alex Smith
e766d5539e click conter example 2015-06-26 13:08:32 +09:00
Alex Smith
578077081f update git ignore 2015-06-26 12:55:25 +09:00
Kohei TAKATA
829ce68cd7 Translate 02.2-jsx-spread.md to Japanese 2015-06-26 09:55:04 +09:00
Jim
289962f6f8 Don't bail out of reconsiliation if context changes. 2015-06-25 00:58:05 -07:00
Ben Alpert
ef00e856aa Merge pull request #4204 from dpercy/patch-1
Fix docs typo: "overridden" -> "overwritten"
2015-06-24 23:18:23 -07:00
Jim
9bcc8dab93 Merge pull request #4222 from tako-black/translate_jsx-in-depth_to_japanese
Translate 02.1-jsx-in-depth.ja-JP.md to Japanese
2015-06-24 22:48:58 -07:00
Kohei TAKATA
f460a19d8a Translate 02.1-jsx-in-depth.ja-JP.md to Japanese 2015-06-25 14:46:19 +09:00
li.li
63d0471580 Remove warnings in tests
For #3890.

Squashed merge, closes #3925.
2015-06-24 22:01:36 -07:00
Ben Alpert
0b0a436a41 Drop react-codemod.tgz from travis build
This didn't work anyway. See #4217.
2015-06-24 18:41:34 -07:00
Ben Alpert
d87f50aab8 Merge pull request #4217 from brigand/patch-5
Fix travis after_script
2015-06-24 18:38:38 -07:00
Frankie Bagnardi
0677fe8f3b Fix travis artifact upload
Changes:
 - moves after_script to script
 - adds `set -e`
 - creates a seperate matrix 'build'

Way at the bottom of the travis output:

```
1571: curl: (26) couldn't open file "build/react.tgz"
```

This seems to be broken since 12c9fee94e
2015-06-24 18:09:34 -07:00
Ben Alpert
8f217c8a4b Merge pull request #4215 from spicyj/prod-props
Set this.props on elements in prod mode
2015-06-24 16:38:14 -07:00
Ben Alpert
9ba28f317b Merge pull request #4200 from spicyj/ten-thousand
Allow deeper trees
2015-06-24 16:33:30 -07:00
Ben Alpert
9c8c11dd07 Set this.props on elements in prod mode
Oops. Introduced in https://github.com/facebook/react/pull/4172.
2015-06-24 16:26:40 -07:00
Antonio Ruberto
79fc73e674 check entry type iterables
check that the value is a node for map iterables
2015-06-24 15:17:48 -04:00
Jim
4431c90fa4 Merge pull request #4208 from battaile/master
Minor cleanup of ReactES6Class-test output by expecting the warning
2015-06-24 08:18:44 -07:00
Jim
484e20c02d Merge pull request #4206 from yiminghe/fix_change_type
Set change event type in SyntheticEvent
2015-06-24 08:05:52 -07:00
Jim
b99fb2c92d Merge pull request #4202 from tako-black/translate_displaying-data_to_japanese
Translate 02-displaying-data.md to Japanese
2015-06-24 07:42:48 -07:00
Antonio Ruberto
8e72956430 Allow iterables to pass node prop type check 2015-06-24 09:43:02 -04:00
Battaile Fauber
41df3ce421 Check for warning when testing to see if error is thrown when render not defined 2015-06-24 08:03:36 -04:00
Ben Alpert
e80cccf87f Merge pull request #4207 from yangshun/patch-1
Add site title to first code snippet of getting started
2015-06-24 02:24:04 -07:00
yiminghe
ee831d7550 optimize spec 2015-06-24 17:13:41 +08:00
Tay Yang Shun
bd9d4b2499 Add site title to first code snippet of getting started 2015-06-24 17:09:34 +08:00
yiminghe
47e9cfb975 fix change event type 2015-06-24 17:06:35 +08:00
David Percy
78018b99d6 Fix docs typo: "overridden" -> "overwritten"
I think this was meant to say "overwritten", since "the statement overwrites the data" makes more sense than "the statement overrides the data".
2015-06-24 01:54:54 -04:00
Kohei TAKATA
af34ca7b41 Translate 02-displaying-data.md to Japanese 2015-06-24 09:23:05 +09:00
Jim
3dc43840ef Merge pull request #4188 from jisaacks/master
Generate reasonable markup even if tags have unexpected case.
2015-06-23 15:04:36 -07:00
JD Isaacks
d944d3f941 Prevent creating invalid closing tags
fixes #2756
2015-06-23 17:58:52 -04:00
Ben Alpert
fdaefc1103 Allow deeper trees
No reason to limit at 100. I can't imagine a reasonable tree with depth over 10,000 but that should still be small enough to "catch infinite loops" quickly.
2015-06-23 14:07:05 -07:00
Ben Alpert
c5fb3ff987 Merge pull request #4139 from spicyj/dom-refs
DOM components as refs
2015-06-22 16:58:01 -07:00
Ben Alpert
06b88c38f9 Merge pull request #4084 from spicyj/carc
Remove constructAndRenderComponent
2015-06-22 16:57:52 -07:00
Ben Alpert
d810079101 Remove constructAndRenderComponent
These were never part of the public API and shouldn't have been part of the React object. Now they're not.
2015-06-22 16:55:19 -07:00
Ben Alpert
eefda9377c Add legacy methods to DOM components for compatibility 2015-06-22 16:51:21 -07:00
Ben Alpert
ffd527f593 DOM components as refs
Still missing: .props/.getDOMNode warnings.
2015-06-22 16:51:21 -07:00
Ben Alpert
643651b8e5 Wrap all top-level components for consistency 2015-06-22 16:51:04 -07:00
Sebastian Markbåge
9d2c9b5864 Merge pull request #4196 from oluckyman/componentDidUnmount-warning
Show warning when componentDidUnmount is defined
2015-06-22 16:48:27 -07:00
oluckyman
2568933ca3 Update warn message and move it to the error-catching block 2015-06-22 23:52:37 +02:00
Jim
859b7957b7 Merge pull request #4190 from dantman/fix-%s-module
Don't try building a %s module.
2015-06-22 14:45:19 -07:00
Ben Alpert
7e0a544ae3 Merge pull request #4164 from spicyj/jest-wc
Fix exceptions when running `grunt test --debug`
2015-06-22 14:22:41 -07:00
oluckyman
db40beafbe Show warning when componentDidUnmount is defined
Fixes #4194
2015-06-22 21:09:33 +02:00
Daniel Friesen
357ed8ebd7 Add a comment about why the string is split up. For future readers of this file. 2015-06-22 12:04:29 -07:00
Daniel Friesen
c8d606196d Don't try building a %s module.
React's build tools are reading the `require("react")` and `react("%s")` inside the warning string and thinking they are actual requires.
2015-06-21 21:14:04 -07:00
Paul O’Shannessy
79561342c3 Build standalone react-addons packages 2015-06-21 20:01:21 +08:00
Paul O’Shannessy
bbadc15ac1 Move renderSubtreeIntoContainer into ReactDOMClient 2015-06-20 18:08:33 -07:00
Ben Alpert
df05c6efb8 Fix typo in blog post
(#4183)
2015-06-20 16:49:33 -07:00
Ben Alpert
64b5f043dd Merge pull request #4170 from johanneslumpe/patch-1
Guard against a null node
2015-06-20 16:42:23 -07:00
Jim
ede27d2e86 Merge pull request #4172 from jimfb/freeze-props
Freeze ReactElement.props in dev mode
2015-06-19 14:13:17 -07:00
Johannes Lumpe
b16f9d42b1 Guard against a null node
This could fix #2619
2015-06-19 11:21:22 +03:00
Sebastian Markbåge
59dfe87d04 Merge pull request #4171 from sebmarkbage/simplifylifecycle
Simplified Life Cycles
2015-06-18 23:16:27 -07:00
Sebastian Markbage
c1330dcfcd Unit tests for unmounted setState and isMounted 2015-06-18 22:55:52 -07:00
Jim
95373ce769 Freeze ReactElement.props in dev mode 2015-06-18 14:49:06 -07:00
Sebastian Markbage
8659223939 Lint fixes 2015-06-18 14:12:21 -07:00
Sebastian Markbage
dddebd1344 Use hack to support isMounted without stateful module
This hack allow us to get rid of the stateful module ReactLifeCycle since
we can infer the value of isMounted even without it. This gets rid of
the try/catch which is deopting all mountComponent calls.

As a next step we could deprecate isMounted completely and avoid stateful
APIs. Since it can be easily simulated if you truly need it.
2015-06-18 14:10:12 -07:00
Sebastian Markbage
140af9b985 Allow callbacks to be enqueued during componentWillMount
Since I fixed the server-side rendering it is now possible to trigger these
callbacks on the client alone. They will still be queued up on the server
but they are never executed.
2015-06-18 13:35:39 -07:00
Sebastian Markbage
e737acb472 Let updates be enqueued during render
This allows updates to be enqueued during render. setState in
componentWillMount will still be collected as part of the first pass so
if nothing else get added as pending, they won't trigger a second rerender.

This allow us to get rid of one more stateful special case.
2015-06-18 13:35:39 -07:00
Sebastian Markbage
40b7c19a89 Use a custom batching strategy for server rendering
This simply ignores any enqueued actions. This means that we don't have to have special logic for componentWillMount. It is just that those updates are never enqueued.
2015-06-18 13:34:30 -07:00
Sebastian Markbage
3af73834d9 Remove currentlyUnmountingComponent
This was used for any invariant that was subsequently removed. It turns
out that this is completely unnecessary now. Any setState calls will
enqueue and update and the component added to the update queue. However,
since the pending fields are reset after componentWillUnmount, any update
will still be ignored.
2015-06-18 12:36:50 -07:00
Sebastian Markbage
7443f63ae9 Remove an unnecessary warning
It was impossible to get here because if you enqueue something

Also ensure that they're only used in DEV because we will be reading
state that is DEV only here.
2015-06-18 12:36:45 -07:00
Sebastian Markbage
c4cafcecd9 Move current owner to isomorphic
This should only be used for tracking string refs. For that purpose, we
need a single central stateful module that is coupled to createElement.
Which is why it needs to live in isomorphic.

Eventually this will go away completely.
2015-06-18 09:05:35 -07:00
Ben Alpert
d76e3e1632 Fix exceptions when running grunt test --debug 2015-06-17 20:57:04 -07:00
Sebastian Markbage
1224a203bb Inject the update queue into classes
This decouples the stateful imperative API from the class creation.
Instead, they get injected into the class from the renderer. Stateful
modules should always be injected.

As a convenience, just like props/context/refs, we set it up after
construction using mutation. That way it is optional to pass it along
the super call constructor chain.
2015-06-17 18:57:26 -07:00
Ben Alpert
016021207c Merge pull request #4154 from spicyj/gh-3478
Improve error message when mounting non-string/function elements
2015-06-17 16:26:02 -07:00
Paul O’Shannessy
a841b4f5fb Merge pull request #2981 from hzoo/jsdoc-fixes 2015-06-17 16:06:37 -07:00
Paul O’Shannessy
531e6280a3 Merge pull request #4158 from zpao/mv-packages
Move npm packages into folder
2015-06-17 12:18:37 -07:00
Ben Alpert
642323e5a8 Improve error message when mounting non-string/function elements 2015-06-17 12:04:05 -07:00
Paul O’Shannessy
12c9fee94e Move npm packages into folder 2015-06-17 12:01:44 -07:00
Paul O’Shannessy
ec791582f4 Merge pull request #4156 from tako-black/fix_link
Fix link of getting-started.ja-JP.md
2015-06-17 11:53:21 -07:00
Paul O’Shannessy
10ada3b5f5 Merge pull request #4157 from zpao/svg-image
Support SVG image, other related cleanup
2015-06-17 11:44:29 -07:00
Paul O’Shannessy
ace49f304b Merge pull request #4100 from zpao/deprecate-react-calls
Deprecate non-isomorphic react methods in npm module
2015-06-17 11:15:46 -07:00
Paul O’Shannessy
bdbbe40b1e Merge pull request #4140 from zpao/mv-errorutils
Move ReactErrorUtils out of vendor
2015-06-17 10:51:02 -07:00
Paul O’Shannessy
efdd75685d Support SVG image 2015-06-17 10:47:53 -07:00
Paul O’Shannessy
572a1d895c Update getMarkupWrap with list of SVG supported in ReactDOM 2015-06-17 10:40:11 -07:00
Paul O’Shannessy
265fdc3eed Rewrite SVG initialization in getMarkupWrap 2015-06-17 10:37:13 -07:00
Kohei TAKATA
3c53d25587 Fix link of getting-started.ja-JP.md 2015-06-17 22:17:47 +09:00
Ben Alpert
c265504fe2 Merge pull request #4152 from spicyj/rce
Disallow passing a DOM component to reactComponentExpect
2015-06-16 23:33:09 -07:00
Ben Alpert
306c2dd5a9 Merge pull request #4151 from spicyj/fairti
Disallow passing a DOM component to findAllInRenderedTree
2015-06-16 23:32:53 -07:00
Ben Alpert
cf6b3ff0e2 Disallow passing a DOM component to reactComponentExpect
We won't be able to support this after DOM-components-as-refs but we don't expect many people to be passing DOM components to this function anyway, and it should be fairly straightforward for people to clean up failing unit tests using this function.

(This module also isn't public API and never has been.)
2015-06-16 17:51:06 -07:00
Ben Alpert
4070c4ca20 Disallow passing a DOM component to findAllInRenderedTree
We won't be able to support this after DOM-components-as-refs but we don't expect many people to be passing DOM components to this function anyway, and it should be fairly straightforward for people to clean up failing unit tests using this function.
2015-06-16 16:37:37 -07:00
Ben Alpert
c9b0c26966 Invert logic in findAllInRenderedTreeInternal
With DOM components we won't be able to go from public instance to internal instance reliably, so do the traversal on internal instances.
2015-06-16 14:38:03 -07:00
Paul O’Shannessy
e571b32061 Wrap calls to deprecated functions with a warning. 2015-06-16 13:23:40 -07:00
Paul O’Shannessy
f306ed65b3 Merge pull request #4121 from cristovaov/tutorial-doc/script-src
update script sources to be even with the example file ...
2015-06-16 12:37:20 -07:00
Paul O’Shannessy
6248abb6ee Merge pull request #4142 from zpao/lint-changed
npm script to run lint only on changed files
2015-06-16 11:41:28 -07:00
Paul O’Shannessy
ddac9473ca npm script to run lint only on changed files 2015-06-16 11:24:02 -07:00
Ben Alpert
efcf2e318e Merge pull request #4145 from RReverser/patch-1
Update 2015-06-12-deprecating-jstransform-and-react-tools.md
2015-06-16 10:57:50 -07:00
Sebastian Markbåge
2d29691019 Merge pull request #4105 from sebmarkbage/moveismounted
Move isMounted logic into the ReactUpdateQueue
2015-06-16 10:36:04 -07:00
Ingvar Stepanyan
cab21c7783 Update 2015-06-12-deprecating-jstransform-and-react-tools.md
Add paragraph about parsing JSX after deprecation of esprima-fb.
2015-06-16 16:18:18 +03:00
Luke Horvat
9a2e5f2cc5 Add IIFE example to JSX documentation 2015-06-16 19:46:25 +10:00
Paul O’Shannessy
93be1939b5 Move ReactErrorUtils out of vendor
Some other small changes now that it's linted.
2015-06-16 01:16:17 -07:00
Ben Alpert
78da37da50 Merge pull request #4137 from spicyj/setpropsinternal
Remove _setPropsInternal
2015-06-15 23:33:14 -07:00
Ben Alpert
ee367a8a02 Remove _setPropsInternal
Nothing uses this.
2015-06-15 23:28:27 -07:00
Ben Alpert
d67f23fb0e Merge pull request #4115 from spicyj/dom-hash
Reduce hash lookups for DOM properties
2015-06-15 14:15:55 -07:00
alexpien
f1e524b0b1 Add support for appear and appear-active classes 2015-06-15 12:05:18 -07:00
Paul O’Shannessy
a2862f3c2f Merge pull request #4097 from zpao/react-dom-package
Build react-dom package
2015-06-15 12:04:44 -07:00
Paul O’Shannessy
3bae8f5f35 Build react-dom package 2015-06-15 11:01:39 -07:00
Paul O’Shannessy
193773e349 Merge pull request #4103 from marocchino/ko-update
Update Korean transltaion to 4c778e2
2015-06-15 10:56:40 -07:00
Paul O’Shannessy
f8ffb0f8b3 Merge pull request #4132 from tako-black/translate_why-react_to_japanese
Translate 01-why-react.md to Japanese
2015-06-15 10:51:32 -07:00
Kohei TAKATA
1d3906f91d Translate 01-why-react.md to Japanese 2015-06-15 21:30:12 +09:00
Cristovao Verstraeten
c227a398ba update script sources to be even with the example file in reactjs/react-tutorial repo ... apply to japanese and korean translation (+2 squashed commit)
Squashed commit:

[4564e55] Ensures we don't need to update this page for every release.

[b0d60f9] update script sources to be even with the example file in reactjs/react-tutorial repo
2015-06-15 13:30:15 +02:00
Paul O’Shannessy
cfe428e510 Merge pull request #4128 from prathamesh-sonpatki/more-typos
Fix typos in ReactServerRenderingTransaction.js
2015-06-15 00:32:53 -07:00
Prathamesh Sonpatki
7b0764b1d2 Fix typos in ReactServerRenderingTransaction.js
- There were some more occurrences of typos fixed in
   https://github.com/facebook/react/pull/4123.
2015-06-15 12:42:45 +05:30
Paul O’Shannessy
80cc63ffce Merge pull request #4123 from carterchung/patch-1
Corrected spelling in ReactReconcileTransaction.js
2015-06-15 00:03:47 -07:00
Carter Chung
c01352232b Corrected spelling
ReactReconcileTransaction.js
2015-06-13 18:21:17 -07:00
Ben Alpert
da40027dfd Merge pull request #4119 from iamdustan/patch-1
s/parse/parser in jstransform deprecation blog post
2015-06-12 21:52:13 -07:00
Ben Alpert
434a64a08a Merge pull request #4114 from spicyj/void-warn
Add owner to void element children warning
2015-06-12 21:41:24 -07:00
Ben Alpert
99b89ff1b3 Add owner to void element children warning 2015-06-12 21:37:51 -07:00
Dustan Kasten
54e77a251c s/parse/parser in jstransform deprecation blog post 2015-06-12 23:57:49 -04:00
Ben Alpert
40963e503b Reduce hash lookups for DOM properties 2015-06-12 17:10:26 -07:00
Paul O’Shannessy
26cc5e1c43 [blog] Deprecate JSTransform & react-tools 2015-06-12 16:45:15 -07:00
Paul O’Shannessy
830bc92d36 Merge pull request #4112 from kevhuang/doc/readme-grammar
Remove extra period
2015-06-12 12:10:12 -07:00
Kevin Huang
7e27772625 Remove extra period 2015-06-12 11:29:26 -07:00
Sebastian Markbåge
a1cf88b098 Merge pull request #4091 from sebmarkbage/updatequeuewarning
Make setState in render a warning, not an invariant
2015-06-11 18:41:46 -07:00
Sebastian Markbage
ffd5b16d5f Move isMounted logic into the ReactUpdateQueue
This is kind of a confusing place for it but it is intimitely tied to the
update life cycle which is what the update queue is about.

This kills some dependencies from isomorphic to the renderer.
2015-06-11 18:39:13 -07:00
Shim Won
e67c0943b8 Update Korean transltaion to 4c778e2 2015-06-12 10:24:07 +09:00
Benjamin Woodruff
e4abdcb31b Merge pull request #4102 from tomarak/patch-1
Fixed grammar in CLA section of contribution guide
2015-06-11 17:57:32 -07:00
Anuj Tomar
61ef4a24cb Fixed grammar in CLA section of contribution guide
took out quotation marks from CLA header as per MLA standards
2015-06-11 17:49:46 -07:00
Ben Alpert
4c778e2e4b Merge pull request #4098 from spicyj/grunt
Inline requires in Gruntfile
2015-06-11 15:14:09 -07:00
Ben Alpert
67a98468b2 Inline requires in Gruntfile
I think this makes it quite a bit easier to understand.
2015-06-11 15:00:30 -07:00
Paul O’Shannessy
128390a691 Merge pull request #4095 from zpao/update-jest
Update jest to latest
2015-06-11 11:07:20 -07:00
Paul O’Shannessy
b4b542303d Update jest to latest 2015-06-11 11:01:00 -07:00
Paul O’Shannessy
e98acaa4a7 Merge pull request #4058 from yiminghe/className_contains
fix className check in scryRenderedDOMComponentsWithClass when encounter new line
2015-06-11 09:37:09 -07:00
Paul O’Shannessy
9a93f24709 [lint] Ignore generated docs 2015-06-11 09:27:05 -07:00
yiminghe
a5f3962ef6 update code style 2015-06-11 23:26:09 +08:00
yiminghe
69339a0f67 update code style 2015-06-11 23:21:52 +08:00
Sebastian Markbage
02aafb5162 Make setState in render a warning, not an invariant
We keep track of the fact that something is rendering for a bunch of
warnings. (ReactCurrentOwner.current !== null)

Once we get rid of owner for string refs, I'll convert those to something
like "isRendering" instead. The interesting part is that feature `__DEV__`
only. It is only used for warnings. Except for this case.

This means that we can get rid of the special case for the isRendering
stack on in prod.
2015-06-10 18:33:59 -07:00
Sebastian Markbåge
8b24b3d8b0 Merge pull request #4090 from sebmarkbage/fixdomcomponentest
Use the public render API in ReactDOMComponent-test
2015-06-10 17:57:33 -07:00
Sebastian Markbage
3cdf718504 Use the public render API in ReactDOMComponent-test
Avoids testing a non-public API. First step towards refactoring more of
these internals to not be instances. Also gets rid of an _owner usage.
2015-06-10 17:34:56 -07:00
Paul O’Shannessy
f55b93672f Merge pull request #4088 from zpao/fix-class-test
Fix Class tests
2015-06-10 17:19:40 -07:00
Paul O’Shannessy
d580a71293 Fix Class tests
These were introduced in #4045 as a result of jest not running properly in CI.

I also fixed the places where we misspelled "misspelling".
2015-06-10 17:06:04 -07:00
Ben Alpert
6c96f9f273 Merge pull request #4086 from spicyj/ta
Remove stray call to ReactDOMTextarea.unmountWrapper
2015-06-10 15:49:04 -07:00
Ben Alpert
f073ce2ba7 Remove stray call to ReactDOMTextarea.unmountWrapper
ReactDOMInput has this but ReactDOMTextarea doesn't so we shouldn't try to call it.
2015-06-10 15:31:27 -07:00
Jim
88042b1b00 Merge pull request #4074 from jimfb/docs-context-parameter-confusing
Fixed confusing use of the word/name `context` in documentation
2015-06-10 13:32:03 -07:00
Ben Alpert
4f73ce2c95 Merge pull request #4077 from neojski/svg-namespace
Add xmlns to svg wrap
2015-06-10 12:19:45 -07:00
Jim
537a84183a Merge pull request #3752 from jhicken/Custom-Element-Support
Ignore whitelisted attributes for native custom elements.
2015-06-10 10:58:54 -07:00
Ben Alpert
46cec1949d Merge pull request #4071 from spicyj/warn-dom-props
Fix IE8
2015-06-10 10:16:57 -07:00
Jeff Hicken
7256f0976c Ignore whitelisted attributes for native custom elements that use the is attribute. 2015-06-10 10:00:21 -06:00
Tomasz Kołodziejski
c9fab582c4 Add xmlns to svg wrap
Closes #4072.
2015-06-10 15:57:05 +02:00
Jim
5446ef1c14 Fixed confusing use of the word/name in documentation 2015-06-10 02:48:48 -07:00
Ben Alpert
13a8758fc8 Fix IE8 2015-06-09 18:45:29 -07:00
Ben Alpert
0abb350530 Merge pull request #4070 from tako-black/fix_md_file
Fix code of getting-started-ja-JP
2015-06-09 17:01:14 -07:00
Kohei TAKATA
005b65c17b Fix code of getting-started-ja-JP 2015-06-10 08:52:47 +09:00
yiminghe
e704503dc7 optimize className check 2015-06-10 01:11:39 +08:00
Scott Feeney
61d8de3f3f Merge pull request #4003 from AnSavvides/on-change-vs-on-input
[#3964] Add note about React's onChange vs. DOM's oninput
2015-06-09 11:13:28 -04:00
Paul O’Shannessy
04a025f3b7 Merge pull request #4046 from basarat/patch-2
📝 document changes for classes
2015-06-08 21:46:39 -07:00
Paul O’Shannessy
3faad4f65f Merge pull request #4063 from zpao/fix-ja-docs
fix japanese docs permalinks
2015-06-08 20:16:49 -07:00
Basarat Ali Syed
b7fe1ac0fc 📝 link to docs and not the blog post 2015-06-09 11:33:33 +10:00
Paul O’Shannessy
8488cb4dac fix japanese docs permalinks 2015-06-08 18:18:57 -07:00
Paul O’Shannessy
2b53acb00a Merge pull request #4045 from davemeetsworld/add-warning-for-mispelling-of-componentWillReceiveProps
Added warning for mispelling of componentWillReceiveProps and updated…
2015-06-08 15:12:40 -07:00
David Baker
2d8c4be000 Added warning for mispelling of componentWillReceiveProps and updated tests 2015-06-08 22:44:30 +01:00
Paul O’Shannessy
5955379753 Merge pull request #4060 from cody/addons
Fix addon name in npm Readme
2015-06-08 14:00:20 -07:00
Paul O’Shannessy
a74138bdee Fix docblock of ReactFragment 2015-06-08 13:49:29 -07:00
Stefan Dombrowski
c9ab11f5ff Fix addon name in npm Readme 2015-06-08 22:39:12 +02:00
Ben Alpert
6b8ed9b64e Merge pull request #3884 from glenjamin/patch-3
Document boolean attributes in JSX
2015-06-08 13:28:39 -07:00
Paul O’Shannessy
7f7528c454 Merge pull request #4059 from jquense/patch-3
fix my embarrassing amount of typos in this 4 line change
2015-06-08 13:01:15 -07:00
Benjamin Woodruff
f27d130323 Merge pull request #4040 from PiPeep/eslint-updates
Update eslint-related dependencies
2015-06-08 13:00:13 -07:00
Jason Quense
813649cbc7 fix my embarrassing amount of typos in this 4 line change 2015-06-08 15:59:30 -04:00
Paul O’Shannessy
09993a1379 Merge pull request #4054 from jquense/patch-2
Update npm Readme to new method of accessing addons
2015-06-08 12:53:28 -07:00
Ben Alpert
8614dd3cf9 Merge pull request #3984 from neojski/uppercase-node-name
Always toLowerCase when comparing nodeName or tagName
2015-06-08 11:44:56 -07:00
Ben Alpert
0e3ae67418 Merge pull request #4043 from spicyj/80
Remove line length lint warning
2015-06-08 10:40:42 -07:00
Ben Alpert
39f232b9aa Merge pull request #4042 from spicyj/warn-dom-props
Warn when accessing .props, .setProps on DOM components
2015-06-08 10:40:26 -07:00
Ben Alpert
bfcad9614a Warn when accessing .props, .setProps on DOM components 2015-06-08 10:36:20 -07:00
Benjamin Woodruff
52eca1eb69 Update eslint-related dependencies
- babel-eslint ^3.1.14 fixes babel/babel-eslint#120
- babel updated from ^5.3.3 to ^3.5.5, which changes stuff, I guess
- eslint updated from ^0.21.2 to ^0.22.1, which makes `no-shadow` also
  check class declarations
2015-06-08 08:41:13 -07:00
Jason Quense
7fa8c79d40 Update docs to new method of accessing addons 2015-06-07 19:07:36 -04:00
Andreas Savvides
ae83e90ec7 [#3964] Add note about React's onChange vs. DOM's oninput 2015-06-07 10:39:08 +01:00
Tomasz Kołodziejski
2bb69328ae Always toLowerCase when comparing nodeName or tagName
In xml node name casing is exactly the same as the node was originally named.
Make sure to convert node and tag names to lower case before making any node
and tag name checks.

Fixes #3960.
2015-06-06 10:28:43 +02:00
Basarat Ali Syed
b994d076d1 📝 document changes for classes
Taking https://github.com/facebook/react/pull/4013#discussion_r31829922 into account
2015-06-06 10:23:41 +10:00
Ben Alpert
ba81b60ad8 Merge pull request #4037 from spicyj/ref-trans
Only enqueue attachRefs if refs are present
2015-06-05 12:42:09 -07:00
Ben Alpert
edee1c7ed7 Merge pull request #4035 from spicyj/dc-os
Convert select/option to not use wrappers
2015-06-05 12:41:34 -07:00
Benjamin Woodruff
0dab63b905 Merge pull request #4034 from PiPeep/eslint-rules-as-a-plugin
Load custom eslint rules as plugin, w/o --rulesdir
2015-06-05 10:43:02 -07:00
Ben Alpert
c6837507f9 Only enqueue attachRefs if refs are present
for #4036
2015-06-04 22:57:46 -07:00
Ben Alpert
06de43d73e Remove line length lint warning
...because the current situation isn't helpful; no one looks at the list. Our style guide hasn't changed.
2015-06-04 18:14:31 -07:00
Ben Alpert
abfd151b90 Convert select/option to not use wrappers 2015-06-04 18:13:54 -07:00
Ben Alpert
806ff23f03 Merge pull request #4033 from spicyj/dc-events
Convert form, iframe, img to not use wrappers
2015-06-04 17:23:48 -07:00
Benjamin Woodruff
30cce21ae6 Load custom eslint rules as plugin, w/o --rulesdir
This allows us to load the eslint rules without requiring command-line
arguments, which avoids breaking editors with eslint plugins.

https://github.com/eslint/eslint/issues/2180#issuecomment-87722150
2015-06-04 17:04:45 -07:00
Benjamin Woodruff
58302a71c4 Merge pull request #4032 from PiPeep/babel-eslint-no-unused-vars
Roll back to babel-eslint 3.1.9
2015-06-04 15:53:04 -07:00
Ben Alpert
a825380840 Convert form, iframe, img to not use wrappers
Test Plan:
Tested manually that rendering an `<img />` triggers its onLoad handler.
2015-06-04 15:52:34 -07:00
Benjamin Woodruff
40eb94d13e Roll back to babel-eslint 3.1.9
spicyj noticed newer versions of babel-eslint seemed not to error on
no-unused-vars, and I was able to repro. It seems like something broke
between 3.1.9 and 3.1.10. (Smaller repro case and babel-eslint bug
report to come)

His commit failed on travis, but not on his local machine:
https://travis-ci.org/facebook/react/jobs/65468729
2015-06-04 15:43:41 -07:00
Benjamin Woodruff
1f307ae118 Merge pull request #4029 from PiPeep/warning-invariant-rules-take-two
Fix problems with/improve warning and invariant rules (take two)
2015-06-04 15:10:13 -07:00
Benjamin Woodruff
2fa1b2c810 Attempt to simplify/fix warnAndMonitorForKeyUse
> The two callers of this function have different warning configs
> internally (static_upstream/core/createWarning.js) so we can't sync it
> like this without changing behavior. We should just split this out
> into two separate warning calls probably – this code is a little
> overabstracted.

https://github.com/facebook/react/pull/4021#discussion_r31690020
@spicyj

I think completely removing warnAndMonitorForKeyUse is a bit difficult, without
duplicating a ton of code. This at least ensures that the format string passed
to `warning` is unique. Plus, because the FB internal code in question only
matches the beginning of the format string, I think there should be zero
internal changes that need to be made to support this refactor.
2015-06-04 15:07:17 -07:00
Paul O’Shannessy
da27129f73 Merge pull request #3913 from edvinerikson/edvinerikson/better-warning-message
Added component displayName to warning message in ReactUpdateQueue.js
2015-06-04 15:00:36 -07:00
Ben Alpert
aacd7ac57d Merge pull request #4030 from spicyj/dc-button
Convert ReactDOMButton
2015-06-04 14:47:58 -07:00
Benjamin Woodruff
c91fd8ac14 Check warning/invariant calls have good messages
The `warning` implementation checked that the message is long enough to
be useful. See commit f5038829d for more information.

It makes more sense to move this into a lint rule, and also to apply it
for both `warning` and `invariant`. We can safely remove stuff from the
`warning` implementation as we replace the function internally anyways.

https://github.com/facebook/react/pull/4021#issuecomment-108694976
@spicyj
2015-06-04 14:19:22 -07:00
Ben Alpert
9dbc29e276 Convert ReactDOMButton 2015-06-04 13:59:32 -07:00
Sebastian Markbåge
2d9a0846f1 Merge pull request #3940 from troutowicz/context_processing
Process childContextTypes via internal constructor
2015-06-04 13:54:14 -07:00
Ben Alpert
d993475e9e Merge pull request #4027 from spicyj/dc-textarea
Convert ReactDOMTextarea to not be a wrapper
2015-06-04 13:53:43 -07:00
Ben Alpert
67a4f0e852 Merge pull request #4028 from spicyj/npm-run-lint
Fix `npm run lint`
2015-06-04 13:37:00 -07:00
Ben Alpert
d2e7e56cc4 Convert ReactDOMTextarea to not be a wrapper 2015-06-04 13:36:46 -07:00
Paul O’Shannessy
2b195cb1ca Merge pull request #3941 from troutowicz/testing_type
Assert instance type using internal constructor
2015-06-04 13:31:23 -07:00
Ben Alpert
b1538e36e3 Fix npm run lint
Broke in #4021.
2015-06-04 13:20:42 -07:00
Paul O’Shannessy
d3db430baf Merge pull request #4022 from zpao/fix-undefined-location
Use correct location when running LinkedValueUtils proptype checks
2015-06-04 13:02:54 -07:00
Edvin Erikson
fa9382654a reversed line 54 (no-op message) in ReactUpdateQueue.js and added it to the line above 2015-06-04 21:47:35 +02:00
Edvin Erikson
58edaab705 Added component displayName to warning message in ReactUpdateQueue.js 2015-06-04 21:47:34 +02:00
Ben Alpert
e04015a4a2 Merge pull request #4011 from spicyj/cfpc
Inline createFullPageComponent in ReactDOMComponent
2015-06-04 12:44:02 -07:00
Benjamin Woodruff
aecc48d877 Fix wording of warning-and-invariant-args linter
The wording for an incorrect number of arguments based on counting %s
substitutions. The previous wording was backwards and a bit yoda-like
leading to possible ambiguity.
2015-06-04 10:51:15 -07:00
Benjamin Woodruff
9760e13f36 Merge pull request #4007 from PiPeep/eslint-plugin-react
Enable more eslint-plugin-react rules
2015-06-04 09:51:47 -07:00
Benjamin Woodruff
c04a9e632c Enable react/wrap-multilines eslint rule
Multiline jsx literals in a return should be paren-wrapped.
2015-06-04 09:44:47 -07:00
Benjamin Woodruff
f41abdf70f Enable more eslint-plugin-react rules
This should contain all the rules we probably want to use, except
react/wrap-multilines, which requires a larger codemod, and would
clutter this commit.
2015-06-04 09:43:16 -07:00
Paul O’Shannessy
6b79977c31 Merge pull request #3416 from koba04/remove-jshint
Remove the codes relating to jshint
2015-06-03 19:45:51 -07:00
Benjamin Woodruff
56771b6701 Merge pull request #4021 from PiPeep/warning-invariant-rules
Add custom eslint rule for warning and invariant
2015-06-03 19:03:41 -07:00
Toru Kobayashi
ce46068def Remove the codes relating to jshint 2015-06-04 09:32:37 +09:00
Benjamin Woodruff
17e7046754 Add custom eslint rule for warning and invariant
See #2869

Checks that the *second* argument of warning and invariant are a literal
string, or a concatination of literal strings, and that the number of
arguments is correct based on the number of %s substrings.

This commit also fixes a few places where the existing code had broken
error messages!

The rule itself is pretty straightforward, although adding the tests
ended up being a bit painful, as eslint-tester depends on mocha, and
therefore needs to be run in a separate grunt task.
2015-06-03 17:19:32 -07:00
Paul O’Shannessy
ec289c27f9 Use correct location when running LinkedValueUtils proptype checks 2015-06-03 16:45:58 -07:00
Jim
9a02ea246d Merge pull request #3067 from jimfb/arbitrary-attributes-for-dash-elements
Support arbitrary attributes on elements with dashes in the tag name.
2015-06-03 12:52:54 -07:00
Ben Alpert
fc341c5537 Inline createFullPageComponent in ReactDOMComponent 2015-06-02 17:24:06 -07:00
Benjamin Woodruff
4c3e9650ba Merge pull request #3998 from PiPeep/comma-dangle
Switch to using comma-dangle: always-multiline
2015-06-02 17:02:39 -07:00
Benjamin Woodruff
95edacc994 Remove /*eslint-disable comma-dangle*/ comments
Commit 9d3f7f30ba3ba55cbfd98b26fdd2cc7289716650 reverses the rule, so
these comments aren't needed anymore.
2015-06-02 16:57:43 -07:00
Benjamin Woodruff
c089eece50 Switch to using comma-dangle: always-multiline
This is a machine-generated codemod, but it's pretty safe since it was
generated by hooking into eslint's own report.

A few files had to be touched up by hand because there were existing
formatting issues with nested arrays/objects:

src/shared/utils/__tests__/OrderedMap-test.js
src/shared/utils/__tests__/Transaction-test.js
src/shared/utils/__tests__/traverseAllChildren-test.js
src/isomorphic/children/__tests__/ReactChildren-test.js
2015-06-02 16:57:26 -07:00
Jim
e0e8270c9d Merge pull request #4009 from jimfb/kill-.type
Kill .type (was deprecated in 0.13, to be removed in 0.14)
2015-06-02 14:03:26 -07:00
Jim
c9153e6462 Kill .type (was deprecated in 0.13, to be removed in 0.14) 2015-06-02 13:36:51 -07:00
Jim
b1db817dc5 Support arbitrary attributes on elements with dashes in the tag name. 2015-06-02 11:57:29 -07:00
Paul O’Shannessy
0e37fde307 Merge pull request #4006 from cody/console
Remove debug message
2015-06-02 11:31:01 -07:00
Stefan Dombrowski
3e0de40d3a Remove debug message 2015-06-02 19:31:26 +02:00
Ben Alpert
1af9b54561 Merge pull request #3930 from Wildhoney/add-is-attribute
Added 'is' attribute for custom elements
2015-06-02 02:47:33 -07:00
Wildhoney
0d060d135f Added 'is' attribute 2015-06-02 10:42:31 +01:00
Ben Alpert
8c2a4991eb Merge pull request #3976 from spicyj/no-wrapper
Make DOM wrapper component using lower-level primitives
2015-06-01 20:20:20 -07:00
Ben Alpert
52a229f168 Make DOM wrapper component using lower-level primitives
Introducing: a really lame version of composite components, right inside of ReactDOMComponent!

Now ReactDOMInput isn't an actual component. This brings us closer to exposing DOM nodes as refs.
2015-06-01 20:16:01 -07:00
Jim
db82ed09c5 Merge pull request #3999 from jimfb/more-context-cleanup
Removed ReactContext (cleanup)
2015-06-01 17:08:23 -07:00
Jim
5ebcd9d89b Removed ReactContext (cleanup) 2015-06-01 16:46:45 -07:00
Paul O’Shannessy
1a2a54b947 Merge pull request #3988 from jrobison153/troubleshooting_docs
Troubleshooting documentation
2015-06-01 16:33:33 -07:00
Benjamin Woodruff
13823ec218 Merge pull request #3985 from PiPeep/eslint-tests
Enable linting for __tests__
2015-06-01 16:05:42 -07:00
Benjamin Woodruff
21ca3f732f Enable linting for __tests__
Closes #3971.

> After #3968, the next thing we should do is start linting our tests.
> Historically we've ignored them due to lack of parser compatibility.
> But that shouldn't be a problem anymore. We may want to integrate
> https://www.npmjs.com/package/eslint-plugin-react to more aggressively
> lint our JSX in tests.

I understand this diff touches a lot of stuff, so I tried to keep it to
a near-minimal set of changes to make eslint happy.
2015-06-01 16:01:03 -07:00
Paul O’Shannessy
659fda1f1c Merge pull request #3997 from donabrams/patch-1
Trivial misspelling in enqueueForceUpdate docs
2015-06-01 12:36:49 -07:00
Don Abrams
8074136bcb Trivial mispelling in docs 2015-06-01 13:28:20 -06:00
Ben Alpert
f661d7c407 Merge pull request #3993 from arianf/doctype
added missing DOCTYPE
2015-05-31 19:58:15 -07:00
Arian Faurtosh
f8f92f4169 added missing DOCTYPE 2015-05-31 19:41:01 -07:00
Ben Alpert
2fbe15e370 Merge pull request #3992 from thorn0/patch-1
Remove envify from the basic-commonjs example
2015-05-31 15:31:34 -07:00
thorn0
58492362c5 Remove envify from the basic-commonjs example
`envify` is installed as a dependency of the `react` package. There is no need in installing it one more time
2015-06-01 01:09:46 +03:00
jrobison
361f73a43e Addition of troubleshooting section 2015-05-30 05:20:29 -04:00
Paul O’Shannessy
38acadf6f4 Merge pull request #3975 from marocchino/update-korean
Update Korean transltaion to 58fb322
2015-05-29 14:25:35 -07:00
Paul O’Shannessy
fa56c52563 Merge pull request #3980 from cody/http
Revert links to non-https fiddles back to http in old blog posts
2015-05-29 14:23:19 -07:00
Stefan Dombrowski
cd54876518 Revert links to non-https fiddles back to http in old blog posts 2015-05-29 09:45:48 +02:00
Ben Alpert
54e3f12877 Merge pull request #3977 from spicyj/jest-lines
Retain lines in babel under jest
2015-05-28 16:10:28 -07:00
Ben Alpert
049fd9a902 Retain lines in babel under jest
Now stack trace lines are actually useful.
2015-05-28 16:09:25 -07:00
Shim Won
6a4617a4cd Update Korean transltaion to 58fb322 2015-05-29 07:53:21 +09:00
Benjamin Woodruff
58fb322e21 Use babel-eslint and update eslint
-   Removes esprima-fb dependency
-   Tightens up eslintrc with some minor rules we were pretty-much
    following anyways.
-   Adds pretty colors to the `grunt lint` output
-   Breaks block-scoped-var :(
2015-05-28 09:42:55 -07:00
Paul O’Shannessy
1df466b23a Merge pull request #3967 from jamischarles/master
Added challenge, keyParams and keyType on <keygen>
2015-05-28 09:32:10 -07:00
Jim
74915803a8 Merge pull request #3970 from jimfb/remove-_context
Removed ReactElement._context (cleanup)
2015-05-27 17:09:53 -07:00
Ben Alpert
8471cc5f47 0.14.0-alpha3 2015-05-27 16:47:35 -07:00
Jim
4e129220a6 Removed ReactElement._context (cleanup) 2015-05-27 16:37:11 -07:00
Ben Alpert
34f8a0d6da Merge pull request #3969 from spicyj/pt
Fix PropTypes.{oneOf, oneOfType} validation
2015-05-27 16:07:48 -07:00
Ben Alpert
ac349cfbe5 Fix PropTypes.{oneOf, oneOfType} validation
Follow-up to #3963. (Returning an Error wasn't useful; it just caused a later error when actually using it because type checkers need to be functions.)
2015-05-27 15:58:16 -07:00
Jamis Charles
dc01c0e66d Added challenge, keyParams and keyType on <keygen>
Chrome allowed some of these to be 'null' (allow `node.challenge` etc),
but FF didn't work. This will tell React to use node.setAttribute() to
set these values.

Tested in FF, Chrome, Safari. <keygen> isn't supported on IE.

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen
2015-05-27 11:56:23 -07:00
Ben Alpert
f44bf7e67a Merge pull request #3966 from spicyj/no-worker-test
Remove web worker test
2015-05-27 10:53:53 -07:00
Ben Alpert
12ea09a03c Remove web worker test 2015-05-27 10:52:32 -07:00
Paul O’Shannessy
1503994821 Merge pull request #3963 from alansouzati/REACT_PROP_ARRAY_VALIDATION
Adding validation for array in ReactPropTypes.
2015-05-26 16:42:49 -07:00
Alan Souza
5d55bbc1b7 Adding validation for array in ReactPropTypes. 2015-05-26 15:54:31 -07:00
Paul O’Shannessy
3e1349bb65 Merge pull request #3950 from cody/capture
Add capture to supported attributes
2015-05-26 11:34:35 -07:00
Stefan Dombrowski
3092454940 Add capture to supported attributes 2015-05-24 21:20:40 +02:00
Jim
e1dd3cd8a1 Merge pull request #3923 from jimfb/fix-grunt-test-debug
Fixed failing unit tests in browsers that don't support WebComponents
2015-05-22 13:48:03 -07:00
Jim
7108c8a624 Fixed failing unit tests in browsers that don't support WebComponents 2015-05-22 13:27:52 -07:00
Tim Routowicz
f1e32a06e0 Assert instance type using internal constructor 2015-05-22 16:13:06 -04:00
Tim Routowicz
d7843fe4d2 Process childContextTypes via internal constructor 2015-05-22 16:07:51 -04:00
Christopher Chedeau
b249799bc7 Merge pull request #3938 from vjeux/blog_rn_release_process
[Blog post] React Native Release Process
2015-05-22 12:37:55 -07:00
Christopher Chedeau
516b623121 [Blog post] React Native Release Process 2015-05-22 12:34:43 -07:00
Ben Alpert
e1a9e429d3 Merge pull request #3934 from spicyj/gh-3921
Dedupe warnings in validateDOMNesting
2015-05-22 10:33:36 -07:00
Paul O’Shannessy
a78be9856a Merge pull request #3935 from julen/docs/transition-group
Docs: value for `transitionAppear` must be boolean
2015-05-22 10:21:58 -07:00
Julen Ruiz Aizpuru
c041356178 Docs: value for transitionAppear must be boolean 2015-05-22 15:22:22 +02:00
Ben Alpert
08b55e1c4f Dedupe warnings in validateDOMNesting
Fixes #3921.
2015-05-22 01:14:40 -07:00
Ben Alpert
e772c465e4 Merge pull request #3909 from spicyj/tir-redirect
Redirect Thinking in React blog post to docs
2015-05-21 22:09:48 -07:00
Ben Alpert
1d5e8c2387 Redirect Thinking in React blog post to docs
Much easier to keep this updated if it only exists in one place. Added the byline because otherwise the voice of the post doesn't sound quite right.
2015-05-21 22:09:21 -07:00
Paul O’Shannessy
a30c87525f Merge pull request #3788 from zpao/better-invariantwarning-replacement
Better invariant / warning replacement
2015-05-21 19:42:22 -07:00
Paul O’Shannessy
02f1626725 Better invariant / warning replacement 2015-05-21 19:20:56 -07:00
Ben Alpert
4aa7bffff5 Merge pull request #3931 from marocchino/update-korean
Update Korean transltaion to 5bee4a5
2015-05-21 18:33:09 -07:00
Shim Won
401caf2f96 Update Korean transltaion to 5bee4a5 2015-05-22 09:03:54 +09:00
Paul O’Shannessy
5bee4a5e29 Merge pull request #3803 from zpao/docs-fancy-authors
[docs] Give authors links.
2015-05-21 11:34:31 -07:00
Paul O’Shannessy
81950edeb1 [docs] Give authors links. 2015-05-21 11:32:38 -07:00
Paul O’Shannessy
924328b436 Update website with 0.13.3 builds
(cherry picked from commit 107ce2b80d)
2015-05-21 10:53:33 -07:00
Paul O’Shannessy
7425685c27 v0.13.3 blog post
(cherry picked from commit 179b6380cf)
2015-05-21 10:51:51 -07:00
Paul O’Shannessy
44a6cdf2bf Changelog for 0.13.3
(cherry picked from commit 95e864fd07)
2015-05-21 10:51:45 -07:00
Paul O’Shannessy
314ee6d635 Readme for 0.13.3
(cherry picked from commit 1d950ddbd4)
2015-05-21 10:51:39 -07:00
Paul O’Shannessy
631f3a4f59 Fix docs for #3690
(cherry picked from commit 2668de126c)
2015-05-21 10:51:21 -07:00
Paul O’Shannessy
f1cfd29e7e Merge pull request #3912 from laskos/shallow-context-pass
Add shallow context pass test
2015-05-20 15:11:31 -07:00
Sławomir Laskowski
2c83627ca8 Add shallow context pass test 2015-05-21 00:08:31 +02:00
Ben Alpert
e5f935636d Merge pull request #3917 from spicyj/option-context
Pass context to DOM wrappers, use it in <option>
2015-05-20 15:02:53 -07:00
Paul O’Shannessy
b687a22953 0.14.0-alpha2 2015-05-20 13:37:42 -07:00
Ben Alpert
2fafe3eb76 Pass context to DOM wrappers, use it in <option> 2015-05-20 12:30:51 -07:00
Paul O’Shannessy
a6485e11e7 Merge pull request #3896 from zpao/babel-ignore-web-components
Ignore third_party JS in internal transform step
2015-05-20 11:08:43 -07:00
Paul O’Shannessy
021574e07d [docs] Fix 404 due to relative url
Closes #3914
2015-05-20 10:15:35 -07:00
Ben Alpert
1d7da35153 Merge pull request #3910 from spicyj/gh-3904
Clarify tutorial instructions
2015-05-19 20:36:12 -07:00
Ben Alpert
c157ce3599 Clarify tutorial instructions
Fixes #3904.
2015-05-19 19:27:01 -07:00
Ben Alpert
34e2427f72 Merge pull request #3908 from spicyj/lint
Remove unused variable
2015-05-19 18:39:05 -07:00
Ben Alpert
a43b6fec45 Remove unused variable 2015-05-19 16:23:10 -07:00
Paul O’Shannessy
4cf39ef195 Merge pull request #3905 from troeggla/replace-getdomnode
Replaced call to deprected .getDOMNode() with React.findDOMNode().
2015-05-19 10:59:26 -07:00
Thomas Röggla
210dc90c95 Replaced call to deprected .getDOMNode() with React.findDOMNode().
The code sample in tip 18 in the docs contained a call to the
.getDOMNode() method which has been deprecated. The method call was
replaced with a call to React.findDOMNode(), which is the preferred way
of getting DOM nodes from a ref.
2015-05-19 18:32:07 +02:00
Ben Alpert
e47fa115bb Merge pull request #3883 from spicyj/revert-nested
Revert "Add key warning to nested collections"
2015-05-18 23:11:29 -07:00
Ben Alpert
69e6ab5083 Add test for DOM node as this.props.children 2015-05-18 23:11:07 -07:00
Ben Alpert
39402fe75d Revert "Add key warning to nested collections"
This heuristic isn't great because it relies on inspecting deep children which aren't guaranteed to be React elements. In particular, this was causing stack overflows in a component we had that used a *DOM node* as children, like `<DOMContainer>{node}</DOMContainer>`.

This reverts commits:
0a3aa8493a
64c9d9d762
0c58f4f6b1
8cf226e442
086636747f
2015-05-18 23:11:07 -07:00
Paul O’Shannessy
6502da8f8d Merge pull request #3894 from bhamodi/patch-2
Update Styling Guide in Contributing Docs
2015-05-18 10:53:09 -07:00
Paul O’Shannessy
9308a8abe6 Merge pull request #3892 from spicyj/docs-wwb
[docs] Clarify wording in Working with the Browser
2015-05-18 10:47:37 -07:00
Paul O’Shannessy
5b5e48a0d2 Ignore third_party JS in internal transform step 2015-05-18 09:50:13 -07:00
Baraa Hamodi
00342dfc26 Update Styling Guide in Contributing Docs 2015-05-17 23:38:40 -07:00
Ben Alpert
c7381ea48d [docs] Clarify wording in Working with the Browser
I think the change in #3889 misinterpreted this slightly; this makes it clearer.
2015-05-17 11:58:17 -07:00
Paul O’Shannessy
490d8835fc Merge pull request #3737 from Morhaus/nested-proptypes-warnings
Better warnings for nested propTypes
2015-05-16 12:09:29 -07:00
Paul O’Shannessy
095d4691ca Merge pull request #3888 from marocchino/korean-update
Update Korean Translation to 5275244
2015-05-16 12:03:42 -07:00
Paul O’Shannessy
97d338fd5b Merge pull request #3889 from garethnic/WorkBrowser
change wording in 'Working with the Browser'
2015-05-16 11:09:49 -07:00
Gareth Nicholson
07bfadf054 change wording 2015-05-16 15:55:29 +02:00
Shim Won
6f434b35ad Update Korean Translation to 5275244 2015-05-16 21:49:04 +09:00
Glen Mailer
0950f50753 Document boolean attributes in JSX 2015-05-16 12:00:14 +01:00
Sebastian Markbåge
5275244676 Merge pull request #3866 from sebmarkbage/coreapi
Reorganize Src Directory for Isomorphic React Package
2015-05-15 18:39:36 -07:00
Sebastian Markbage
0b063f8a09 Reorganize Src Files for Isomorphic React Package
The new folder structure is organized around major packages that are expected to ship separately in some form.

`/isomorphic`

I moved classic/modern and children utils into a directory called "isomorphic" with the main export being ReactIsomorphic. This will eventually become the "react" package.

This includes all the dependencies that you might need to create a component without dependencies on the renderer/reconciler.

The rest moves into decoupled renderers.

`/renderers/dom/client` - This is the main renderer for DOM.

`/renderers/dom/server` - This is the server-side renderer for HTML strings.

`/addons` and `/test` - Same as before for now.

You're not supposed to take on a dependency inside another package.

Shared code is organized into a "shared" directory which is intended to support all the packages in that subdirectory. Meaning that once we swap to CommonJS modules, the only time you should use `..` is to target `../shared/` or `../../shared`.

E.g. `/shared/` is common utils that are used by everything.

`/renderers/shared/` is code that is shared by all renderers, such as the main reconciliation algorithm.

Shared code will likely be copied into each package rather than referenced. This allow us to have separate state and allow inlining and deadcode elimination.
2015-05-15 18:35:22 -07:00
Paul O’Shannessy
bea5a57750 Merge pull request #3746 from chrisgrovers/patch-1
Fixed Formatting.
2015-05-15 18:09:44 -07:00
Paul O’Shannessy
c464e873fd Merge pull request #3874 from bhamodi/patch-1
Update CONTRIBUTING.md
2015-05-15 18:08:00 -07:00
Paul O’Shannessy
3ef24f73bb Merge pull request #3881 from ef718/docs-grammar
Fix punctuation and grammar
2015-05-15 17:57:36 -07:00
Paul O’Shannessy
cfa354415b Followup to #3852, use https 2015-05-15 17:51:57 -07:00
Ben Alpert
35e67a793e Merge pull request #3882 from wali-s/get-html5-minlength-working
Get HTML5 minlength working.
2015-05-15 15:51:14 -07:00
wali-s
aeb45360ed Get HTML5 minlength working.
Adding minLength=X to an input element would not work, whereas maxLength=X would work.

This change gets minLength=X working.
2015-05-15 15:47:15 -07:00
Ben Alpert
7112a35037 Merge pull request #3847 from bloodyowl/option-flatten-children
<option> added children flatten, & warn if invalid
2015-05-14 10:36:27 -07:00
Ben Alpert
69fc206f96 Merge pull request #3719 from spicyj/vdn2
Add more context to DOM nesting warning
2015-05-14 10:33:21 -07:00
Ben Alpert
5c7b4a043f Merge pull request #3651 from spicyj/tac-noi
Don't thread index through traverseAllChildren
2015-05-14 10:32:49 -07:00
Elaine Fang
d24cfa6405 Add punctuation 2015-05-14 13:15:06 -04:00
Matthias Le Brun
4a012b0741 <option> added children flatten, & warn if invalid 2015-05-14 12:44:04 +02:00
Morhaus
12a43d4eee Better warnings for nested propTypes
`arrayOf`, `shape` and `objectOf` warnings now display the full path of
the invalid key.
2015-05-14 11:33:07 +02:00
Baraa Hamodi
b276af5c0a Update CONTRIBUTING.md
Make the contributing sentence make a little bit more sense.
2015-05-13 23:17:31 -07:00
Ben Alpert
05b98ac70c Merge pull request #3872 from spicyj/nested-num
Split message for deep numeric key warning too
2015-05-13 15:32:13 -07:00
Paul O’Shannessy
db25a63c12 Merge pull request #3869 from zpao/jsx-cleanup
JSX -> Babel cleanup
2015-05-13 15:31:48 -07:00
Paul O’Shannessy
76d016c6f1 Use Babel to transform JS in docs, update other calls 2015-05-13 15:26:23 -07:00
Ben Alpert
0a3aa8493a Split message for deep numeric key warning too 2015-05-13 15:23:29 -07:00
Ben Alpert
922d531445 Merge pull request #3871 from spicyj/group
Deprecate reactjs Google Group
2015-05-13 15:16:51 -07:00
Ben Alpert
ffabf4b5ff Deprecate reactjs Google Group 2015-05-13 15:16:33 -07:00
Ben Alpert
51843ec710 Merge pull request #3870 from spicyj/gh-3865
Clarify ReactElement prop validation message
2015-05-13 15:14:00 -07:00
Ben Alpert
bed4de3eca Clarify ReactElement prop validation message
Fixes #3865.
2015-05-13 12:37:54 -07:00
Ben Alpert
67aea08b4f Merge pull request #3861 from spicyj/nested-v
Split out warning message for nested key warning
2015-05-13 11:51:11 -07:00
Paul O’Shannessy
555d5dc35c Merge pull request #3864 from cvrebert/patch-1
bower.json: remove moot `version` field
2015-05-13 11:12:10 -07:00
Paul O’Shannessy
9769f96974 [docs] Move pre-compiled JS files 2015-05-13 10:57:47 -07:00
Paul O’Shannessy
b258d34c73 Don't run non-existant fbtransform tests 2015-05-13 10:52:51 -07:00
Chris Rebert
73c84c8319 bower.json: remove moot version field
Per a325da3d79
2015-05-12 22:31:18 -07:00
Ben Alpert
64c9d9d762 Split out warning message for nested key warning
Also make sure to mark child array as validated in cloneElement as well.
2015-05-12 16:33:04 -07:00
Ben Alpert
f0bdadf85b Merge pull request #3857 from spicyj/dev-rckv
Set _reactChildKeysValidated in dev mode only
2015-05-11 17:06:18 -07:00
Ben Alpert
0c58f4f6b1 Set _reactChildKeysValidated in dev mode only 2015-05-11 17:02:49 -07:00
Jim
6b19cf9ce3 Merge pull request #3856 from chaseadamsio/chaseadamsio-patch-1
Change object typo to objects
2015-05-11 13:56:58 -07:00
Chase Adams
a21b82d151 Change object typo to objects 2015-05-11 13:29:14 -07:00
Paul O’Shannessy
1549bae2ab Merge pull request #3834 from chicoxyzzy/remove_jslint
remove jslint comments
2015-05-10 22:52:57 -07:00
Paul O’Shannessy
1748dc8131 Merge pull request #3837 from davidneat/transition-group-appear-high-level-docs
Added transitionAppear docs
2015-05-10 22:51:46 -07:00
Paul O’Shannessy
7839e07231 0.14.0-alpha1 2015-05-10 22:36:50 -07:00
Paul O’Shannessy
64014c4641 Fix esprima-fb dependency 2015-05-10 22:25:08 -07:00
Ben Alpert
0de20e35bc Merge pull request #3852 from thewarpaint/patch-1
Add Wikipedia link to Cross-site scripting article on "XSS attack" string
2015-05-10 13:28:10 -07:00
Eduardo Garcia
ee7d7487ea Add Wikipedia link to Cross-site scripting on "XSS attack" string 2015-05-10 15:22:12 -05:00
Ben Alpert
4ba67670f9 Merge pull request #3841 from spicyj/yolo
Preserve prototype with replaceState
2015-05-08 13:16:43 -07:00
Ben Alpert
d7de12fbd8 Preserve prototype with replaceState
Fixes #3418.
2015-05-08 13:11:18 -07:00
David Neubauer
f17a15a07d added animate initial mounting section to animation docs 2015-05-08 20:31:11 +02:00
Paul O’Shannessy
e135a4dbc3 Follow-up to follow-up to #3718
Cleaned up a few more ununsed things.
2015-05-07 17:29:31 -07:00
Paul O’Shannessy
4bb7abf8fe Merge pull request #3835 from zpao/fix-keys-keys-keys-test
Followup to #3758 so we actually test things
2015-05-07 17:15:11 -07:00
Paul O’Shannessy
5da94d6eb0 Followup to #3758 so we actually test things 2015-05-07 17:10:51 -07:00
chico
553dd90528 remove jslint comments 2015-05-08 03:05:51 +03:00
Paul O’Shannessy
29d548fe65 Merge pull request #3831 from MadLittleMods/tab-size-unit-less
Add support for unitless tabSize/tab-size
2015-05-07 13:09:17 -07:00
Eric Eastwood
60e1f5a103 Add support for unitless tabSize/tab-size 2015-05-07 13:51:15 -05:00
Paul O’Shannessy
d71965b988 Merge pull request #3828 from chicoxyzzy/patch-1
add a badge with latest npm package published
2015-05-07 11:29:16 -07:00
Paul O’Shannessy
72ad0c11c3 Merge pull request #3829 from murashki/ReactMultiChildText-test.js-__html-typo
ReactMultiChildText-test.js fix __html typo
2015-05-07 10:34:08 -07:00
Paul O’Shannessy
1c4965060b Merge pull request #3830 from gberg1/patch-1
Formatting of line 19 ReactNativeComponent.js
2015-05-07 10:17:29 -07:00
David Goldberg
759a393ce5 Formatting of line 19 ReactNativeComponent.js
Corrected formatting error on line 19 of ReactNativeComponent.js by adding a period in order to be consistent with the other comments in the file.
2015-05-07 10:09:00 -07:00
Yakov Dalinchuk
9b798400fd ReactMultiChildText-test.js fix __html typo 2015-05-07 16:06:11 +03:00
Sergey R
b157088e71 add a badge with latest npm package published 2015-05-07 02:21:37 +03:00
Ben Alpert
1db70dbef1 Merge pull request #3718 from framp/master
Added support for namespace attributes
2015-05-05 16:48:21 -07:00
Ben Alpert
5f32953ac7 Follow-ups for #3718
- Rename NamespaceProperties to DOMAttributeNamespaces
- Make tests pass in jest
- Remove unnecessary xmlns attributes
2015-05-05 16:46:49 -07:00
Federico Rampazzo
a88b655ccd Added support for namespace attributes 2015-05-05 16:15:25 -07:00
Paul O’Shannessy
2b9a74c0e6 Merge pull request #3777 from zpao/deprecate-react-tools
Deprecate react-tools
2015-05-05 11:06:15 -07:00
Paul O’Shannessy
d2fe87892d Remove transforms from repo, react-tools
Time to just use jstransform.
2015-05-05 10:51:51 -07:00
Jim
e0890664a7 Merge pull request #3815 from neojski/isMounted-should-return-boolean
IsMounted should always return a boolean.
2015-05-05 02:51:49 -07:00
Tomasz Kołodziejski
5ef0b416df IsMounted should always return a boolean.
Fixes #3814. isMounted used to return undefined if internalInstance
was undefined after component was unmounted.
2015-05-05 11:43:09 +02:00
Ben Alpert
5509cd74a4 Merge pull request #3813 from spicyj/babel
Replace vendor/constants recast transform with babel
2015-05-04 17:43:14 -07:00
Ben Alpert
ceb92cd78c Replace vendor/constants recast transform with babel
Built files look the same up to parenthesization and quoting. This only saves 1.5 seconds out of ~20 on a clean build but it's a little simpler.
2015-05-04 17:05:42 -07:00
Paul O’Shannessy
aee3614d80 Merge pull request #3778 from masterfung/docs-update
updated some typos, grammers, and made sentences sound better
2015-05-04 16:27:38 -07:00
Tsung Hung
f34c2eab40 updated some typos, grammers, and made sentences sound better 2015-05-04 16:26:14 -07:00
Ben Alpert
a110c76558 Merge pull request #3801 from spicyj/babel
Use Babel to build React
2015-05-04 16:14:00 -07:00
Ben Alpert
8897b00989 Remove es3ify 2015-05-04 16:13:36 -07:00
Ben Alpert
93a782b40b Use Babel to build React
Size comparison:

```
   raw     gz Compared to master @ 6ed98ec0c8
     =      = build/JSXTransformer.js
-15736  -3247 build/react-with-addons.js
  +287     +7 build/react-with-addons.min.js
-14412  -2887 build/react.js
  +274    +15 build/react.min.js
```

Differences mostly look to be various bits of whitespace that Babel ends up removing during its transforms (https://gist.github.com/spicyj/21ef31f4d95fb7a58daf). In minified files, mostly additions of `"use strict";`.
2015-05-04 14:14:09 -07:00
Henry Zhu
0937e918aa jsdoc fixes 2015-05-04 16:04:49 -04:00
Ben Alpert
dc08ae4043 Merge pull request #3805 from hejld/master
Removed redundant grave accent character from Component API docs
2015-05-02 23:00:07 -07:00
Daniel Hejl
f81d52b854 Removed redundant grave accent character from Component API docs 2015-05-02 22:22:20 -07:00
Ben Alpert
70e64ef099 Merge pull request #3797 from marocchino/update-korean
Update Korean Translation to 9484d0f
2015-05-02 12:35:06 -07:00
Ben Alpert
a6d03f36a4 Merge pull request #3802 from spicyj/cleaner-depr
Better warning messages for deprecated methods
2015-05-02 10:05:30 -07:00
Paul O’Shannessy
c8d40e0f65 Update 2015-05-01-graphql-introduction.md
Typo
2015-05-01 17:01:17 -07:00
Ben Alpert
e06d3e0ab9 Better warning messages for deprecated methods 2015-05-01 13:32:31 -07:00
Paul O’Shannessy
b264372e2b Fix a couple grammar issues in GraphQL blog post 2015-05-01 12:36:30 -07:00
Paul O’Shannessy
693da719a3 GraphQL Introduction Blog Post 2015-05-01 11:18:44 -07:00
Jim
6ed98ec0c8 Merge pull request #3794 from jsfb/fix-thinking-in-react-blog-post
Fixed jsfiddles broken on https.  Fixes 3735.
2015-05-01 10:47:12 -07:00
Shim Won
ee38a36f50 Update Korean Translation to 9484d0f 2015-05-01 09:09:09 +09:00
Ben Alpert
9484d0fc39 Merge pull request #3795 from spicyj/batch-unmount
Batch updates within top-level unmount
2015-04-30 15:05:55 -07:00
Ben Alpert
36f3a2aaff Batch updates within top-level unmount
Analogous change to #2935.
2015-04-30 15:05:44 -07:00
Jim
34b99cc69e Fixed jsfiddles broken from https conversion. Fixes 3735 2015-04-30 13:05:53 -07:00
Ben Alpert
a092b47be5 Merge pull request #3785 from iamdustan/addons
npm build: create addons directory that loads from lib. Closes #3780
2015-04-29 15:31:20 -07:00
Dustan Kasten
5cfb712088 npm build: create addons directory that loads from lib. Closes #3780 2015-04-29 18:25:36 -04:00
Ben Alpert
571c327438 Merge pull request #3786 from HurricaneJames/master
check that React renders the menuitem closing tag
2015-04-29 14:43:16 -07:00
James Burnett
d42bf671d2 check that React renders the menuitem closing tag 2015-04-29 17:32:56 -04:00
Ben Alpert
64b1f05e75 Add more context to DOM nesting warning
Better version of #3578.
2015-04-29 14:20:23 -07:00
Ben Alpert
a56d0d6dc5 Merge pull request #3781 from spicyj/elval
Fix infinite recursion in browsers with iterators
2015-04-29 13:54:08 -07:00
Paul O’Shannessy
1427522151 Merge pull request #3784 from ef718/docs-punctuation
Add punctuation
2015-04-29 12:40:41 -07:00
Elaine Fang
50e974b5b6 Add punctuation 2015-04-29 11:07:48 -04:00
Ben Alpert
8cf226e442 Fix infinite recursion in browsers with iterators
My old code here didn't work properly -- for a string child, getIteratorFn would return an iterator that gave each character as its own string, and we'd attempt to loop over that too.

Tests now work in Chrome again.
2015-04-29 00:21:00 -07:00
Paul O’Shannessy
92e82c91a5 Merge pull request #3779 from katzoo/dry-quadratic-example
DRY quadratic formula example
2015-04-28 18:03:15 -07:00
katzoo
065f13a968 DRY quadratic formula example 2015-04-29 02:50:53 +02:00
Ben Alpert
1d8025258a Merge pull request #3722 from spicyj/travis-rel-grunt
Use local `grunt` executable on Travis
2015-04-28 14:55:34 -07:00
Ben Alpert
e534e0730e Use local grunt executable on Travis
Builds have been flaky lately. Maybe this will help?
2015-04-28 14:45:55 -07:00
Jim
49de80e692 Merge pull request #3767 from kubosho/patch-1
Use jQuery 2.1.3 (latest) to be up-to-date and consistent with other docs)
2015-04-28 06:42:52 -07:00
Shota Kubota
d376e12a9c Fix differences a jQuery CDN URLs, fixes #3750.
unify to `https://code.jquery.com/jquery-2.1.3.min.js`.
2015-04-28 22:27:46 +09:00
alexpien
6e5b0248db Update 10.1-animation.md
Custom classes
2015-04-27 19:16:24 -07:00
alexpien
039110f8bf Allow ReactCSSTransitionGroup to also take in object containing classNames instead of relying on manipulation of the transitionName property 2015-04-27 18:56:00 -07:00
Jim
40119404b9 Merge pull request #3740 from jsfb/element-is-parent-of-render-result-test
Added unit test to verify that context treats the component doing a render() as the parent.
2015-04-27 16:11:39 -07:00
Ben Alpert
3b10a7b038 Add forgotten clipPath wrapper in getMarkupWrap 2015-04-27 15:39:39 -07:00
codesuki
e3cf48cd7f Added support for SVG clipPath element and clip-path attribute 2015-04-27 15:37:23 -07:00
Jim
9a950e9a19 Added unit test to verify that context treats the component doing a render() as the parent. 2015-04-27 14:56:25 -07:00
Ben Alpert
d359319073 Merge pull request #3758 from spicyj/keys-keys-keys
Add key warning to nested collections
2015-04-27 14:51:30 -07:00
Ben Alpert
086636747f Add key warning to nested collections
Also when reusing elements in multiple contexts -- before we were mutating each element to indicate its validity; now we mutate the array containing it (which we create, in the case of rest-arg children).

Fixes #2496. Fixes #3348.
2015-04-27 14:41:25 -07:00
Ben Alpert
adcb420414 Merge pull request #3757 from spicyj/es6
Add missing super() calls
2015-04-27 14:31:03 -07:00
Ben Alpert
2d1a24e8df Add missing super() calls
Babel complains without these because it's invalid ES6.
2015-04-27 13:41:10 -07:00
Ben Alpert
8e9deff3cc Merge pull request #3749 from VictorKoenders/master
unmountChildren was missing an Object.hasOwnProperty check (src/core/ReactChildReconciler.js)
2015-04-26 15:09:48 -07:00
Victor Koenders
ed4daba87d src/core/ReactChildReconciler.js::unmountChildren was missing an Object.hasOwnProperty check 2015-04-26 13:54:16 +02:00
Cheng Lou
86dee966a4 Merge pull request #3747 from jayeszee/patch-1
Missing punctuations in comments.
2015-04-26 00:23:43 -04:00
Jack Zhang
f7a9a6c480 Missing punctuations in comments.
Added periods to two comment lines to ensure uniform format.
2015-04-25 20:50:30 -07:00
Chris Grovers
91029ffac1 Fixed Formatting. 2015-04-25 15:06:59 -07:00
Matthew Miner
aa9274991d Treat boxOrdinalGroup and flexOrder as unitless. 2015-04-24 17:05:07 -07:00
Cheng Lou
f6ae856797 Merge pull request #3739 from chenglou/style-mut-comments
Tweak style mutation warning, remove test comment
2015-04-24 15:08:24 -04:00
Cheng Lou
1df2b6f638 Tweak style mutation warning, remove test comment 2015-04-24 15:04:05 -04:00
Cheng Lou
288c7ed139 Merge pull request #2027 from chenglou/warn-style-mutation
Set up `style` mutation monitoring
2015-04-24 14:51:33 -04:00
Paul O’Shannessy
4dbccea975 Merge pull request #3734 from marocchino/update-korean
Update Translation to 0183f70
2015-04-23 23:03:47 -07:00
Shim Won
8d0937e60d Update Translation to 0183f70 2015-04-24 09:15:46 +09:00
Ben Alpert
0183f70797 Merge pull request #3727 from spicyj/dsih
Relax dangerouslySetInnerHTML validation
2015-04-22 17:37:40 -07:00
mheiber
39442aaa84 Update cloneWithProps documentation
Updated documentation to reflect that using React.cloneElement is the new way to copy an element and preserve `key` and `ref`.

Fixes #3432, closes #3447.
2015-04-22 17:05:59 -07:00
Ben Alpert
7f02455220 Relax dangerouslySetInnerHTML validation
Fixes #3460.
2015-04-22 16:59:50 -07:00
Ben Alpert
a171474348 Merge pull request #3429 from AoDev/patch-1
Add a note about react classe name convention
2015-04-22 16:11:56 -07:00
Jim
41348ba911 Merge pull request #3640 from jsfb/render-subtree-pass-context
Provide top level method for rendering subtree (passes context)
2015-04-22 14:29:06 -07:00
Jim
c93b4245cb Provide top level method for rendering subtree (passes context) 2015-04-22 14:25:29 -07:00
Jim
1a5fe9fd13 Merge pull request #3723 from jsfb/fix-bad-homepage-link
Fix bad links in docs.  Fixes #3654.
2015-04-22 13:35:02 -07:00
Jim
d900541021 Fix bad links in docs. Fixes #3654. 2015-04-22 13:17:39 -07:00
Ben Alpert
3c66b8f0f7 Merge pull request #3665 from mridgway/replaceHasOwnProperty
[performance] Replace hasOwnProperty in child processing with typeof undefined check
2015-04-22 11:21:38 -07:00
Scott Feeney
d235940037 Merge pull request #3716 from graue/optional-shallow-render-context
Shallow render components that define contextTypes
2015-04-22 10:54:40 -07:00
Paul O’Shannessy
5b42e895c1 Merge pull request #3691 from jonscottclark/patch-1
Add 'cache: false' to $.ajax when fetching comments (docs/tutorial)
2015-04-22 09:57:58 -07:00
Paul O’Shannessy
4f285b7ba0 Merge pull request #3676 from zpao/rm-withContext
Remove withContext from top-level API
2015-04-22 09:45:26 -07:00
Jon Scott Clark
f4a6644f4e Fix line highlighting in code blocks due to addition of extra example code 2015-04-22 10:45:15 -04:00
Scott Feeney
df937af91c Shallow render components that define contextTypes
You now no longer have to pass an undocumented extra argument to the
shallow renderer for rendering components with contextTypes to work.

Fixes #3696
2015-04-21 16:17:06 -07:00
Paul O’Shannessy
f0c7fa3098 Merge pull request #3712 from zpao/changelog-jsxtransformer
Update Changelog for 0.13 to mention JSXTransfomer change
2015-04-21 15:04:43 -07:00
Paul O’Shannessy
73cad28e22 Update Changelog for 0.13 to mention JSXTransfomer change 2015-04-21 15:04:13 -07:00
Ben Alpert
cc412367dd Merge pull request #3706 from spicyj/no-raf
Remove ReactRAFBatchingStrategy
2015-04-20 13:41:46 -07:00
Ben Alpert
302f0a1f5a Remove ReactRAFBatchingStrategy
We don't use or support this, so let's just delete it. (#3570)
2015-04-20 12:09:15 -07:00
Paul O’Shannessy
088d71c7c1 Merge pull request #3693 from reedloden/swap-http-to-https
SSL/TLSize all the things! (convert http:// to https:// where appropriate)
2015-04-20 11:02:29 -07:00
Paul O’Shannessy
7b89989c47 Merge pull request #3705 from zpao/doc/update-supported-attrs
[docs] Update supported HTML attributes
2015-04-20 10:45:36 -07:00
Jim
e5747b8ffb Merge pull request #3697 from basecode/improve-pooler-tests
Improve `PooledClass` tests
2015-04-20 10:41:18 -07:00
Paul O’Shannessy
1dff5a2009 [docs] Update supported HTML attributes 2015-04-20 09:56:55 -07:00
Paul O’Shannessy
cfc734bb33 Merge pull request #3703 from JimBobSquarePants/patch-1
Example is JSX not JS.
2015-04-20 09:40:23 -07:00
James South
8972ad921f Example is JSX not JS. 2015-04-20 14:26:39 +01:00
Tobias Reiss
e2fa43031e should call new and old constructor with arguments 2015-04-20 00:43:55 +02:00
Paul O’Shannessy
ec31267e1c Merge pull request #3694 from adamzap/fix-tutorial-line-highlighting
Fix missing line highlight in tutorial
2015-04-19 15:21:59 -07:00
Reed Loden
3e8951e8c7 SSL/TLSize all the things! (convert http:// to https:// where appropriate)
Update links to use https:// where it is supported. There's probably a lot
more that could be fixed, but these are the core ones I found (especially
the download links in order to prevent MITM attacks). Note that there are
some fb.me links that will redirect to http:// even while accessed over
https://, but this seemed like the best way to fix those for now.

NOTE: Only non-third-party files were modified. There are references to
http:// URLs in vendored/third-party files, but seems appropriate to fix
upstream for those rather than editing the files.

Also, copy one image locally to the blog, as it was hotlinking to a site
that did not support https://.

Last, use youtube-nocookie.com instead of youtube.com for video embeds,
as the former doesn't try to set a cookie on load (privacy enhancement).
2015-04-18 16:49:32 -07:00
Adam Zapletal
05562a0b09 Fix missing line highlight in tutorial 2015-04-18 18:36:18 -05:00
Paul O’Shannessy
feef6e885b Tweak wording in 0.13.2 blog post 2015-04-18 16:08:01 -07:00
Paul O’Shannessy
5a19481160 v0.13.2 blog post
(cherry picked from commit 6ed202288b)
2015-04-18 15:58:13 -07:00
Paul O’Shannessy
1185fdaf1f Update website with 0.13.2 builds
(cherry picked from commit 179f904525)
2015-04-18 15:58:11 -07:00
Paul O’Shannessy
8a691f59fe Readme for 0.13.2
(cherry picked from commit e1437078fc)
2015-04-18 15:57:05 -07:00
Paul O’Shannessy
3f5f78e374 Changelog for 0.13.2
(cherry picked from commit 4f1c61f915)
2015-04-18 15:57:05 -07:00
Jon Scott Clark
90f086efbf Add 'cache: false' to $.ajax when fetching comments 2015-04-18 11:11:18 -04:00
Jim
d9a9f5a0d4 Merge pull request #3625 from dmin/patch-1
Docs: Fix example JSX output
2015-04-17 14:22:25 -07:00
Paul O’Shannessy
550cce441f Merge pull request #3678 from marocchino/update-korean
Update Translation to 6a7a4fd
2015-04-17 11:12:45 -07:00
Christopher Chedeau
d8ef641bcc Merge pull request #3684 from vjeux/react-native-0-4
React Native 0.4 Blog Post
2015-04-17 09:13:31 -07:00
Christopher Chedeau
6fdac757c5 Update 2015-04-17-react-native-v0.4.md 2015-04-17 09:11:51 -07:00
Christopher Chedeau
4a1557b947 React Native 0.4 Blog Post 2015-04-17 09:03:55 -07:00
Shim Won
2d847a145c Update Translation to 6a7a4fd 2015-04-17 17:19:04 +09:00
Leonardo YongUk Kim
7e64c16ff6 Create 19-dangerously-set-inner-html.ko-KR.md
Based on 2e1ccae275
2015-04-17 17:15:51 +09:00
Paul O’Shannessy
5297ff66cf Remove withContext from top-level API 2015-04-16 15:58:27 -07:00
Ben Alpert
6a7a4fd635 Merge pull request #3675 from spicyj/gh-3655
Add warning for getDefaultProps on ES6 classes
2015-04-15 17:40:47 -07:00
Ben Alpert
b8b10001f3 Add warning for getDefaultProps on ES6 classes
Fixes #3655.
2015-04-15 17:33:20 -07:00
Paul O’Shannessy
e21f7c7da3 Merge pull request #3673 from ultrafez/patch-1
"Advanced performance" typo fix
2015-04-15 16:42:25 -07:00
Alex
729ec1bb74 "Advanced performance" typo fix
Example code used the key "propsTypes" - correct to "propTypes"
2015-04-15 15:32:37 +01:00
Paul O’Shannessy
41a6186d7a Merge pull request #3485 from jnu/ie10-flex-unitless
Treat flexPositive, flexNegative as unitless styles
2015-04-14 16:31:13 -07:00
Michael Ridgway
ed70d35e18 Update code style 2015-04-14 14:37:50 -07:00
Ben Alpert
45045049b0 Merge pull request #3668 from elquatro/master
Get rid of magic numbers in transitions example
2015-04-14 13:36:42 -07:00
Ilya Shuklin
0447f1e792 Update index.html
getting rid of magic numbers
2015-04-14 16:55:12 +03:00
Ben Alpert
be03fa7f46 Merge pull request #3663 from spicyj/san-md
[docs] Use marked instead of Showdown and escape HTML
2015-04-13 16:44:19 -07:00
Ben Alpert
36aefcb8cc [docs] Use marked instead of Showdown and escape HTML
Fixes #3501.
2015-04-13 15:50:40 -07:00
Ben Alpert
d8117d0df6 Merge pull request #1366 from spicyj/enterleave-testutils
Make Simulate.mouseEnter/Leave use direct dispatch
2015-04-13 15:39:54 -07:00
Michael Ridgway
5a431a12ac Replace hasOwnProperty in child processing with typeof undefined check 2015-04-13 14:17:16 -07:00
Paul O’Shannessy
6d868a2705 Merge pull request #3662 from zpao/update-uglify
Update uglify dependency
2015-04-13 13:18:30 -07:00
Paul O’Shannessy
d467b52758 Update uglify dependency
Apparently we needed to get to v2.4.17 to get the fix for #2247. We
shrinkwrapped on the same day but the timing didn't work out so we missed it.
2015-04-13 12:49:45 -07:00
Paul O’Shannessy
3c174cacc9 Merge pull request #3658 from sbezludny/patch-1
Fixed typo
2015-04-13 09:48:08 -07:00
Serg
1bf7648108 Fixed typo 2015-04-13 12:12:49 +03:00
Ben Alpert
ce215483ae Don't thread index through traverseAllChildren
I'm not super attached to this, but this feels cleaner to me. Might even be faster since flattenChildren doesn't use the index. Probably no change though.
2015-04-11 01:04:20 -07:00
Ben Alpert
88fb106c39 Merge pull request #3646 from facebook/revert-3580-2402-warn-multiple-copies-of-react-on-same-page
Revert "Warn when multiple instances of React are loaded on the same page"
2015-04-10 13:54:57 -07:00
Ben Alpert
8fa15080b2 Revert "Warn when multiple instances of React are loaded on the same page" 2015-04-10 12:34:04 -07:00
Paul O’Shannessy
b8ba8c83f3 Update Patent Grant
https://code.facebook.com/posts/1639473982937255/updating-our-open-source-patent-grant/
2015-04-10 12:15:29 -07:00
Paul O’Shannessy
c164c477fb Merge pull request #3645 from facebook/revert-3644-patch-1
Revert "Add webkitdirectory and nwdirectory attributes for input file"
2015-04-10 10:24:46 -07:00
Paul O’Shannessy
71fdf09630 Revert "Add webkitdirectory and nwdirectory attributes for input file" 2015-04-10 10:22:52 -07:00
Jim
5e9623d1a2 Merge pull request #3644 from gregorym/patch-1
Add webkitdirectory and nwdirectory attributes for input file
2015-04-10 10:16:40 -07:00
Gregory
5a7c6964cc Add webkitdirectory and nwdirectory attributes for input file
Add attributes for <input type="file" />
* webkitdirectory
* nwdirectory
2015-04-10 09:51:54 -07:00
Paul O’Shannessy
86c72a5271 Merge pull request #3642 from marocchino/ko-update
Update Korean translation to 0185c68
2015-04-09 16:37:24 -07:00
Isaac Salier-Hellendag
4ff99a2873 Merge pull request #3639 from salier/select-event-plugin
Skip SelectEventPlugin extraction if no listeners
2015-04-09 18:29:37 -05:00
Isaac Salier-Hellendag
47b147f392 Skip SelectEventPlugin extraction if no listeners
If there are no listeners for `onSelect` yet, do not extract events. This way we can avoid issues where listeners have been set up for some event dependencies for `SelectEventPlugin`, but not all.

For instance, if `topMouseDown` has been registered but not `topMouseUp`, event extraction will set the `mouseDown` flag to true but never unset it. This leads to bugs when `onSelect` is registered and should be firing during normal key behavior. Since no `topMouseUp` has yet occurred to unset the flag, `onSelect` fails to fire.
2015-04-09 17:55:42 -05:00
Shim Won
57f14017fb Update Korean translation to 0185c68 2015-04-10 06:54:28 +09:00
Leonardo YongUk Kim
78f59da8df Translate tips 11 to Korean
1. Create 11-dom-event-listeners.ko-KR.md
2. Update 03-interactivity-and-dynamic-uis.ko-KR.md to add an anchor.

Based on 52494f9d72
2015-04-10 06:52:32 +09:00
Leonardo YongUk Kim
792c161cc5 Create 12-initial-ajax.ko-KR.md
Based on 52494f9d72
2015-04-10 06:52:32 +09:00
Leonardo YongUk Kim
16832c701b Create 13-false-in-jsx.ko-KR.md
Based on 52494f9d72
2015-04-10 06:52:31 +09:00
Paul O’Shannessy
9d6b119c3f Merge pull request #3641 from ljharb/patch-1
Updating `es5-shim` URL
2015-04-09 14:24:26 -07:00
Jordan Harband
5ddd307c5e Updating es5-shim URL 2015-04-09 13:51:34 -07:00
Jim
0185c68c91 Merge pull request #3615 from jsfb/enable-new-context
Switch to parent-based context.  Fixes #2112.
2015-04-09 13:21:26 -07:00
Jim
0f0f5aa701 Merge pull request #3638 from devicehubnet/master
check if type.prototype is object in instantiateReactComponent
2015-04-09 12:35:57 -07:00
Paul O’Shannessy
857736dc13 Merge pull request #3636 from cody/jsx-target
Add target option to npm readme
2015-04-09 10:27:06 -07:00
Teodor Szente
cdd359b710 check if is undefined 2015-04-09 20:12:22 +03:00
Jim
f4a07c4b53 Merge pull request #3635 from garethnic/reuseCompDoc
Clarify sentence in Reusable Components doc
2015-04-09 10:01:10 -07:00
Teodor Szente
8f6bae21fb check if type.prototype is object 2015-04-09 19:29:25 +03:00
Stefan Dombrowski
148543ce2b Add target option to npm readme 2015-04-09 13:04:04 +02:00
Gareth Nicholson
5c35d93436 clarify sentence 2015-04-09 12:16:21 +02:00
Jim
f1cd867323 Merge pull request #3580 from robertknight/2402-warn-multiple-copies-of-react-on-same-page
Warn when multiple instances of React are loaded on the same page
2015-04-08 19:18:44 -07:00
Ben Alpert
50e08d4269 Merge pull request #3627 from spicyj/mut-warn-clone
Refer to cloneElement in mutation warning
2015-04-08 15:33:56 -07:00
Paul O’Shannessy
b6756c56ff Merge pull request #3584 from ThornWinters/patch-1
More Uniform Formating
2015-04-08 15:33:16 -07:00
Ben Alpert
177dfea503 Merge pull request #3628 from spicyj/do-not-bind
Kill ReactDoNotBindDeprecated
2015-04-08 15:28:07 -07:00
Ben Alpert
e60a26a682 Kill ReactDoNotBindDeprecated
No one uses this.
2015-04-08 15:15:02 -07:00
Ben Alpert
05f6e7de71 Refer to cloneElement in mutation warning 2015-04-08 14:51:17 -07:00
Ben Alpert
44f0e801df Merge pull request #3587 from spicyj/kill-plq
Kill ReactPutListenerQueue
2015-04-08 14:49:53 -07:00
David Mininger
86bac33408 Docs: Fix example JSX output 2015-04-08 14:23:49 -05:00
Paul O’Shannessy
ee811b1614 [docs] Fix typo
Introduced in #3589
2015-04-08 10:39:26 -07:00
Paul O’Shannessy
a34cf222ba Merge pull request #3604 from Charca/firefox-tests-fixes
Fixes for several failing tests in Firefox and Safari
2015-04-08 10:34:57 -07:00
Paul O’Shannessy
cf76365cd9 Merge pull request #3618 from TimeBomb/master
Document new es6module flag in react-tools README
2015-04-08 10:31:24 -07:00
Christoph Pojer
214c1f9919 Merge pull request #3622 from cpojer/copyright-headers
Add copyright headers to npm-react-codemod.
2015-04-08 10:29:06 -07:00
cpojer
245f0d0afa Add copyright headers to npm-react-codemod. 2015-04-08 10:28:20 -07:00
Jim
5b7f865ffe Merge pull request #3621 from bhamodi/master
Update Copyright notices to include 2015
2015-04-08 10:10:12 -07:00
Baraa Hamodi
8e806ba382 Merge pull request #2 from bhamodi/bhamodi-patch-1
Update ReactDOMIframe-test.js
2015-04-08 13:06:50 -04:00
Baraa Hamodi
d9d77bc9a5 Update ReactDOMIframe-test.js 2015-04-08 13:06:37 -04:00
Baraa Hamodi
9ecdd3600b Merge pull request #1 from bhamodi/2015-update
Update ReactCompositeComponentNestedState-test.js
2015-04-08 13:05:38 -04:00
Baraa Hamodi
c9e3a32bc5 Update ReactCompositeComponentNestedState-test.js 2015-04-08 13:02:43 -04:00
Jason
eb377195be Document new es6module flag in react-tools README 2015-04-08 01:01:54 -07:00
Ben Alpert
e27ad4add3 Merge pull request #3589 from theseyi/master
Documentation: Fixed typo / grammar in 'clone with props'
2015-04-07 17:33:52 -07:00
Ben Alpert
057f41ec0f Merge pull request #3595 from spicyj/select-ssr
Fix server-side rendering of <select>
2015-04-07 16:49:10 -07:00
Ben Alpert
ea089fdfe6 Fix server-side rendering of <select>
Fixes #1398.
2015-04-07 16:48:58 -07:00
Jim
7d44917531 Switch to parent-based context. Fixes #2112. 2015-04-07 14:49:29 -07:00
Paul O’Shannessy
3eb2a01ec1 Merge pull request #3612 from gaearon/patch-1
Mention Flux in “communicate between components”
2015-04-07 13:14:44 -07:00
Paul O’Shannessy
af819d122e Merge pull request #3614 from kassens/set_style_null
Fix for style not always reset when set to null
2015-04-07 13:13:31 -07:00
Jan Kassens
eda9ec53b5 Fix for style not always reset when set to null
When the style property existed, but was set to null, `this._previousStyleCopy`
was not set back to `null` causing an old value to persist. This broke setting
the style to `null` the next time.

Fixes #3606.
2015-04-07 12:17:06 -07:00
Dan Abramov
21d91e6f5f Mention Flux in “communicate between components” 2015-04-07 19:44:20 +03:00
Maxi Ferreira
49745e7bff Fixes for several failing tests in Firefox and Safari 2015-04-07 01:37:27 -03:00
Seyi Adebajo
5eaca79baa Documentation: Suggested edit adds clarity regarding when 'shouldComponentUpdate' is triggered and what the 're-rendering' process entails. 2015-04-05 18:46:38 -04:00
Seyi Adebajo
a366ec16e6 Fixed typo / grammar docs 2015-04-05 18:46:38 -04:00
Ben Alpert
ddbbaa9500 Merge pull request #3590 from koba04/patch-1
component.render method returns a ReactElement.
2015-04-04 23:47:05 -07:00
Toru Kobayashi
c7a2d46ead component.render method returns a ReactElement. 2015-04-05 15:33:19 +09:00
Ben Alpert
aee05c27ea Merge pull request #3588 from marocchino/ko-update
Update Korean translation to d402bd3
2015-04-04 22:26:50 -07:00
Shim Won
b9f02d37ed Update Korean translation to d402bd3 2015-04-05 09:44:54 +09:00
Ben Alpert
7529e6de47 Kill ReactPutListenerQueue
As far as I can tell, this is almost equivalent and is simpler. When a component's componentDidMount is called, all the listeners for that subtree will have been attached which I think is all that matters.
2015-04-04 17:34:35 -07:00
Michael Warner
0126e9efcd More Uniform Formating
Corrected so the formatting in this document matches the same as others.
2015-04-03 20:37:42 -07:00
Ben Alpert
d402bd3831 [docs] Fix type on renderIntoDocument
Fixes #3581.
2015-04-03 09:12:10 -07:00
Robert Knight
8ad58ae45a Warn when multiple instances of React are loaded on the same page
This causes a variety of hard-to-debug issues.
See #2402 for examples.

Fixes #2402
2015-04-03 11:46:58 +01:00
Paul O’Shannessy
5a3bda983b Merge pull request #3567 from chenglou/rm-getdomnode
Remove some `getDOMNode` from docs and DOMComponent test
2015-04-02 15:01:15 -07:00
Paul O’Shannessy
1576c1a2b9 Merge pull request #3576 from chenglou/last-getdomnode
Remove last call to `getDOMNode` in tests
2015-04-02 15:00:39 -07:00
Cheng Lou
f3e6436bee Remove last call to getDOMNode in tests 2015-04-02 17:26:19 -04:00
Cheng Lou
5561d0e925 Remove some getDOMNode from docs and examples 2015-04-02 17:23:27 -04:00
Ben Alpert
dea7efbe16 Merge pull request #3555 from spicyj/native-overrides
Import ResponderEventPlugin from react-native
2015-04-02 14:13:35 -07:00
Paul O’Shannessy
29dc96c202 Merge pull request #3574 from rogozhnikoff/patch-1
Increase speed of shallowEqual
2015-04-02 13:55:11 -07:00
Ben Alpert
5a01f5f6a9 Fix ResponderEventPlugin to work in core React again
Test Plan: jest, grunt fasttest
2015-04-02 13:33:47 -07:00
Murad
6963ea4bfc Update shallowEqual.js 2015-04-03 03:44:37 +08:00
Ben Alpert
54615fc6c0 Merge pull request #3572 from iamdoron/patch-1
use 'forEach' instead of 'map' when clearing intervals
2015-04-02 11:29:49 -07:00
Murad
d912329c97 Update shallowEqual.js
optimize for lint rules
2015-04-03 00:12:07 +08:00
Murad
d2bb4728f0 Increase speed of shallowEqual
All testes successfully completed.

- for-in in browsers is slow, i replaced him by Object.keys + for(array)
- simple check of lengths let us not iterate if not same
- now we dont need to test for B's keys missing from A, because if length's is same and prev check success - objB hasn't more keys
- micro optimize: calling objB.hasOwnProperty
- micro optimize: replaced !objA || !obj for more speedy check === null

#inspiredby https://github.com/jurassix/react-immutable-render-mixin/pull/4
2015-04-02 23:43:29 +08:00
iamdoron
f1e6a0dad2 use 'forEach' instead of 'map' when clearing intervals 2015-04-02 14:06:08 +03:00
Cheng Lou
6e992fbbdd Set up style mutation monitoring
This works by storing the style and its copy onto the component, and do
the appropriate comparison during `_updateDOMProperties`.
2015-04-01 22:05:09 -04:00
Jim
3fad007bdb Merge pull request #3560 from mariodu/mariodu
fix render order error in safari.  Fixes #3560.
2015-04-01 17:40:09 -07:00
Ben Alpert
db38059669 Merge pull request #3564 from spicyj/travis
Fix inverted feature test in .travis.yml
2015-04-01 15:17:32 -07:00
Ben Alpert
9c12e48f68 Fix inverted feature test in .travis.yml
I messed this up in #3540.
2015-04-01 15:12:17 -07:00
Ben Alpert
08e4420019 Use setState transaction for TransitionGroup instead of extra property 2015-04-01 14:34:01 -07:00
Ben Alpert
205273d2ee Merge pull request #2549 from ashtuchkin/fix-transitiongroup-multiremove
Fix ReactTransitionGroup behavior when removing several children at once
2015-04-01 14:33:42 -07:00
Paul O’Shannessy
dcc194bbb8 Merge pull request #3563 from quizlet/fix-addons-hasownproperty
Fix immutability helper to check hasOwnProperty safely
2015-04-01 12:38:04 -07:00
Jeff Chan
af7e43269f Fix immutability helper to check hasOwnProperty safely
This makes `update({}, {'hasOwnProperty': {$set: 'yolo'}})` work.
2015-04-01 12:25:12 -07:00
Paul O’Shannessy
7f30a1fed3 Merge pull request #3562 from dalinaum/rename
Rename 19--dangerouslySetInnerHTML.md -> 19-dangerously-set-inner-html.md
2015-04-01 12:13:55 -07:00
Leonardo YongUk Kim
2e1ccae275 Rename 19--dangerouslySetInnerHTML.md -> 19-dangerously-set-inner-html.md
1. It had double dash.
2. Its name was inconsistent. Other tips are named by their IDs.
2015-04-02 04:11:22 +09:00
凌恒
6094ebbc39 update comment 2015-04-01 23:59:43 +08:00
凌恒
54a74d95bb deal IE8 out of size error 2015-04-01 23:56:05 +08:00
凌恒
d4adaee4eb use ie8 feature detect instead of try catch 2015-04-01 21:46:40 +08:00
凌恒
e1a8d69840 fix render order error in safari 2015-04-01 18:13:03 +08:00
Ben Alpert
036d342189 Fix unused variable lint from #3552 2015-03-31 17:06:42 -07:00
Ben Alpert
5241ebb0bc Merge pull request #3556 from wali-s/patch-1
Fix small typo in 11-advanced-performance.md.
2015-03-31 17:03:15 -07:00
Ahmad Wali Sidiqi
4fe1b59849 Fix small typo in 11-advanced-performance.md.
"React didn't even had"->"React didn't even have"

http://english.stackexchange.com/questions/204603/proper-usage-of-didnt-had-or-didnt-have
2015-03-31 16:18:45 -07:00
Ben Alpert
6ec3b65169 Import ResponderEventPlugin from react-native
This is a direct import of the files from react-native, with the license headers updated.
2015-03-31 15:21:47 -07:00
Paul O’Shannessy
8c3d6b05d6 Merge pull request #3534 from tonyspiro/master
Update index.html in transitions example
2015-03-31 13:49:50 -07:00
Paul O’Shannessy
94a3b0f8a3 Merge pull request #3552 from James-Dunn/fix-for-loops
Remove caching from for loops
2015-03-31 10:30:44 -07:00
James
90dcc1ffb7 Remove caching from for loops
Removed caching from for loops as it does not seem to increase
performance and makes the code harder to read.
2015-03-31 10:22:52 +04:00
Paul O’Shannessy
18d608820e Merge pull request #3519 from jonchester/patch-1
Add IE-specific 'unselectable' attribute
2015-03-30 15:27:13 -07:00
Paul O’Shannessy
0c2238bb72 Merge pull request #3537 from marocchino/korean-update
Update Korean translations
2015-03-30 14:20:37 -07:00
Ben Alpert
a7a6c425d4 Merge pull request #3549 from spicyj/trans-sync
Sync transforms from internal
2015-03-30 14:15:09 -07:00
Ben Alpert
c9ef8f62ba Merge pull request #3445 from mihaip/master
Use full chain of member expressions when generating display names.
2015-03-30 11:46:54 -07:00
Ben Alpert
4d84784ca6 Sync transforms from internal 2015-03-30 11:43:26 -07:00
Ben Alpert
835fc3d0fb Squelch git warning on Travis 2015-03-30 11:25:55 -07:00
Ben Alpert
76805fdfda Set name and email a different way 2015-03-30 11:20:23 -07:00
Ben Alpert
be566e0aa6 Set git name and email for Travis 2015-03-30 11:16:36 -07:00
Ben Alpert
b7c4da59ca [docs] English tweaks (and testing Travis) 2015-03-30 11:10:44 -07:00
Ben Alpert
a39af74c6f Merge pull request #3540 from spicyj/auto-gh-pages
Autobuild website on Travis from stable branch
2015-03-30 10:57:06 -07:00
Ben Alpert
accb4f6047 Autobuild website on Travis from stable branch
$REACT_WEBSITE_BRANCH in https://travis-ci.org/facebook/react/settings/env_vars now needs to point to the stable branch (currently 0.13-stable). I haven't tested the commit-and-push part of this but everything else works so I'm hopeful.
2015-03-30 10:56:41 -07:00
Ben Alpert
b20778a7f6 Merge pull request #3543 from spicyj/keep-docs-js-react
Keep docs/js/{react,JSXTransformer}.js in repo
2015-03-30 10:55:29 -07:00
jonchester
a0265fe8b7 Add IE-specific 'unselectable' attribute
I ended up needing to add this attribute to work around a common IE bug, that clicking on a scrollbar gives focus to the scroll container. I needed to set it as MUST_USE_ATTRIBUTE or the attribute would not be passed through by React successfully.

remove trailing spaces
2015-03-30 07:44:08 -07:00
Christopher Chedeau
bfe1c5b60d Merge pull request #3545 from vjeux/roundup_26
Roundup 26
2015-03-30 07:23:20 -07:00
Christopher Chedeau
6bb2185bf0 Roundup 26 2015-03-29 20:02:40 -07:00
Paul O’Shannessy
ec2f35e0c9 Merge pull request #3544 from prathamesh-sonpatki/fix-link-to-display-name
Fixed link to displayName component spec from JSX in depth article
2015-03-29 10:30:24 -07:00
Prathamesh Sonpatki
139020d982 Fixed link to displayName component spec from JSX in depth article 2015-03-29 16:50:33 +05:30
Paul O’Shannessy
15e6968ad5 Merge pull request #3539 from russellpwirtz/patch-1
Update tutorial.md
2015-03-28 21:26:29 -07:00
Ben Alpert
0b6c7c29fe Keep docs/js/{react,JSXTransformer}.js in repo
This way we don't need to rebuild them each time for the website.
2015-03-28 14:56:54 -07:00
Russ
fdcf1f2b0e Update tutorial.md
Grammar fix
2015-03-28 11:37:55 -07:00
Ben Alpert
f3d3ccb8b3 Update README.md 2015-03-28 10:55:15 -07:00
James Pearce
78dd5e2c1e Update README.md 2015-03-28 10:33:56 -07:00
James Pearce
494be2179c 'New' note 2015-03-28 10:33:15 -07:00
Shim Won
6911fa5c5b Update Korean translation to b3c75d8 2015-03-28 18:02:25 +09:00
jiyeonseo
0b3fe6f47e Translate tips 05..10
- Up to 3fd6ac5
2015-03-28 08:51:52 +09:00
Jinwoo Oh
45a3332a38 Translate tip-18 to Korean
- Up to 6f44f60
2015-03-28 08:47:18 +09:00
Jinwoo Oh
4df79154de Translate tip-17 to Korean
- Up to 6f44f60
2015-03-28 08:47:12 +09:00
Jinwoo Oh
452f2f282f Translate tip-16 to Korean
- Up to 1cb3f25
2015-03-28 08:47:05 +09:00
Jinwoo Oh
23a5a89077 Translate tip-15 to Korean
- Up to 52494f9
2015-03-28 08:46:57 +09:00
Jinwoo Oh
03666e884d Translate tip-14 to Korean
- Up to 92c37ff
2015-03-28 08:46:37 +09:00
Ted Kim
aa6bfb6b51 Translate tips 01..04 (based on 157d7770c99be26a9e0557d00978f15f6d9db794) 2015-03-28 08:46:26 +09:00
Shim Won
712710cabc Update to ed257cb 2015-03-28 08:46:14 +09:00
Tony Spiro
03e0ebf532 Update index.html
'current' makes more sense than 'start' as the value increments passed it's start value.
2015-03-27 15:17:07 -05:00
Paul O’Shannessy
e30dd83896 Merge pull request #3240 from reactkr/translate-ko-release
Korean translation for docs
2015-03-27 11:39:54 -07:00
Jim
b3c75d82b2 Merge pull request #3521 from grant/master
Display error when trying to create an element of type `boolean`. Fixes #3478
2015-03-26 14:39:32 -07:00
Jim
335221910d Merge pull request #3527 from mertkahyaoglu/master
remove unrelated doc line
2015-03-26 14:27:42 -07:00
Ben Alpert
56067147fe Merge pull request #3529 from uzarubin/patch-1
Swapping defaultChecked and defaultValue
2015-03-26 13:51:25 -07:00
Ustin Zarubin
c45fa8b581 Swapping defaultChecked and defaultValue
The current documentation states that the `<select>` tag supports `defaultChecked`, but it actually doesn't. I believe this documentation was meant to be written in the proposed order. 

Non-working fiddle using `defaultChecked`: http://jsfiddle.net/jqs1hsLr/1/
Working fiddle using `defaultValue`: http://jsfiddle.net/nv7z0yzL/1/
2015-03-26 16:42:36 -04:00
Ben Alpert
c3b0d8d9c6 Merge pull request #3525 from spicyj/home-3
[docs] Tweak words on homepage
2015-03-26 12:29:59 -07:00
Ben Alpert
eef22ece37 [docs] Split up second sentence more 2015-03-26 12:29:14 -07:00
Mert Kahyaoğlu
6248406d6a remove unrelated doc line 2015-03-26 21:08:32 +02:00
Ben Alpert
cf956ac8be [docs] Tweak words on homepage 2015-03-26 10:42:01 -07:00
Ben Alpert
951adcdd4c Add React Native blog post 2015-03-26 10:10:43 -07:00
Grant Timmerman
59a914aac0 Disable numeric element types 2015-03-26 10:07:56 -07:00
Ben Alpert
ca66399402 [docs] Update site nav 2015-03-26 10:06:09 -07:00
Grant Timmerman
3c9ea72795 Display error when trying to create an element of type boolean. Fixes #3478 2015-03-26 01:21:54 -07:00
Ben Alpert
b32fbef7c5 Add missing semicolon 2015-03-25 18:10:49 -07:00
Ben Alpert
a4630c3928 Merge pull request #3520 from spicyj/validate-message
Tweak validation message, add html support
2015-03-25 17:43:55 -07:00
Ben Alpert
7c6694987d Tweak validation message, add html support
The old message made no sense if you had a > div > a or similar. I'm clearly feeling sloppy today.
2015-03-25 17:24:13 -07:00
Ben Alpert
da598c6a27 Merge pull request #3518 from alopatin/patch-1
Docs: Clarify that React.PropTypes.node accepts fragments
2015-03-25 17:23:52 -07:00
Paul O’Shannessy
6cb0b985a7 Merge pull request #3504 from clariroid/docsJP
Translate 2 docs into Japanese
2015-03-25 17:20:59 -07:00
Alex Lopatin
6daa22be5a Docs: Clarify that React.PropTypes.node accepts fragments
As of #3293 `ReactFragment` counts as a node, but this isn't made clear in the docs.
2015-03-25 17:17:42 -07:00
Ben Alpert
07b7e8424d Remove stray console.log comment 2015-03-25 17:06:42 -07:00
Ben Alpert
7bef374f3f Merge pull request #3517 from spicyj/jest-config
Only run src/ and vendor/fbtransform/ tests in jest
2015-03-25 17:06:26 -07:00
Ben Alpert
98fff82336 Merge pull request #3516 from spicyj/valid-4
Validate only against problematic tag nesting
2015-03-25 17:01:09 -07:00
Paul O’Shannessy
029a526916 Merge pull request #3498 from AnSavvides/patch-1
Include latest version of jQuery in tutorial
2015-03-25 16:53:13 -07:00
Ben Alpert
d12c968dec Only run src/ and vendor/fbtransform/ tests in jest
Test Plan: jest
2015-03-25 16:49:01 -07:00
Ben Alpert
76bb96ef21 Validate only against problematic tag nesting
Turns out lots of people write invalid HTML all the time and no one, including your browser or React, cares. Most invalid HTML combinations don't cause magic reparented nodes; only some do. The HTML5 parsing spec (https://html.spec.whatwg.org/multipage/syntax.html) specifies which tag combinations cause strange parsing behavior. I did my best to encode the logic here. It's more lenient than before in some cases, but more strict in others (before we didn't look at the whole stack of tags; now we warn with deeply nested `p` or `form` or `a` tags).
2015-03-25 16:43:41 -07:00
Christoph Pojer
949349d5ca Merge pull request #3515 from cpojer/fix-class-transform
npm-react-codemod: Class transform doesn’t need aliases
2015-03-25 16:35:18 -07:00
cpojer
bc8b057bf0 npm-react-codemod: Class transform doesn’t need an alias for module.exports = React.createClass any longer.
Before: `module.exports = class __exports extends React.Component {}`
After: `module.exports = class extends React.Component {}`

See 638ef2b9d2
2015-03-25 16:31:23 -07:00
Christoph Pojer
86836c885d Merge pull request #3506 from cpojer/react-codemod
Add npm-react-codemod
2015-03-25 16:20:14 -07:00
cpojer
1865c042d7 Update README for npm-react-codemod 2015-03-25 16:15:07 -07:00
cpojer
d9c13c73b6 Add ES6 class transform 2015-03-25 16:11:52 -07:00
cpojer
d4cb2537af Add pure-render-mixin transform 2015-03-25 16:11:52 -07:00
cpojer
20004e94d3 Add findDOMNode transform 2015-03-25 16:11:52 -07:00
cpojer
328274bbba Add ReactUtils and array polyfills. 2015-03-25 16:11:52 -07:00
cpojer
e361fcb3e6 Add skeleton for react-codemod 2015-03-25 16:11:48 -07:00
Andreas Savvides
580f2d829b Include latest version of jQuery in tutorial
Include latest version of jQuery 2.x in tutorial
2015-03-25 22:36:27 +00:00
clariroid
a869a0f7b0 Fix the locale id 2015-03-26 06:15:52 +09:00
clariroid
574b906f9b Translate 2 docs into Japanese 2015-03-26 06:15:50 +09:00
Paul O’Shannessy
27a191e704 Merge pull request #3513 from agelter/master
Added support for the 'low', 'high', and 'optimum' attributes that are missing from the <meter> tag.
2015-03-25 12:17:07 -07:00
Paul O’Shannessy
56b180b464 Fix failing test
PR #3494 was based on master before we shifted to using console.error. This
just fixes the new test case.
2015-03-25 12:15:41 -07:00
Jim
13dbda3644 Merge pull request #3494 from letiemble/B_Context_Rerender
Fix the context handling when updating a rendered component.
2015-03-25 11:55:35 -07:00
Paul O’Shannessy
8bd9541e08 Merge pull request #3503 from aredridel/patch-1
npm without -g should never need sudo
2015-03-25 10:55:41 -07:00
Paul O’Shannessy
a164222367 Merge pull request #3507 from dpellier/master
Add scoped property to the list of DOM standard properties
2015-03-25 10:54:29 -07:00
Paul O’Shannessy
f86a7f86cc Merge pull request #3511 from AnSavvides/glossary-space
Minor space change to be in line with coding style everywhere else
2015-03-25 10:51:15 -07:00
Aaron Gelter
c9e82ce0f6 Added support for the 'low', 'high', and 'optimum' attributes that the <meter> tag requires. 2015-03-25 11:33:02 -06:00
Andreas
b6534bec7d Minor space change to be in line with coding style everywhere else 2015-03-25 17:09:58 +00:00
Damien Pellier
3d45c0ad9d add scoped property to the list of DOM standard properties 2015-03-25 09:41:05 +01:00
Aria Stewart
151384dd22 npm without -g should never need sudo 2015-03-24 19:47:31 -07:00
Paul O’Shannessy
45fdb4ba79 Merge pull request #3487 from zpao/doc/video
[docs] Videos: use https, right width videos
2015-03-24 14:18:36 -07:00
Paul O’Shannessy
21bb7582c0 Merge pull request #3491 from bobbyrenwick/transition-group-appear-docs
adding docs for componentWillAppear and componentDidAppear
2015-03-24 14:05:11 -07:00
Paul O’Shannessy
09ecf8bca9 Merge pull request #3499 from sverrejoh/patch-1
Don't add 'px' to strokeDashoffset CSS Properties
2015-03-24 13:57:02 -07:00
Sverre Johansen
77abea5ddc Reordered properties to maintain ABC order 2015-03-24 20:43:55 +00:00
Ben Alpert
6ad4afd404 Merge pull request #3502 from spicyj/tests
Fix tests after merge of #3440
2015-03-24 13:41:34 -07:00
Paul O’Shannessy
2795fb162a Merge pull request #3490 from chenglou/remove-class-addon
Remove classSet/cx
2015-03-24 13:39:47 -07:00
Ben Alpert
4dde417214 Fix tests after merge
Test Plan: jest
2015-03-24 13:37:39 -07:00
Ben Alpert
9260b540ad Merge pull request #3467 from spicyj/valid-3
Validate node nesting, take 3
2015-03-24 13:30:16 -07:00
Ben Alpert
1aa4e3c234 Merge pull request #3440 from spicyj/console-error
Use console.error to show stack trace in console
2015-03-24 13:30:01 -07:00
Sverre Johansen
c28059e39b Don't add 'px' to strokeDashoffset CSS Properties
This is a SVG CSS Property. The standard expects values or percentages, and adding "px" to the value will break it.

http://www.w3.org/TR/SVG/painting.html#StrokeDashoffsetProperty
2015-03-24 17:52:02 +00:00
Laurent Etiemble
357345a56d Fix the context handling when updating a rendered component. 2015-03-24 08:29:09 +01:00
Bob Renwick
3b33ead6ac adding docs for componentWillAppear and componentDidAppear 2015-03-24 01:41:04 +00:00
Cheng Lou
9df173113b Remove mention from docs 2015-03-23 20:13:24 -04:00
Cheng Lou
18ab88aa78 Remove classSet/cx 2015-03-23 17:59:27 -04:00
Paul O’Shannessy
cb05e2f85b Merge pull request #3271 from delftswa2014/fix/todo-example
Added the key attribute into the todo example
2015-03-23 14:54:08 -07:00
Paul O’Shannessy
90f8a89ac4 Merge pull request #3488 from delftswa2014/grunt-coverage-fix
Removed build:test from test:coverage.
2015-03-23 14:49:56 -07:00
PNikray
e931aaab4a Removed build:test from test:coverage.
This was a duplicate task for build:withCodeCoverageLogging.
It should now properly output the lines which are not covered.
2015-03-23 21:32:49 +01:00
Paul O’Shannessy
21221e0376 [docs] Videos: use https, right width videos
I also added some <hr>s in there, which helps a little bit with spacing.
2015-03-23 11:38:10 -07:00
Paul O’Shannessy
11983d8d6b Merge pull request #3483 from julen/docs/document-body-footgun
Docs: do not render components to `document.body`
2015-03-23 11:09:48 -07:00
Paul O’Shannessy
dd2e2ecaee Merge pull request #3481 from mertkahyaoglu/master
minor fixes in package.json
2015-03-23 09:45:13 -07:00
Joseph Nudell
51b6092264 Update unprefixed css props doc 2015-03-23 11:30:56 -05:00
Joseph Nudell
30b2cfc1fd Treat flexPositive/Negative/boxFlex as unitless styles 2015-03-23 11:29:55 -05:00
Julen Ruiz Aizpuru
d83596620f Docs: do not render components to document.body
Rendering to `document.body` in the examples is conveniently short, but it can
be misleading at the same time, especially for newcomers.

While it's possible to render React components to `document.body`, any 3rd
party scripts can also mess up with it, and it can have unintended consequences
and be source of difficult-to-trace bugs.
2015-03-23 13:59:24 +01:00
Mert Kahyaoğlu
31bab53cc8 minor fixes in package.json 2015-03-22 22:09:24 +02:00
Ben Alpert
5dee15273f Merge pull request #3475 from MaximAbramchuck/patch-1
Add missing semicolon
2015-03-21 13:43:22 -07:00
Maxim Abramchuk
9b70e82246 Add missing semicolon 2015-03-21 23:11:45 +03:00
Ben Alpert
f9abf493b4 Validate node nesting, take 3
Nicer version of #644 and #735. Fixes #101. Context is neat.
2015-03-20 16:10:02 -07:00
Ben Alpert
ed3e6ecb9b Merge pull request #3472 from mertkahyaoglu/master
move getReactRootElementInContainer to ReactMount.js
2015-03-20 12:29:53 -07:00
Mert Kahyaoğlu
63aa7259b9 move getReactRootElementInContainer to ReactMount.js
getReactRootElementInContainer.js file contains one function used only
in ReactMount.js.
2015-03-20 20:50:11 +02:00
Paul O’Shannessy
786055415b Merge pull request #3129
Put comma after any non-whitespace non-comment characters in JSXExpression
2015-03-20 10:32:11 -07:00
Jason Miller
ef796790ec Put comma after any non-comments, non-whitespace in JSXEspression
Fixes #1673
Closes #3129
2015-03-20 10:27:21 -07:00
Ben Alpert
70f16cc936 Merge pull request #3471 from mertkahyaoglu/master
fix doc comments and typos
2015-03-20 10:02:49 -07:00
Mert Kahyaoğlu
0c1eca7dfc fix doc comments and typos 2015-03-20 18:21:29 +02:00
Mihai Parparita
fea7bc5968 Use full chain of member expressions when generating display names.
Assumed to be namespaced names (with the exception of "exports", which is
special-cased).
2015-03-19 16:46:55 -07:00
Ben Alpert
7fe5a3aadd Merge pull request #3442 from spicyj/kill-initializeTouchEvents
Kill React.initializeTouchEvents for good
2015-03-19 14:15:26 -07:00
Ben Alpert
41e5518135 Merge pull request #3464 from martomi/html-tags
Examples - Fix a closing html paragraph tag.
2015-03-19 13:09:09 -07:00
Martin Mihaylov
d7bf64396a Fix the closing html paragraph tag. 2015-03-19 20:56:49 +01:00
Joseph Savona
f707f74c8a Merge pull request #3463 from josephsavona/relay-components
Building The Facebook News Feed With Relay
2015-03-19 12:56:21 -07:00
Joseph Savona
85e7598ef1 Building with Relay blog post 2015-03-19 12:53:49 -07:00
Ben Alpert
1a102a2ed8 Merge pull request #3456 from cody/html-jsx
Fix HTML to JSX converter to work with https
2015-03-19 12:45:41 -07:00
Stefan Dombrowski
89b17330ac Fix HTML to JSX converter to work with https 2015-03-19 00:33:14 +01:00
Christoph Pojer
d86790f4b6 Merge pull request #3441 from cpojer/rm-perf
Remove perf folder
2015-03-18 12:28:55 -07:00
Ben Alpert
a321247ee5 More lint fixes 2015-03-17 14:17:03 -07:00
Ben Alpert
26664315a6 Merge pull request #3438 from spicyj/lint
Lint fixes
2015-03-17 14:14:57 -07:00
Christoph Pojer
0098168b60 Merge pull request #3439 from cpojer/dom-node-warn
Add warning for getDOMNode calls.
2015-03-17 14:14:16 -07:00
Ben Alpert
9c4c2f58ea Kill React.initializeTouchEvents for good
Now that #1169 is fixed, the only thing this is used for is to determine whether `onTouchTap` causes touch listeners to be added. The only internal uses of TapEventPlugin are where touch events are already initialized (so this doesn't make a difference) and we don't support `onTouchTap` as part of the public API so this should be safe.
2015-03-17 14:12:26 -07:00
cpojer
fb23276178 Add warning for getDOMNode calls. 2015-03-17 14:08:04 -07:00
cpojer
7291942550 Remove perf folder 2015-03-17 13:40:11 -07:00
Ben Alpert
e791fccf58 Use console.error to show stack trace in console
Better version of #3277.

Test Plan: jest, grunt test
2015-03-17 13:39:04 -07:00
Ben Alpert
c34fa7f3d2 Lint fixes 2015-03-17 13:30:15 -07:00
Ben Alpert
9a6fa5eb7d Merge pull request #3430 from fourcolors/patch-1
fix grammar in comments
2015-03-17 11:08:40 -07:00
Ben Alpert
5d9b228e03 Merge pull request #3433 from mihaip/master
Include the owner name when warning about createElement(null/undefined).
2015-03-16 22:21:33 -07:00
Mihai Parparita
60a101eced Include the owner name when warning about createElement(null/undefined).
Makes it easier to find the callsite that needs to be fixed.
2015-03-16 22:05:29 -07:00
Sebastian Markbåge
dc9dcdba86 Merge pull request #3431 from sebmarkbage/ignoreowner
Don't use owner to determine statefulness
2015-03-16 18:08:21 -07:00
Sebastian Markbage
50cbdbc9ab Don't use owner to determine statefulness
This reverts an early commit that made it so that elements from two
different owner in the same slot wouldn't share state.

That behavior was helpful, and we did hit a case which was solved by this.
However, this pattern is extremely uncommon. I've yet to even find the
original case, let alone any existing cases in our codebase.

Therefore, we're dropping this to simplify elements and enable new
optimizations.
2015-03-16 18:05:15 -07:00
Paul O’Shannessy
c48ccc5742 0.13 blog post, starter kit 2015-03-16 16:59:22 -07:00
Paul O’Shannessy
77f011f82f Update Readme for 0.13.1 2015-03-16 16:59:21 -07:00
Paul O’Shannessy
efc88bad76 Changelog for 0.13.1 2015-03-16 16:59:21 -07:00
Jim
87e14c5ef8 Merge pull request #3176 from jsfb/webcomponent-to-vendor-thirdparty
Added webcomponents.js and a simple unit test verifying a document fragment as a valid React container
2015-03-16 16:40:22 -07:00
Jim
12059299f3 Added webcomponents.js and a simple unit test verifying a document fragment as a valid React container. 2015-03-16 16:37:05 -07:00
Jim
73f4dc59d8 Merge pull request #3169 from jsfb/mount-into-shadowdom
Allow rendering into document fragments. Fixes #840
2015-03-16 16:15:03 -07:00
Paul O’Shannessy
10112672b1 Merge pull request #3395 from Simek/reactComponentExpect-cleanup
toBeDOMComponentWithChildCount readability
2015-03-16 16:14:48 -07:00
Sterling Cobb
b59e7e60b5 fix grammer in comments 2015-03-16 17:10:14 -06:00
AoDev
83a2465af9 Add a note about react classe name convention
I lost quite some time trying to figure out what was happening. No error in console and nothing showing up.
2015-03-16 23:59:02 +01:00
Paul O’Shannessy
dacd4db1fa Merge pull request #3427 from zpao/full-page-dom-components
Ensure FullPageComponents are treated as DOM components
2015-03-16 15:39:40 -07:00
Paul O’Shannessy
99cbaed836 Ensure FullPageComponents are treated as DOM components
We currently override a couple DOM components. We need to ensure everything we
override is still treated as a DOM component, even if it has a composite
component wrapper.
2015-03-16 15:18:39 -07:00
Paul O’Shannessy
93e67a0a5b Merge pull request #3425 from zpao/fix-pure-test
Fix PureRender test to use providesModule
2015-03-16 15:14:26 -07:00
Ben Alpert
0a312bba89 Merge pull request #3414 from spicyj/gh-3407
Fix up Perf a bit better for 0.13
2015-03-16 14:04:28 -07:00
Paul O’Shannessy
bb0fc28fac Fix PureRender test to use providesModule 2015-03-16 13:56:43 -07:00
Paul O’Shannessy
b0a59a643a Merge pull request #3381 from zpao/jsx-nonstrictmodule
Fix module option parsing of jsx command
2015-03-16 13:24:35 -07:00
Paul O’Shannessy
4c9a07aad4 Merge pull request #3419 from xmo-odoo/patch-1
Link to inserting raw HTML document
2015-03-16 13:22:33 -07:00
Jim
f3f1294589 Merge pull request #2842 from Acubed/master
Generate XML-compatible void tags and boolean attributes
2015-03-16 12:49:59 -07:00
Jim
fb2999076c Merge pull request #3422 from jviereck/doc-typo-fix
Fix small typo ("of" instead of "or")
2015-03-16 11:03:06 -07:00
Julian Viereck
c6108afdc7 Fix small typo 2015-03-16 18:27:04 +01:00
Paul O’Shannessy
a9e787665d Merge pull request #3413 from zpao/travis
Fix TravisCI fast bail check
2015-03-16 09:28:45 -07:00
xmo-odoo
f0c7b0c8ed Link to inserting raw HTML document 2015-03-16 10:51:20 +01:00
Austin Wright
29416f422e Appease eslint 2015-03-14 14:08:18 -07:00
Austin Wright
b52bb22342 Move list of newline-eating tags to variable 2015-03-14 13:57:15 -07:00
Austin Wright
030a7b34c7 Add back \n-to-be-eaten for the plain-text elements
The comment hack to enable polyglot HTML isn't cross-browser, or simply doesn't work.
2015-03-14 13:53:12 -07:00
Austin Wright
8e714f9898 Update tests to use Polyglot profile of HTML 2015-03-14 13:53:12 -07:00
Austin Wright
e913e85e1a Use a Polyglot HTML-safe method of escaping leading newline in rawtext elements 2015-03-14 13:53:12 -07:00
Austin Wright
8bc828aa7c Generate XML-compatible tags and boolean attributes 2015-03-14 13:53:12 -07:00
Ben Alpert
98671fda1a Fix up Perf a bit better for 0.13
_mountImageIntoNode moved into ReactMount and wasn't being counted where it was supposed to be. In addition, all DOM elements are now wrapped in a composite wrapper but for the perf tools we want to skip over those or else we'll double-count (at least with the current accounting -- and that's effectively what we did before so this brings us back up to parity).

Fixes #3407.

Test Plan:
Used the jsbin from #3407 and saw similar output from this branch and 0.12:

![image](https://cloud.githubusercontent.com/assets/6820/6649816/4d7202e0-c9b2-11e4-9364-e1b50c96b55b.png)
2015-03-13 18:51:53 -07:00
Paul O’Shannessy
08b1515f7f Update TravisCI to use exiting env var
$TRAVIS_COMMIT_RANGE was broken but it seems what we're doing is worse and
resulting in false negatives.

The result of the bad range was that we weren't running lint or tests for
things we should have been. It actually looks like $TRAVIS_COMMIT has been
wrong and it's not clear why this has been working at all.
2015-03-13 18:39:47 -07:00
Paul O’Shannessy
68a2f89cc6 Merge pull request #3402 from vkramskikh/fix-empty-selects-with-value
Fix for empty <select> elements with value
2015-03-13 18:04:57 -07:00
Ben Alpert
ed257cb691 Merge pull request #3412 from spicyj/gh-3329
Squash getDOMNode warning from isDOMComponent
2015-03-13 17:55:02 -07:00
Ben Alpert
70985ba68d Squash getDOMNode warning from isDOMComponent
Fixes #3329.
2015-03-13 17:11:02 -07:00
Ben Alpert
bcd70ad500 Merge pull request #3410 from robertknight/3409-style-null-to-nonnull
Fix incorrect update of style when props.style transitions from null to non-null
2015-03-13 17:07:01 -07:00
Robert Knight
ee86942d77 Fix incorrect update of style when props.style transitions from null to non-null
ReactDOMComponent maintains a copy of the previous style
object to support in-place mutations of props.style.

This cached object was not cleared when the style
property was removed in a props update.

Fixes #3409
2015-03-13 22:16:19 +00:00
Vitaly Kramskikh
2f52d81865 Fix for empty <select> elements with value
There is an exception when value or defaultValue is set but there are no
children as ReactDOMSelect tries to mark the first children as selected
even if there are no children.
2015-03-13 21:48:02 +07:00
Paul O’Shannessy
228c00b813 Merge pull request #3397 from koba04/eslint-ignore-built-files
ESLint ignores built files
2015-03-12 18:25:42 -07:00
Toru Kobayashi
ed0e242e07 ESLint ignores built files 2015-03-13 09:58:20 +09:00
Sebastian Markbåge
ca8d7cba1b Merge pull request #3355 from cpojer/shallowCompare
Add shallowCompare module and use it in PureRenderMixin + tests
2015-03-12 17:45:22 -07:00
Bartosz Kaszubowski
4b1d7bcec2 toBeDOMComponentWithChildCount readability 2015-03-13 00:15:32 +01:00
Paul O’Shannessy
d19636295b Merge pull request #3394 from cody/getDOMNode
Fix in docs: getDOMNode --> findDOMNode
2015-03-12 14:12:23 -07:00
Stefan Dombrowski
84e6a392a3 Fix in docs: getDOMNode --> findDOMNode 2015-03-12 22:07:03 +01:00
Ben Alpert
1f72387a47 Merge pull request #3385 from RichardLitt/patch-2
Nominalized 'shallow copy'
2015-03-11 16:27:26 -07:00
Richard Littauer
00e89454ec Nominalized 'shallow copy'
I mis-parsed 'shallow copies' as adjective noun, instead of as a compound verb. I've adjusted the text to make it easier to parse on the first read, which should also help ESL learners to be able to parse it easier.
2015-03-11 16:22:24 -07:00
Paul O’Shannessy
78001d3abc jsx_orphaned_brackets_transformer v1.0.1 2015-03-11 15:52:54 -07:00
Paul O’Shannessy
b459f2ff99 Merge pull request #3384 from syranide/npmjobt
Fix jsx_orphaned_brackets_transformer using jstransformer with an older esprima version
2015-03-11 15:51:38 -07:00
syranide
4485f6a439 Fix jsx_orphaned_brackets_transformer using jstransformer with an older esprima version 2015-03-11 23:48:05 +01:00
Ben Alpert
f8672c7270 Fix grammar in warning message 2015-03-11 15:47:04 -07:00
Ben Alpert
d9e06462a3 Merge pull request #3383 from ariabuckles/proptype-warnings
[PropTypes] Add warnings if PropTypes return functions
2015-03-11 15:46:17 -07:00
Aria Buckles
206e69c403 [PropTypes] Make invalid proptype warning clearer
Addresses comments on #3383, making the invalid proptype specification
warning clearer and making the tests for it a bit clearer.
2015-03-11 15:36:51 -07:00
Ben Alpert
098f316aff It\ns -> Its 2015-03-11 15:28:24 -07:00
Paul O’Shannessy
adf4aee1b4 [docs] it's --> its 2015-03-11 15:25:57 -07:00
Aria Buckles
d973e32336 [PropTypes] Add warnings if PropTypes return functions
Summary:
Right now, if a component specifies a propType as, for example,
`myProp: React.PropTypes.shape`, without an actual shape
parameter, any prop type will be accepted, because
`React.PropTypes.shape` returns a function (the actual validator),
not an Error, currently indicating that propType checking passed.

This can create an unfortunate situation where a component looks
like it has fully specified `propTypes`, but in fact does not.

This commit addresses this by warning if a propType checker returns
anything non-falsy that is not an Error (currently all the library
PropTypes return null or an Error).

Test Plan:
Added a unit test; ran `jest` in the root repo directory.
Also ran `grunt lint` and `grunt test`
2015-03-11 15:09:18 -07:00
Paul O’Shannessy
c4a2e4d414 Fix module option parsing of jsx command 2015-03-11 14:26:51 -07:00
Jay Jaeho Lee
58f6958128 Revise Korean translation - final 2015-03-12 01:57:44 +09:00
Jim
3d8b47bbcc Merge pull request #3356 from cpojer/findDOMNode
foo.getDOMNode => React.findDOMNode(foo)
2015-03-11 08:47:56 -07:00
Jinwoo Oh
dd3734094c Update Translation to 91b4564 2015-03-12 00:37:35 +09:00
Ted Kim
7dfbf73004 ref-08-reconciliation (based on 941cba6) 2015-03-12 00:37:35 +09:00
Jinwoo Oh
7dc818a95a Translate 06 to Korean
- Up to 8326a9f
2015-03-12 00:37:34 +09:00
Shim Won
f2fbb31ace Apply review
- Up to 60e96ed
2015-03-12 00:37:02 +09:00
Jinwoo Oh
2bc8a36ab9 Translate 11 to Korean
- Up to 83e4409
2015-03-12 00:37:02 +09:00
Shim Won
ec91b4184f Translate 10.1 to Korean
- Up to 678ec31
2015-03-12 00:37:02 +09:00
Seoh Char
4aeb306064 translation of 05-reusable-components-ko-KR.md 2015-03-12 00:37:02 +09:00
Shim Won
87fb9caca7 Update Translation to b95ad29 2015-03-12 00:37:01 +09:00
Shim Won
bf6d9811e7 Translate 10.2 to Korean
- Up to b7a548c
2015-03-12 00:36:50 +09:00
Jinwoo Oh
5579a86ac3 Translate 08.1 to Korean
- Up to b7a548c
2015-03-12 00:36:50 +09:00
Shim Won
c0ac76d723 Translate 10.7 to Korean
- Up to 0bf88f2
2015-03-12 00:36:50 +09:00
Shim Won
c24e5926b9 Translate 10.3 to Korean
- Up to 5ab7fde
2015-03-12 00:36:50 +09:00
Jinwoo Oh
48d2f31a6d Translate conferences to Korean
- Up to 1b86246
2015-03-12 00:36:50 +09:00
Shim Won
8838a6d9f9 Translate 10.5 to Korean
- Up to 60e96ed
2015-03-12 00:36:25 +09:00
Shim Won
74adeb3611 Translate 10.8 to Korean
- Up to ab512af
2015-03-12 00:36:25 +09:00
Shim Won
d3ad46a461 Translate 10.4 to Korean
- Up to 2e232f8
2015-03-12 00:36:25 +09:00
Jinwoo Oh
89b23c0c20 Translate 08 to Korean
- Up to b7a548c
2015-03-12 00:36:25 +09:00
Jim
5afa657d77 Merge pull request #3370 from varunrau/master
Fixed shallowEqual for arguments that are not objects
2015-03-11 08:34:49 -07:00
Shim Won
710668e7f1 Update Translation to 673874d 2015-03-12 00:33:40 +09:00
Shim Won
4ce0e00767 Unify words 2015-03-12 00:33:40 +09:00
Jay Jaeho Lee
3abeb52e6f Revise Korean translations 2015-03-12 00:33:40 +09:00
Shim Won
35293b5229 Translate 09 to Korean
- Up to 2de44cf
2015-03-12 00:33:40 +09:00
Shim Won
a04597eaa1 Translate 02.2 to Korean
- Up to fc91d2f
2015-03-12 00:33:40 +09:00
Shim Won
7e73efefd8 Fix links 2015-03-12 00:33:40 +09:00
Shim Won
fe1a2e48f9 Update think-in-react.ko-KR
- Up to 5ab7fde
2015-03-12 00:33:39 +09:00
Shim Won
f1d74bef9c Translate 10 to Korean
- Up to a911513
2015-03-12 00:33:39 +09:00
Shim Won
fe8cd0c442 Translate 02.3 to Korean
- Up to 6f44f60
2015-03-12 00:33:39 +09:00
Shim Won
84ebb42596 Update content
- Up to 5ab7fde
2015-03-12 00:33:39 +09:00
Shim Won
aae74da792 Translate 02.1 to Korean
- Up to 513433b
2015-03-12 00:33:39 +09:00
Shim Won
fb2f6c6747 Update docs to v0.13.0-beta.2
- Up to 5126cee
2015-03-12 00:33:39 +09:00
Jinwoo Oh
ac466b71d8 Translate tutorial to Korean
- Up to a19966f
2015-03-12 00:33:39 +09:00
Shim Won
547baf82b5 Translate ref 07 to Korean
- Up to 6f44f60
2015-03-12 00:33:39 +09:00
Shim Won
f7f48bda28 Translate ref 06 to Korean
- Up to 4c7cd13
2015-03-12 00:33:38 +09:00
Shim Won
65b8bcce6f Translate ref 05 to Korean
- Up to c0e33e8
2015-03-12 00:33:38 +09:00
Shim Won
ade720d4d9 Translate ref 04 to Korean
- Up to a4c96d6
2015-03-12 00:33:38 +09:00
Lee Jaeyoung
9e601b8c05 translate 10.6-update.ko-KR.md
apply comments

apply comments

apply comments
2015-03-12 00:33:38 +09:00
Shim Won
ae4fbff308 Translate 07 to Korean
- Up to bb52715
2015-03-12 00:33:38 +09:00
Shim Won
c344ef1b79 Translate flux-docs to Korean
- Up to 6c19040
2015-03-12 00:33:38 +09:00
Shim Won
7eabccc214 Translate 04 to Korean
- Up to e4352ef
2015-03-12 00:33:38 +09:00
Jinwoo Oh
8387f3bbc4 Translate getting-started to Korean
- Up to b3cd299
2015-03-12 00:33:38 +09:00
Taeho Kim
a4f9c67dbb Create ref-09-glossary.ko-KR.md 2015-03-12 00:33:38 +09:00
Taeho Kim
87d6c59ebf Create ref-03-component-specs.ko-KR.md
Based on 08c5e42649
2015-03-12 00:33:38 +09:00
Taeho Kim
8b109e54f1 Create ref-02-component-api.ko-KR.md 2015-03-12 00:33:37 +09:00
Taeho Kim
72f631b994 Create ref-01-top-level-api.ko-KR.md
Based on 4f50071de0
2015-03-12 00:33:37 +09:00
Lee Jaeyoung
cb50a48788 translate thinking-in-react.ko 2015-03-12 00:33:37 +09:00
Lee Jaeyoung
4466b0336d translate complementary-tools 2015-03-12 00:33:37 +09:00
Jay Jaeho Lee
e8fa815391 translated docs/docs/02-displaying-data.md into Korean
Up to b25e2e70d8
2015-03-12 00:33:37 +09:00
Shim Won
6686029267 Fix some words, Translate title
- Up to 9f18ccd
2015-03-12 00:33:37 +09:00
Shim Won
f0afc7809a Translate 03 to Korean
- Up to 9f18ccd
2015-03-12 00:33:37 +09:00
Lee Jaeyoung
ed1d7fc513 translate videos.md 2015-03-12 00:33:37 +09:00
Lee Jaeyoung
8cef7910a7 translate examples.md 2015-03-12 00:33:36 +09:00
Jay Jaeho Lee
4d4f322c60 Add docs/docs 01 2015-03-12 00:33:36 +09:00
Varun Rau
6cd004f20a Fixed shallowEqual implementation to handle the case when inputs are not objects.
If either argument is not an object and unequal, then shallowEqual should return false.
If only one argument is an object, then shallowEqual should return false.

Fixes #3369
2015-03-10 18:03:51 -07:00
cpojer
413e96d0cd Add some important getDOMNode tests back. 2015-03-10 17:27:19 -07:00
cpojer
ae7da3aadd foo.getDOMNode => React.findDOMNode(foo) 2015-03-10 17:17:21 -07:00
Jim
91b45641b8 Merge pull request #3317 from ianobermiller/fix-shallow-equal
shallowEqual: bail if either argument is falsey
2015-03-10 15:45:03 -07:00
Ben Alpert
53f92bf858 Fix comma splice and line length 2015-03-10 15:36:27 -07:00
Jim
645a6caaf5 Merge pull request #3323 from jonhester/ie8-compat-mode
warn if IE8 is in compatibility mode
2015-03-10 15:35:09 -07:00
Ben Alpert
462e8f1be8 Merge pull request #3327 from Simek/initialize-variables-fix
initialize dev variables in dev mode only in shouldUpdateReactComponent.js
2015-03-10 15:33:29 -07:00
Ben Alpert
cff3f35bf7 Merge pull request #3321 from Smert/master
Bringing the code to one style.
2015-03-10 15:32:43 -07:00
Ben Alpert
4d9561d938 Merge pull request #3310 from darcyadams/console-exists-before-warn
Check that console exists before warning
2015-03-10 15:32:32 -07:00
Ben Alpert
b95fe57743 Merge pull request #3253 from jsfb/fix-comment-to-reflect-class-type-usage
Fix comment to reflect the new (non-deprecated) way of accessing a class type.
2015-03-10 15:31:50 -07:00
Ben Alpert
e8af59cf82 Merge pull request #3246 from spicyj/onclick
Revert "Revert #1536"
2015-03-10 15:31:38 -07:00
Ben Alpert
68ca057bc3 Merge pull request #3230 from nmn/master
Add numeric CSS property - stroke width
2015-03-10 15:31:30 -07:00
Ben Anderson
75a8bc96b1 Warn when rendering directly into document.body
This is in response to #3207 to address concerns regarding third-party
scripts and browser plugins potentially altering DOM nodes within
document.body, causing problems with reconciliation.

Closes #3211.
2015-03-10 15:31:02 -07:00
Ben Alpert
f77de57e41 Merge pull request #2946 from benmoss/nested-render-warning
Add displayName to nested render warnings [#1726]
2015-03-10 15:24:59 -07:00
Ben Alpert
4feed4fcc5 Merge pull request #2868 from chicoxyzzy/dev_and_prod_environments_consistancy
make dev and production environment consistent
2015-03-10 15:24:33 -07:00
Ben Alpert
9cb25b3ddb Merge pull request #2266 from syranide/voidelem
ReactDOMComponent should not accept children for void elements
2015-03-10 15:24:00 -07:00
Paul O’Shannessy
715aadd1c7 v0.13 starter kit 2015-03-10 15:08:26 -07:00
Paul O’Shannessy
e313616be7 Bump version so we can get back to work 2015-03-10 15:06:35 -07:00
Paul O’Shannessy
e17b6c0514 Bump version in readme 2015-03-10 15:05:43 -07:00
cpojer
a1631bea71 Add shallowCompare module and use it in PureRenderMixin + tests 2015-03-09 18:49:37 -07:00
Bartosz Kaszubowski
a42dcf4f7b initialize dev variables in dev mode only 2015-03-05 21:20:48 +01:00
Jon Hester
65c4aeaa3a use warning module instead of console.debug 2015-03-05 18:53:12 +00:00
Darcy
6b593083ed check that console exists before warning
Console is undefined in earlier versions of IE when it is not open. This causes an uncaught exception, and breaks applications in these versions of IE when attempting to warn when the  console is closed.
Admittedly, console will usually be open when testing in development, but still React should not break the application when it is not.
2015-03-05 09:20:16 -05:00
Jon Hester
a999ac1ac3 warn if IE8 is in compatibility mode 2015-03-05 13:48:28 +00:00
dmitry
adb9b20f6d Bringing the code to one style. 2015-03-05 14:04:47 +02:00
Ian Obermiller
34f4a0e42d shallowEqual: bail if either argument is falsey
Also add some unit tests.
2015-03-04 22:16:51 -08:00
PNikray
3516f33ffd Modified the todo example.
Instead of only using the index to supress the warning it now uses the
text + index to also ensure object iteration order.
2015-03-02 19:49:42 +01:00
PNikray
9c7f9b8de5 Added the key attribute into the todo example
This is to solve the warning (that the key should be set) that was being raised when adding a new item.
2015-02-26 19:37:05 +01:00
Andreas Svensson
20dd247292 ReactDOMComponent should warn when provided children for void elements 2015-02-26 10:14:47 +01:00
Jim
29f6c7e774 Fix comment to reflect the new (non-deprecated) way of accessing a class type. 2015-02-24 11:18:17 -08:00
Ben Alpert
1943a9a0db Only call put/deleteListener with truthy listeners
Without this, transitioning from `<div onClick={null} />` to `<div />` triggered `willDeleteListener` to delete the `click` handler which caused problems; now, we only call `putListener` and `deleteListener` when we have an actual listener.

I now also clean up the `onClickListeners` map upon deletion and don't double-listen when updating the event listener.
2015-02-23 14:52:30 -08:00
Ben Alpert
090e4bbc9a Revert "Revert #1536"
Formerly "Attach empty onclick listener to each node". This reverts commit 431155d2e2.
2015-02-23 14:28:22 -08:00
Naman Goel
34d5e05199 Merge branch 'master' of https://github.com/facebook/react
* 'master' of https://github.com/facebook/react: (30 commits)
  Expose --target flag on jsx executable
  Contributing: cleanup quote style
  Add Relay blog post
  Fix long lines in vendor/fbtransform/visitors
  lint vendor/*.js
  fix .eslintignore
  remove ballmer example
  Fix a doc. cloneWithProps clones a ReactElement.
  lint from root
  Fixed mistake in jsdocs types for cloneWithProps
  Put deprecation warning for classSet
  Lint vendor/fbtransform as well
  More warnings to ReactFragment.create
  Warn when using constructor function directly
  Move option parsing into react-tools proper.
  Remove lodash devDependency
  Added the immutability talk to the React.js Conf update.
  Use same pathways for browser transforms as we use in react-tools
  lint: remove spaces from array brackets
  lint: remove spaces from object braces
  ...
2015-02-22 15:57:34 +01:00
Naman Goel
20d3f0db29 CSS property 2015-02-22 15:57:30 +01:00
chico
9185323959 make dev and production environment consistent 2015-02-22 14:58:42 +03:00
Paul Harper
a18c7549df Modify sample CSS so that it works in Safari
When animating the max-height property in Safari, entering the leave state would trigger an animation to `max-height: 0`. Then when the active state kicked in, it would jump and didn't really look right. Moving the `transition` css property to the active version fixed the issue for me and worked on Safari, Chrome and Firefox. Unfortunately I'm not in a position to test in IE at the moment, but I'll do that at my first convenience tomorrow.
2015-02-18 17:26:54 -08:00
Jim
93f6fc9eeb Allow rendering into document fragments. Fixes #840 2015-02-17 11:24:03 -08:00
Ben Alpert
6b03975395 Make Simulate.mouseEnter/Leave use direct dispatch
Fixes #1297.

onMouseEnter and onMouseLeave shouldn't *actually* use direct dispatch, but doing so is more useful than doing nothing (and I don't think it precludes adding proper enter/leave dispatching later, either).

Test Plan:
grunt test
2015-02-16 16:12:19 -08:00
Nick Williams
5bf8cda58f document checkbox using click handlers for change events
I hit an issue related to this earlier today. Feels like a short paragraph warning of potential issues would be of benefit.  Discussed with @zpao on IRC, agreed to make PR.

For more info:
* https://github.com/facebook/react/issues/3005#issuecomment-72513965
* c7e4f55eb0/src/browser/eventPlugins/ChangeEventPlugin.js (L287)
2015-02-05 22:32:23 +00:00
Ben Moss
ba55716a2d Fix warning messages wording and access of displayName 2015-02-02 18:05:31 -05:00
Ben Moss
28f50c8a78 Add displayName to nested render warnings [#1726] 2015-01-26 14:14:36 -05:00
Jason Webster
6846cce840 Add additional supported methods to event documentation
`isPropagationStopped` and `isDefaultPrevented` methods do in fact exist on `SyntheticEvent`
2014-12-05 01:19:08 -08:00
Alexander Shtuchkin
c779ad4da3 Fix ReactTransitionGroup behavior when removing several children at once
If several children complete leaving before rendering TransitionGroup,
only the last one was removed. This could easily happen if
callback in componentWillLeave is called synchronously and several items
are removed from array. The other case is when ReactCSSTransitionGroup
has transitionLeave={false} and array is also cleaned up.

The bug was happening because this.state.children was used as a base for
children removal and it wasn't updated until the render, so only the last
removal was actually happening.

Fix involves keeping the updated children state between invocations of
_handleDoneLeaving. After updating this.state and rendering,
updatedState is cleaned up and ready for subsequent array modifications.

Test case included.
2014-11-17 15:15:54 -08:00
1474 changed files with 167077 additions and 66857 deletions

25
.babelrc Normal file
View File

@@ -0,0 +1,25 @@
{
"presets": ["react"],
"ignore": ["third_party"],
"plugins": [
"transform-class-properties",
"syntax-trailing-function-commas",
"transform-object-rest-spread",
"transform-es2015-template-literals",
"transform-es2015-literals",
"transform-es2015-arrow-functions",
"transform-es2015-block-scoped-functions",
["transform-es2015-classes", { "loose": true }],
"transform-es2015-object-super",
"transform-es2015-shorthand-properties",
"transform-es2015-computed-properties",
"transform-es2015-for-of",
"check-es2015-constants",
["transform-es2015-spread", { "loose": true }],
"transform-es2015-parameters",
["transform-es2015-destructuring", { "loose": true }],
["transform-es2015-block-scoping", { "throwIfClosureRequired": true }],
"transform-es3-member-expression-literals",
"transform-es3-property-literals"
]
}

View File

@@ -6,6 +6,7 @@ charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 80
trim_trailing_whitespace = true

View File

@@ -1,19 +1,19 @@
# We can probably lint these later but not important at this point
src/vendor
# eslint uses JSX* node types to determine if using JSX. esprima-fb still uses
# XJS* nodes. When we fix that (https://github.com/facebook/esprima/pull/85) we
# can enable linting the tests and fix those errors.
src/**/__tests__/**
# This should be enabled but that folder has too much in it that doesn't belong
src/test
test/the-files-to-test.generated.js
# This is synced with a different file internally, don't want to lint it yet
vendor/fbtransform/syntax.js
vendor/jasmine/
vendor/jasmine-jsreporter/
src/renderers/art
src/__mocks__/vendor
# But not in docs/_js/examples/*
docs/_js/*.js
docs/js/
docs/_site/
# gems
docs/vendor/bundle/
# This should be more like examples/**/thirdparty/** but
# we should fix https://github.com/facebook/esprima/pull/85 first
examples/
fixtures/
# Ignore built files.
build/
coverage/
scripts/bench/benchmarks/**/*.js
scripts/bench/remote-repo/
vendor/*
**/node_modules

View File

@@ -1,51 +0,0 @@
---
parser: esprima-fb
env:
browser: true
node: true
globals:
__DEV__: true
rules:
# ERRORS
space-before-blocks: 2
indent: [2, 2, indentSwitchCase: true]
brace-style: 2
space-after-keywords: 2
strict: 2
# We actually have a transform to support this and we fix this for bundled
# releases but not for the npm package, so enforce it strictly
no-comma-dangle: 2
# Make this a warning for now. We do this in a few places so we might need to
# disable
no-unused-expressions: 2
block-scoped-var: 2
eol-last: 2
dot-notation: 2
consistent-return: 2
no-unused-vars: [2, args: none]
quotes: [2, 'single']
# WARNINGS
# This is the only one that's hard to track since we don't lint just changes.
max-len: [1, 80]
# WISHLIST. One day...
# We'll need a custom version of this that does a subset of the whole rule.
# Otherwise this is just too noisy.
# valid-jsdoc: 1
# DISABLED. These aren't compatible with our style
# We use this for private/internal variables
no-underscore-dangle: 0
# We pass constructors around / access them from members
new-cap: 0
# We do this a lot.
no-use-before-define: 0
# We do this in a few places to align values
key-spacing: 0
# DISABLED. These currently cause errors when running.
no-multi-spaces: 0

64
.eslintrc.js Normal file
View File

@@ -0,0 +1,64 @@
'use strict';
const OFF = 0;
const ERROR = 2;
module.exports = {
extends: 'fbjs',
plugins: [
'react',
'react-internal',
],
// We're stricter than the default config, mostly. We'll override a few rules
// and then enable some React specific ones.
rules: {
'accessor-pairs': OFF,
'brace-style': [ERROR, '1tbs'],
'comma-dangle': [ERROR, 'always-multiline'],
'consistent-return': OFF,
'dot-location': [ERROR, 'property'],
'dot-notation': ERROR,
'eol-last': ERROR,
'eqeqeq': [ERROR, 'allow-null'],
'indent': OFF,
'jsx-quotes': [ERROR, 'prefer-double'],
'keyword-spacing': [ERROR, {after: true, before: true}],
'no-bitwise': OFF,
'no-inner-declarations': [ERROR, 'functions'],
'no-multi-spaces': ERROR,
'no-restricted-syntax': [ERROR, 'WithStatement'],
'no-shadow': ERROR,
'no-unused-expressions': ERROR,
'no-unused-vars': [ERROR, {args: 'none'}],
'no-useless-concat': OFF,
'quotes': [ERROR, 'single', {avoidEscape: true, allowTemplateLiterals: true }],
'space-before-blocks': ERROR,
'space-before-function-paren': OFF,
// React & JSX
// Our transforms set this automatically
'react/jsx-boolean-value': [ERROR, 'always'],
'react/jsx-no-undef': ERROR,
// We don't care to do this
'react/jsx-sort-prop-types': OFF,
'react/jsx-space-before-closing': ERROR,
'react/jsx-uses-react': ERROR,
'react/no-is-mounted': OFF,
// This isn't useful in our test code
'react/react-in-jsx-scope': ERROR,
'react/self-closing-comp': ERROR,
// We don't care to do this
'react/jsx-wrap-multilines': [ERROR, {declaration: false, assignment: false}],
// CUSTOM RULES
// the second argument of warning/invariant should be a literal string
'react-internal/warning-and-invariant-args': ERROR,
'react-internal/no-primitive-constructors': ERROR,
},
globals: {
expectDev: true,
},
};

41
.flowconfig Normal file
View File

@@ -0,0 +1,41 @@
[ignore]
<PROJECT_ROOT>/fixtures/.*
<PROJECT_ROOT>/build/.*
<PROJECT_ROOT>/scripts/.*
<PROJECT_ROOT>/.*/node_modules/y18n/.*
<PROJECT_ROOT>/node_modules/chrome-devtools-frontend/.*
<PROJECT_ROOT>/node_modules/devtools-timeline-model/.*
<PROJECT_ROOT>/.*/__mocks__/.*
<PROJECT_ROOT>/.*/__tests__/.*
# Ignore Docs
<PROJECT_ROOT>/docs/.*
<PROJECT_ROOT>/.*/docs/.*
[include]
[libs]
./node_modules/fbjs/flow/lib/dev.js
./flow
[options]
module.system=haste
esproposal.class_static_fields=enable
esproposal.class_instance_fields=enable
munge_underscores=false
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FixMe
suppress_type=$FlowExpectedError
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-3]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*www[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(3[0-3]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*www[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
[version]
^0.50.0

9
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,9 @@
**Do you want to request a *feature* or report a *bug*?**
**What is the current behavior?**
**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://jsfiddle.net or similar (template: https://jsfiddle.net/84v837e9/).**
**What is the expected behavior?**
**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

10
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,10 @@
**Before submitting a pull request,** please make sure the following is done:
1. Fork [the repository](https://github.com/facebook/react) and create your branch from `master`.
2. If you've added code that should be tested, add tests!
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes (`npm test`).
5. Format your code with [prettier](https://github.com/prettier/prettier) (`npm run prettier`).
6. Make sure your code lints (`npm run lint`).
7. Run the [Flow](https://flowtype.org/) typechecks (`npm run flow`).
8. If you haven't already, complete the CLA.

18
.gitignore vendored
View File

@@ -7,14 +7,28 @@ static
_SpecRunner.html
__benchmarks__
build/
remote-repo/
coverage/
.module-cache
*.gem
docs/.bundle
docs/code
docs/_site
docs/.sass-cache
docs/js/*
docs/downloads
examples/shared/*.js
docs/downloads/*.zip
docs/vendor/bundle
fixtures/dom/public/react-dom.js
fixtures/dom/public/react.js
test/the-files-to-test.generated.js
*.log*
chrome-user-data
*.sublime-project
*.sublime-workspace
.idea
*.iml
.vscode
*.swp
*.swo
*react*min*.js
!src/node_modules

View File

@@ -1,62 +1,119 @@
Adam Timberlake <adam.timberlake@gmail.com>
Alex Mykyta <dancingwithcows@gmail.com>
Alex Pien <alexpien@gmail.com>
Alex Pien <alexpien@gmail.com> <pien@pien-mbp.dhcp.thefacebook.com>
Alex Pien <alexpien@gmail.com> <pien@pien-mbp.local>
Andreas Savvides <asavvides@twitter.com> <AnSavvides@users.noreply.github.com>
Andreas Savvides <asavvides@twitter.com> <andreas@nibbli.com>
Andreas Svensson <andreas@syranide.com>
Andres Suarez <zertosh@gmail.com>
Andrew Kulakov <avk@8xx8.ru>
Andrew Sokolov <asokolov@atlassian.com>
Anto Aravinth <anto.aravinth.cse@gmail.com>
Baraa Hamodi <bhamodi@uwaterloo.ca> <baraa@optimizely.com>
Ben Alpert <ben@benalpert.com> <balpert@fb.com>
Ben Alpert <ben@benalpert.com> <spicyjalapeno@gmail.com>
Ben Halpern <bendhalpern@gmail.com>
Ben Newman <bn@cs.stanford.edu> <benjamn@fb.com>
Benjamin Woodruff <github@benjam.info> <bgw@fb.com>
Bill Fisher <fisherwebdev@gmail.com>
Blaine Kasten <blainekasten@gmail.com>
Brandon Tilley <brandon@brandontilley.com>
Changsoon Bok <winmain@gmail.com>
Cheng Lou <chenglou92@gmail.com> <chenglou@fb.com>
Christian Oliff <christianoliff@yahoo.com>
Christoph Pojer <christoph.pojer@gmail.com>
Christoph Pojer <christoph.pojer@gmail.com> <cpojer@fb.com>
Connor McSheffrey <c@conr.me> <connor.mcsheffrey@gmail.com>
Conor Hastings <hastings.conorm@gmail.com> <conor@socialtables.com>
Dan Schafer <dschafer@fb.com>
Daniel Gasienica <daniel@gasienica.ch> <daniel@fiftythree.com>
Daniel Gasienica <daniel@gasienica.ch> <dgasienica@zynga.com>
Daniel Hejl <daniel.hejl@hotmail.com>
Daniel Lo Nigro <daniel@dan.cx> <danlo@fb.com>
Dave Galbraith <dave@jut.io>
Dennis Johnson <songawee@gmail.com>
Dmitry Blues <dmitri.blyus@gmail.com>
Dongsheng Liu <bellanchor@gmail.com>
Erik Harper <eharper@mixpo.com>
Evan Coonrod <evan@paloalto.com>
Fabio M. Costa <fabiomcosta@gmail.com> <fabs@fb.com>
Felix Kling <felix.kling@gmx.net> <fkling@fb.com>
François-Xavier Bois <fxbois@gmail.com>
Fyodor Ivanishchev <cbrwizard@gmail.com>
Gabe Levi <gabelevi@gmail.com> <glevi@fb.com>
Geert Pasteels <geert.pasteels@gmail.com>
George A Sisco III <george.sisco@gmail.com>
Georgii Dolzhykov <thorn.mailbox@gmail.com>
Harry Hull <harry.hull1@gmail.com>
Hendrik Swanepoel <hendrik.swanepoel@gmail.com>
Hyeock Kwon <doublus@gmail.com>
Ian Obermiller <ian@obermillers.com> <iano@fb.com>
Ilia Pavlenkov <dortonway@gmail.com>
Ilyá Belsky <gelias.gbelsky@gmail.com>
Ingvar Stepanyan <me@rreverser.com> <rreverser@ubuntu.rreverser.a4.internal.cloudapp.net>
Irae Carvalho <irae@irae.pro.br>
Ivan Vergiliev <ivan.vergiliev@gmail.com>
JJ Weber <jj.weber@gmail.com>
Jae Hun Ro <jhr24@duke.edu>
Jaime Mingo <j.mingov@3boll.com>
James Brantly <james@jbrantly.com>
Jan Hancic <jan.hancic@gmail.com> <jan.hancic@caplin.com>
Jan Kassens <jan@kassens.net> <jkassens@fb.com>
Jason Bonta <jbonta@gmail.com> <jasonbonta@fb.com>
Jason Quense <monastic.panic@gmail.com>
Jason Trill <jason@jasontrill.com>
Jeff Chan <jefftchan@gmail.com> <jeff@quizlet.com>
Jeff Morrison <jeff@anafx.com> <Jeff@anafx.com>
Jeff Morrison <jeff@anafx.com> <jeffmo@fb.com>
Jeff Morrison <jeff@anafx.com> <lbljeffmo@gmail.com>
Jeffrey Lin <lin.jeffrey@gmail.com> <jeffreylin@fb.com>
Jim Sproch <jsproch@fb.com>
Jim Sproch <jsproch@fb.com> <jsfb@github>
Jim Sproch <jsproch@fb.com> <none@no-reply.com>
Jinwoo Oh <arkist@gmail.com>
Jinxiu Lee <lee.jinxiu@gmail.com>
Jiyeon Seo <zzzeons@gmail.com>
Jon Chester <jonchester@fb.com>
Jon Madison <jon@tfftech.com>
Jonathan Hsu <jhiswin@gmail.com>
Jonathan Persson <persson.jonathan@gmail.com> <jonathan.persson@creuna.se>
Jordan Walke <jordojw@gmail.com>
Jordan Walke <jordojw@gmail.com> <jordanjcw@fb.com>
Joseph Savona <joesavona@fb.com> <josephsavona@users.noreply.github.com>
Josh Duck <josh@fb.com> <github@joshduck.com>
Juan Serrano <germ13@users.noreply.github.com>
Jun Wu <quark@lihdd.net>
Justin Robison <jrobison151@gmail.com>
Keito Uchiyama <projects@keito.me> <keito@fb.com>
Kevin Coughlin <kevintcoughlin@gmail.com> <kevincoughlin@tumblr.com>
Krystian Karczewski <karcz.k@gmail.com>
Kunal Mehta <k.mehta@berkeley.edu> <kunalm@fb.com>
Laurence Rowe <l@lrowe.co.uk> <laurence@lrowe.co.uk>
Marcin K. <katzoo@github.mail>
Mark Anderson <undernewmanagement@users.noreply.github.com>
Mark Funk <mfunk86@gmail.com> <mark@boomtownroi.com>
Martin Andert <mandert@gmail.com>
Mathieu M-Gosselin <mathieumg@gmail.com> <mathieumg@atx33.com>
Matsunoki <himkt@klis.tsukuba.ac.jp>
Matt Brookes <matt@brookes.net>
Matt Dunn-Rankin <mdunnrankin@gmail.com> <matchu1993@gmail.com>
Matt Zabriskie <mzabriskie@gmail.com>
Matthew Johnston <matthewjohnston4@outlook.com> <matthewjohnston4@users.noreply.github.com>
Matthew Looi <looi.matthew@gmail.com>
Mattijs Kneppers <mattijs@arttech.nl>
Max Heiber <max.heiber@gmail.com>
Max Stoiber <contact@mstoiber.com>
Michal Srb <xixixao@seznam.cz> xixixao <xixixao@seznam.cz>
Michelle Todd <himichelletodd@gmail.com> <michelle@khanacademy.org>
Mihai Parparita <mihai.parparita@gmail.com> <mihai@persistent.info>
Minwe LUO <minwe@yunshipei.com>
Murray M. Moss <murray@mmoss.name> <MMoss@cainc.com>
Murray M. Moss <murray@mmoss.name> <mmoss@users.noreply.github.com>
Neri Marschik <marschik_neri@cyberagent.co.jp>
Nick Gavalas <njg57@cornell.edu>
Nick Thompson <ncthom91@gmail.com> <nickt@instagram.com>
Patrick Stapleton <github@gdi2290.com>
Paul OShannessy <paul@oshannessy.com> <poshannessy@fb.com>
Paul Shen <paul@mnml0.com> <paulshen@fb.com>
Pete Hunt <floydophone@gmail.com>
@@ -67,23 +124,39 @@ Petri Lievonen <plievone@cc.hut.fi>
Petri Lievonen <plievone@cc.hut.fi> <petri.lievonen@tkk.fi>
Pieter Vanderwerff <me@pieter.io> <pieter@heyday.co.nz>
Pouja Nikray <poujanik@gmail.com>
Rainer Oviir <roviir@gmail.com> <raineroviir@rainers-MacBook-Pro.local>
Ray <ray@tomo.im>
Richard Feldman <richard.t.feldman@gmail.com> <richard@noredink.com>
Richard Livesey <Livesey7@hotmail.co.uk>
Rob Arnold <robarnold@cs.cmu.edu>
Robert Binna <rbinna@gmail.com> <speedskater@users.noreply.github.com>
Robin Frischmann <robin@rofrischmann.de>
Sander Spies <sandermail@gmail.com>
Scott Feeney <scott@oceanbase.org> <smf@fb.com>
Sebastian Markbåge <sebastian@calyptus.eu> <sema@fb.com>
Sergey Rubanov <chi187@gmail.com>
Shogun Sea <shogunsea08@gmail.com> <xxin@groupon.com>
Soichiro Kawamura <mail@w-st.com>
Sota Ohara <ohrst.18@gmail.com>
Steven Luscher <react@steveluscher.com> <github@steveluscher.com>
Steven Luscher <react@steveluscher.com> <steveluscher@fb.com>
Steven Luscher <react@steveluscher.com> <steveluscher@instagram.com>
Steven Luscher <react@steveluscher.com> <steveluscher@users.noreply.github.com>
Stoyan Stefanov <ssttoo@ymail.com>
Tengfei Guo <terryr3rd@yeah.net> <tfguo369@gmail.com>
Thomas Aylott <oblivious@subtlegradient.com> <aylott@fb.com>
Timothy Yung <yungsters@gmail.com> <yungsters@fb.com>
Tomoya Suzuki <tmysz.dev@gmail.com>
Vasiliy Loginevskiy <Yeti.or@gmail.com>
Vasiliy Loginevskiy <Yeti.or@gmail.com> <yeti-or@yandex-team.ru>
Vjeux <vjeuxx@gmail.com>
Vjeux <vjeuxx@gmail.com> <vjeux@fb.com>
Volkan Unsal <spocksplanet@gmail.com>
Wander Wang <wander.wang@ismole.com>
Xavier Morel <xmo-odoo@users.noreply.github.com>
YouBao Nong <noyobo@gmail.com> <nongyoubao@alibaba-inc.com>
Yutaka Nakajima <nakazye@gmail.com>
Zach Bruggeman <mail@bruggie.com> <zbruggeman@me.com>
iawia002 <z2d@jifangcheng.com> <850127508@qq.com>
元彦 <yuanyan@users.noreply.github.com>
张敏 <cookfront@gmail.com>

View File

@@ -1,71 +0,0 @@
---
language: node_js
node_js:
- '0.10'
sudo: false
cache:
directories:
- node_modules
before_install:
- |
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
PR_FIRST=$(curl -s https://github.com/${TRAVIS_REPO_SLUG}/pull/${TRAVIS_PULL_REQUEST}.patch | head -1 | grep -o -E '\b[0-9a-f]{40}\b' | tr -d '\n')
TRAVIS_COMMIT_RANGE=$PR_FIRST^..$TRAVIS_COMMIT
fi
git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.md$)|(^(docs|examples))/' || {
echo "Only docs were updated, stopping build process."
exit
}
script:
- |
grunt $TEST_TYPE
after_script:
- |
if [ "$TEST_TYPE" = test ] && [ "$SERVER" ]; then
grunt build
curl \
-F "react=@build/react.js" \
-F "react.min=@build/react.min.js" \
-F "transformer=@build/JSXTransformer.js" \
-F "react-with-addons=@build/react-with-addons.js" \
-F "react-with-addons.min=@build/react-with-addons.min.js" \
-F "npm-react=@build/react.tgz" \
-F "npm-react-tools=@build/react-tools.tgz" \
-F "commit=$TRAVIS_COMMIT" \
-F "date=`git log --format='%ct' -1`" \
-F "pull_request=$TRAVIS_PULL_REQUEST" \
-F "token=$SECRET_TOKEN" \
-F "branch=$TRAVIS_BRANCH" \
$SERVER
fi
env:
matrix:
- TEST_TYPE=test
- TEST_TYPE=jest
- TEST_TYPE=lint
- TEST_TYPE=test:webdriver:saucelabs:modern
global:
# SERVER
- secure: qPvsJ46XzGrdIuPA70b55xQNGF8jcK7N1LN5CCQYYocXLa+fBrl+fTE77QvehOPhqwJXcj6kOxI+sY0KrVwV7gmq2XY2HZGWUSCxTN0SZlNIzqPA80Y7G/yOjA4PUt8LKgP+8tptyhTAY56qf+hgW8BoLiKOdztYF2p+3zXOLuA=
# SECRET_TOKEN
- secure: dkpPW+VnoqC/okhRdV90m36NcyBFhcwEKL3bNFExAwi0dXnFao8RoFlvnwiPlA23h2faROkMIetXlti6Aju08BgUFV+f9aL6vLyU7gUent4Nd3413zf2fwDtXIWIETg6uLnOpSykGKgCAT/hY3Q2oPLqOoY0OxfgnbqwxkxljrE=
matrix:
fast_finish: true
allow_failures:
- env: TEST_TYPE=test:coverage
- env: TEST_TYPE=perf:full
- env: TEST_TYPE=test:webdriver:saucelabs:modern
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie11
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie10
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie9
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie8
- env: TEST_TYPE=test:webdriver:saucelabs:ios
- env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=safari
notifications:
irc:
use_notice: true
skip_join: true
on_success: change
on_failure: change
channels:
- chat.freenode.net#reactjs

361
AUTHORS
View File

@@ -1,45 +1,92 @@
839 <8398a7@gmail.com>
Aaron Franks <aaron.franks@gmail.com>
Aaron Gelter <aaron.gelter@harman.com>
Adam Bloomston <adam@glitterfram.es>
Adam Krebs <amk528@cs.nyu.edu>
Adam Mark <adammark75@gmail.com>
Adam Solove <asolove@gmail.com>
Adam Timberlake <adam.timberlake@gmail.com>
Adam Zapletal <adamzap@gmail.com>
Ahmad Wali Sidiqi <wali-s@users.noreply.github.com>
Alan Plum <me@pluma.io>
Alan Souza <alansouzati@gmail.com>
Alan deLevie <adelevie@gmail.com>
Alastair Hole <afhole@gmail.com>
Alex <ultrafez@users.noreply.github.com>
Alex Boatwright <drdelambre@gmail.com>
Alex Boyd <alex@opengroove.org>
Alex Dajani <xelad1@gmail.com>
Alex Lopatin <alex@alexlopatin.com>
Alex Mykyta <dancingwithcows@gmail.com>
Alex Pien <alexpien@gmail.com>
Alex Smith <iqwz@ya.ru>
Alex Zelenskiy <azelenskiy@fb.com>
Alexander Shtuchkin <ashtuchkin@gmail.com>
Alexander Solovyov <alexander@solovyov.net>
Alexander Tseung <alextsg@gmail.com>
Alexandre Gaudencio <shahor@shahor.fr>
Alexey Raspopov <avenger7x13@gmail.com>
Alexey Shamrin <shamrin@gmail.com>
Ali Ukani <ali.ukani@gmail.com>
Andre Z Sanchez <andrezacsanchez@gmail.com>
Andreas Savvides <asavvides@twitter.com>
Andreas Svensson <andreas@syranide.com>
Andres Kalle <mjomble@gmail.com>
Andres Suarez <zertosh@gmail.com>
Andrew Clark <acdlite@me.com>
Andrew Cobby <cobbweb@users.noreply.github.com>
Andrew Davey <andrew@equin.co.uk>
Andrew Henderson <andrew.m.henderson@gmail.com>
Andrew Kulakov <avk@8xx8.ru>
Andrew Rasmussen <andras@fb.com>
Andrew Sokolov <asokolov@atlassian.com>
Andrew Zich <azich@fb.com>
Andrey Popp <8mayday@gmail.com>
Anthony van der Hoorn <anthony.vanderhoorn@gmail.com>
Anto Aravinth <anto.aravinth.cse@gmail.com>
Antonio Ruberto <anto.ruberto@gmail.com>
Antti Ahti <antti.ahti@gmail.com>
Anuj Tomar <ankuto@gmail.com>
AoDev <AoDev@users.noreply.github.com>
April Arcus <april.arcus@gmail.com>
Areeb Malik <areeb.malik91@gmail.com>
Aria Buckles <aria@khanacademy.org>
Aria Stewart <aredridel@dinhe.net>
Arian Faurtosh <arian@icloud.com>
Artem Nezvigin <artem@artnez.com>
Austin Wright <aaa@bzfx.net>
Ayman Osman <aymano.osman@gmail.com>
Baraa Hamodi <bhamodi@uwaterloo.ca>
Bartosz Kaszubowski <gosimek@gmail.com>
Basarat Ali Syed <basaratali@gmail.com>
Battaile Fauber <battaile@gmail.com>
Beau Smith <beau@beausmith.com>
Ben Alpert <ben@benalpert.com>
Ben Anderson <banderson@constantcontact.com>
Ben Brooks <ben@benbrooks.net>
Ben Foxall <benfoxall@gmail.com>
Ben Halpern <bendhalpern@gmail.com>
Ben Jaffe <jaffe.ben@gmail.com>
Ben Moss <ben@mossity.com>
Ben Newman <bn@cs.stanford.edu>
Ben Ripkens <bripkens.dev@gmail.com>
Benjamin Keen <ben.keen@gmail.com>
Benjamin Leiken <benleiken@gmail.com>
Benjamin Woodruff <github@benjam.info>
Benjy Cui <benjytrys@gmail.com>
Bill Blanchard <bill@plumbdev.com>
Bill Fisher <fisherwebdev@gmail.com>
Blaine Hatab <jbhatab@gmail.com>
Blaine Kasten <blainekasten@gmail.com>
Bob Eagan <bob@synapsestudios.com>
Bob Ralian <bob.ralian@gmail.com>
Bob Renwick <bob.renwick@gmail.com>
Bobby <puppybytes@gmail.com>
Bojan Mihelac <bmihelac@mihelac.org>
Bradley Spaulding <brad.spaulding@gmail.com>
Brandon Bloom <brandon@brandonbloom.name>
Brandon Tilley <brandon@brandontilley.com>
Brenard Cubacub <bcbcb@users.noreply.github.com>
Brian Cooke <bri@bricooke.com>
Brian Holt <btholt@gmail.com>
Brian Hsu <brianhsu@Brians-MacBook-Pro.local>
@@ -50,205 +97,412 @@ Brian Rue <brian@rollbar.com>
Bruno Škvorc <bruno@skvorc.me>
Cam Song <neosoyn@gmail.com>
Cam Spiers <camspiers@gmail.com>
Cameron Chamberlain <git@camjc.com>
Cameron Matheson <cameron@instructure.com>
Carter Chung <carterchung@users.noreply.github.com>
Cassus Adam Banko <banko.adam@gmail.com>
Cat Chen <catchen@fb.com>
Cedric Sohrauer <cedric.sohrauer@infopark.de>
Cesar William Alvarenga <cesarwbr@gmail.com>
Changsoon Bok <winmain@gmail.com>
Charles Marsh <charlie@khanacademy.org>
Chase Adams <realchaseadams@gmail.com>
Cheng Lou <chenglou92@gmail.com>
Chitharanjan Das <das.chitharanjan@gmail.com>
Chris Bolin <bolin.chris@gmail.com>
Chris Grovers <chrisgrovers@users.noreply.github.com>
Chris Ha <chriskevinha@gmail.com>
Chris Rebert <github@rebertia.com>
Chris Sciolla <csciolla1@gmail.com>
Christian <christianoliff@yahoo.com>
Christian Alfoni <christianalfoni@gmail.com>
Christian Oliff <christianoliff@yahoo.com>
Christian Roman <chroman16@gmail.com>
Christoffer Sawicki <christoffer.sawicki@gmail.com>
Christoph Pojer <christoph.pojer@gmail.com>
Christopher Monsanto <chris@monsan.to>
Clay Allsopp <clay.allsopp@gmail.com>
Connor McSheffrey <c@conr.me>
Conor Hastings <hastings.conorm@gmail.com>
Cory House <housecor@gmail.com>
Cotton Hou <himcotton@gmail.com>
Craig Akimoto <strawbrary@users.noreply.github.com>
Cristovao Verstraeten <cristovao@apleasantview.com>
Damien Pellier <dpellier@leadformance.com>
Dan Abramov <dan.abramov@gmail.com>
Dan Fox <iamdanfox@gmail.com>
Dan Schafer <dschafer@fb.com>
Daniel Carlsson <daniel.carlsson.1987@gmail.com>
Daniel Cousens <dcousens@users.noreply.github.com>
Daniel Friesen <daniel@nadir-seen-fire.com>
Daniel Gasienica <daniel@gasienica.ch>
Daniel Hejl <daniel.hejl@hotmail.com>
Daniel Hejl <hejldaniel@gmail.com>
Daniel Lo Nigro <daniel@dan.cx>
Daniel Mané <danmane@gmail.com>
Daniel Miladinov <dmiladinov@wingspan.com>
Daniel Rodgers-Pryor <djrodgerspryor@gmail.com>
Daniel Schonfeld <daniel@schonfeld.org>
Danny Ben-David <dannybd@fb.com>
Darcy <smadad@me.com>
Daryl Lau <daryl@weak.io>
Darío Javier Cravero <dario@uxtemple.com>
Dave Galbraith <dave@jut.io>
David Baker <djbaker2@gmail.com>
David Ed Mellum <david@edmellum.com>
David Goldberg <gberg1@users.noreply.github.com>
David Granado <davidjgranado@gmail.com>
David Greenspan <dgreenspan@alum.mit.edu>
David Hellsing <david@aino.se>
David Hu <davidhu91@gmail.com>
David Khourshid <davidkpiano@gmail.com>
David Mininger <dmininger@gmail.com>
David Neubauer <davidneub@gmail.com>
David Percy <davetp425@gmail.com>
Dean Shi <dnshi@users.noreply.github.com>
Denis Sokolov <denis@sokolov.cc>
Deniss Jacenko <deniss.jacenko+github@gmail.com>
Dennis Johnson <djohnson@rallydev.com>
Devon Blandin <dblandin@gmail.com>
Devon Harvey <devonharvey@gmail.com>
Dmitrii Abramov <dmitrii@rheia.us>
Dmitriy Rozhkov <dmitriy.rozhkov@xing.com>
Dmitry Blues <dmitri.blyus@gmail.com>
Dmitry Mazuro <dmitry.mazuro@icloud.com>
Domenico Matteo <matteo.domenico@gmail.com>
Don Abrams <donabrams@gmail.com>
Dongsheng Liu <bellanchor@gmail.com>
Dustan Kasten <dustan.kasten@gmail.com>
Dustin Getz <dgetz@wingspan.com>
Dylan Harrington <dylanharrington@gmail.com>
Eduardo Garcia <emumaniacx@gmail.com>
Edvin Erikson <edvin@rocketblast.com>
Elaine Fang <elainefang@Elaines-MacBook-Pro.local>
Enguerran <engcolson@gmail.com>
Eric Clemmons <eric@smarterspam.com>
Eric Eastwood <contact@ericeastwood.com>
Eric Florenzano <floguy@gmail.com>
Eric O'Connell <eric.oconnell@idealist.org>
Eric Schoffstall <contra@wearefractal.com>
Erik Harper <eharper@mixpo.com>
Espen Hovlandsdal <rexxars@gmail.com>
Evan Coonrod <evan@paloalto.com>
Evan Vosberg <evanvosberg@urban.to>
Fabio M. Costa <fabiomcosta@gmail.com>
Federico Rampazzo <frampone@gmail.com>
Felipe Oliveira Carvalho <felipekde@gmail.com>
Felix Gnass <fgnass@gmail.com>
Felix Kling <felix.kling@gmx.net>
Fernando Correia <fernando@servicero.com>
Frankie Bagnardi <f.bagnardi@gmail.com>
François-Xavier Bois <fxbois@gmail.com>
Fred Zhao <fredz@fb.com>
Freddy Rangel <frederick.rangel@gmail.com>
Fyodor Ivanishchev <cbrwizard@gmail.com>
G Scott Olson <gscottolson@gmail.com>
G. Kay Lee <balancetraveller+github@gmail.com>
Gabe Levi <gabelevi@gmail.com>
Gajus Kuizinas <g.kuizinas@anuary.com>
Gareth Nicholson <gareth.nic@gmail.com>
Garren Smith <garren.smith@gmail.com>
Gavin McQuistin <gavin@kickfiredesign.com>
Geert Pasteels <geert.pasteels@gmail.com>
Geert-Jan Brits <gbrits@gmail.com>
George A Sisco III <george.sisco@gmail.com>
Georgii Dolzhykov <thorn.mailbox@gmail.com>
Gilbert <gilbertbgarza@gmail.com>
Glen Mailer <glenjamin@gmail.com>
Grant Timmerman <granttimmerman@gmail.com>
Greg Hurrell <glh@fb.com>
Greg Perkins <gregrperkins@fb.com>
Greg Roodt <groodt@gmail.com>
Gregory <g.marcilhacy@gmail.com>
Guangqiang Dong <gqdong@fb.com>
Guido Bouman <m@guido.vc>
Harry Hull <harry.hull1@gmail.com>
Harry Marr <harry.marr@gmail.com>
Harry Moreno <morenoh149@gmail.com>
Harshad Sabne <harshadsabne@users.noreply.github.com>
Hekar Khani <hekark@gmail.com>
Hendrik Swanepoel <hendrik.swanepoel@gmail.com>
Henrik Nyh <henrik@nyh.se>
Henry Wong <henryw4k@gmail.com>
Henry Zhu <hi@henryzoo.com>
Hideo Matsumoto <hideo-m@pekeq.com>
Hou Chia <kchia87@gmail.com>
Huang-Wei Chang <chang.huangwei.01@gmail.com>
Hugo Agbonon <hugo@agbonon.fr>
Hugo Jobling <me@thisishugo.com>
Hyeock Kwon <doublus@gmail.com>
Héliton Nordt <hnordt@hnordt.com>
Ian Obermiller <ian@obermillers.com>
Ignacio Carbajo <icarbajop@gmail.com>
Igor Scekic <igorscekic2@gmail.com>
Ilia Pavlenkov <dortonway@gmail.com>
Ilya Shuklin <ilya.shuklin@gmail.com>
Ilyá Belsky <gelias.gbelsky@gmail.com>
Ingvar Stepanyan <me@rreverser.com>
Irae Carvalho <irae@irae.pro.br>
Isaac Salier-Hellendag <isaac@fb.com>
Iurii Kucherov <yuyokk@gmail.com>
Ivan Kozik <ivan@ludios.org>
Ivan Krechetov <ikr@ikr.su>
Ivan Vergiliev <ivan.vergiliev@gmail.com>
J. Andrew Brassington <jabbrass@zoho.com>
J. Renée Beach <splendidnoise@gmail.com>
JD Isaacks <jd@jisaacks.com>
JJ Weber <jj.weber@gmail.com>
JW <JW00000@gmail.com>
Jack Zhang <jzhang31191@gmail.com>
Jackie Wung <jacquelinewung@gmail.com>
Jacob Gable <jacob.gable@gmail.com>
Jacob Greenleaf <jake@imgur.com>
Jae Hun Ro <jhr24@duke.edu>
Jaeho Lee <me@jaeholee.org>
Jaime Mingo <j.mingov@3boll.com>
Jake Worth <jakeworth82@gmail.com>
Jakub Malinowski <jakubmal@gmail.com>
James <james@mystrata.com>
James Brantly <james@jbrantly.com>
James Burnett <jtburnett@tribune.com>
James Friend <james@jsdf.co>
James Ide <ide@fb.com>
James Long <longster@gmail.com>
James Pearce <jpearce@fb.com>
James Seppi <james.seppi@gmail.com>
James South <james_south@hotmail.com>
James Wen <jrw2175@columbia.edu>
Jamie Wong <jamie.lf.wong@gmail.com>
Jamis Charles <jacharles@paypal.com>
Jamison Dance <jergason@gmail.com>
Jan Hancic <jan.hancic@gmail.com>
Jan Kassens <jan@kassens.net>
Jan Raasch <jan@janraasch.com>
Jared Forsyth <jared@jaredforsyth.com>
Jason <usaman2010us@gmail.com>
Jason Bonta <jbonta@gmail.com>
Jason Ly <jason.ly@gmail.com>
Jason Miller <aidenn0@geocities.com>
Jason Quense <monastic.panic@gmail.com>
Jason Trill <jason@jasontrill.com>
Jason Webster <jason@metalabdesign.com>
Jay Jaeho Lee <jay@spoqa.com>
Jean Lauliac <lauliacj@gmail.com>
Jed Watson <jed.watson@me.com>
Jeff Barczewski <jeff.barczewski@gmail.com>
Jeff Carpenter <gcarpenterv@gmail.com>
Jeff Chan <jefftchan@gmail.com>
Jeff Hicken <jhicken@gmail.com>
Jeff Kolesky <github@kolesky.com>
Jeff Morrison <jeff@anafx.com>
Jeff Welch <whatthejeff@gmail.com>
Jeffrey Lin <lin.jeffrey@gmail.com>
Jeremy Fairbank <elpapapollo@gmail.com>
Jesse Skinner <jesse@thefutureoftheweb.com>
Jignesh Kakadiya <jigneshhk1992@gmail.com>
Jim OBrien <jimobrien930@gmail.com>
Jim Sproch <jsproch@fb.com>
Jimmy Jea <jimjea@gmail.com>
Jing Chen <jingc@fb.com>
Jinwoo Oh <arkist@gmail.com>
Jinxiu Lee <lee.jinxiu@gmail.com>
Jiyeon Seo <zzzeons@gmail.com>
Jody McIntyre <scjody@modernduck.com>
Joe Critchley <joecritch@gmail.com>
Joe Stein <joeaarons@gmail.com>
Joel Auterson <joel.auterson@googlemail.com>
Johannes Baiter <johannes.baiter@gmail.com>
Johannes Emerich <johannes@emerich.de>
Johannes Lumpe <johannes@johanneslumpe.de>
John Heroy <johnheroy@users.noreply.github.com>
John Ryan <tjfryan@fb.com>
John Watson <jwatson@fb.com>
John-David Dalton <john.david.dalton@gmail.com>
Jon Beebe <jon.beebe@daveramsey.com>
Jon Chester <jonchester@fb.com>
Jon Hester <jon.d.hester@gmail.com>
Jon Madison <jon@tfftech.com>
Jon Scott Clark <jonscottclark@gmail.com>
Jon Tewksbury <jontewks@gmail.com>
Jonas Enlund <jonas.enlund@gmail.com>
Jonas Gebhardt <jonas@instagram.com>
Jonathan Hsu <jhiswin@gmail.com>
Jonathan Persson <persson.jonathan@gmail.com>
Jordan Harband <ljharb@gmail.com>
Jordan Walke <jordojw@gmail.com>
Jorrit Schippers <jorrit@ncode.nl>
Joseph Nudell <joenudell@gmail.com>
Joseph Savona <joesavona@fb.com>
Josh Bassett <josh.bassett@gmail.com>
Josh Duck <josh@fb.com>
Josh Perez <josh.perez@airbnb.com>
Josh Yudaken <yud@instagram.com>
Joshua Evans <joshua.evans@quantified.co>
Joshua Go <joshuago@gmail.com>
Joshua Goldberg <jsgoldberg90@gmail.com>
Joshua Ma <me@joshma.com>
João Valente <filipevalente@gmail.com>
Juan Serrano <germ13@users.noreply.github.com>
Julen Ruiz Aizpuru <julenx@gmail.com>
Julian Viereck <julian.viereck@gmail.com>
Julien Bordellier <git@julienbordellier.com>
Julio Lopez <ljuliom@gmail.com>
Jun Wu <quark@lihdd.net>
Juraj Dudak <jdudak@fb.com>
Justas Brazauskas <brazauskasjustas@gmail.com>
Justin Jaffray <justinjaffray@khanacademy.org>
Justin Robison <jrobison151@gmail.com>
Justin Woo <moomoowoo@gmail.com>
Kale <krydrogen@gmail.com>
Kamron Batman <kamronbatman@users.noreply.github.com>
Karl Mikkelsen <karl@kingkarl.com>
Karpich Dmitry <karpich@gollard.ru>
Keito Uchiyama <projects@keito.me>
Ken Powers <ken@kenpowers.net>
Kent C. Dodds <kent@doddsfamily.us>
Kevin Cheng <09chengk@gmail.com>
Kevin Coughlin <kevintcoughlin@gmail.com>
Kevin Huang <huang.kev@gmail.com>
Kevin Lau <thekevlau@gmail.com>
Kevin Old <kevin@kevinold.com>
Kevin Robinson <krobinson@twitter.com>
Kewei Jiang <jkewei328@hotmail.com>
Kier Borromeo <seraphipod@gmail.com>
KimCoding <jeokrang@hanmail.net>
Kirk Steven Hansen <hanski07@kirk-hansens-macbook.local>
Kit Randel <kit@nocturne.net.nz>
Kohei TAKATA <kt.koheitakata@gmail.com>
Koo Youngmin <youngmin@youngminz.kr>
Krystian Karczewski <karcz.k@gmail.com>
Kunal Mehta <k.mehta@berkeley.edu>
Kurt Ruppel <me@kurtruppel.com>
Kyle Kelley <rgbkrk@gmail.com>
Kyle Mathews <mathews.kyle@gmail.com>
Laurence Rowe <l@lrowe.co.uk>
Laurent Etiemble <laurent.etiemble@monobjc.net>
Lee Byron <lee@leebyron.com>
Lee Jaeyoung <jaeyoung@monodiary.net>
Lei <tendant@gmail.com>
Leland Richardson <leland.m.richardson@gmail.com>
Leon Fedotov <LeonFedotov@users.noreply.github.com>
Leon Yip <lyip1992@users.noreply.github.com>
Leonardo YongUk Kim <dalinaum@gmail.com>
Levi Buzolic <levibuzolic@gmail.com>
Levi McCallum <levi@levimccallum.com>
Lily <qvang.j@gmail.com>
Logan Allen <loganfynne@gmail.com>
Lovisa Svallingson <lovisasvallingson@gmail.com>
Ludovico Fischer <livrerie@gmail.com>
Luigy Leon <luichi.19@gmail.com>
Luke Horvat <lukehorvat@gmail.com>
MIKAMI Yoshiyuki <yoshuki@saikyoline.jp>
Maher Beg <maherbeg@gmail.com>
Manas <prometheansacrifice@gmail.com>
Marcin K. <katzoo@github.mail>
Marcin Kwiatkowski <marcin.kwiatkowski@hotmail.com>
Marcin Szczepanski <marcins@gmail.com>
Mariano Desanze <protronm@gmail.com>
Marjan <marjan.georgiev@gmail.com>
Mark Anderson <undernewmanagement@users.noreply.github.com>
Mark Funk <mark@boomtownroi.com>
Mark Funk <mfunk86@gmail.com>
Mark Hintz <markohintz@gmail.com>
Mark IJbema <markijbema@gmail.com>
Mark Murphy <murphy.mark@live.ca>
Mark Richardson <echo@fb.com>
Mark Rushakoff <mark@influxdb.com>
Mark Sun <sunmark14@gmail.com>
Marlon Landaverde <milanlandaverde@gmail.com>
Marshall Roch <mroch@fb.com>
Martin Andert <mandert@gmail.com>
Martin Hujer <mhujer@gmail.com>
Martin Jul <martin@mjul.com>
Martin Konicek <mkonicek@fb.com>
Martin Mihaylov <martomi@users.noreply.github.com>
Masaki KOBAYASHI <makky.4d6b.3f5@gmail.com>
Mathieu M-Gosselin <mathieumg@gmail.com>
Mathieu Savy <savy.mathieu@gmail.com>
Matias Singers <mail@matiassingers.com>
Matsunoki <himkt@klis.tsukuba.ac.jp>
Matt Brookes <matt@brookes.net>
Matt Dunn-Rankin <mdunnrankin@gmail.com>
Matt Harrison <mt.harrison86@gmail.com>
Matt Huggins <matt.huggins@gmail.com>
Matt Stow <matt.stow@foxsports.com.au>
Matt Zabriskie <mzabriskie@gmail.com>
Matthew Dapena-Tretter <m@tthewwithanm.com>
Matthew Johnston <matthewjohnston4@users.noreply.github.com>
Matthew Herbst <mherbst@chegg.com>
Matthew Hodgson <matthew@matrix.org>
Matthew Johnston <matthewjohnston4@outlook.com>
Matthew King <mking@users.noreply.github.com>
Matthew Looi <looi.matthew@gmail.com>
Matthew Miner <matthew@matthewminer.com>
Matthias Le Brun <mlbli@me.com>
Matti Nelimarkka <matti.nelimarkka@hiit.fi>
Mattijs Kneppers <mattijs@arttech.nl>
Max F. Albrecht <1@178.is>
Max Heiber <max.heiber@gmail.com>
Max Stoiber <contact@mstoiber.com>
Maxi Ferreira <charca@gmail.com>
Maxim Abramchuk <MaximAbramchuck@gmail.com>
Merrick Christensen <merrick.christensen@gmail.com>
Mert Kahyaoğlu <mertkahyaoglu93@gmail.com>
Michael Chan <mijoch@gmail.com>
Michael McDermott <michael@mgmcdermott.com>
Michael Randers-Pehrson <michael.rp@gmail.com>
Michael Ridgway <mridgway@yahoo-inc.com>
Michael Warner <MichaelJWarner@hotmail.com>
Michael Wiencek <mwtuea@gmail.com>
Michael Ziwisky <mikezx@gmail.com>
Michal Srb <xixixao@seznam.cz>
Michelle Todd <himichelletodd@gmail.com>
Mihai Parparita <mihai.parparita@gmail.com>
Mike D Pilsbury <mike.pilsbury@gmail.com>
Mike Groseclose <mike.groseclose@gmail.com>
Mike Nordick <mnordick>
Mikolaj Dadela <mikolaj.dadela@hgv-online.de>
Miles Johnson <mileswjohnson@gmail.com>
Minwe LUO <minwe@yunshipei.com>
Miorel Palii <miorel@fb.com>
Morhaus <alexandre.kirszenberg@gmail.com>
Moshe Kolodny <kolodny.github@gmail.com>
Mouad Debbar <mdebbar@fb.com>
Murad <rogozhnikoff@users.noreply.github.com>
Murray M. Moss <murray@mmoss.name>
Nadeesha Cabral <nadeesha.cabral@gmail.com>
Naman Goel <naman34@gmail.com>
Nate Hunzaker <nate.hunzaker@gmail.com>
Nate Lee <nathaniel.jy.lee88@gmail.com>
Nathan Smith <NogsMPLS@users.noreply.github.com>
Nathan White <nw@nwhite.net>
Nee <944316342@qq.com>
Neri Marschik <marschik_neri@cyberagent.co.jp>
Nguyen Truong Duy <truongduy134@yahoo.com>
Nicholas Bergson-Shilcock <me@nicholasbs.net>
Nicholas Clawson <nickclaw@users.noreply.github.com>
Nick Balestra <nickbalestra@users.noreply.github.com>
Nick Fitzgerald <fitzgen@gmail.com>
Nick Gavalas <njg57@cornell.edu>
Nick Merwin <nick@lemurheavy.com>
Nick Presta <nick@nickpresta.ca>
Nick Raienko <enaqxx@gmail.com>
Nick Thompson <ncthom91@gmail.com>
Nick Williams <WickyNilliams@users.noreply.github.com>
Niklas Boström <nbostrom@gmail.com>
Ning Xia <ning-github@users.noreply.github.com>
Niole Nelson <niolenelson@gmail.com>
Oiva Eskola <oiva.eskola@gmail.com>
Oleg <o.yanchinskiy@gmail.com>
Oleksii Markhovskyi <olexiy.markhovsky@gmail.com>
Oliver Zeigermann <oliver.zeigermann@gmail.com>
Olivier Tassinari <Olivier.tassinari@gmail.com>
Owen Coutts <owenc@fb.com>
Pablo Lacerda de Miranda <pablolm@yahoo-inc.com>
Paolo Moretti <moretti@users.noreply.github.com>
Pascal Hartig <passy@twitter.com>
Patrick <info@telepark.de>
Patrick Laughlin <patrick@laughl.info>
Patrick Stapleton <github@gdi2290.com>
Paul Benigeri <me@benigeri.com>
Paul Harper <benekastah@gmail.com>
Paul OShannessy <paul@oshannessy.com>
Paul Seiffert <paul.seiffert@gmail.com>
Paul Shen <paul@mnml0.com>
@@ -257,87 +511,186 @@ Pete Hunt <floydophone@gmail.com>
Peter Blazejewicz <peter.blazejewicz@gmail.com>
Peter Cottle <pcottle@fb.com>
Peter Jaros <peter.a.jaros@gmail.com>
Peter Newnham <peter.newnham@appsbroker.com>
Petri Lehtinen <petri@digip.org>
Petri Lievonen <plievone@cc.hut.fi>
Pieter Vanderwerff <me@pieter.io>
Pouja Nikray <poujanik@gmail.com>
Prathamesh Sonpatki <csonpatki@gmail.com>
Prayag Verma <prayag.verma@gmail.com>
Preston Parry <ClimbsRocks@users.noreply.github.com>
Rafael <rafael.garcia@clever.com>
Rafal Dittwald <rafal.dittwald@gmail.com>
Rainer Oviir <roviir@gmail.com>
Rajat Sehgal <rajatsehgal1988@gmail.com>
Rajiv Tirumalareddy <rajivtreddy@gmail.com>
Ram Kaniyur <quadrupleslap@users.noreply.github.com>
Randall Randall <randall@randallsquared.com>
Ray <ray@tomo.im>
Raymond Ha <raymond@shraymonks.com>
Reed Loden <reed@reedloden.com>
Remko Tronçon <git@el-tramo.be>
Richard D. Worth <rdworth@gmail.com>
Richard Feldman <richard.t.feldman@gmail.com>
Richard Kho <hello@richardkho.com>
Richard Littauer <richard.littauer@gmail.com>
Richard Livesey <Livesey7@hotmail.co.uk>
Richard Wood <rwoodnz@gmail.com>
Rick Beerendonk <rick@beerendonk.com>
Rick Ford <rickfordrick@gmail.com>
Riley Tomasek <riley.tomasek@gmail.com>
Rob Arnold <robarnold@cs.cmu.edu>
Robert Binna <rbinna@gmail.com>
Robert Knight <robert.knight@mendeley.com>
Robert Sedovsek <robert.sedovsek@gmail.com>
Robin Berjon <robin@berjon.com>
Robin Frischmann <robin@rofrischmann.de>
Roman Pominov <rpominov+github@gmail.com>
Roman Vanesyan <roman.vanesyan@gmail.com>
Russ <russwirtz@gmail.com>
Ryan Seddon <seddon.ryan@gmail.com>
Sahat Yalkabov <sakhat@gmail.com>
Saif Hakim <saif@benchling.com>
Saiichi Hashimoto <saiichihashimoto@gmail.com>
Sam Beveridge <sbeveridge@saltstack.com>
Sam Saccone <samccone@gmail.com>
Sam Selikoff <sam.selikoff@gmail.com>
Samy Al Zahrani <samy@sadeem.net>
Sander Spies <sandermail@gmail.com>
Scott Burch <scott@bulldoginfo.com>
Scott Feeney <scott@oceanbase.org>
Sean Kinsey <oyvind@fb.com>
Sebastian Markbåge <sebastian@calyptus.eu>
Sebastian McKenzie <sebmck@gmail.com>
Seoh Char <devthewild@gmail.com>
Sercan Eraslan <sercan.eraslan@sahibinden.com>
Serg <undrdog@yandex.ru>
Sergey Generalov <sergey@genbit.ru>
Sergey Rubanov <chi187@gmail.com>
Seyi Adebajo <hello@seyinanigans.com>
Shane O'Sullivan <shaneosullivan1@gmail.com>
Shaun Trennery <shaun.trennery@gmail.com>
Sheraz <undernewmanagement@users.noreply.github.com>
ShihChi Huang <hhuang@netflix.com>
Shim Won <marocchino@gmail.com>
Shinnosuke Watanabe <snnskwtnb@gmail.com>
Shogun Sea <shogunsea08@gmail.com>
Shota Kubota <kubosho@users.noreply.github.com>
Shripad K <assortmentofsorts@gmail.com>
Sibi <psibi2000@gmail.com>
Simen Bekkhus <sbekkhus91@gmail.com>
Simon Højberg <r.hackr@gmail.com>
Simon Welsh <simon@simon.geek.nz>
Simone Vittori <hello@simonewebdesign.it>
Soichiro Kawamura <mail@w-st.com>
Sophia Westwood <sophia@quip.com>
Sota Ohara <ohrst.18@gmail.com>
Spencer Handley <spencerhandley@gmail.com>
Stefan Dombrowski <sdo451@gmail.com>
Stephen Murphy <smurphy3@apple.com>
Sterling Cobb <sterlingcobb@gmail.com>
Steve Baker <_steve_@outlook.com>
Steven Luscher <react@steveluscher.com>
Steven Vachon <contact@svachon.com>
Stoyan Stefanov <ssttoo@ymail.com>
Sundeep Malladi <sundeep.malladi@gmail.com>
Sunny Juneja <me@sunnyjuneja.com>
Sven Helmberger <fforw@gmx.de>
Sverre Johansen <sverre.johansen@gmail.com>
Sébastien Lorber <lorber.sebastien@gmail.com>
Sławomir Laskowski <laskowski.box@gmail.com>
Taeho Kim <dittos@gmail.com>
Tay Yang Shun <tay.yang.shun@gmail.com>
Ted Kim <ted@vcnc.co.kr>
Tengfei Guo <terryr3rd@yeah.net>
Teodor Szente <teodor98sz@gmail.com>
Thomas Aylott <oblivious@subtlegradient.com>
Thomas Boyt <thomas.boyt@venmo.com>
Thomas Broadley <buriedunderbooks@hotmail.com>
Thomas Reggi <socialtr@gmail.com>
Thomas Röggla <t.roggla@cwi.nl>
Thomas Shaddox <thomas@heyzap.com>
Thomas Shafer <thomasjshafer@gmail.com>
ThomasCrvsr <crevoisier.thomas@gmail.com>
Tienchai Wirojsaksaree <tienchai@fb.com>
Tim Routowicz <troutowicz@gmail.com>
Tim Schaub <tschaub@users.noreply.github.com>
Timothy Yung <yungsters@gmail.com>
Timur Carpeev <timuric@users.noreply.github.com>
Tobias Reiss <tag+github@basecode.de>
Tom Duncalf <tom@tomduncalf.com>
Tom Haggie <thaggie@gmail.com>
Tom Hauburger <thauburger@gmail.com>
Tom MacWright <tom@macwright.org>
Tom Occhino <tomocchino@gmail.com>
Tomasz Kołodziejski <tkolodziejski@gmail.com>
Tomoya Suzuki <tmysz.dev@gmail.com>
Tony Spiro <tspiro@tonyspiro.com>
Toru Kobayashi <koba0004@gmail.com>
Trinh Hoang Nhu <trinhhoangnhu@gmail.com>
Tsung Hung <thung@me.com>
Tyler Brock <tyler.brock@gmail.com>
Ustin Zarubin <ustin.zarubin@campusbellhops.com>
Vadim Chernysh <chernysh.vadim@gmail.com>
Varun Rau <varunrau@gmail.com>
Vasiliy Loginevskiy <Yeti.or@gmail.com>
Victor Alvarez <v.alvarez312@gmail.com>
Victor Homyakov <vkhomyackov@gmail.com>
Victor Koenders <victor.koenders@gmail.com>
Ville Immonen <ville.immonen@iki.fi>
Vincent Riemer <vincentriemer@gmail.com>
Vincent Siao <vincent@asana.com>
Vipul A M <vipulnsward@gmail.com>
Vitaly Kramskikh <vkramskikh@gmail.com>
Vitor Balocco <vitorbal@gmail.com>
Vjeux <vjeuxx@gmail.com>
Volkan Unsal <spocksplanet@gmail.com>
Wander Wang <wander.wang@ismole.com>
Wayne Larsen <wayne@larsen.st>
WickyNilliams <WickyNilliams@MBA>
Wincent Colaiuta <win@wincent.com>
Wout Mertens <Wout.Mertens@gmail.com>
Xavier Morel <xmo-odoo@users.noreply.github.com>
XuefengWu <benewu@gmail.com>
Yakov Dalinchuk <murashki@users.noreply.github.com>
Yasar icli <hello@yasaricli.com>
YouBao Nong <noyobo@gmail.com>
Yuichi Hagio <yhagio87@gmail.com>
Yuriy Dybskiy <yuriy@dybskiy.com>
Yutaka Nakajima <nakazye@gmail.com>
Yuval Dekel <thedekel@fb.com>
Zach Bruggeman <mail@bruggie.com>
Zach Ramaekers <zramaekers@gmail.com>
Zacharias <zachasme@users.noreply.github.com>
Zeke Sikelianos <zeke@sikelianos.com>
Zhangjd <zhang.jd@qq.com>
adraeth <jerzy.mirecki@gmail.com>
arush <arush@ilovebrands.net>
brafdlog <brafdlog@gmail.com>
chen <kikyous@163.com>
clariroid <clarinette.uranus@gmail.com>
claudiopro <claudio.procida@gmail.com>
cutbko <kutsenko.eugene@hotmail.com>
davidxi <davidgraycn@gmail.com>
dongmeng.ldm <dongmeng.ldm@alibaba-inc.com>
iamchenxin <iamchenxin@gmail.com>
iamdoron <doronpagot@gmail.com>
iawia002 <z2d@jifangcheng.com>
imagentleman <imagentlemail@gmail.com>
koh-taka <koh-taka@users.noreply.github.com>
kohashi85 <hako584@gmail.com>
laiso <laiso@lai.so>
leeyoungalias <leeyoungalias@qq.com>
li.li <li.li@ele.me>
maxprafferty <maxprafferty@gmail.com>
rgarifullin <ringarifullin@gmail.com>
songawee <dennis@songawee.com>
sugarshin <shinsugar@gmail.com>
wali-s <ahmad3y2k@hotmail.com>
yiminghe <yiminghe@gmail.com>
youmoo <youmoolee@gmail.com>
zhangjg <jinguozhang@qq.com>
zwhitchcox <zwhitchcox@gmail.com>
Árni Hermann Reynisson <arnihr@gmail.com>
元彦 <yuanyan@users.noreply.github.com>
凌恒 <jiakun.dujk@alibaba-inc.com>
张敏 <cookfront@gmail.com>

View File

@@ -1,3 +1,675 @@
## 15.6.1 (June 14, 2017)
### React DOM
* Fix a crash on iOS Safari. ([@jquense](https://github.com/jquense) in [#9960](https://github.com/facebook/react/pull/9960))
* Don't add `px` to custom CSS property values. ([@TrySound](https://github.com/TrySound) in [#9966](https://github.com/facebook/react/pull/9966))
## 15.6.0 (June 13, 2017)
### React
* Downgrade deprecation warnings to use `console.warn` instead of `console.error`. ([@flarnie](https://github.com/flarnie) in [#9753](https://github.com/facebook/react/pull/9753))
* Add a deprecation warning for `React.createClass`. Points users to `create-react-class` instead. ([@flarnie](https://github.com/flarnie) in [#9771](https://github.com/facebook/react/pull/9771))
* Add deprecation warnings and separate module for `React.DOM` factory helpers. ([@nhunzaker](https://github.com/nhunzaker) in [#8356](https://github.com/facebook/react/pull/8356))
* Warn for deprecation of `React.createMixin` helper, which was never used. ([@aweary](https://github.com/aweary) in [#8853](https://github.com/facebook/react/pull/8853))
### React DOM
* Add support for CSS variables in `style` attribute. ([@aweary](https://github.com/aweary) in [#9302](https://github.com/facebook/react/pull/9302))
* Add support for CSS Grid style properties. ([@ericsakmar](https://github.com/ericsakmar) in [#9185](https://github.com/facebook/react/pull/9185))
* Fix bug where inputs mutated value on type conversion. ([@nhunzaker](https://github.com/mhunzaker) in [#9806](https://github.com/facebook/react/pull/9806))
* Fix issues with `onChange` not firing properly for some inputs. ([@jquense](https://github.com/jquense) in [#8575](https://github.com/facebook/react/pull/8575))
* Fix bug where controlled number input mistakenly allowed period. ([@nhunzaker](https://github.com/nhunzaker) in [#9584](https://github.com/facebook/react/pull/9584))
* Fix bug where performance entries were being cleared. ([@chrisui](https://github.com/chrisui) in [#9451](https://github.com/facebook/react/pull/9451))
### React Addons
* Fix AMD support for addons depending on `react`. ([@flarnie](https://github.com/flarnie) in [#9919](https://github.com/facebook/react/issues/9919))
* Fix `isMounted()` to return `true` in `componentWillUnmount`. ([@mridgway](https://github.com/mridgway) in [#9638](https://github.com/facebook/react/issues/9638))
* Fix `react-addons-update` to not depend on native `Object.assign`. ([@gaearon](https://github.com/gaearon) in [#9937](https://github.com/facebook/react/pull/9937))
* Remove broken Google Closure Compiler annotation from `create-react-class`. ([@gaearon](https://github.com/gaearon) in [#9933](https://github.com/facebook/react/pull/9933))
* Remove unnecessary dependency from `react-linked-input`. ([@gaearon](https://github.com/gaearon) in [#9766](https://github.com/facebook/react/pull/9766))
* Point `react-addons-(css-)transition-group` to the new package. ([@gaearon](https://github.com/gaearon) in [#9937](https://github.com/facebook/react/pull/9937))
## 15.5.4 (April 11, 2017)
### React Addons
* **Critical Bugfix:** Update the version of `prop-types` to fix critical bug. ([@gaearon](https://github.com/gaearon) in [545c87f](https://github.com/facebook/react/commit/545c87fdc348f82eb0c3830bef715ed180785390))
* Fix `react-addons-create-fragment` package to include `loose-envify` transform for Browserify users. ([@mridgway](https://github.com/mridgway) in [#9642](https://github.com/facebook/react/pull/9642))
### React Test Renderer
* Fix compatibility with Enzyme by exposing `batchedUpdates` on shallow renderer. ([@gaearon](https://github.com/gaearon) in [9382](https://github.com/facebook/react/commit/69933e25c37cf5453a9ef132177241203ee8d2fd))
## 15.5.3 (April 7, 2017)
**Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.**
### React Addons
* Fix `react-addons-create-fragment` package to export correct thing. ([@gaearon](https://github.com/gaearon) in [#9385](https://github.com/facebook/react/pull/9383))
* Fix `create-react-class` package to include `loose-envify` transform for Browserify users. ([@mridgway](https://github.com/mridgway) in [#9642](https://github.com/facebook/react/pull/9642))
## 15.5.2 (April 7, 2017)
**Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.**
### React Addons
* Fix the production single-file builds to not include the development code. ([@gaearon](https://github.com/gaearon) in [#9385](https://github.com/facebook/react/pull/9383))
* Apply better minification to production single-file builds. ([@gaearon](https://github.com/gaearon) in [#9385](https://github.com/facebook/react/pull/9383))
* Add missing and remove unnecessary dependencies to packages. ([@gaearon](https://github.com/gaearon) in [#9385](https://github.com/facebook/react/pull/9383))
## 15.5.1 (April 7, 2017)
**Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.**
### React
* Fix erroneous PropTypes access warning. ([@acdlite](https://github.com/acdlite) in ([ec97ebb](https://github.com/facebook/react/commit/ec97ebbe7f15b58ae2f1323df39d06f119873344))
## 15.5.0 (April 7, 2017)
**Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.**
### React
* <s>Added a deprecation warning for `React.createClass`. Points users to create-react-class instead. ([@acdlite](https://github.com/acdlite) in [#d9a4fa4](https://github.com/facebook/react/commit/d9a4fa4f51c6da895e1655f32255cf72c0fe620e))</s>
* Added a deprecation warning for `React.PropTypes`. Points users to prop-types instead. ([@acdlite](https://github.com/acdlite) in [#043845c](https://github.com/facebook/react/commit/043845ce75ea0812286bbbd9d34994bb7e01eb28))
* Fixed an issue when using `ReactDOM` together with `ReactDOMServer`. ([@wacii](https://github.com/wacii) in [#9005](https://github.com/facebook/react/pull/9005))
* Fixed issue with Closure Compiler. ([@anmonteiro](https://github.com/anmonteiro) in [#8895](https://github.com/facebook/react/pull/8895))
* Another fix for Closure Compiler. ([@Shastel](https://github.com/Shastel) in [#8882](https://github.com/facebook/react/pull/8882))
* Added component stack info to invalid element type warning. ([@n3tr](https://github.com/n3tr) in [#8495](https://github.com/facebook/react/pull/8495))
### React DOM
* Fixed Chrome bug when backspacing in number inputs. ([@nhunzaker](https://github.com/nhunzaker) in [#7359](https://github.com/facebook/react/pull/7359))
* Added `react-dom/test-utils`, which exports the React Test Utils. ([@bvaughn](https://github.com/bvaughn))
### React Test Renderer
* Fixed bug where `componentWillUnmount` was not called for children. ([@gre](https://github.com/gre) in [#8512](https://github.com/facebook/react/pull/8512))
* Added `react-test-renderer/shallow`, which exports the shallow renderer. ([@bvaughn](https://github.com/bvaughn))
### React Addons
* Last release for addons; they will no longer be actively maintained.
* Removed `peerDependencies` so that addons continue to work indefinitely. ([@acdlite](https://github.com/acdlite) and [@bvaughn](https://github.com/bvaughn) in [8a06cd7](https://github.com/facebook/react/commit/8a06cd7a786822fce229197cac8125a551e8abfa) and [67a8db3](https://github.com/facebook/react/commit/67a8db3650d724a51e70be130e9008806402678a))
* Updated to remove references to `React.createClass` and `React.PropTypes` ([@acdlite](https://github.com/acdlite) in [12a96b9](https://github.com/facebook/react/commit/12a96b94823d6b6de6b1ac13bd576864abd50175))
* `react-addons-test-utils` is deprecated. Use `react-dom/test-utils` and `react-test-renderer/shallow` instead. ([@bvaughn](https://github.com/bvaughn))
## 15.4.2 (January 6, 2017)
### React
* Fixed build issues with the Brunch bundler. ([@gaearon](https://github.com/gaearon) in [#8686](https://github.com/facebook/react/pull/8686))
* Improved error messages for invalid element types. ([@spicyj](https://github.com/spicyj) in [#8612](https://github.com/facebook/react/pull/8612))
* Removed a warning about `getInitialState` when `this.state` is set. ([@bvaughn](https://github.com/bvaughn) in [#8594](https://github.com/facebook/react/pull/8594))
* Removed some dead code. ([@diegomura](https://github.com/diegomura) in [#8050](https://github.com/facebook/react/pull/8050), [@dfrownfelter](https://github.com/dfrownfelter) in [#8597](https://github.com/facebook/react/pull/8597))
### React DOM
* Fixed a decimal point issue on uncontrolled number inputs. ([@nhunzaker](https://github.com/nhunzaker) in [#7750](https://github.com/facebook/react/pull/7750))
* Fixed rendering of textarea placeholder in IE11. ([@aweary](https://github.com/aweary) in [#8020](https://github.com/facebook/react/pull/8020))
* Worked around a script engine bug in IE9. ([@eoin](https://github.com/eoin) in [#8018](https://github.com/facebook/react/pull/8018))
### React Addons
* Fixed build issues in RequireJS and SystemJS environments. ([@gaearon](https://github.com/gaearon) in [#8686](https://github.com/facebook/react/pull/8686))
* Added missing package dependencies. ([@kweiberth](https://github.com/kweiberth) in [#8467](https://github.com/facebook/react/pull/8467))
## 15.4.1 (November 22, 2016)
### React
* Restructure variable assignment to work around a Rollup bug ([@gaearon](https://github.com/gaearon) in [#8384](https://github.com/facebook/react/pull/8384))
### React DOM
* Fixed event handling on disabled button elements ([@spicyj](https://github.com/spicyj) in [#8387](https://github.com/facebook/react/pull/8387))
* Fixed compatibility of browser build with AMD environments ([@zpao](https://github.com/zpao) in [#8374](https://github.com/facebook/react/pull/8374))
## 15.4.0 (November 16, 2016)
### React
* React package and browser build no longer "secretly" includes React DOM. ([@sebmarkbage](https://github.com/sebmarkbage) in [#7164](https://github.com/facebook/react/pull/7164) and [#7168](https://github.com/facebook/react/pull/7168))
* Required PropTypes now fail with specific messages for null and undefined. ([@chenglou](https://github.com/chenglou) in [#7291](https://github.com/facebook/react/pull/7291))
* Improved development performance by freezing children instead of copying. ([@keyanzhang](https://github.com/keyanzhang) in [#7455](https://github.com/facebook/react/pull/7455))
### React DOM
* Fixed occasional test failures when React DOM is used together with shallow renderer. ([@goatslacker](https://github.com/goatslacker) in [#8097](https://github.com/facebook/react/pull/8097))
* Added a warning for invalid `aria-` attributes. ([@jessebeach](https://github.com/jessebeach) in [#7744](https://github.com/facebook/react/pull/7744))
* Added a warning for using `autofocus` rather than `autoFocus`. ([@hkal](https://github.com/hkal) in [#7694](https://github.com/facebook/react/pull/7694))
* Removed an unnecessary warning about polyfilling `String.prototype.split`. ([@nhunzaker](https://github.com/nhunzaker) in [#7629](https://github.com/facebook/react/pull/7629))
* Clarified the warning about not calling PropTypes manually. ([@jedwards1211](https://github.com/jedwards1211) in [#7777](https://github.com/facebook/react/pull/7777))
* The unstable `batchedUpdates` API now passes the wrapped function's return value through. ([@bgnorlov](https://github.com/bgnorlov) in [#7444](https://github.com/facebook/react/pull/7444))
* Fixed a bug with updating text in IE 8. ([@mnpenner](https://github.com/mnpenner) in [#7832](https://github.com/facebook/react/pull/7832))
### React Perf
* When ReactPerf is started, you can now view the relative time spent in components as a chart in Chrome Timeline. ([@gaearon](https://github.com/gaearon) in [#7549](https://github.com/facebook/react/pull/7549))
### React Test Utils
* If you call `Simulate.click()` on a `<input disabled onClick={foo} />` then `foo` will get called whereas it didn't before. ([@nhunzaker](https://github.com/nhunzaker) in [#7642](https://github.com/facebook/react/pull/7642))
### React Test Renderer
* Due to packaging changes, it no longer crashes when imported together with React DOM in the same file. ([@sebmarkbage](https://github.com/sebmarkbage) in [#7164](https://github.com/facebook/react/pull/7164) and [#7168](https://github.com/facebook/react/pull/7168))
* `ReactTestRenderer.create()` now accepts `{createNodeMock: element => mock}` as an optional argument so you can mock refs with snapshot testing. ([@Aweary](https://github.com/Aweary) in [#7649](https://github.com/facebook/react/pull/7649), [#8261](https://github.com/facebook/react/pull/8261))
## 15.3.2 (September 19, 2016)
### React
- Remove plain object warning from React.createElement & React.cloneElement. ([@spudly](https://github.com/spudly) in [#7724](https://github.com/facebook/react/pull/7724))
### React DOM
- Add `playsInline` to supported HTML attributes. ([@reaperhulk](https://github.com/reaperhulk) in [#7519](https://github.com/facebook/react/pull/7519))
- Add `as` to supported HTML attributes. ([@kevinslin](https://github.com/kevinslin) in [#7582](https://github.com/facebook/react/pull/7582))
- Improve DOM nesting validation warning about whitespace. ([@spicyj](https://github.com/spicyj) in [#7515](https://github.com/facebook/react/pull/7515))
- Avoid "Member not found" exception in IE10 when calling `preventDefault()` in Synthetic Events. ([@g-palmer](https://github.com/g-palmer) in [#7411](https://github.com/facebook/react/pull/7411))
- Fix memory leak in `onSelect` implementation. ([@AgtLucas](https://github.com/AgtLucas) in [#7533](https://github.com/facebook/react/pull/7533))
- Improve robustness of `document.documentMode` checks to handle Google Tag Manager. ([@SchleyB](https://github.com/SchleyB) in [#7594](https://github.com/facebook/react/pull/7594))
- Add more cases to controlled inputs warning. ([@marcin-mazurek](https://github.com/marcin-mazurek) in [#7544](https://github.com/facebook/react/pull/7544))
- Handle case of popup blockers overriding `document.createEvent`. ([@Andarist](https://github.com/Andarist) in [#7621](https://github.com/facebook/react/pull/7621))
- Fix issue with `dangerouslySetInnerHTML` and SVG in Internet Explorer. ([@zpao](https://github.com/zpao) in [#7618](https://github.com/facebook/react/pull/7618))
- Improve handling of Japanese IME on Internet Explorer. ([@msmania](https://github.com/msmania) in [#7107](https://github.com/facebook/react/pull/7107))
### React Test Renderer
- Support error boundaries. ([@millermedeiros](https://github.com/millermedeiros) in [#7558](https://github.com/facebook/react/pull/7558), [#7569](https://github.com/facebook/react/pull/7569), [#7619](https://github.com/facebook/react/pull/7619))
- Skip null ref warning. ([@Aweary](https://github.com/Aweary) in [#7658](https://github.com/facebook/react/pull/7658))
### React Perf Add-on
- Ensure lifecycle timers are stopped on errors. ([@gaearon](https://github.com/gaearon) in [#7548](https://github.com/facebook/react/pull/7548))
## 15.3.1 (August 19, 2016)
### React
- Improve performance of development builds in various ways. ([@gaearon](https://github.com/gaearon) in [#7461](https://github.com/facebook/react/pull/7461), [#7463](https://github.com/facebook/react/pull/7463), [#7483](https://github.com/facebook/react/pull/7483), [#7488](https://github.com/facebook/react/pull/7488), [#7491](https://github.com/facebook/react/pull/7491), [#7510](https://github.com/facebook/react/pull/7510))
- Cleanup internal hooks to improve performance of development builds. ([@gaearon](https://github.com/gaearon) in [#7464](https://github.com/facebook/react/pull/7464), [#7472](https://github.com/facebook/react/pull/7472), [#7481](https://github.com/facebook/react/pull/7481), [#7496](https://github.com/facebook/react/pull/7496))
- Upgrade fbjs to pick up another performance improvement from [@gaearon](https://github.com/gaearon) for development builds. ([@zpao](https://github.com/zpao) in [#7532](https://github.com/facebook/react/pull/7532))
- Improve startup time of React in Node. ([@zertosh](https://github.com/zertosh) in [#7493](https://github.com/facebook/react/pull/7493))
- Improve error message of `React.Children.only`. ([@spicyj](https://github.com/spicyj) in [#7514](https://github.com/facebook/react/pull/7514))
### React DOM
- Avoid `<input>` validation warning from browsers when changing `type`. ([@nhunzaker](https://github.com/nhunzaker) in [#7333](https://github.com/facebook/react/pull/7333))
- Avoid "Member not found" exception in IE10 when calling `stopPropagation()` in Synthetic Events. ([@nhunzaker](https://github.com/nhunzaker) in [#7343](https://github.com/facebook/react/pull/7343))
- Fix issue resulting in inability to update some `<input>` elements in mobile browsers. ([@keyanzhang](https://github.com/keyanzhang) in [#7397](https://github.com/facebook/react/pull/7397))
- Fix memory leak in server rendering. ([@keyanzhang](https://github.com/keyanzhang) in [#7410](https://github.com/facebook/react/pull/7410))
- Fix issue resulting in `<input type="range">` values not updating when changing `min` or `max`. ([@troydemonbreun](https://github.com/troydemonbreun) in [#7486](https://github.com/facebook/react/pull/7486))
- Add new warning for rare case of attempting to unmount a container owned by a different copy of React. ([@ventuno](https://github.com/ventuno) in [#7456](https://github.com/facebook/react/pull/7456))
### React Test Renderer
- Fix ReactTestInstance::toJSON() with empty top-level components. ([@Morhaus](https://github.com/Morhaus) in [#7523](https://github.com/facebook/react/pull/7523))
### React Native Renderer
- Change `trackedTouchCount` invariant into a console.error for better reliability. ([@yungsters](https://github.com/yungsters) in [#7400](https://github.com/facebook/react/pull/7400))
## 15.3.0 (July 29, 2016)
### React
- Add `React.PureComponent` - a new base class to extend, replacing `react-addons-pure-render-mixin` now that mixins don't work with ES2015 classes. ([@spicyj](https://github.com/spicyj) in [#7195](https://github.com/facebook/react/pull/7195))
- Add new warning when modifying `this.props.children`. ([@jimfb](https://github.com/jimfb) in [#7001](https://github.com/facebook/react/pull/7001))
- Fixed issue with ref resolution order. ([@gaearon](https://github.com/gaearon) in [#7101](https://github.com/facebook/react/pull/7101))
- Warn when mixin is undefined. ([@swaroopsm](https://github.com/swaroopsm) in [#6158](https://github.com/facebook/react/pull/6158))
- Downgrade "unexpected batch number" invariant to a warning. ([@spicyj](https://github.com/spicyj) in [#7133](https://github.com/facebook/react/pull/7133))
- Validate arguments to `oneOf` and `oneOfType` PropTypes sooner. ([@troydemonbreun](https://github.com/troydemonbreun) in [#6316](https://github.com/facebook/react/pull/6316))
- Warn when calling PropTypes directly. ([@Aweary](https://github.com/Aweary) in [#7132](https://github.com/facebook/react/pull/7132), [#7194](https://github.com/facebook/react/pull/7194))
- Improve warning when using Maps as children. ([@keyanzhang](https://github.com/keyanzhang) in [#7260](https://github.com/facebook/react/pull/7260))
- Add additional type information to the `PropTypes.element` warning. ([@alexzherdev](https://github.com/alexzherdev) in [#7319](https://github.com/facebook/react/pull/7319))
- Improve component identification in no-op `setState` warning. ([@keyanzhang](https://github.com/keyanzhang) in [#7326](https://github.com/facebook/react/pull/7326))
### React DOM
- Fix issue with nested server rendering. ([@Aweary](https://github.com/Aweary) in [#7033](https://github.com/facebook/react/pull/7033))
- Add `xmlns`, `xmlnsXlink` to supported SVG attributes. ([@salzhrani](https://github.com/salzhrani) in [#6471](https://github.com/facebook/react/pull/6471))
- Add `referrerPolicy` to supported HTML attributes. ([@Aweary](https://github.com/Aweary) in [#7274](https://github.com/facebook/react/pull/7274))
- Fix issue resulting in `<input type="range">` initial value being rounded. ([@troydemonbreun](https://github.com/troydemonbreun) in [#7251](https://github.com/facebook/react/pull/7251))
### React Test Renderer
- Initial public release of package allowing more focused testing. Install with `npm install react-test-renderer`. ([@spicyj](https://github.com/spicyj) in [#6944](https://github.com/facebook/react/pull/6944), [#7258](https://github.com/facebook/react/pull/7258), [@iamdustan](https://github.com/iamdustan) in [#7362](https://github.com/facebook/react/pull/7362))
### React Perf Add-on
- Fix issue resulting in excessive warnings when encountering an internal measurement error. ([@sassanh](https://github.com/sassanh) in [#7299](https://github.com/facebook/react/pull/7299))
### React TestUtils Add-on
- Implement `type` property on for events created via `TestUtils.Simulate.*`. ([@yaycmyk](https://github.com/yaycmyk) in [#6154](https://github.com/facebook/react/pull/6154))
- Fix crash when running TestUtils with the production build of React. ([@gaearon](https://github.com/gaearon) in [#7246](https://github.com/facebook/react/pull/7246))
## 15.2.1 (July 8, 2016)
### React
- Fix errant warning about missing React element. ([@gaearon](https://github.com/gaearon) in [#7193](https://github.com/facebook/react/pull/7193))
- Better removal of dev-only code, leading to a small reduction in the minified production bundle size. ([@gaearon](https://github.com/gaearon) in [#7188](https://github.com/facebook/react/pull/7188), [#7189](https://github.com/facebook/react/pull/7189))
### React DOM
- Add stack trace to null input value warning. ([@jimfb](https://github.com/jimfb) in [#7040](https://github.com/facebook/react/pull/7040))
- Fix webcomponents example. ([@jalexanderfox](https://github.com/jalexanderfox) in [#7057](https://github.com/facebook/react/pull/7057))
- Fix `unstable_renderSubtreeIntoContainer` so that context properly updates when linked to state. ([@gaearon](https://github.com/gaearon) in [#7125](https://github.com/facebook/react/pull/7125))
- Improve invariant wording for void elements. ([@starkch](https://github.com/starkch) in [#7066](https://github.com/facebook/react/pull/7066))
- Ensure no errors are thrown due to event handlers in server rendering. ([@rricard](https://github.com/rricard) in [#7127](https://github.com/facebook/react/pull/7127))
- Fix regression resulting in `value`-less submit and reset inputs removing the browser-default text. ([@zpao](https://github.com/zpao) in [#7197](https://github.com/facebook/react/pull/7197))
- Fix regression resulting in empty `name` attribute being added to inputs when not provided. ([@okonet](https://github.com/okonet) in [#7199](https://github.com/facebook/react/pull/7199))
- Fix issue with nested server rendering. ([@Aweary](https://github.com/Aweary) in [#7033](https://github.com/facebook/react/pull/7033))
### React Perf Add-on
- Make `ReactPerf.start()` work properly during lifecycle methods. ([@gaearon](https://github.com/gaearon) in [#7208](https://github.com/facebook/react/pull/7208)).
### React CSSTransitionGroup Add-on
- Fix issue resulting in spurious unknown property warnings. ([@batusai513](https://github.com/batusai513) in [#7165](https://github.com/facebook/react/pull/7165))
### React Native Renderer
- Improve error handling in cross-platform touch event handling. ([@yungsters](https://github.com/yungsters) in [#7143](https://github.com/facebook/react/pull/7143))
## 15.2.0 (July 1, 2016)
### React
- Add error codes to production invariants, with links to the view the full error text. ([@keyanzhang](https://github.com/keyanzhang) in [#6948](https://github.com/facebook/react/pull/6948))
- Include component stack information in PropType validation warnings. ([@troydemonbreun](https://github.com/troydemonbreun) in [#6398](https://github.com/facebook/react/pull/6398), [@spicyj](https://github.com/spicyj) in [#6771](https://github.com/facebook/react/pull/6771))
- Include component stack information in key warnings. ([@keyanzhang](https://github.com/keyanzhang) in [#6799](https://github.com/facebook/react/pull/6799))
- Stop validating props at mount time, only validate at element creation. ([@keyanzhang](https://github.com/keyanzhang) in [#6824](https://github.com/facebook/react/pull/6824))
- New invariant providing actionable error in missing instance case. ([@yungsters](https://github.com/yungsters) in [#6990](https://github.com/facebook/react/pull/6990))
- Add `React.PropTypes.symbol` to support ES2015 Symbols as props. ([@puradox](https://github.com/puradox) in [#6377](https://github.com/facebook/react/pull/6377))
- Fix incorrect coercion of ref or key that are undefined in development ([@gaearon](https://github.com/gaearon) in [#6880](https://github.com/facebook/react/pull/6880))
- Fix a false positive when passing other elements props to cloneElement ([@ericmatthys](https://github.com/ericmatthys) in [#6268](https://github.com/facebook/react/pull/6268))
- Warn if you attempt to define `childContextTypes` on a functional component ([@Aweary](https://github.com/Aweary) in [#6933](https://github.com/facebook/react/pull/6933))
### React DOM
- Add warning for unknown properties on DOM elements. ([@jimfb](https://github.com/jimfb) in [#6800](https://github.com/facebook/react/pull/6800), [@gm758](https://github.com/gm758) in [#7152](https://github.com/facebook/react/pull/7152))
- Properly remove attributes from custom elements. ([@grassator](https://github.com/grassator) in [#6748](https://github.com/facebook/react/pull/6748))
- Fix invalid unicode escape in attribute name regular expression. ([@nbjahan](https://github.com/nbjahan) in [#6772](https://github.com/facebook/react/pull/6772))
- Add `onLoad` handling to `<link>` element. ([@roderickhsiao](https://github.com/roderickhsiao) in [#6815](https://github.com/facebook/react/pull/6815))
- Add `onError` handling to `<source>` element. ([@wadahiro](https://github.com/wadahiro) in [#6941](https://github.com/facebook/react/pull/6941))
- Handle `value` and `defaultValue` more accurately in the DOM. ([@jimfb](https://github.com/jimfb) in [#6406](https://github.com/facebook/react/pull/6406))
- Fix events issue in environments with mutated `Object.prototype`. ([@Weizenlol](https://github.com/Weizenlol) in [#6886](https://github.com/facebook/react/pull/6886))
- Fix issue where `is="null"` ended up in the DOM in Firefox. ([@darobin](https://github.com/darobin) in [#6896](https://github.com/facebook/react/pull/6896))
- Improved performance of text escaping by using [escape-html](https://github.com/component/escape-html). ([@aickin](https://github.com/aickin) in [#6862](https://github.com/facebook/react/pull/6862))
- Fix issue with `dangerouslySetInnerHTML` and SVG in Internet Explorer. ([@joshhunt](https://github.com/joshhunt) in [#6982](https://github.com/facebook/react/pull/6982))
- Fix issue with `<textarea>` placeholders. ([@jimfb](https://github.com/jimfb) in [#7002](https://github.com/facebook/react/pull/7002))
- Fix controlled vs uncontrolled detection of `<input type="radio"/>`. ([@jimfb](https://github.com/jimfb) in [#7003](https://github.com/facebook/react/pull/7003))
- Improve performance of updating text content. ([@trueadm](https://github.com/trueadm) in [#7005](https://github.com/facebook/react/pull/7005))
- Ensure controlled `<select>` components behave the same on initial render as they do on updates. ([@yiminghe](https://github.com/yiminghe) in [#5362](https://github.com/facebook/react/pull/5362))
### React Perf Add-on
- Add `isRunning()` API. ([@nfcampos](https://github.com/nfcampos) in [#6763](https://github.com/facebook/react/pull/6763))
- Improve accuracy of lifecycle hook timing. ([@gaearon](https://github.com/gaearon) in [#6858](https://github.com/facebook/react/pull/6858))
- Fix internal errors when using ReactPerf with portal components. ([@gaearon](https://github.com/gaearon) in [#6860](https://github.com/facebook/react/pull/6860))
- Fix performance regression. ([@spicyj](https://github.com/spicyj) in [#6770](https://github.com/facebook/react/pull/6770))
- Add warning that ReactPerf is not enabled in production. ([@sashashakun](https://github.com/sashashakun) in [#6884](https://github.com/facebook/react/pull/6884))
### React CSSTransitionGroup Add-on
- Fix timing issue with `null` node. ([@keyanzhang](https://github.com/keyanzhang) in [#6958](https://github.com/facebook/react/pull/6958))
### React Native Renderer
- Dependencies on React Native modules use CommonJS requires instead of providesModule. ([@davidaurelio](https://github.com/davidaurelio) in [#6715](https://github.com/facebook/react/pull/6715))
## 15.1.0 (May 20, 2016)
### React
- Ensure we're using the latest `object-assign`, which has protection against a non-spec-compliant native `Object.assign`. ([@zpao](https://github.com/zpao) in [#6681](https://github.com/facebook/react/pull/6681))
- Add a new warning to communicate that `props` objects passed to `createElement` must be plain objects. ([@richardscarrott](https://github.com/richardscarrott) in [#6134](https://github.com/facebook/react/pull/6134))
- Fix a batching bug resulting in some lifecycle methods incorrectly being called multiple times. ([@spicyj](https://github.com/spicyj) in [#6650](https://github.com/facebook/react/pull/6650))
### React DOM
- Fix regression in custom elements support. ([@jscissr](https://github.com/jscissr) in [#6570](https://github.com/facebook/react/pull/6570))
- Stop incorrectly warning about using `onScroll` event handler with server rendering. ([@Aweary](https://github.com/Aweary) in [#6678](https://github.com/facebook/react/pull/6678))
- Fix grammar in the controlled input warning. ([@jakeboone02](https://github.com/jakeboone02) in [#6657](https://github.com/facebook/react/pull/6657))
- Fix issue preventing `<object>` nodes from being able to read `<param>` nodes in IE. ([@syranide](https://github.com/syranide) in [#6691](https://github.com/facebook/react/pull/6691))
- Fix issue resulting in crash when using experimental error boundaries with server rendering. ([@jimfb](https://github.com/jimfb) in [#6694](https://github.com/facebook/react/pull/6694))
- Add additional information to the controlled input warning. ([@borisyankov](https://github.com/borisyankov) in [#6341](https://github.com/facebook/react/pull/6341))
### React Perf Add-on
- Completely rewritten to collect data more accurately and to be easier to maintain. ([@gaearon](https://github.com/gaearon) in [#6647](https://github.com/facebook/react/pull/6647), [#6046](https://github.com/facebook/react/pull/6046))
### React Native Renderer
- Remove some special cases for platform specific branching. ([@sebmarkbage](https://github.com/sebmarkbage) in [#6660](https://github.com/facebook/react/pull/6660))
- Remove use of `merge` utility. ([@sebmarkbage](https://github.com/sebmarkbage) in [#6634](https://github.com/facebook/react/pull/6634))
- Renamed some modules to better indicate usage ([@javache](https://github.com/javache) in [#6643](https://github.com/facebook/react/pull/6643))
## 15.0.2 (April 29, 2016)
### React
- Removed extraneous files from npm package. ([@gaearon](https://github.com/gaearon) in [#6388](https://github.com/facebook/react/pull/6388))
- Ensure `componentWillUnmount` is only called once. ([@jimfb](https://github.com/jimfb) in [#6613](https://github.com/facebook/react/pull/6613))
### ReactDOM
- Fixed bug resulting in disabled buttons responding to mouse events in IE. ([@nhunzaker](https://github.com/nhunzaker) in [#6215](https://github.com/facebook/react/pull/6215))
- Ensure `<option>`s are correctly selected when inside `<optgroup>`. ([@trevorsmith](https://github.com/trevorsmith) in [#6442](https://github.com/facebook/react/pull/6442))
- Restore support for rendering into a shadow root. ([@Wildhoney](https://github.com/Wildhoney) in [#6462](https://github.com/facebook/react/pull/6462))
- Ensure nested `<body>` elements are caught when warning for invalid markup. ([@keyanzhang](https://github.com/keyanzhang) in [#6469](https://github.com/facebook/react/pull/6469))
- Improve warning when encountering multiple elements with the same key. ([@hkal](https://github.com/hkal) in [#6500](https://github.com/facebook/react/pull/6500))
### React TestUtils Add-on
- Ensure that functional components do not have an owner. ([@gaearon](https://github.com/gaearon) in [#6362](https://github.com/facebook/react/pull/6362))
- Handle invalid arguments to `scryRenderedDOMComponentsWithClass` better. ([@ipeters90](https://github.com/ipeters90) in [#6529](https://github.com/facebook/react/pull/6529))
### React Perf Add-on
- Ignore DOM operations that occur outside the batch operation. ([@gaearon](https://github.com/gaearon) in [#6516](https://github.com/facebook/react/pull/6516))
### React Native Renderer
- These files are now shipped inside the React npm package. They have no impact on React core or ReactDOM.
## 15.0.1 (April 8, 2016)
### React
- Restore `React.__spread` API to unbreak code compiled with some tools making use of this undocumented API. It is now officially deprecated. ([@zpao](https://github.com/zpao) in [#6444](https://github.com/facebook/react/pull/6444))
### ReactDOM
- Fixed issue resulting in loss of cursor position in controlled inputs. ([@spicyj](https://github.com/spicyj) in [#6449](https://github.com/facebook/react/pull/6449))
## 15.0.0 (April 7, 2016)
### Major changes
- **Initial render now uses `document.createElement` instead of generating HTML.** Previously we would generate a large string of HTML and then set `node.innerHTML`. At the time, this was decided to be faster than using `document.createElement` for the majority of cases and browsers that we supported. Browsers have continued to improve and so overwhelmingly this is no longer true. By using `createElement` we can make other parts of React faster. ([@spicyj](https://github.com/spicyj) in [#5205](https://github.com/facebook/react/pull/5205))
- **`data-reactid` is no longer on every node.** As a result of using `document.createElement`, we can prime the node cache as we create DOM nodes, allowing us to skip a potential lookup (which used the `data-reactid` attribute). Root nodes will have a `data-reactroot` attribute and server generated markup will still contain `data-reactid`. ([@spicyj](https://github.com/spicyj) in [#5205](https://github.com/facebook/react/pull/5205))
- **No more extra `<span>`s.** ReactDOM will now render plain text nodes interspersed with comment nodes that are used for demarcation. This gives us the same ability to update individual pieces of text, without creating extra nested nodes. If you were targeting these `<span>`s in your CSS, you will need to adjust accordingly. You can always render them explicitly in your components. ([@mwiencek](https://github.com/mwiencek) in [#5753](https://github.com/facebook/react/pull/5753))
- **Rendering `null` now uses comment nodes.** Previously `null` would render to `<noscript>` elements. We now use comment nodes. This may cause issues if making use of `:nth-child` CSS selectors. While we consider this rendering behavior an implementation detail of React, it's worth noting the potential problem. ([@spicyj](https://github.com/spicyj) in [#5451](https://github.com/facebook/react/pull/5451))
- **Functional components can now return `null`.** We added support for [defining stateless components as functions](/react/blog/2015/09/10/react-v0.14-rc1.html#stateless-function-components) in React 0.14. However, React 0.14 still allowed you to define a class component without extending `React.Component` or using `React.createClass()`, so [we couldnt reliably tell if your component is a function or a class](https://github.com/facebook/react/issues/5355), and did not allow returning `null` from it. This issue is solved in React 15, and you can now return `null` from any component, whether it is a class or a function. ([@jimfb](https://github.com/jimfb) in [#5884](https://github.com/facebook/react/pull/5884))
- **Improved SVG support.** All SVG tags are now fully supported. (Uncommon SVG tags are not present on the `React.DOM` element helper, but JSX and `React.createElement` work on all tag names.) All SVG attributes that are implemented by the browsers should be supported too. If you find any attributes that we have missed, please [let us know in this issue](https://github.com/facebook/react/issues/1657). ([@zpao](https://github.com/zpao) in [#6243](https://github.com/facebook/react/pull/6243))
### Breaking changes
- **No more extra `<span>`s.**
- **`React.cloneElement()` now resolves `defaultProps`.** We fixed a bug in `React.cloneElement()` that some components may rely on. If some of the `props` received by `cloneElement()` are `undefined`, it used to return an element with `undefined` values for those props. Were changing it to be consistent with `createElement()`. Now any `undefined` props passed to `cloneElement()` are resolved to the corresponding components `defaultProps`. ([@truongduy134](https://github.com/truongduy134) in [#5997](https://github.com/facebook/react/pull/5997))
- **`ReactPerf.getLastMeasurements()` is opaque.** This change wont affect applications but may break some third-party tools. We are [revamping `ReactPerf` implementation](https://github.com/facebook/react/pull/6046) and plan to release it during the 15.x cycle. The internal performance measurement format is subject to change so, for the time being, we consider the return value of `ReactPerf.getLastMeasurements()` an opaque data structure that should not be relied upon. ([@gaearon](https://github.com/gaearon) in [#6286](https://github.com/facebook/react/pull/6286))
#### Removed deprecations
These deprecations were introduced nine months ago in v0.14 with a warning and are removed:
- Deprecated APIs are removed from the `React` top-level export: `findDOMNode`, `render`, `renderToString`, `renderToStaticMarkup`, and `unmountComponentAtNode`. As a reminder, they are now available on `ReactDOM` and `ReactDOMServer`. ([@jimfb](https://github.com/jimfb) in [#5832](https://github.com/facebook/react/pull/5832))
- Deprecated addons are removed: `batchedUpdates` and `cloneWithProps`. ([@jimfb](https://github.com/jimfb) in [#5859](https://github.com/facebook/react/pull/5859), [@zpao](https://github.com/zpao) in [#6016](https://github.com/facebook/react/pull/6016))
- Deprecated component instance methods are removed: `setProps`, `replaceProps`, and `getDOMNode`. ([@jimfb](https://github.com/jimfb) in [#5570](https://github.com/facebook/react/pull/5570))
- Deprecated CommonJS `react/addons` entry point is removed. As a reminder, you should use separate `react-addons-*` packages instead. This only applies if you use the CommonJS builds. ([@gaearon](https://github.com/gaearon) in [#6285](https://github.com/facebook/react/pull/6285))
- Passing `children` to void elements like `<input>` was deprecated, and now throws an error. ([@jonhester](https://github.com/jonhester) in [#3372](https://github.com/facebook/react/pull/3372))
- React-specific properties on DOM `refs` (e.g. `this.refs.div.props`) were deprecated, and are removed now. ([@jimfb](https://github.com/jimfb) in [#5495](https://github.com/facebook/react/pull/5495))
### New deprecations, introduced with a warning
Each of these changes will continue to work as before with a new warning until the release of React 16 so you can upgrade your code gradually.
- `LinkedStateMixin` and `valueLink` are now deprecated due to very low popularity. If you need this, you can use a wrapper component that implements the same behavior: [react-linked-input](https://www.npmjs.com/package/react-linked-input). ([@jimfb](https://github.com/jimfb) in [#6127](https://github.com/facebook/react/pull/6127))
- Future versions of React will treat `<input value={null}>` as a request to clear the input. However, React 0.14 has been ignoring `value={null}`. React 15 warns you on a `null` input value and offers you to clarify your intention. To fix the warning, you may explicitly pass an empty string to clear a controlled input, or pass `undefined` to make the input uncontrolled. ([@antoaravinth](https://github.com/antoaravinth) in [#5048](https://github.com/facebook/react/pull/5048))
- `ReactPerf.printDOM()` was renamed to `ReactPerf.printOperations()`, and `ReactPerf.getMeasurementsSummaryMap()` was renamed to `ReactPerf.getWasted()`. ([@gaearon](https://github.com/gaearon) in [#6287](https://github.com/facebook/react/pull/6287))
### New helpful warnings
- If you use a minified copy of the _development_ build, React DOM kindly encourages you to use the faster production build instead. ([@spicyj](https://github.com/spicyj) in [#5083](https://github.com/facebook/react/pull/5083))
- React DOM: When specifying a unit-less CSS value as a string, a future version will not add `px` automatically. This version now warns in this case (ex: writing `style={{'{{'}}width: '300'}}`. Unitless *number* values like `width: 300` are unchanged. ([@pluma](https://github.com/pluma) in [#5140](https://github.com/facebook/react/pull/5140))
- Synthetic Events will now warn when setting and accessing properties (which will not get cleared appropriately), as well as warn on access after an event has been returned to the pool. ([@kentcdodds](https://github.com/kentcdodds) in [#5940](https://github.com/facebook/react/pull/5940) and [@koba04](https://github.com/koba04) in [#5947](https://github.com/facebook/react/pull/5947))
- Elements will now warn when attempting to read `ref` and `key` from the props. ([@prometheansacrifice](https://github.com/prometheansacrifice) in [#5744](https://github.com/facebook/react/pull/5744))
- React will now warn if you pass a different `props` object to `super()` in the constructor. ([@prometheansacrifice](https://github.com/prometheansacrifice) in [#5346](https://github.com/facebook/react/pull/5346))
- React will now warn if you call `setState()` inside `getChildContext()`. ([@raineroviir](https://github.com/raineroviir) in [#6121](https://github.com/facebook/react/pull/6121))
- React DOM now attempts to warn for mistyped event handlers on DOM elements, such as `onclick` which should be `onClick`. ([@ali](https://github.com/ali) in [#5361](https://github.com/facebook/react/pull/5361))
- React DOM now warns about `NaN` values in `style`. ([@jontewks](https://github.com/jontewks) in [#5811](https://github.com/facebook/react/pull/5811))
- React DOM now warns if you specify both `value` and `defaultValue` for an input. ([@mgmcdermott](https://github.com/mgmcdermott) in [#5823](https://github.com/facebook/react/pull/5823))
- React DOM now warns if an input switches between being controlled and uncontrolled. ([@TheBlasfem](https://github.com/TheBlasfem) in [#5864](https://github.com/facebook/react/pull/5864))
- React DOM now warns if you specify `onFocusIn` or `onFocusOut` handlers as they are unnecessary in React. ([@jontewks](https://github.com/jontewks) in [#6296](https://github.com/facebook/react/pull/6296))
- React now prints a descriptive error message when you pass an invalid callback as the last argument to `ReactDOM.render()`, `this.setState()`, or `this.forceUpdate()`. ([@conorhastings](https://github.com/conorhastings) in [#5193](https://github.com/facebook/react/pull/5193) and [@gaearon](https://github.com/gaearon) in [#6310](https://github.com/facebook/react/pull/6310))
- Add-Ons: `TestUtils.Simulate()` now prints a helpful message if you attempt to use it with shallow rendering. ([@conorhastings](https://github.com/conorhastings) in [#5358](https://github.com/facebook/react/pull/5358))
- PropTypes: `arrayOf()` and `objectOf()` provide better error messages for invalid arguments. ([@chicoxyzzy](https://github.com/chicoxyzzy) in [#5390](https://github.com/facebook/react/pull/5390))
### Notable bug fixes
- Fixed multiple small memory leaks. ([@spicyj](https://github.com/spicyj) in [#4983](https://github.com/facebook/react/pull/4983) and [@victor-homyakov](https://github.com/victor-homyakov) in [#6309](https://github.com/facebook/react/pull/6309))
- Input events are handled more reliably in IE 10 and IE 11; spurious events no longer fire when using a placeholder. ([@jquense](https://github.com/jquense) in [#4051](https://github.com/facebook/react/pull/4051))
- The `componentWillReceiveProps()` lifecycle method is now consistently called when `context` changes. ([@milesj](https://github.com/milesj) in [#5787](https://github.com/facebook/react/pull/5787))
- `React.cloneElement()` doesnt append slash to an existing `key` when used inside `React.Children.map()`. ([@ianobermiller](https://github.com/ianobermiller) in [#5892](https://github.com/facebook/react/pull/5892))
- React DOM now supports the `cite` and `profile` HTML attributes. ([@AprilArcus](https://github.com/AprilArcus) in [#6094](https://github.com/facebook/react/pull/6094) and [@saiichihashimoto](https://github.com/saiichihashimoto) in [#6032](https://github.com/facebook/react/pull/6032))
- React DOM now supports `cssFloat`, `gridRow` and `gridColumn` CSS properties. ([@stevenvachon](https://github.com/stevenvachon) in [#6133](https://github.com/facebook/react/pull/6133) and [@mnordick](https://github.com/mnordick) in [#4779](https://github.com/facebook/react/pull/4779))
- React DOM now correctly handles `borderImageOutset`, `borderImageWidth`, `borderImageSlice`, `floodOpacity`, `strokeDasharray`, and `strokeMiterlimit` as unitless CSS properties. ([@rofrischmann](https://github.com/rofrischmann) in [#6210](https://github.com/facebook/react/pull/6210) and [#6270](https://github.com/facebook/react/pull/6270))
- React DOM now supports the `onAnimationStart`, `onAnimationEnd`, `onAnimationIteration`, `onTransitionEnd`, and `onInvalid` events. Support for `onLoad` has been added to `object` elements. ([@tomduncalf](https://github.com/tomduncalf) in [#5187](https://github.com/facebook/react/pull/5187), [@milesj](https://github.com/milesj) in [#6005](https://github.com/facebook/react/pull/6005), and [@ara4n](https://github.com/ara4n) in [#5781](https://github.com/facebook/react/pull/5781))
- React DOM now defaults to using DOM attributes instead of properties, which fixes a few edge case bugs. Additionally the nullification of values (ex: `href={null}`) now results in the forceful removal, no longer trying to set to the default value used by browsers in the absence of a value. ([@syranide](https://github.com/syranide) in [#1510](https://github.com/facebook/react/pull/1510))
- React DOM does not mistakingly coerce `children` to strings for Web Components. ([@jimfb](https://github.com/jimfb) in [#5093](https://github.com/facebook/react/pull/5093))
- React DOM now correctly normalizes SVG `<use>` events. ([@edmellum](https://github.com/edmellum) in [#5720](https://github.com/facebook/react/pull/5720))
- React DOM does not throw if a `<select>` is unmounted while its `onChange` handler is executing. ([@sambev](https://github.com/sambev) in [#6028](https://github.com/facebook/react/pull/6028))
- React DOM does not throw in Windows 8 apps. ([@Andrew8xx8](https://github.com/Andrew8xx8) in [#6063](https://github.com/facebook/react/pull/6063))
- React DOM does not throw when asynchronously unmounting a child with a `ref`. ([@yiminghe](https://github.com/yiminghe) in [#6095](https://github.com/facebook/react/pull/6095))
- React DOM no longer forces synchronous layout because of scroll position tracking. ([@syranide](https://github.com/syranide) in [#2271](https://github.com/facebook/react/pull/2271))
- `Object.is` is used in a number of places to compare values, which leads to fewer false positives, especially involving `NaN`. In particular, this affects the `shallowCompare` add-on. ([@chicoxyzzy](https://github.com/chicoxyzzy) in [#6132](https://github.com/facebook/react/pull/6132))
- Add-Ons: ReactPerf no longer instruments adding or removing an event listener because they dont really touch the DOM due to event delegation. ([@antoaravinth](https://github.com/antoaravinth) in [#5209](https://github.com/facebook/react/pull/5209))
### Other improvements
- React now uses `loose-envify` instead of `envify` so it installs fewer transitive dependencies. ([@qerub](https://github.com/qerub) in [#6303](https://github.com/facebook/react/pull/6303))
- Shallow renderer now exposes `getMountedInstance()`. ([@glenjamin](https://github.com/glenjamin) in [#4918](https://github.com/facebook/react/pull/4918))
- Shallow renderer now returns the rendered output from `render()`. ([@simonewebdesign](https://github.com/simonewebdesign) in [#5411](https://github.com/facebook/react/pull/5411))
- React no longer depends on ES5 *shams* for `Object.create` and `Object.freeze` in older environments. It still, however, requires ES5 *shims* in those environments. ([@dgreensp](https://github.com/dgreensp) in [#4959](https://github.com/facebook/react/pull/4959))
- React DOM now allows `data-` attributes with names that start with numbers. ([@nLight](https://github.com/nLight) in [#5216](https://github.com/facebook/react/pull/5216))
- React DOM adds a new `suppressContentEditableWarning` prop for components like [Draft.js](https://facebook.github.io/draft-js/) that intentionally manage `contentEditable` children with React. ([@mxstbr](https://github.com/mxstbr) in [#6112](https://github.com/facebook/react/pull/6112))
- React improves the performance for `createClass()` on complex specs. ([@spicyj](https://github.com/spicyj) in [#5550](https://github.com/facebook/react/pull/5550))
## 0.14.8 (March 29, 2016)
### React
- Fixed memory leak when rendering on the server
## 0.14.7 (January 28, 2016)
### React
- Fixed bug with `<option>` tags when using `dangerouslySetInnerHTML`
- Fixed memory leak in synthetic event system
### React TestUtils Add-on
- Fixed bug with calling `setState` in `componentWillMount` when using shallow rendering
## 0.14.6 (January 6, 2016)
### React
- Updated `fbjs` dependency to pick up change affecting handling of undefined document.
## 0.14.5 (December 29, 2015)
### React
- More minor internal changes for better compatibility with React Native
## 0.14.4 (December 29, 2015)
### React
- Minor internal changes for better compatibility with React Native
### React DOM
- The `autoCapitalize` and `autoCorrect` props are now set as attributes in the DOM instead of properties to improve cross-browser compatibility
- Fixed bug with controlled `<select>` elements not handling updates properly
### React Perf Add-on
- Some DOM operation names have been updated for clarity in the output of `.printDOM()`
## 0.14.3 (November 18, 2015)
### React DOM
- Added support for `nonce` attribute for `<script>` and `<style>` elements
- Added support for `reversed` attribute for `<ol>` elements
### React TestUtils Add-on
- Fixed bug with shallow rendering and function refs
### React CSSTransitionGroup Add-on
- Fixed bug resulting in timeouts firing incorrectly when mounting and unmounting rapidly
### React on Bower
- Added `react-dom-server.js` to expose `renderToString` and `renderToStaticMarkup` for usage in the browser
## 0.14.2 (November 2, 2015)
### React DOM
- Fixed bug with development build preventing events from firing in some versions of Internet Explorer & Edge
- Fixed bug with development build when using es5-sham in older versions of Internet Explorer
- Added support for `integrity` attribute
- Fixed bug resulting in `children` prop being coerced to a string for custom elements, which was not the desired behavior
- Moved `react` from `dependencies` to `peerDependencies` to match expectations and align with `react-addons-*` packages
## 0.14.1 (October 28, 2015)
### React DOM
- Fixed bug where events wouldn't fire in old browsers when using React in development mode
- Fixed bug preventing use of `dangerouslySetInnerHTML` with Closure Compiler Advanced mode
- Added support for `srcLang`, `default`, and `kind` attributes for `<track>` elements
- Added support for `color` attribute
- Ensured legacy `.props` access on DOM nodes is updated on re-renders
### React TestUtils Add-on
- Fixed `scryRenderedDOMComponentsWithClass` so it works with SVG
### React CSSTransitionGroup Add-on
- Fix bug preventing `0` to be used as a timeout value
### React on Bower
- Added `react-dom.js` to `main` to improve compatibility with tooling
## 0.14.0 (October 7, 2015)
### Major changes
- Split the main `react` package into two: `react` and `react-dom`. This paves the way to writing components that can be shared between the web version of React and React Native. This means you will need to include both files and some functions have been moved from `React` to `ReactDOM`.
- Addons have been moved to separate packages (`react-addons-clone-with-props`, `react-addons-create-fragment`, `react-addons-css-transition-group`, `react-addons-linked-state-mixin`, `react-addons-perf`, `react-addons-pure-render-mixin`, `react-addons-shallow-compare`, `react-addons-test-utils`, `react-addons-transition-group`, `react-addons-update`, `ReactDOM.unstable_batchedUpdates`).
- Stateless functional components - React components were previously created using React.createClass or using ES6 classes. This release adds a [new syntax](https://facebook.github.io/react/docs/reusable-components.html#stateless-functions) where a user defines a single [stateless render function](https://facebook.github.io/react/docs/reusable-components.html#stateless-functions) (with one parameter: `props`) which returns a JSX element, and this function may be used as a component.
- Refs to DOM components as the DOM node itself. Previously the only useful thing you can do with a DOM component is call `getDOMNode()` to get the underlying DOM node. Starting with this release, a ref to a DOM component _is_ the actual DOM node. **Note that refs to custom (user-defined) components work exactly as before; only the built-in DOM components are affected by this change.**
### Breaking changes
- `React.initializeTouchEvents` is no longer necessary and has been removed completely. Touch events now work automatically.
- Add-Ons: Due to the DOM node refs change mentioned above, `TestUtils.findAllInRenderedTree` and related helpers are no longer able to take a DOM component, only a custom component.
- The `props` object is now frozen, so mutating props after creating a component element is no longer supported. In most cases, [`React.cloneElement`](https://facebook.github.io/react/docs/react-api.html#cloneelement) should be used instead. This change makes your components easier to reason about and enables the compiler optimizations mentioned above.
- Plain objects are no longer supported as React children; arrays should be used instead. You can use the [`createFragment`](https://facebook.github.io/react/docs/create-fragment.html) helper to migrate, which now returns an array.
- Add-Ons: `classSet` has been removed. Use [classnames](https://github.com/JedWatson/classnames) instead.
- Web components (custom elements) now use native property names. Eg: `class` instead of `className`.
### Deprecations
- `this.getDOMNode()` is now deprecated and `ReactDOM.findDOMNode(this)` can be used instead. Note that in the common case, `findDOMNode` is now unnecessary since a ref to the DOM component is now the actual DOM node.
- `setProps` and `replaceProps` are now deprecated. Instead, call ReactDOM.render again at the top level with the new props.
- ES6 component classes must now extend `React.Component` in order to enable stateless function components. The [ES3 module pattern](https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#other-languages) will continue to work.
- Reusing and mutating a `style` object between renders has been deprecated. This mirrors our change to freeze the `props` object.
- Add-Ons: `cloneWithProps` is now deprecated. Use [`React.cloneElement`](https://facebook.github.io/react/docs/react-api.html#cloneelement) instead (unlike `cloneWithProps`, `cloneElement` does not merge `className` or `style` automatically; you can merge them manually if needed).
- Add-Ons: To improve reliability, `CSSTransitionGroup` will no longer listen to transition events. Instead, you should specify transition durations manually using props such as `transitionEnterTimeout={500}`.
### Notable enhancements
- Added `React.Children.toArray` which takes a nested children object and returns a flat array with keys assigned to each child. This helper makes it easier to manipulate collections of children in your `render` methods, especially if you want to reorder or slice `this.props.children` before passing it down. In addition, `React.Children.map` now returns plain arrays too.
- React uses `console.error` instead of `console.warn` for warnings so that browsers show a full stack trace in the console. (Our warnings appear when you use patterns that will break in future releases and for code that is likely to behave unexpectedly, so we do consider our warnings to be “must-fix” errors.)
- Previously, including untrusted objects as React children [could result in an XSS security vulnerability](http://danlec.com/blog/xss-via-a-spoofed-react-element). This problem should be avoided by properly validating input at the application layer and by never passing untrusted objects around your application code. As an additional layer of protection, [React now tags elements](https://github.com/facebook/react/pull/4832) with a specific [ES2015 (ES6) `Symbol`](http://www.2ality.com/2014/12/es6-symbols.html) in browsers that support it, in order to ensure that React never considers untrusted JSON to be a valid element. If this extra security protection is important to you, you should add a `Symbol` polyfill for older browsers, such as the one included by [Babels polyfill](http://babeljs.io/docs/usage/polyfill/).
- When possible, React DOM now generates XHTML-compatible markup.
- React DOM now supports these standard HTML attributes: `capture`, `challenge`, `inputMode`, `is`, `keyParams`, `keyType`, `minLength`, `summary`, `wrap`. It also now supports these non-standard attributes: `autoSave`, `results`, `security`.
- React DOM now supports these SVG attributes, which render into namespaced attributes: `xlinkActuate`, `xlinkArcrole`, `xlinkHref`, `xlinkRole`, `xlinkShow`, `xlinkTitle`, `xlinkType`, `xmlBase`, `xmlLang`, `xmlSpace`.
- The `image` SVG tag is now supported by React DOM.
- In React DOM, arbitrary attributes are supported on custom elements (those with a hyphen in the tag name or an `is="..."` attribute).
- React DOM now supports these media events on `audio` and `video` tags: `onAbort`, `onCanPlay`, `onCanPlayThrough`, `onDurationChange`, `onEmptied`, `onEncrypted`, `onEnded`, `onError`, `onLoadedData`, `onLoadedMetadata`, `onLoadStart`, `onPause`, `onPlay`, `onPlaying`, `onProgress`, `onRateChange`, `onSeeked`, `onSeeking`, `onStalled`, `onSuspend`, `onTimeUpdate`, `onVolumeChange`, `onWaiting`.
- Many small performance improvements have been made.
- Many warnings show more context than before.
- Add-Ons: A [`shallowCompare`](https://github.com/facebook/react/pull/3355) add-on has been added as a migration path for `PureRenderMixin` in ES6 classes.
- Add-Ons: `CSSTransitionGroup` can now use [custom class names](https://github.com/facebook/react/blob/48942b85/docs/docs/10.1-animation.md#custom-classes) instead of appending `-enter-active` or similar to the transition name.
### New helpful warnings
- React DOM now warns you when nesting HTML elements invalidly, which helps you avoid surprising errors during updates.
- Passing `document.body` directly as the container to `ReactDOM.render` now gives a warning as doing so can cause problems with browser extensions that modify the DOM.
- Using multiple instances of React together is not supported, so we now warn when we detect this case to help you avoid running into the resulting problems.
### Notable bug fixes
- Click events are handled by React DOM more reliably in mobile browsers, particularly in Mobile Safari.
- SVG elements are created with the correct namespace in more cases.
- React DOM now renders `<option>` elements with multiple text children properly and renders `<select>` elements on the server with the correct option selected.
- When two separate copies of React add nodes to the same document (including when a browser extension uses React), React DOM tries harder not to throw exceptions during event handling.
- Using non-lowercase HTML tag names in React DOM (e.g., `React.createElement('DIV')`) no longer causes problems, though we continue to recommend lowercase for consistency with the JSX tag name convention (lowercase names refer to built-in components, capitalized names refer to custom components).
- React DOM understands that these CSS properties are unitless and does not append “px” to their values: `animationIterationCount`, `boxOrdinalGroup`, `flexOrder`, `tabSize`, `stopOpacity`.
- Add-Ons: When using the test utils, `Simulate.mouseEnter` and `Simulate.mouseLeave` now work.
- Add-Ons: ReactTransitionGroup now correctly handles multiple nodes being removed simultaneously.
### React Tools / Babel
#### Breaking Changes
- The `react-tools` package and `JSXTransformer.js` browser file [have been deprecated](https://facebook.github.io/react/blog/2015/06/12/deprecating-jstransform-and-react-tools.html). You can continue using version `0.13.3` of both, but we no longer support them and recommend migrating to [Babel](http://babeljs.io/), which has built-in support for React and JSX.
#### New Features
- Babel 5.8.24 introduces **Inlining React elements:** The `optimisation.react.inlineElements` transform converts JSX elements to object literals like `{type: 'div', props: ...}` instead of calls to `React.createElement`. This should only be enabled in production, since it disables some development warnings/checks.
- Babel 5.8.24 introduces **Constant hoisting for React elements:** The `optimisation.react.constantElements` transform hoists element creation to the top level for subtrees that are fully static, which reduces calls to `React.createElement` and the resulting allocations. More importantly, it tells React that the subtree hasnt changed so React can completely skip it when reconciling. This should only be enabled in production, since it disables some development warnings/checks.
## 0.13.3 (May 8, 2015)
### React Core
#### New Features
* Added `clipPath` element and attribute for SVG
* Improved warnings for deprecated methods in plain JS classes
#### Bug Fixes
* Loosened `dangerouslySetInnerHTML` restrictions so `{__html: undefined}` will no longer throw
* Fixed extraneous context warning with non-pure `getChildContext`
* Ensure `replaceState(obj)` retains prototype of `obj`
### React with Add-ons
### Bug Fixes
* Test Utils: Ensure that shallow rendering works when components define `contextTypes`
## 0.13.2 (April 18, 2015)
### React Core
#### New Features
* Added `strokeDashoffset`, `flexPositive`, `flexNegative` to the list of unitless CSS properties
* Added support for more DOM properties:
* `scoped` - for `<style>` elements
* `high`, `low`, `optimum` - for `<meter>` elements
* `unselectable` - IE-specific property to prevent user selection
#### Bug Fixes
* Fixed a case where re-rendering after rendering null didn't properly pass context
* Fixed a case where re-rendering after rendering with `style={null}` didn't properly update `style`
* Update `uglify` dependency to prevent a bug in IE8
* Improved warnings
### React with Add-Ons
#### Bug Fixes
* Immutability Helpers: Ensure it supports `hasOwnProperty` as an object key
### React Tools
* Improve documentation for new options
## 0.13.1 (March 16, 2015)
### React Core
#### Bug Fixes
* Don't throw when rendering empty `<select>` elements
* Ensure updating `style` works when transitioning from `null`
### React with Add-Ons
#### Bug Fixes
* TestUtils: Don't warn about `getDOMNode` for ES6 classes
* TestUtils: Ensure wrapped full page components (`<html>`, `<head>`, `<body>`) are treated as DOM components
* Perf: Stop double-counting DOM components
### React Tools
#### Bug Fixes
* Fix option parsing for `--non-strict-es6module`
## 0.13.0 (March 10, 2015)
### React Core
@@ -14,9 +686,9 @@
#### New Features
* Support for using ES6 classes to build React components; see the [v0.13.0 beta 1 notes](http://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html) for details.
* Support for using ES6 classes to build React components; see the [v0.13.0 beta 1 notes](https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html) for details.
* Added new top-level API `React.findDOMNode(component)`, which should be used in place of `component.getDOMNode()`. The base class for ES6-based components will not have `getDOMNode`. This change will enable some more patterns moving forward.
* Added a new top-level API `React.cloneElement(el, props)` for making copies of React elements see the [v0.13 RC2 notes](/react/blog/2015/03/03/react-v0.13-rc2.html#react.cloneelement) for more details.
* Added a new top-level API `React.cloneElement(el, props)` for making copies of React elements see the [v0.13 RC2 notes](https://facebook.github.io/react/blog/2015/03/03/react-v0.13-rc2.html#react.cloneelement) for more details.
* New `ref` style, allowing a callback to be used in place of a name: `<Photo ref={(c) => this._photo = c} />` allows you to reference the component with `this._photo` (as opposed to `ref="photo"` which gives `this.refs.photo`).
* `this.setState()` can now take a function as the first argument for transactional state updates, such as `this.setState((state, props) => ({count: state.count + 1}));` this means that you no longer need to use `this._pendingState`, which is now gone.
* Support for iterators and immutable-js sequences as children.
@@ -30,7 +702,7 @@
#### New Features
* [`React.addons.createFragment` was added](/react/docs/create-fragment.html) for adding keys to entire sets of children.
* [`React.addons.createFragment` was added](https://facebook.github.io/react/docs/create-fragment.html) for adding keys to entire sets of children.
#### Deprecations
@@ -50,6 +722,12 @@
* `es3` restores the previous default behavior. An additional transform is added here to ensure the use of reserved words as properties is safe (eg `this.static` will become `this['static']` for IE8 compatibility).
* The transform for the call spread operator has also been enabled.
### JSXTransformer
#### Breaking Changes
* The return value of `transform` now contains `sourceMap` as a JS object already, not an instance of `SourceMapGenerator`.
### JSX
#### Breaking Changes
@@ -250,7 +928,7 @@
#### New Features
* Added warnings to help migrate towards descriptors
* Made it possible to server render without React-related markup (`data-reactid`, `data-react-checksum`). This DOM will not be mountable by React. [Read the docs for `React.renderComponentToStaticMarkup`](http://facebook.github.io/react/docs/top-level-api.html#react.rendercomponenttostaticmarkup)
* Made it possible to server render without React-related markup (`data-reactid`, `data-react-checksum`). This DOM will not be mountable by React. [Read the docs for `React.renderComponentToStaticMarkup`](https://facebook.github.io/react/docs/top-level-api.html#react.rendercomponenttostaticmarkup)
* Added support for more attributes:
* `srcSet` for `<img>` to specify images at different pixel ratios
* `textAnchor` for SVG
@@ -262,7 +940,7 @@
### Addons
* `update` function to deal with immutable data. [Read the docs](http://facebook.github.io/react/docs/update.html)
* `update` function to deal with immutable data. [Read the docs](https://facebook.github.io/react/docs/update.html)
### react-tools
* Added an option argument to `transform` function. The only option supported is `harmony`, which behaves the same as `jsx --harmony` on the command line. This uses the ES6 transforms from [jstransform](https://github.com/facebook/jstransform).
@@ -424,7 +1102,7 @@
### React with Addons (New!)
* Introduced a separate build with several "addons" which we think can help improve the React experience. We plan to deprecate this in the long-term, instead shipping each as standalone pieces. [Read more in the docs](http://facebook.github.io/react/docs/addons.html).
* Introduced a separate build with several "addons" which we think can help improve the React experience. We plan to deprecate this in the long-term, instead shipping each as standalone pieces. [Read more in the docs](https://facebook.github.io/react/docs/addons.html).
### JSX
@@ -457,10 +1135,10 @@
* Switch from using `id` attribute to `data-reactid` to track DOM nodes. This allows you to integrate with other JS and CSS libraries more easily.
* Support for more DOM elements and attributes (e.g., `<canvas>`)
* Improved server-side rendering APIs. `React.renderComponentToString(<component>, callback)` allows you to use React on the server and generate markup which can be sent down to the browser.
* `prop` improvements: validation and default values. [Read our blog post for details...](http://facebook.github.io/react/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html)
* Support for the `key` prop, which allows for finer control over reconciliation. [Read the docs for details...](http://facebook.github.io/react/docs/multiple-components.html)
* Removed `React.autoBind`. [Read our blog post for details...](http://facebook.github.io/react/blog/2013/07/02/react-v0-4-autobind-by-default.html)
* Improvements to forms. We've written wrappers around `<input>`, `<textarea>`, `<option>`, and `<select>` in order to standardize many inconsistencies in browser implementations. This includes support for `defaultValue`, and improved implementation of the `onChange` event, and circuit completion. [Read the docs for details...](http://facebook.github.io/react/docs/forms.html)
* `prop` improvements: validation and default values. [Read our blog post for details...](https://facebook.github.io/react/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html)
* Support for the `key` prop, which allows for finer control over reconciliation. [Read the docs for details...](https://facebook.github.io/react/docs/multiple-components.html)
* Removed `React.autoBind`. [Read our blog post for details...](https://facebook.github.io/react/blog/2013/07/02/react-v0-4-autobind-by-default.html)
* Improvements to forms. We've written wrappers around `<input>`, `<textarea>`, `<option>`, and `<select>` in order to standardize many inconsistencies in browser implementations. This includes support for `defaultValue`, and improved implementation of the `onChange` event, and circuit completion. [Read the docs for details...](https://facebook.github.io/react/docs/forms.html)
* We've implemented an improved synthetic event system that conforms to the W3C spec.
* Updates to your component are batched now, which may result in a significantly faster re-render of components. `this.setState` now takes an optional callback as it's second parameter. If you were using `onClick={this.setState.bind(this, state)}` previously, you'll want to make sure you add a third parameter so that the event is not treated as the callback.
@@ -492,14 +1170,14 @@
* Upgrade Commoner so `require` statements are no longer relativized when passing through the transformer. This was a feature needed when building React, but doesn't translate well for other consumers of `bin/jsx`.
* Upgraded our dependencies on Commoner and Recast so they use a different directory for their cache.
* Freeze our esprima dependency.
* Freeze our Esprima dependency.
## 0.3.2 (May 31, 2013)
### JSX
* Improved compatability with other coding styles (specifically, multiple assignments with a single `var`).
* Improved compatibility with other coding styles (specifically, multiple assignments with a single `var`).
### react-tools

View File

@@ -1,70 +1,5 @@
# Contributing to React
React is one of Facebook's first open source projects that is both under very active development and is also being used to ship code to everybody on [facebook.com](https://facebook.com). We're still working out the kinks to make contributing to this project as easy and transparent as possible, but we're not quite there yet. Hopefully this document makes the process for contributing clear and preempts some questions you may have.
Want to contribute to React? There are a few things you need to know.
## Our Development Process
Some of the core team will be working directly on GitHub. These changes will be public from the beginning. Other changesets will come via a bridge with Facebook's internal source control. This is a necessity as it allows engineers at Facebook outside of the core team to move fast and contribute from an environment they are comfortable in.
### `master` is unsafe
We will do our best to keep `master` in good shape, with tests passing at all times. But in order to move fast, we will make API changes that your application might not be compatible with. We will do our best to communicate these changes and always version appropriately so you can lock into a specific version if need be.
### Pull Requests
The core team will be monitoring for pull requests. When we get one, we'll run some Facebook-specific integration tests on it first. From here, we'll need to get another person to sign off on the changes and then merge the pull request. For API changes we may need to fix internal uses, which could cause some delay. We'll do our best to provide updates and feedback throughout the process.
*Before* submitting a pull request, please make sure the following is done…
1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests!
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes (`grunt test`).
5. Make sure your code lints (`grunt lint`) - we've done our best to make sure these rules match our internal linting guidelines.
6. If you haven't already, complete the CLA.
### Contributor License Agreement ("CLA")
In order to accept your pull request, we need you to submit a CLA. You only need to do this once, so if you've done this for another Facebook open source project, you're good to go. If you are submitting a pull request for the first time, just let us know that you have completed the CLA and we can cross-check with your GitHub username.
[Complete your CLA here](https://code.facebook.com/cla)
## Bugs
### Where to Find Known Issues
We will be using GitHub Issues for our public bugs. We will keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn't already exist.
### Reporting New Issues
The best way to get your bug fixed is to provide a reduced test case. jsFiddle, jsBin, and other sites provide a way to give live examples. Those are especially helpful though may not work for `JSX`-based code.
### Security Bugs
Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe disclosure of security bugs. With that in mind, please do not file public issues; go through the process outlined on that page.
## How to Get in Touch
* IRC - [#reactjs on freenode](http://webchat.freenode.net/?channels=reactjs)
* Mailing list - [reactjs on Google Groups](http://groups.google.com/group/reactjs)
## Style Guide
### Code
* Use semicolons;
* Commas last,
* 2 spaces for indentation (no tabs)
* Prefer `'` over `"`
* `'use strict';`
* 80 character line length
* "Attractive"
* Do not use the optional parameters of `setTimeout` and `setInterval`
### Documentation
* Do not wrap lines at 80 characters
## License
By contributing to React, you agree that your contributions will be licensed under its BSD license.
We wrote a **[contribution guide](https://facebook.github.io/react/contributing/how-to-contribute.html)** to help you get started.

View File

@@ -1,298 +0,0 @@
'use strict';
var jsxTask = require('./grunt/tasks/jsx');
var browserifyTask = require('./grunt/tasks/browserify');
var populistTask = require('./grunt/tasks/populist');
var webdriverPhantomJSTask = require('./grunt/tasks/webdriver-phantomjs');
var webdriverJasmineTasks = require('./grunt/tasks/webdriver-jasmine');
var sauceTunnelTask = require('./grunt/tasks/sauce-tunnel');
var npmTask = require('./grunt/tasks/npm');
var releaseTasks = require('./grunt/tasks/release');
var npmReactTasks = require('./grunt/tasks/npm-react');
var npmReactToolsTasks = require('./grunt/tasks/npm-react-tools');
var versionCheckTask = require('./grunt/tasks/version-check');
var gemReactSourceTasks = require('./grunt/tasks/gem-react-source');
var eslintTask = require('./grunt/tasks/eslint');
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
copy: require('./grunt/config/copy'),
jsx: require('./grunt/config/jsx'),
browserify: require('./grunt/config/browserify'),
populist: require('./grunt/config/populist')(grunt),
connect: require('./grunt/config/server')(grunt),
'webdriver-jasmine': require('./grunt/config/webdriver-jasmine'),
'webdriver-perf': require('./grunt/config/webdriver-perf'),
npm: require('./grunt/config/npm'),
clean: [
'./build',
'./*.gem',
'./docs/_site',
'./examples/shared/*.js',
'.module-cache'
],
jshint: require('./grunt/config/jshint'),
/*eslint-disable camelcase */
compare_size: require('./grunt/config/compare_size')
/*eslint-enable camelcase */
});
grunt.config.set('compress', require('./grunt/config/compress'));
Object.keys(grunt.file.readJSON('package.json').devDependencies)
.filter(function(npmTaskName) {
return npmTaskName.indexOf('grunt-') === 0;
})
.filter(function(npmTaskName) {
return npmTaskName !== 'grunt-cli';
})
.forEach(function(npmTaskName) {
grunt.loadNpmTasks(npmTaskName);
});
grunt.registerTask('eslint', eslintTask);
grunt.registerTask('lint', ['eslint']);
grunt.registerTask(
'download-previous-version',
require('./grunt/tasks/download-previous-version.js')
);
grunt.registerTask('delete-build-modules', function() {
if (grunt.file.exists('build/modules')) {
grunt.file.delete('build/modules');
}
});
// Register jsx:normal and :release tasks.
grunt.registerMultiTask('jsx', jsxTask);
// Our own browserify-based tasks to build a single JS file build
grunt.registerMultiTask('browserify', browserifyTask);
grunt.registerMultiTask('populist', populistTask);
grunt.registerTask('sauce-tunnel', sauceTunnelTask);
grunt.registerMultiTask('webdriver-jasmine', webdriverJasmineTasks);
grunt.registerMultiTask('webdriver-perf', require('./grunt/tasks/webdriver-perf'));
grunt.registerMultiTask('npm', npmTask);
grunt.registerTask('npm-react:release', npmReactTasks.buildRelease);
grunt.registerTask('npm-react:pack', npmReactTasks.packRelease);
grunt.registerTask('npm-react-tools:release', npmReactToolsTasks.buildRelease);
grunt.registerTask('npm-react-tools:pack', npmReactToolsTasks.packRelease);
grunt.registerTask('gem-react-source:release', gemReactSourceTasks.buildRelease);
grunt.registerTask('gem-react-source:pack', gemReactSourceTasks.packRelease);
grunt.registerTask('version-check', versionCheckTask);
grunt.registerTask('build:basic', [
'jsx:normal',
'version-check',
'browserify:basic'
]);
grunt.registerTask('build:addons', [
'jsx:normal',
'browserify:addons'
]);
grunt.registerTask('build:transformer', [
'jsx:normal',
'browserify:transformer'
]);
grunt.registerTask('build:min', [
'jsx:normal',
'version-check',
'browserify:min'
]);
grunt.registerTask('build:addons-min', [
'jsx:normal',
'browserify:addonsMin'
]);
grunt.registerTask('build:withCodeCoverageLogging', [
'jsx:normal',
'version-check',
'browserify:withCodeCoverageLogging'
]);
grunt.registerTask('build:perf', [
'jsx:normal',
'version-check',
'browserify:transformer',
'browserify:basic',
'browserify:min',
'download-previous-version'
]);
grunt.registerTask('build:test', [
'delete-build-modules',
'jsx:test',
'version-check',
'populist:test'
]);
grunt.registerTask('build:npm-react', [
'version-check',
'jsx:normal',
'npm-react:release'
]);
grunt.registerTask('build:gem-react-source', [
'build',
'gem-react-source:release'
]);
grunt.registerTask('webdriver-phantomjs', webdriverPhantomJSTask);
grunt.registerTask('coverage:parse', require('./grunt/tasks/coverage-parse'));
grunt.registerTask('test:webdriver:phantomjs', [
'connect',
'webdriver-phantomjs',
'webdriver-jasmine:local'
]);
grunt.registerTask('perf:webdriver:phantomjs', [
'connect',
'webdriver-phantomjs',
'webdriver-perf:local'
]);
grunt.registerTask('test:full', [
'build:test',
'build:basic',
'connect',
'webdriver-phantomjs',
'webdriver-jasmine:local',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_android',
'webdriver-jasmine:saucelabs_firefox',
'webdriver-jasmine:saucelabs_chrome'
]);
grunt.registerTask('perf:full', [
'build:perf',
'connect',
'webdriver-phantomjs',
'webdriver-perf:local',
'sauce-tunnel',
'webdriver-perf:saucelabs_firefox',
'webdriver-perf:saucelabs_chrome',
'webdriver-perf:saucelabs_ie11',
'webdriver-perf:saucelabs_ie8'
]);
grunt.registerTask('test:webdriver:saucelabs', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_' + (process.env.BROWSER_NAME || 'ie8')
]);
grunt.registerTask('test:webdriver:saucelabs:modern', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_android',
'webdriver-jasmine:saucelabs_firefox',
'webdriver-jasmine:saucelabs_chrome',
'webdriver-jasmine:saucelabs_ie11'
]);
grunt.registerTask('test:webdriver:saucelabs:ie', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_ie8',
'webdriver-jasmine:saucelabs_ie9',
'webdriver-jasmine:saucelabs_ie10',
'webdriver-jasmine:saucelabs_ie11'
]);
grunt.registerTask('test:webdriver:saucelabs:ios', [
'build:test',
'build:basic',
'connect',
'sauce-tunnel',
'webdriver-jasmine:saucelabs_ios6_1',
'webdriver-jasmine:saucelabs_ios5_1',
'webdriver-jasmine:saucelabs_ios4'
]);
grunt.registerTask('test:coverage', [
'build:test',
'build:withCodeCoverageLogging',
'test:webdriver:phantomjs',
'coverage:parse'
]);
grunt.registerTask('fasttest', function() {
if (grunt.option('debug')) {
grunt.task.run('build:test', 'connect:server:keepalive');
} else {
grunt.task.run('build:test', 'test:webdriver:phantomjs');
}
});
grunt.registerTask('test', function() {
if (grunt.option('debug')) {
grunt.task.run('build:test', 'build:basic', 'connect:server:keepalive');
} else {
grunt.task.run('build:test', 'build:basic', 'test:webdriver:phantomjs');
}
});
grunt.registerTask('perf', ['build:perf', 'perf:webdriver:phantomjs']);
grunt.registerTask('npm:test', ['build', 'npm:pack']);
// Optimized build task that does all of our builds. The subtasks will be run
// in order so we can take advantage of that and only run jsx:normal once.
grunt.registerTask('build', [
'delete-build-modules',
'jsx:normal',
'version-check',
'browserify:basic',
'browserify:transformer',
'browserify:addons',
'browserify:min',
'browserify:addonsMin',
'npm-react:release',
'npm-react:pack',
'npm-react-tools:release',
'npm-react-tools:pack',
'copy:react_docs',
'compare_size'
]);
// Automate the release!
grunt.registerTask('release:setup', releaseTasks.setup);
grunt.registerTask('release:bower', releaseTasks.bower);
grunt.registerTask('release:docs', releaseTasks.docs);
grunt.registerTask('release:msg', releaseTasks.msg);
grunt.registerTask('release:starter', releaseTasks.starter);
grunt.registerTask('release', [
'release:setup',
'clean',
'build',
'gem-react-source:release',
'gem-react-source:pack',
'release:bower',
'release:starter',
'compress',
'release:docs',
'release:msg'
]);
// The default task - build - to keep setup easy
grunt.registerTask('default', ['build']);
};

View File

@@ -2,7 +2,7 @@ BSD License
For React software
Copyright (c) 2013-2015, Facebook, Inc.
Copyright (c) 2013-present, Facebook, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,

46
PATENTS
View File

@@ -1,23 +1,33 @@
Additional Grant of Patent Rights
Additional Grant of Patent Rights Version 2
"Software" means the React software distributed by Facebook, Inc.
Facebook hereby grants you a perpetual, worldwide, royalty-free, non-exclusive,
irrevocable (subject to the termination provision below) license under any
rights in any patent claims owned by Facebook, to make, have made, use, sell,
offer to sell, import, and otherwise transfer the Software. For avoidance of
doubt, no license is granted under Facebooks rights in any patent claims that
are infringed by (i) modifications to the Software made by you or a third party,
or (ii) the Software in combination with any software or other technology
provided by you or a third party.
Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software
("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable
(subject to the termination provision below) license under any Necessary
Claims, to make, have made, use, sell, offer to sell, import, and otherwise
transfer the Software. For avoidance of doubt, no license is granted under
Facebook's rights in any patent claims that are infringed by (i) modifications
to the Software made by you or any third party or (ii) the Software in
combination with any software or other technology.
The license granted hereunder will terminate, automatically and without notice,
for anyone that makes any claim (including by filing any lawsuit, assertion or
other action) alleging (a) direct, indirect, or contributory infringement or
inducement to infringe any patent: (i) by Facebook or any of its subsidiaries or
affiliates, whether or not such claim is related to the Software, (ii) by any
party if such claim arises in whole or in part from any software, product or
service of Facebook or any of its subsidiaries or affiliates, whether or not
such claim is related to the Software, or (iii) by any party relating to the
Software; or (b) that any right in any patent claim of Facebook is invalid or
unenforceable.
if you (or any of your subsidiaries, corporate affiliates or agents) initiate
directly or indirectly, or take a direct financial interest in, any Patent
Assertion: (i) against Facebook or any of its subsidiaries or corporate
affiliates, (ii) against any party if such Patent Assertion arises in whole or
in part from any software, technology, product or service of Facebook or any of
its subsidiaries or corporate affiliates, or (iii) against any party relating
to the Software. Notwithstanding the foregoing, if Facebook or any of its
subsidiaries or corporate affiliates files a lawsuit alleging patent
infringement against you in the first instance, and you respond by filing a
patent infringement counterclaim in that lawsuit against that party that is
unrelated to the Software, the license granted hereunder will not terminate
under section (i) of this paragraph due to such counterclaim.
A "Necessary Claim" is a claim of a patent owned by Facebook that is
necessarily infringed by the Software standing alone.
A "Patent Assertion" is any lawsuit or other action alleging direct, indirect,
or contributory infringement or inducement to infringe any patent, including a
cross-claim or counterclaim.

View File

@@ -1,25 +1,25 @@
# [React](http://facebook.github.io/react) [![Build Status](https://travis-ci.org/facebook/react.svg?branch=master)](https://travis-ci.org/facebook/react)
# [React](https://facebook.github.io/react/) &middot; [![CircleCI Status](https://circleci.com/gh/facebook/react.svg?style=shield&circle-token=:circle-token)](https://circleci.com/gh/facebook/react) [![Coverage Status](https://img.shields.io/coveralls/facebook/react/master.svg?style=flat)](https://coveralls.io/github/facebook/react?branch=master) [![npm version](https://img.shields.io/npm/v/react.svg?style=flat)](https://www.npmjs.com/package/react) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md#pull-requests)
React is a JavaScript library for building user interfaces.
* **Just the UI:** Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
* **Virtual DOM:** React uses a *virtual DOM* diff implementation for ultra-high performance. It can also render on the server using Node.js — no heavy browser DOM required.
* **Data flow:** React implements one-way reactive data flow which reduces boilerplate and is easier to reason about than traditional data binding.
* **Declarative:** React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.
* **Component-Based:** Build encapsulated components that manage their own state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep state out of the DOM.
* **Learn Once, Write Anywhere:** We don't make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code. React can also render on the server using Node and power mobile apps using [React Native](https://facebook.github.io/react-native/).
[Learn how to use React in your own project.](http://facebook.github.io/react/docs/getting-started.html)
[Learn how to use React in your own project](https://facebook.github.io/react/docs/getting-started.html).
## Examples
We have several examples [on the website](http://facebook.github.io/react/). Here is the first one to get you started:
We have several examples [on the website](https://facebook.github.io/react/). Here is the first one to get you started:
```js
var HelloMessage = React.createClass({
render: function() {
```jsx
class HelloMessage extends React.Component {
render() {
return <div>Hello {this.props.name}</div>;
}
});
}
React.render(
ReactDOM.render(
<HelloMessage name="John" />,
document.getElementById('container')
);
@@ -27,70 +27,35 @@ React.render(
This example will render "Hello John" into a container on the page.
You'll notice that we used an HTML-like syntax; [we call it JSX](http://facebook.github.io/react/docs/jsx-in-depth.html). JSX is not required to use React, but it makes code more readable, and writing it feels like writing HTML. A simple transform is included with React that allows converting JSX into native JavaScript for browsers to digest.
You'll notice that we used an HTML-like syntax; [we call it JSX](https://facebook.github.io/react/docs/introducing-jsx.html). JSX is not required to use React, but it makes code more readable, and writing it feels like writing HTML. We recommend using [Babel](https://babeljs.io/) with a [React preset](https://babeljs.io/docs/plugins/preset-react/) to convert JSX into native JavaScript for browsers to digest.
## Installation
The fastest way to get started is to serve JavaScript from the CDN (also available on [cdnjs](https://cdnjs.com/libraries/react) and [jsdelivr](http://www.jsdelivr.com/#!react)):
React is available as the `react` package on [npm](https://www.npmjs.com/). It is also available on a [CDN](https://facebook.github.io/react/docs/installation.html#using-a-cdn).
```html
<!-- The core React library -->
<script src="http://fb.me/react-0.12.2.js"></script>
<!-- In-browser JSX transformer, remove when pre-compiling JSX. -->
<script src="http://fb.me/JSXTransformer-0.12.2.js"></script>
```
React is flexible and can be used in a variety of projects. You can create new apps with it, but you can also gradually introduce it into an existing codebase without doing a rewrite.
We've also built a [starter kit](http://facebook.github.io/react/downloads/react-0.12.2.zip) which might be useful if this is your first time using React. It includes a webpage with an example of using React with live code.
The recommended way to install React depends on your project. Here you can find short guides for the most common scenarios:
If you'd like to use [bower](http://bower.io), it's as easy as:
* [Trying Out React](https://facebook.github.io/react/docs/installation.html#trying-out-react)
* [Creating a New Application](https://facebook.github.io/react/docs/installation.html#creating-a-new-application)
* [Adding React to an Existing Application](https://facebook.github.io/react/docs/installation.html#adding-react-to-an-existing-application)
```sh
bower install --save react
```
## Contributing
## Contribute
The main purpose of this repository is to continue to evolve React core, making it faster and easier to use. Development of React happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving React.
The main purpose of this repository is to continue to evolve React core, making it faster and easier to use. If you're interested in helping with that, then keep reading. If you're not interested in helping right now that's ok too. :) Any feedback you have about using React would be greatly appreciated.
### [Code of Conduct](https://code.facebook.com/codeofconduct)
### Building Your Copy of React
Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](https://code.facebook.com/codeofconduct) so that you can understand what actions will and will not be tolerated.
The process to build `react.js` is built entirely on top of node.js, using many libraries you may already be familiar with.
### Contributing Guide
#### Prerequisites
Read our [contributing guide](https://facebook.github.io/react/contributing/how-to-contribute.html) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to React.
* You have `node` installed at v0.10.0+ (it might work at lower versions, we just haven't tested).
* You are familiar with `npm` and know whether or not you need to use `sudo` when installing packages globally.
* You are familiar with `git`.
### Beginner Friendly Bugs
#### Build
Once you have the repository cloned, building a copy of `react.js` is really easy.
```sh
# grunt-cli is needed by grunt; you might have this installed already
npm install -g grunt-cli
npm install
grunt build
```
At this point, you should now have a `build/` directory populated with everything you need to use React. The examples should all work.
### Grunt
We use grunt to automate many tasks. Run `grunt -h` to see a mostly complete listing. The important ones to know:
```sh
# Build and run tests with PhantomJS
grunt test
# Build and run tests in your browser
grunt test --debug
# For speed, you can use fasttest and add --filter to only run one test
grunt fasttest --filter=ReactIdentity
# Lint the code with ESLint
grunt lint
# Wipe out build directory
grunt clean
```
To help you get your feet wet and get you familiar with our contribution process, we have a list of [beginner friendly bugs](https://github.com/facebook/react/labels/Difficulty%3A%20beginner) that contain bugs which are fairly easy to fix. This is a great place to get started.
### License
@@ -99,7 +64,3 @@ React is [BSD licensed](./LICENSE). We also provide an additional [patent grant]
React documentation is [Creative Commons licensed](./LICENSE-docs).
Examples provided in this repository and in the documentation are [separately licensed](./LICENSE-examples).
### More…
There's only so much we can cram in here. To read more about the community and guidelines for submitting pull requests, please read the [Contributing document](CONTRIBUTING.md).

51
bin/jsx
View File

@@ -1,51 +0,0 @@
#!/usr/bin/env node
// -*- mode: js -*-
'use strict';
var transform = require('../main').transform;
require('commoner').version(
require('../package.json').version
).resolve(function(id) {
return this.readModuleP(id);
}).option(
'--harmony',
'Turns on JS transformations such as ES6 Classes etc.'
).option(
'--target [version]',
'Specify your target version of ECMAScript. Valid values are "es3" and ' +
'"es5". The default is "es5". "es3" will avoid uses of defineProperty and ' +
'will quote reserved words. WARNING: "es5" is not properly supported, even ' +
'with the use of es5shim, es5sham. If you need to support IE8, use "es3".',
'es5'
).option(
'--strip-types',
'Strips out type annotations.'
).option(
'--es6module',
'Parses the file as a valid ES6 module. ' +
'(Note that this means implicit strict mode)'
).option(
'--non-strict-es6module',
'Parses the file as an ES6 module, except disables implicit strict-mode. ' +
'(This is useful if you\'re porting non-ES6 modules to ES6, but haven\'t ' +
'yet verified that they are strict-mode safe yet)'
).option(
'--source-map-inline',
'Embed inline sourcemap in transformed source'
).process(function(id, source) {
// This is where JSX, ES6, etc. desugaring happens.
// We don't do any pre-processing of options so that the command line and the
// JS API both expose the same set of options. We do extract the options that
// we care about from commoner though so we aren't passing too many things
// along.
var options = {
harmony: this.options.harmony,
sourceMap: this.options.sourceMapInline,
stripTypes: this.options.stripTypes,
es6module: this.options.es6module,
nonStrictEs6Module: this.options.nonStrictEs6Module,
target: this.options.target
};
return transform(source, options);
});

View File

@@ -1,57 +0,0 @@
#!/usr/bin/env node
// -*- mode: js -*-
"use strict";
var transform = require('../main').transform;
var propagate = require("../vendor/constants").propagate;
require("commoner").version(
require("../package.json").version
).resolve(function(id) {
var context = this;
// Note that the result of context.getProvidedP() is cached for the
// duration of the build, so it is both consistent and cheap to
// evaluate multiple times.
return context.getProvidedP().then(function(idToPath) {
// If a module declares its own identifier using @providesModule
// then that identifier will be a key in the idToPath object.
if (idToPath.hasOwnProperty(id)) {
return context.readFileP(idToPath[id]);
}
// Otherwise assume the identifier maps directly to a path in the
// filesystem.
return context.readModuleP(id);
});
}).process(function(id, source) {
var context = this;
var constants = context.config.constants || {};
// This is where JSX, ES6, etc. desugaring happens.
source = transform(source, {harmony: true, stripTypes: true});
// Constant propagation means removing any obviously dead code after
// replacing constant expressions with literal (boolean) values.
source = propagate(constants, source);
if (context.config.mocking) {
// Make sure there is exactly one newline at the end of the module.
source = source.replace(/\s+$/m, "\n");
return context.getProvidedP().then(function(idToPath) {
if (id !== "mock-modules" &&
id !== "mocks" &&
id !== "test/all" &&
idToPath.hasOwnProperty("mock-modules")) {
return source + '\nrequire("mock-modules").register(' +
JSON.stringify(id) + ', module);\n';
}
return source;
});
}
return source;
});

45
circle.yml Normal file
View File

@@ -0,0 +1,45 @@
---
machine:
timezone: America/Los_Angeles
node:
version: 6
ruby:
version: 2.2.3
environment:
TRAVIS_REPO_SLUG: facebook/react
YARN_VERSION: 0.17.8
PATH: "${PATH}:${HOME}/.yarn/bin"
dependencies:
pre:
# This is equivalent to $TRAVIS_COMMIT_RANGE
# Need to figure out how to bail early if this is a "docs only" build
- echo $CIRCLE_COMPARE_URL | cut -d/ -f7
# install yarn if it's not already installed
- |
if [[ ! -e ~/.yarn/bin/yarn || $(yarn --version) != "${YARN_VERSION}" ]]; then
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION
fi
override:
- bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3
- yarn install
- scripts/circleci/set_up_github_keys.sh
post:
# - npm ls --depth=0
cache_directories:
- docs/vendor/bundle
- ~/react-gh-pages # docs checkout
- ~/.yarn
- ~/.yarn-cache
test:
override:
- ./scripts/circleci/test_entry_point.sh:
parallel: true
deployment:
staging:
branch: /.*/
commands:
- ./scripts/circleci/upload_build.sh
- ./scripts/circleci/build_gh_pages.sh

View File

@@ -1,6 +1,7 @@
---
layout: single
title: Page Not Found
permalink: 404.html
---
We couldn't find what you were looking for.

View File

@@ -3,11 +3,12 @@ source 'https://rubygems.org'
gem 'rake'
# jekyll, which builds it all
# 2.0 includes sass processing
gem 'jekyll', '~>2.0'
# 3.0 includes sass processing
gem 'jekyll', '~>3.1'
# Auto redirect pages
# Jekyll extensions
gem 'jekyll-redirect-from'
gem 'jekyll-paginate'
# JSON
gem 'json'
@@ -17,3 +18,12 @@ gem 'rb-fsevent'
# For markdown header cleanup
gem 'sanitize', '~>2.0'
# Markdown
gem 'redcarpet'
# Syntax highlighting
gem 'pygments.rb'
# Avoid having to poll for changes on Windows
gem 'wdm', '>= 0.1.0' if Gem.win_platform?

View File

@@ -1,82 +1,67 @@
GEM
remote: https://rubygems.org/
specs:
blankslate (2.1.2.4)
celluloid (0.15.2)
timers (~> 1.1.0)
classifier (1.3.4)
fast-stemmer (>= 1.0.0)
coffee-script (2.3.0)
coffee-script-source
execjs
coffee-script-source (1.7.1)
colorator (0.1)
execjs (2.2.1)
fast-stemmer (1.0.2)
ffi (1.9.3)
jekyll (2.2.0)
classifier (~> 1.3)
ffi (1.9.14)
ffi (1.9.14-x64-mingw32)
jekyll (3.1.6)
colorator (~> 0.1)
jekyll-coffeescript (~> 1.0)
jekyll-gist (~> 1.0)
jekyll-paginate (~> 1.0)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
liquid (~> 2.6.1)
liquid (~> 3.0)
mercenary (~> 0.3.3)
pygments.rb (~> 0.6.0)
redcarpet (~> 3.1)
rouge (~> 1.7)
safe_yaml (~> 1.0)
toml (~> 0.1.0)
jekyll-coffeescript (1.0.0)
coffee-script (~> 2.2)
jekyll-gist (1.1.0)
jekyll-paginate (1.0.0)
jekyll-redirect-from (0.5.0)
jekyll (~> 2.0)
jekyll-sass-converter (1.2.0)
sass (~> 3.2)
jekyll-watch (1.1.0)
listen (~> 2.7)
json (1.8.1)
kramdown (1.4.1)
liquid (2.6.1)
listen (2.7.9)
celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
mercenary (0.3.4)
mini_portile (0.6.0)
nokogiri (1.6.3.1)
mini_portile (= 0.6.0)
parslet (1.5.0)
blankslate (~> 2.0)
posix-spawn (0.3.9)
pygments.rb (0.6.0)
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.11.0)
jekyll (>= 2.0)
jekyll-sass-converter (1.4.0)
sass (~> 3.4)
jekyll-watch (1.4.0)
listen (~> 3.0, < 3.1)
json (2.0.1)
kramdown (1.11.1)
liquid (3.0.6)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
mercenary (0.3.6)
mini_portile2 (2.1.0)
nokogiri (1.6.8)
mini_portile2 (~> 2.1.0)
pkg-config (~> 1.1.7)
nokogiri (1.6.8-x64-mingw32)
mini_portile2 (~> 2.1.0)
pkg-config (~> 1.1.7)
pkg-config (1.1.7)
posix-spawn (0.3.11)
pygments.rb (0.6.3)
posix-spawn (~> 0.3.6)
yajl-ruby (~> 1.1.0)
rake (10.3.2)
rb-fsevent (0.9.4)
rb-inotify (0.9.5)
yajl-ruby (~> 1.2.0)
rake (11.2.2)
rb-fsevent (0.9.7)
rb-inotify (0.9.7)
ffi (>= 0.5.0)
redcarpet (3.1.2)
redcarpet (3.3.4)
rouge (1.11.1)
safe_yaml (1.0.4)
sanitize (2.0.6)
sanitize (2.1.0)
nokogiri (>= 1.4.4)
sass (3.3.14)
timers (1.1.0)
toml (0.1.1)
parslet (~> 1.5.0)
yajl-ruby (1.1.0)
sass (3.4.22)
yajl-ruby (1.2.1)
PLATFORMS
ruby
x64-mingw32
DEPENDENCIES
jekyll (~> 2.0)
jekyll (~> 3.1)
jekyll-paginate
jekyll-redirect-from
json
pygments.rb
rake
rb-fsevent
redcarpet
sanitize (~> 2.0)

View File

@@ -1,40 +1,52 @@
# React Documentation & Website
We use [Jekyll](http://jekyllrb.com/) to build the site using ([mostly](http://zpao.com/posts/adding-line-highlights-to-markdown-code-fences/)) Markdown, and we host it by pushing HTML to [GitHub Pages](http://pages.github.com/).
## [Read the React Documentation](https://facebook.github.io/react/)
This folder is not the right place to *read* the documentation.
Instead, head over [to the React website](https://facebook.github.io/react/) to read it.
This folder only contains the source code for the website.
## Installation
If you are working on the site, you will want to install and run a local copy of it.
We use [Jekyll](http://jekyllrb.com/) to build the site using ([mostly](http://zpao.com/posts/adding-line-highlights-to-markdown-code-fences/)) Markdown, and we host it by pushing HTML to [GitHub Pages](http://pages.github.com/).
### Dependencies
In order to use Jekyll, you will need to have Ruby installed.
In order to use Jekyll, you will need to have Ruby installed. macOS comes pre-installed with Ruby, but you may need to update RubyGems (via `gem update --system`).
Otherwise, [RVM](https://rvm.io/) and [rbenv](https://github.com/sstephenson/rbenv) are popular ways to install Ruby.
- [Ruby](http://www.ruby-lang.org/) (version >= 1.8.7)
- [RubyGems](http://rubygems.org/) (version >= 1.3.7)
- [Bundler](http://gembundler.com/)
Mac OS X comes pre-installed with Ruby, but you may need to update RubyGems (via `gem update --system`).
Otherwise, [RVM](https://rvm.io/) and [rbenv](https://github.com/sstephenson/rbenv) are popular ways to install Ruby.
The version of the Pygment syntax highlighter used by Jekyll requires Python 2.7.x (not 3.x). macOS comes pre-installed with Python 2.7, but you may need to install it on other OSs.
- [Python](https://www.python.org) (version 2.7.x)
Once you have RubyGems and installed Bundler (via `gem install bundler`), use it to install the dependencies:
```sh
$ cd react/docs
$ bundle install # Might need sudo.
$ npm install # Might need sudo.
$ npm install
```
### Instructions
The site requires React, so first make sure you've built the project (via `grunt`).
The site requires React, so first make sure you've built the project (via [`grunt`](http://gruntjs.com/getting-started)).
Use Jekyll to serve the website locally (by default, at `http://localhost:4000`):
```sh
$ cd react/docs
$ bundle exec rake
$ bundle exec rake fetch_remotes
$ bundle exec jekyll serve -w
$ open http://localhost:4000/react/
$ open http://localhost:4000/react/index.html
```
We use [SASS](http://sass-lang.com/) (with [Bourbon](http://bourbon.io/)) for our CSS, and we use JSX to transform some of our JS.

View File

@@ -1,15 +1,24 @@
require('rubygems')
require('json')
require('yaml')
require('open-uri')
desc "download babel-browser"
task :fetch_remotes do
IO.copy_stream(
open('https://unpkg.com/babel-standalone@6.15.0/babel.min.js'),
'js/babel.min.js'
)
end
desc "generate js from jsx"
task :js do
system "../bin/jsx --harmony _js js"
system "../node_modules/.bin/babel _js --out-dir=js"
end
desc "watch js"
task :watch do
Process.spawn "../bin/jsx --watch --harmony _js js"
Process.spawn "../node_modules/.bin/babel _js --out-dir=js --watch"
Process.waitall
end
@@ -23,6 +32,23 @@ task :update_version do
end
end
desc "update SRI hashes"
task :update_hashes do
map = {
'react.js' => 'dev',
'react.min.js' => 'prod',
'react-dom.js' => 'dom_dev',
'react-dom.min.js' => 'dom_prod',
'react-dom-server.js' => 'dom_server_dev',
'react-dom-server.min.js' => 'dom_server_prod'
}
site_config = YAML.load_file('_config.yml')
map.each do |file, key|
site_config['react_hashes'][key] = `openssl dgst -sha384 -binary ../../react-bower/#{file} | openssl base64 -A`
end
File.open('_config.yml', 'w+') { |f| f.write(site_config.to_yaml) }
end
desc "update acknowledgements list"
task :update_acknowledgements do
authors = File.readlines('../AUTHORS').map {|author| author.gsub(/ <.*\n/,'')}
@@ -33,8 +59,15 @@ task :update_acknowledgements do
File.open('_data/acknowledgements.yml', 'w+') { |f| f.write(cols.to_yaml) }
end
desc "copy error codes to docs"
task :copy_error_codes do
codes_json = File.read('../scripts/error-codes/codes.json')
codes_js = "var errorMap = #{codes_json.chomp};\n"
File.write('js/errorMap.js', codes_js)
end
desc "build into ../../react-gh-pages"
task :release => [:update_version, :default] do
task :release => [:update_version, :js, :fetch_remotes, :copy_error_codes] do
system "jekyll build -d ../../react-gh-pages"
end

View File

@@ -1,37 +1,72 @@
---
name: React
description: A JavaScript library for building user interfaces
url: http://facebook.github.io
baseurl: "/react"
permalink: "/blog/:year/:month/:day/:title.html"
paginate_path: "/blog/page:num/"
relative_permalinks: true
url: https://facebook.github.io
baseurl: /react
permalink: /blog/:year/:month/:day/:title.html
paginate_path: /blog/page:num/
paginate: 5
timezone: America/Los_Angeles
highlighter: pygments
defaults:
- scope:
path: ''
type: post
type: posts
values:
layout: post
sectionid: blog
- scope:
path: blog
type: pages
values:
sectionid: blog
- scope:
path: tutorial
type: pages
values:
layout: tutorial
sectionid: tutorial
- scope:
path: docs
type: page
type: pages
values:
layout: docs
sectionid: docs
- scope:
path: contributing
type: pages
values:
sectionid: docs
- scope:
path: community
type: pages
values:
layout: community
sectionid: community
exclude:
- Gemfile
- Gemfile.lock
- README.md
- Rakefile
- vendor/bundle
markdown: redcarpet
redcarpet:
extensions:
- fenced_code_blocks
- footnotes
sass:
style: :compressed
sass_dir: _css
gems:
- jekyll-redirect-from
react_version: 0.13.0-rc2
- jekyll-paginate
react_version: 15.4.0
react_hashes:
dev: buVLzxzBI8Ps3svVMSUurNdb5dozNidH5Ow4H0YgZeia3t6Oeui2VLpvtAq1fwtK
prod: nCjsa0kjNQPQdxWm12/ReVJzfBJaVubEwwDswyQDGMKYJmeWv3qShMuETfU5fisu
addons_dev: /u97pKzBwasbC1yj8gSIq1z30o4ZTUX9j1Mv/hyAjmG41ydTNHw9JFOhwFbDgxmR
addons_prod: /p86n4b5VTlWoA/INEHQZ+zjx9g1pJduoFmTEJ6fSzFTq1mBaXaBcWVGtZJXD68L
dom_dev: lUxkeWjg3I3lXmxcM1gvgo0yvm2w9alc1osa4L8yWZFO6l/vg9h5hSlHPFioltrm
dom_prod: u8x1yIGN9IjGNYbBaDMsp1D4MK3sCmMU13mcBX+bm+aMo5+gaT8HIwIj39GlXaRS
dom_server_dev: Okj1hVX1VF+oZSkPcJQ/YcnW6bsIpeni222ylwUaMnSmdCe0zWKmMwpFMVqzy4Ws
dom_server_prod: wiA4u+G5fEfF4xzhhVnNWeSifVyttoEIpgc3APaMKQgw5A4wHbEMihf63tk1qoyt

View File

@@ -37,7 +37,7 @@ html * {
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-light span.cm-keyword {
color: #268bd2;
color: #859900;
}
.cm-s-solarized-light span.cm-atom {
color: #2aa198;
@@ -61,7 +61,7 @@ html * {
color: #93a1a1;
}
.cm-s-solarized-light span.cm-property {
color: #637c84;
color: #657b83;
}
.cm-s-solarized-light span.cm-operator {
color: #657b83;
@@ -74,14 +74,13 @@ html * {
border-bottom: 1px dotted #cb4b16;
}
.cm-s-solarized-light span.cm-bracket {
color: #cb4b16;
color: #268bd2;
}
.cm-s-solarized-light span.cm-tag {
color: #657b83;
color: #268bd2;
}
.cm-s-solarized-light span.cm-attribute {
color: #586e75;
font-weight: bold;
}
.cm-s-solarized-light span.cm-meta {
color: #268bd2;
@@ -166,7 +165,6 @@ html * {
}
.cm-s-solarized-dark span.cm-attribute {
color: #93a1a1;
font-weight: bold;
}
.cm-s-solarized-dark span.cm-meta {
color: #268bd2;

View File

@@ -68,7 +68,7 @@ h3 {
}
h4 {
font-size: 17px;
font-size: 16px;
}
h5 {
@@ -112,8 +112,6 @@ li {
line-height: 20px;
}
a {
color: $linkColor;
text-decoration: none;
@@ -131,3 +129,7 @@ a {
.center {
text-align: center;
}
input {
font-family: inherit;
}

View File

@@ -11,7 +11,7 @@
$side: nth($pos, 2);
@if $length == 2 { // eg. to top
// Swap for backwards compatability
// Swap for backwards compatibility
$degree: _position-flipper(nth($pos, 2));
}
@else if $length == 3 { // eg. to top left
@@ -38,7 +38,7 @@
$spec: to $side $corner;
}
@else if $length == 1 {
// Swap for backwards compatability
// Swap for backwards compatibility
@if $type == string {
$degree: $pos;
$spec: to _position-flipper($pos);

View File

@@ -1,46 +1,93 @@
---
- - Aaron Franks
- - '839'
- Aaron Franks
- Aaron Gelter
- Adam Bloomston
- Adam Krebs
- Adam Mark
- Adam Solove
- Adam Timberlake
- Adam Zapletal
- Ahmad Wali Sidiqi
- Alan Plum
- Alan Souza
- Alan deLevie
- Alastair Hole
- Alex
- Alex Boatwright
- Alex Boyd
- Alex Dajani
- Alex Lopatin
- Alex Mykyta
- Alex Pien
- Alex Smith
- Alex Zelenskiy
- Alexander Shtuchkin
- Alexander Solovyov
- Alexander Tseung
- Alexandre Gaudencio
- Alexey Raspopov
- Alexey Shamrin
- Ali Ukani
- Andre Z Sanchez
- Andreas Savvides
- Andreas Svensson
- Andres Kalle
- Andres Suarez
- Andrew Clark
- Andrew Cobby
- Andrew Davey
- Andrew Henderson
- Andrew Kulakov
- Andrew Rasmussen
- Andrew Sokolov
- Andrew Zich
- Andrey Popp
- Anthony van der Hoorn
- Anto Aravinth
- Antonio Ruberto
- Antti Ahti
- Anuj Tomar
- AoDev
- April Arcus
- Areeb Malik
- Aria Buckles
- Aria Stewart
- Arian Faurtosh
- Artem Nezvigin
- Austin Wright
- Ayman Osman
- Baraa Hamodi
- Bartosz Kaszubowski
- Basarat Ali Syed
- Battaile Fauber
- Beau Smith
- Ben Alpert
- Ben Anderson
- Ben Brooks
- Ben Foxall
- Ben Halpern
- Ben Jaffe
- Ben Moss
- Ben Newman
- Ben Ripkens
- Benjamin Keen
- Benjamin Leiken
- Benjamin Woodruff
- Benjy Cui
- Bill Blanchard
- Bill Fisher
- Blaine Hatab
- Blaine Kasten
- Bob Eagan
- Bob Ralian
- Bob Renwick
- Bobby
- Bojan Mihelac
- Bradley Spaulding
- Brandon Bloom
- Brandon Tilley
- Brenard Cubacub
- Brian Cooke
- Brian Holt
- Brian Hsu
@@ -51,205 +98,412 @@
- Bruno Škvorc
- Cam Song
- Cam Spiers
- Cameron Chamberlain
- Cameron Matheson
- Carter Chung
- Cassus Adam Banko
- Cat Chen
- Cedric Sohrauer
- Cesar William Alvarenga
- Changsoon Bok
- Charles Marsh
- Chase Adams
- Cheng Lou
- Chitharanjan Das
- Chris Bolin
- Chris Grovers
- Chris Ha
- Chris Rebert
- Chris Sciolla
- Christian
- Christian Alfoni
- Christian Oliff
- Christian Roman
- Christoffer Sawicki
- Christoph Pojer
- Christopher Monsanto
- Clay Allsopp
- Connor McSheffrey
- Conor Hastings
- Cory House
- Cotton Hou
- Craig Akimoto
- Cristovao Verstraeten
- Damien Pellier
- Dan Abramov
- Dan Fox
- Dan Schafer
- Daniel Carlsson
- Daniel Cousens
- Daniel Friesen
- Daniel Gasienica
- Daniel Hejl
- Daniel Hejl
- Daniel Lo Nigro
- Daniel Mané
- Daniel Miladinov
- Daniel Rodgers-Pryor
- Daniel Schonfeld
- Danny Ben-David
- Darcy
- Daryl Lau
- Darío Javier Cravero
- Dave Galbraith
- David Baker
- David Ed Mellum
- David Goldberg
- David Granado
- David Greenspan
- David Hellsing
- David Hu
- David Khourshid
- David Mininger
- David Neubauer
- David Percy
- Dean Shi
- Denis Sokolov
- Deniss Jacenko
- Dennis Johnson
- Devon Blandin
- Devon Harvey
- Dmitrii Abramov
- Dmitriy Rozhkov
- Dmitry Blues
- Dmitry Mazuro
- Domenico Matteo
- Don Abrams
- Dongsheng Liu
- Dustan Kasten
- Dustin Getz
- Dylan Harrington
- Eduardo Garcia
- Edvin Erikson
- Elaine Fang
- Enguerran
- Eric Clemmons
- Eric Eastwood
- Eric Florenzano
- Eric O'Connell
- Eric Schoffstall
- Erik Harper
- Espen Hovlandsdal
- Evan Coonrod
- Evan Vosberg
- Fabio M. Costa
- Federico Rampazzo
- Felipe Oliveira Carvalho
- Felix Gnass
- Felix Kling
- Fernando Correia
- Frankie Bagnardi
- François-Xavier Bois
- Fred Zhao
- Freddy Rangel
- Fyodor Ivanishchev
- G Scott Olson
- G. Kay Lee
- Gabe Levi
- Gajus Kuizinas
- Gareth Nicholson
- Garren Smith
- Gavin McQuistin
- Geert Pasteels
- Geert-Jan Brits
- George A Sisco III
- Georgii Dolzhykov
- Gilbert
- Glen Mailer
- Grant Timmerman
- Greg Hurrell
- Greg Perkins
- Greg Roodt
- Gregory
- Guangqiang Dong
- Guido Bouman
- Harry Hull
- Harry Marr
- - Harry Moreno
- Harry Moreno
- Harshad Sabne
- Hekar Khani
- Hendrik Swanepoel
- Henrik Nyh
- Henry Wong
- Henry Zhu
- Hideo Matsumoto
- Hou Chia
- Huang-Wei Chang
- - Hugo Agbonon
- Hugo Jobling
- Hyeock Kwon
- Héliton Nordt
- Ian Obermiller
- Ignacio Carbajo
- Igor Scekic
- Ilia Pavlenkov
- Ilya Shuklin
- Ilyá Belsky
- Ingvar Stepanyan
- Irae Carvalho
- Isaac Salier-Hellendag
- Iurii Kucherov
- Ivan Kozik
- Ivan Krechetov
- Ivan Vergiliev
- J. Andrew Brassington
- J. Renée Beach
- JD Isaacks
- JJ Weber
- JW
- Jack Zhang
- Jackie Wung
- Jacob Gable
- Jacob Greenleaf
- Jae Hun Ro
- Jaeho Lee
- Jaime Mingo
- Jake Worth
- Jakub Malinowski
- James
- James Brantly
- James Burnett
- James Friend
- James Ide
- James Long
- James Pearce
- James Seppi
- James South
- James Wen
- Jamie Wong
- Jamis Charles
- Jamison Dance
- Jan Hancic
- Jan Kassens
- Jan Raasch
- Jared Forsyth
- Jason
- Jason Bonta
- Jason Ly
- Jason Miller
- Jason Quense
- Jason Trill
- Jason Webster
- Jay Jaeho Lee
- Jean Lauliac
- Jed Watson
- Jeff Barczewski
- Jeff Carpenter
- Jeff Chan
- Jeff Hicken
- Jeff Kolesky
- Jeff Morrison
- Jeff Welch
- Jeffrey Lin
- Jeremy Fairbank
- Jesse Skinner
- Jignesh Kakadiya
- Jim OBrien
- Jim Sproch
- Jimmy Jea
- Jing Chen
- Jinwoo Oh
- Jinxiu Lee
- Jiyeon Seo
- Jody McIntyre
- Joe Critchley
- Joe Stein
- Joel Auterson
- Johannes Baiter
- Johannes Emerich
- Johannes Lumpe
- John Heroy
- John Ryan
- John Watson
- John-David Dalton
- Jon Beebe
- Jon Chester
- Jon Hester
- Jon Madison
- Jon Scott Clark
- Jon Tewksbury
- Jonas Enlund
- Jonas Gebhardt
- Jonathan Hsu
- Jonathan Persson
- Jordan Harband
- Jordan Walke
- Jorrit Schippers
- Joseph Nudell
- Joseph Savona
- Josh Bassett
- Josh Duck
- Josh Perez
- Josh Yudaken
- Joshua Evans
- Joshua Go
- Joshua Goldberg
- Joshua Ma
- João Valente
- Juan Serrano
- Julen Ruiz Aizpuru
- Julian Viereck
- Julien Bordellier
- Julio Lopez
- Jun Wu
- Juraj Dudak
- Justas Brazauskas
- Justin Jaffray
- Justin Robison
- Justin Woo
- Kale
- Kamron Batman
- Karl Mikkelsen
- Karpich Dmitry
- Keito Uchiyama
- Ken Powers
- Kent C. Dodds
- Kevin Cheng
- Kevin Coughlin
- Kevin Huang
- Kevin Lau
- Kevin Old
- Kevin Robinson
- Kewei Jiang
- Kier Borromeo
- KimCoding
- Kirk Steven Hansen
- Kit Randel
- Kohei TAKATA
- Koo Youngmin
- Krystian Karczewski
- Kunal Mehta
- Kurt Ruppel
- Kyle Kelley
- Kyle Mathews
- Laurence Rowe
- Laurent Etiemble
- Lee Byron
- Lee Jaeyoung
- Lei
- Leland Richardson
- Leon Fedotov
- Leon Yip
- Leonardo YongUk Kim
- Levi Buzolic
- Levi McCallum
- Lily
- Logan Allen
- Lovisa Svallingson
- Ludovico Fischer
- Luigy Leon
- Luke Horvat
- MIKAMI Yoshiyuki
- Maher Beg
- Manas
- Marcin K.
- Marcin Kwiatkowski
- Marcin Szczepanski
- Mariano Desanze
- Marjan
- Mark Anderson
- Mark Funk
- Mark Hintz
- Mark IJbema
- Mark Murphy
- Mark Richardson
- Mark Rushakoff
- Mark Sun
- Marlon Landaverde
- Marshall Roch
- Martin Andert
- Martin Hujer
- Martin Jul
- Martin Konicek
- Martin Mihaylov
- Masaki KOBAYASHI
- Mathieu M-Gosselin
- Mathieu Savy
- Matias Singers
- Matsunoki
- Matt Brookes
- Matt Dunn-Rankin
- Matt Harrison
- Matt Huggins
- Matt Stow
- Matt Zabriskie
- Matthew Dapena-Tretter
- Matthew Herbst
- Matthew Hodgson
- Matthew Johnston
- Matthew King
- Matthew Looi
- Matthew Miner
- Matthias Le Brun
- Matti Nelimarkka
- Mattijs Kneppers
- Max F. Albrecht
- Max Heiber
- Max Stoiber
- Maxi Ferreira
- Maxim Abramchuk
- Merrick Christensen
- Mert Kahyaoğlu
- Michael Chan
- Michael McDermott
- Michael Randers-Pehrson
- Michael Ridgway
- Michael Warner
- Michael Wiencek
- Michael Ziwisky
- Michal Srb
- Michelle Todd
- Mihai Parparita
- Mike D Pilsbury
- Mike Groseclose
- Mike Nordick
- Mikolaj Dadela
- Miles Johnson
- Minwe LUO
- Miorel Palii
- - Mouad Debbar
- - Morhaus
- Moshe Kolodny
- Mouad Debbar
- Murad
- Murray M. Moss
- Nadeesha Cabral
- Naman Goel
- Nate Hunzaker
- Nate Lee
- Nathan Smith
- Nathan White
- Nee
- Neri Marschik
- Nguyen Truong Duy
- Nicholas Bergson-Shilcock
- Nicholas Clawson
- Nick Balestra
- Nick Fitzgerald
- Nick Gavalas
- Nick Merwin
- Nick Presta
- Nick Raienko
- Nick Thompson
- Nick Williams
- Niklas Boström
- Ning Xia
- Niole Nelson
- Oiva Eskola
- Oleg
- Oleksii Markhovskyi
- Oliver Zeigermann
- Olivier Tassinari
- Owen Coutts
- Pablo Lacerda de Miranda
- Paolo Moretti
- Pascal Hartig
- Patrick
- Patrick Laughlin
- Patrick Stapleton
- Paul Benigeri
- Paul Harper
- Paul OShannessy
- Paul Seiffert
- Paul Shen
@@ -258,87 +512,186 @@
- Peter Blazejewicz
- Peter Cottle
- Peter Jaros
- Peter Newnham
- Petri Lehtinen
- Petri Lievonen
- Pieter Vanderwerff
- Pouja Nikray
- Prathamesh Sonpatki
- Prayag Verma
- Preston Parry
- Rafael
- Rafal Dittwald
- Rainer Oviir
- Rajat Sehgal
- Rajiv Tirumalareddy
- Ram Kaniyur
- Randall Randall
- Ray
- Raymond Ha
- Reed Loden
- Remko Tronçon
- Richard D. Worth
- Richard Feldman
- Richard Kho
- Richard Littauer
- Richard Livesey
- Richard Wood
- Rick Beerendonk
- Rick Ford
- Riley Tomasek
- Rob Arnold
- Robert Binna
- Robert Knight
- Robert Sedovsek
- Robin Berjon
- Robin Frischmann
- Roman Pominov
- Roman Vanesyan
- Russ
- Ryan Seddon
- Sahat Yalkabov
- Saif Hakim
- Saiichi Hashimoto
- Sam Beveridge
- Sam Saccone
- Sam Selikoff
- Samy Al Zahrani
- Sander Spies
- Scott Burch
- Scott Feeney
- Sean Kinsey
- Sebastian Markbåge
- Sebastian McKenzie
- Seoh Char
- Sercan Eraslan
- Serg
- Sergey Generalov
- Sergey Rubanov
- Seyi Adebajo
- Shane O'Sullivan
- Shaun Trennery
- Sheraz
- ShihChi Huang
- Shim Won
- Shinnosuke Watanabe
- Shogun Sea
- Shota Kubota
- Shripad K
- Sibi
- Simen Bekkhus
- Simon Højberg
- Simon Welsh
- Simone Vittori
- Soichiro Kawamura
- Sophia Westwood
- Sota Ohara
- Spencer Handley
- Stefan Dombrowski
- Stephen Murphy
- Sterling Cobb
- Steve Baker
- Steven Luscher
- Steven Vachon
- Stoyan Stefanov
- Sundeep Malladi
- Sunny Juneja
- Sven Helmberger
- Sverre Johansen
- Sébastien Lorber
- Sławomir Laskowski
- Taeho Kim
- Tay Yang Shun
- Ted Kim
- Tengfei Guo
- Teodor Szente
- Thomas Aylott
- Thomas Boyt
- Thomas Broadley
- Thomas Reggi
- Thomas Röggla
- Thomas Shaddox
- Thomas Shafer
- ThomasCrvsr
- Tienchai Wirojsaksaree
- Tim Routowicz
- Tim Schaub
- Timothy Yung
- Timur Carpeev
- Tobias Reiss
- Tom Duncalf
- Tom Haggie
- Tom Hauburger
- Tom MacWright
- Tom Occhino
- Tomasz Kołodziejski
- Tomoya Suzuki
- Tony Spiro
- Toru Kobayashi
- Trinh Hoang Nhu
- Tsung Hung
- Tyler Brock
- Ustin Zarubin
- Vadim Chernysh
- Varun Rau
- Vasiliy Loginevskiy
- Victor Alvarez
- Victor Homyakov
- Victor Koenders
- Ville Immonen
- Vincent Riemer
- Vincent Siao
- Vipul A M
- Vitaly Kramskikh
- Vitor Balocco
- Vjeux
- Volkan Unsal
- Wander Wang
- Wayne Larsen
- WickyNilliams
- Wincent Colaiuta
- Wout Mertens
- Xavier Morel
- XuefengWu
- Yakov Dalinchuk
- Yasar icli
- YouBao Nong
- Yuichi Hagio
- Yuriy Dybskiy
- Yutaka Nakajima
- Yuval Dekel
- Zach Bruggeman
- Zach Ramaekers
- Zacharias
- Zeke Sikelianos
- Zhangjd
- adraeth
- arush
- brafdlog
- chen
- clariroid
- claudiopro
- cutbko
- davidxi
- dongmeng.ldm
- iamchenxin
- iamdoron
- iawia002
- imagentleman
- koh-taka
- kohashi85
- laiso
- leeyoungalias
- li.li
- maxprafferty
- rgarifullin
- songawee
- sugarshin
- wali-s
- yiminghe
- youmoo
- zhangjg
- zwhitchcox
- "Árni Hermann Reynisson"
- "元彦"
- "凌恒"
- "张敏"

75
docs/_data/authors.yml Normal file
View File

@@ -0,0 +1,75 @@
# Map of short name to more information. `name` will be used but if you don't
# want to use your real name, just use whatever. If url is included, your name
# will be a link to the provided url.
acdlite:
name: Andrew Clark
url: https://twitter.com/acdlite
benigeri:
name: Paul Benigeri
url: https://github.com/benigeri
chenglou:
name: Cheng Lou
url: https://twitter.com/_chenglou
Daniel15:
name: Daniel Lo Nigro
url: http://dan.cx/
fisherwebdev:
name: Bill Fisher
url: https://twitter.com/fisherwebdev
flarnie:
name: Flarnie Marchan
url: https://twitter.com/ProbablyFlarnie
gaearon:
name: Dan Abramov
url: https://twitter.com/dan_abramov
jaredly:
name: Jared Forsyth
url: https://twitter.com/jaredforsyth
jgebhardt:
name: Jonas Gebhardt
url: https://twitter.com/jonasgebhardt
jimfb:
name: Jim Sproch
url: http://www.jimsproch.com
jingc:
name: Jing Chen
url: https://twitter.com/jingc
josephsavona:
name: Joseph Savona
url: https://twitter.com/en_JS
keyanzhang:
name: Keyan Zhang
url: https://twitter.com/keyanzhang
kmeht:
name: Kunal Mehta
url: https://github.com/kmeht
LoukaN:
name: Lou Husson
url: https://twitter.com/loukan42
matthewjohnston4:
name: Matthew Johnston
url: https://github.com/matthewathome
petehunt:
name: Pete Hunt
url: https://twitter.com/floydophone
schrockn:
name: Nick Schrock
url: https://twitter.com/schrockn
sebmarkbage:
name: Sebastian Markbåge
url: https://twitter.com/sebmarkbage
spicyj:
name: Ben Alpert
url: http://benalpert.com
steveluscher:
name: Steven Luscher
url: https://twitter.com/steveluscher
vjeux:
name: Vjeux
url: https://twitter.com/vjeux
wincent:
name: Greg Hurrell
url: https://twitter.com/wincent
zpao:
name: Paul OShannessy
url: https://twitter.com/zpao

View File

@@ -0,0 +1,14 @@
- title: Community Resources
items:
- id: support
title: Where To Get Support
- id: conferences
title: Conferences
- id: videos
title: Videos
- id: complementary-tools
title: Complementary Tools
href: https://github.com/facebook/react/wiki/Complementary-Tools
- id: examples
title: Examples
href: https://github.com/facebook/react/wiki/Examples

View File

@@ -0,0 +1,10 @@
- title: Contributing
items:
- id: how-to-contribute
title: How to Contribute
- id: codebase-overview
title: Codebase Overview
- id: implementation-notes
title: Implementation Notes
- id: design-principles
title: Design Principles

View File

@@ -1,99 +1,77 @@
- title: Quick Start
items:
- id: getting-started
title: Getting Started
- id: tutorial
title: Tutorial
- id: thinking-in-react
title: Thinking in React
- title: Community Resources
- id: installation
title: Installation
- id: hello-world
title: Hello World
- id: introducing-jsx
title: Introducing JSX
- id: rendering-elements
title: Rendering Elements
- id: components-and-props
title: Components and Props
- id: state-and-lifecycle
title: State and Lifecycle
- id: handling-events
title: Handling Events
- id: conditional-rendering
title: Conditional Rendering
- id: lists-and-keys
title: Lists and Keys
- id: forms
title: Forms
- id: lifting-state-up
title: Lifting State Up
- id: composition-vs-inheritance
title: Composition vs Inheritance
- id: thinking-in-react
title: Thinking In React
- title: Advanced Guides
items:
- id: conferences
title: Conferences
- id: videos
title: Videos
- id: complementary-tools
title: Complementary Tools
- id: examples
title: Examples
- title: Guides
items:
- id: why-react
title: Why React?
- id: displaying-data
title: Displaying Data
subitems:
- id: jsx-in-depth
title: JSX in Depth
- id: jsx-spread
title: JSX Spread Attributes
- id: jsx-gotchas
title: JSX Gotchas
- id: interactivity-and-dynamic-uis
title: Interactivity and Dynamic UIs
- id: multiple-components
title: Multiple Components
- id: reusable-components
title: Reusable Components
- id: transferring-props
title: Transferring Props
- id: forms
title: Forms
- id: working-with-the-browser
title: Working With the Browser
subitems:
- id: more-about-refs
title: More About Refs
- id: tooling-integration
title: Tooling Integration
- id: addons
title: Add-Ons
subitems:
- id: animation
title: Animation
- id: two-way-binding-helpers
title: Two-Way Binding Helpers
- id: class-name-manipulation
title: Class Name Manipulation
- id: test-utils
title: Test Utilities
- id: clone-with-props
title: Cloning Components
- id: create-fragment
title: Keyed Fragments
- id: update
title: Immutability Helpers
- id: pure-render-mixin
title: PureRenderMixin
- id: perf
title: Performance Tools
- id: advanced-performance
title: Advanced Performance
title: JSX In Depth
- id: typechecking-with-proptypes
title: Typechecking With PropTypes
- id: refs-and-the-dom
title: Refs and the DOM
- id: uncontrolled-components
title: Uncontrolled Components
- id: optimizing-performance
title: Optimizing Performance
- id: react-without-es6
title: React Without ES6
- id: react-without-jsx
title: React Without JSX
- id: reconciliation
title: Reconciliation
- id: context
title: Context
- id: web-components
title: Web Components
- id: higher-order-components
title: Higher-Order Components
- id: integrating-with-other-libraries
title: Integrating with Other Libraries
- id: accessibility
title: Accessibility
- title: Reference
items:
- id: top-level-api
title: Top-Level API
- id: component-api
title: Component API
- id: component-specs
title: Component Specs and Lifecycle
- id: tags-and-attributes
title: Supported Tags and Attributes
- id: events
title: Event System
- id: dom-differences
title: DOM Differences
- id: special-non-dom-attributes
title: Special Non-DOM Attributes
- id: reconciliation
title: Reconciliation
- id: glossary
title: React (Virtual) DOM Terminology
- title: Flux
items:
- id: flux-overview
title: Flux Overview
href: http://facebook.github.io/flux/docs/overview.html
- id: flux-todo-list
title: Flux TodoMVC Tutorial
href: http://facebook.github.io/flux/docs/todo-list.html
- id: react-api
title: React
subitems:
- id: react-component
title: React.Component
- id: react-dom
title: ReactDOM
- id: react-dom-server
title: ReactDOMServer
- id: react-dom-node-stream
title: ReactDOMNodeStream
- id: dom-elements
title: DOM Elements
- id: events
title: SyntheticEvent
- id: test-utils
title: Test Utilities
- id: shallow-renderer
title: Shallow Renderer

View File

@@ -1,40 +0,0 @@
- title: Tips
items:
- id: introduction
title: Introduction
- id: inline-styles
title: Inline Styles
- id: if-else-in-JSX
title: If-Else in JSX
- id: self-closing-tag
title: Self-Closing Tag
- id: maximum-number-of-jsx-root-nodes
title: Maximum Number of JSX Root Nodes
- id: style-props-value-px
title: Shorthand for Specifying Pixel Values in style props
- id: children-props-type
title: Type of the Children props
- id: controlled-input-null-value
title: Value of null for Controlled Input
- id: componentWillReceiveProps-not-triggered-after-mounting
title: componentWillReceiveProps Not Triggered After Mounting
- id: props-in-getInitialState-as-anti-pattern
title: Props in getInitialState Is an Anti-Pattern
- id: dom-event-listeners
title: DOM Event Listeners in a Component
- id: initial-ajax
title: Load Initial Data via AJAX
- id: false-in-jsx
title: False in JSX
- id: communicate-between-components
title: Communicate Between Components
- id: expose-component-functions
title: Expose Component Functions
- id: references-to-components
title: References to Components
- id: children-undefined
title: this.props.children undefined
- id: use-react-with-other-libraries
title: Use React with Other Libraries
- id: dangerously-set-inner-html
title: Dangerously Set innerHTML

View File

@@ -0,0 +1,88 @@
- title: Tutorial
items:
- id: tutorial
title: Before We Start
subitems:
- id: what-were-building
title: What We're Building
href: /react/tutorial/tutorial.html#what-were-building
forceInternal: true
- id: prerequisites
title: Prerequisites
href: /react/tutorial/tutorial.html#prerequisites
forceInternal: true
- id: how-to-follow-along
title: How to Follow Along
href: /react/tutorial/tutorial.html#how-to-follow-along
forceInternal: true
- id: help-im-stuck
title: Help, I'm Stuck!
href: /react/tutorial/tutorial.html#help-im-stuck
forceInternal: true
- id: overview
title: Overview
href: /react/tutorial/tutorial.html#overview
forceInternal: true
subitems:
- id: what-is-react
title: What is React?
href: /react/tutorial/tutorial.html#what-is-react
forceInternal: true
- id: getting-started
title: Getting Started
href: /react/tutorial/tutorial.html#getting-started
forceInternal: true
- id: passing-data-through-props
title: Passing Data Through Props
href: /react/tutorial/tutorial.html#passing-data-through-props
forceInternal: true
- id: an-interactive-component
title: An Interactive Component
href: /react/tutorial/tutorial.html#an-interactive-component
forceInternal: true
- id: developer-tools
title: Developer Tools
href: /react/tutorial/tutorial.html#developer-tools
forceInternal: true
- id: lifting-state-up
title: Lifting State Up
href: /react/tutorial/tutorial.html#lifting-state-up
forceInternal: true
subitems:
- id: why-immutability-is-important
title: Why Immutability Is Important
href: /react/tutorial/tutorial.html#why-immutability-is-important
forceInternal: true
- id: functional-components
title: Functional Components
href: /react/tutorial/tutorial.html#functional-components
forceInternal: true
- id: taking-turns
title: Taking Turns
href: /react/tutorial/tutorial.html#taking-turns
forceInternal: true
- id: declaring-a-winner
title: Declaring a Winner
href: /react/tutorial/tutorial.html#declaring-a-winner
forceInternal: true
- id: storing-a-history
title: Storing A History
href: /react/tutorial/tutorial.html#storing-a-history
forceInternal: true
subitems:
- id: showing-the-moves
title: Showing the Moves
href: /react/tutorial/tutorial.html#showing-the-moves
forceInternal: true
- id: keys
title: Keys
href: /react/tutorial/tutorial.html#keys
forceInternal: true
- id: implementing-time-travel
title: Implementing Time Travel
href: /react/tutorial/tutorial.html#implementing-time-travel
forceInternal: true
- id: wrapping-up
title: Wrapping Up
href: /react/tutorial/tutorial.html#wrapping-up
forceInternal: true

View File

@@ -1,10 +1,32 @@
<h1><a href="/react{{ page.url }}">{{ page.title }}</a></h1>
<p class="meta">{{ page.date | date_to_string }} by {{ page.author }}</p>
{% assign page = include.page %}
<div id="post">
{% if content != '' %}
{{ page.excerpt }}
<h1>
{% if include.isPermalink %}
{{ page.title }}
{% else %}
{{ page.content }}
<a href="/react{{ page.url }}">{{ page.title }}</a>
{% endif %}
</h1>
<p class="meta">
{{ page.date | date: "%B %e, %Y" }}
by
{% for author in page.authors %}
{% if author.url %}
<a href="{{author.url}}">{{ author.name }}</a>
{% else %}
{{ author.name }}
{% endif %}
{% if forloop.last == false %} and {% endif %}
{% endfor %}
</p>
<hr>
<div class="post">
{{ include.content }}
</div>
{% if include.isPermalink %}
<div class="fb-like" data-send="true" data-width="650" data-show-faces="false"></div>
{% endif %}

View File

@@ -0,0 +1,41 @@
<footer class="nav-footer">
<section class="sitemap">
<a href="/react/" class="nav-home">
</a>
<div>
<h5><a href="/react/docs/">Docs</a></h5>
<a href="/react/docs/hello-world.html">Quick Start</a>
<a href="/react/docs/thinking-in-react.html">Thinking in React</a>
<a href="/react/tutorial/tutorial.html">Tutorial</a>
<a href="/react/docs/jsx-in-depth.html">Advanced Guides</a>
</div>
<div>
<h5><a href="/react/community/support.html">Community</a></h5>
<a href="http://stackoverflow.com/questions/tagged/reactjs" target="_blank">Stack Overflow</a>
<a href="https://discuss.reactjs.org/" target="_blank">Discussion Forum</a>
<a href="https://discord.gg/0ZcbPKXt5bZjGY5n" target="_blank">Reactiflux Chat</a>
<a href="https://www.facebook.com/react" target="_blank">Facebook</a>
<a href="https://twitter.com/reactjs" target="_blank">Twitter</a>
</div>
<div>
<h5><a href="/react/community/support.html">Resources</a></h5>
<a href="/react/community/conferences.html">Conferences</a>
<a href="/react/community/videos.html">Videos</a>
<a href="https://github.com/facebook/react/wiki/Examples" target="_blank">Examples</a>
<a href="https://github.com/facebook/react/wiki/Complementary-Tools" target="_blank">Complementary Tools</a>
</div>
<div>
<h5>More</h5>
<a href="/react/blog/">Blog</a>
<a href="https://github.com/facebook/react" target="_blank">GitHub</a>
<a href="http://facebook.github.io/react-native/" target="_blank">React Native</a>
<a href="/react/acknowledgements.html">Acknowledgements</a>
</div>
</section>
<a href="https://code.facebook.com/projects/" target="_blank" class="fbOpenSource">
<img src="/react/img/oss_logo.png" alt="Facebook Open Source" width="170" height="45"/>
</a>
<section class="copyright">
Copyright © {{ site.time | date: '%Y' }} Facebook Inc.
</section>
</footer>

13
docs/_includes/hero.html Normal file
View File

@@ -0,0 +1,13 @@
<div class="hero">
<div class="wrap">
<div class="text"><strong>React</strong></div>
<div class="minitext">
A JavaScript library for building user interfaces
</div>
<div class="buttons-unit">
<a href="/react/docs/hello-world.html" class="button">Get Started</a>
<a href="/react/tutorial/tutorial.html" class="button">Take the Tutorial</a>
</div>
</div>
</div>

View File

@@ -0,0 +1,24 @@
<div class="nav-docs">
<!-- Community Nav -->
{% for section in site.data.nav_community %}
<div class="nav-docs-section">
<h3>{{ section.title }}</h3>
<ul>
{% for item in section.items %}
<li>
{{ item | community_sidebar_link }}
{% if item.subitems %}
<ul>
{% for subitem in item.subitems %}
<li>
{{ subitem | community_sidebar_link }}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>

View File

@@ -6,12 +6,12 @@
<ul>
{% for item in section.items %}
<li>
{{ item | sidebar_item_link}}
{{ item | docs_sidebar_link}}
{% if item.subitems %}
<ul>
{% for subitem in item.subitems %}
<li>
{{ subitem | sidebar_item_link}}
{{ subitem | docs_sidebar_link }}
</li>
{% endfor %}
</ul>
@@ -22,17 +22,18 @@
</div>
{% endfor %}
<!-- Tips Nav -->
{% for section in site.data.nav_tips %}
<!-- Contributing Nav -->
{% for section in site.data.nav_contributing %}
<div class="nav-docs-section">
<h3>{{ section.title }}</h3>
<ul>
{% for item in section.items %}
<li>
<a href="/react/tips/{{ item.id }}.html"{% if page.id == item.id %} class="active"{% endif %}>{{ item.title }}</a>
<a href="/react/contributing/{{ item.id }}.html"{% if page.id == item.id %} class="active"{% endif %}>{{ item.title }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>

View File

@@ -0,0 +1,24 @@
<div class="nav-docs">
<!-- Tutorial Nav -->
{% for section in site.data.nav_tutorial %}
<div class="nav-docs-section">
<h3>{{ section.title }}</h3>
<ul>
{% for item in section.items %}
<li>
{{ item | tutorial_sidebar_link }}
{% if item.subitems %}
<ul>
{% for subitem in item.subitems %}
<li>
{{ subitem | tutorial_sidebar_link }}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>

View File

@@ -0,0 +1,23 @@
<div class="nav-main">
<div class="wrap">
<a class="nav-home" href="/react/">
<img class="nav-logo" src="/react/img/logo.svg" width="36" height="36">
React
</a>
<div class="nav-lists">
<ul class="nav-site nav-site-internal">
<li><a href="/react/docs/hello-world.html"{% if page.sectionid == 'docs' or page.sectionid == 'tips' or page.sectionid == 'contributing' %} class="active"{% endif %}>Docs</a></li>
<li><a href="/react/tutorial/tutorial.html"{% if page.sectionid == 'tutorial' %} class="active"{% endif %}>Tutorial</a></li>
<li><a href="/react/community/support.html"{% if page.sectionid == 'community' %} class="active"{% endif %}>Community</a></li>
<li><a href="/react/blog/"{% if page.sectionid == 'blog' %} class="active"{% endif %}>Blog</a></li>
<li class="nav-site-search">
<input id="algolia-doc-search" type="text" placeholder="Search docs..." />
</li>
</ul>
<ul class="nav-site nav-site-external">
<li><a href="https://github.com/facebook/react">GitHub</a></li>
<li><a href="https://github.com/facebook/react/releases">v{{site.react_version}}</a></li>
</ul>
</div>
</div>
</div>

View File

@@ -0,0 +1,111 @@
/**
* Copyright (c) 2013-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
/* global React ReactDOM errorMap:true */
'use strict';
function replaceArgs(msg, argList) {
let argIdx = 0;
return msg.replace(/%s/g, function() {
const arg = argList[argIdx++];
return arg === undefined ? '[missing argument]' : arg;
});
}
function urlify(str) {
const urlRegex = /(https:\/\/fb\.me\/[a-z\-]+)/g;
const segments = str.split(urlRegex);
for (let i = 0; i < segments.length; i++) {
if (i % 2 === 1) {
segments[i] = (<a key={i} target="_blank" href={segments[i]}>{segments[i]}</a>);
}
}
return segments;
}
// ?invariant=123&args[]=foo&args[]=bar
function parseQueryString() {
const rawQueryString = window.location.search.substring(1);
if (!rawQueryString) {
return null;
}
let code = '';
let args = [];
const queries = rawQueryString.split('&');
for (let i = 0; i < queries.length; i++) {
const query = decodeURIComponent(queries[i]);
if (query.indexOf('invariant=') === 0) {
code = query.slice(10);
} else if (query.indexOf('args[]=') === 0) {
args.push(query.slice(7));
}
}
return [code, args];
}
function ErrorResult(props) {
const code = props.code;
const errorMsg = props.msg;
if (!code) {
return (
<p>When you encounter an error, you'll receive a link to this page for that specific error and we'll show you the full error text.</p>
);
}
return (
<div>
<p>The full text of the error you just encountered is:</p>
<code>{urlify(errorMsg)}</code>
</div>
);
}
class ErrorDecoder extends React.Component {
constructor(...args) {
super(...args);
this.state = {
code: null,
errorMsg: '',
};
}
componentWillMount() {
const parseResult = parseQueryString();
if (parseResult != null) {
const [code, args] = parseResult;
if (errorMap[code]) {
this.setState({
code: code,
errorMsg: replaceArgs(errorMap[code], args),
});
}
}
}
render() {
return (
<ErrorResult
code={this.state.code}
msg={this.state.errorMsg}
/>
);
}
}
ReactDOM.render(
<ErrorDecoder />,
document.querySelector('.error-decoder-container')
);

30
docs/_js/anchor-links.js Normal file
View File

@@ -0,0 +1,30 @@
// Add anchors to headings client-side, which prevents them from showing up
// in RSS feeds. See https://github.com/facebook/react/issues/4124.
(function() {
var selector = '.inner-content h2, .inner-content h3, .inner-content h4';
var elements = document.querySelectorAll(selector);
for (var i = 0; i < elements.length; i++) {
var textMethod = document.body.textContent ? "textContent" : "innerText";
var roughText = elements[i][textMethod];
// Regex rule for making the title URL-friendly.
var urlFriendlyText = roughText.trim()
.toLowerCase()
.replace(/\s+/g, '-')
.replace(/[^A-Za-z0-9\-_.\p{Cyrillic}\p{Hangul}\p{Hiragana}\p{Katakana}\p{Han}]/g, '');
// Create the anchor we'll jump to.
var anchor = document.createElement('a');
anchor.className = 'anchor';
anchor.name = urlFriendlyText;
elements[i].insertBefore(anchor, elements[i].firstChild);
// Create the clickable "#" icon.
var hashLink = document.createElement('a');
var icon = document.createTextNode("#");
hashLink.appendChild(icon);
hashLink.className = 'hash-link';
hashLink.href = '#' + urlFriendlyText;
elements[i].appendChild(hashLink);
}
}());

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,7 @@
---
rules:
block-scoped-var: false
no-undef: false
block-scoped-var: 0
no-undef: 0
strict: 0
react/react-in-jsx-scope: 0
react/jsx-no-undef: 0

View File

@@ -1,14 +1,15 @@
var name = Math.random() > 0.5 ? 'Jane' : 'John';
var HELLO_COMPONENT = `
var HelloMessage = React.createClass({
render: function() {
class HelloMessage extends React.Component {
render() {
return <div>Hello {this.props.name}</div>;
}
});
}
React.render(<HelloMessage name="John" />, mountNode);
`;
ReactDOM.render(<HelloMessage name="${name}" />, mountNode);
`.trim();
React.render(
ReactDOM.render(
<ReactPlayground codeText={HELLO_COMPONENT} />,
document.getElementById('helloExample')
);

View File

@@ -1,37 +1,42 @@
var MARKDOWN_COMPONENT = `
var converter = new Showdown.converter();
class MarkdownEditor extends React.Component {
constructor(props) {
super(props);
this.handleChange = this.handleChange.bind(this);
this.state = {value: 'Type some *markdown* here!'};
}
var MarkdownEditor = React.createClass({
getInitialState: function() {
return {value: 'Type some *markdown* here!'};
},
handleChange: function() {
this.setState({value: this.refs.textarea.getDOMNode().value});
},
render: function() {
handleChange(e) {
this.setState({value: e.target.value});
}
getRawMarkup() {
var md = new Remarkable();
return { __html: md.render(this.state.value) };
}
render() {
return (
<div className="MarkdownEditor">
<h3>Input</h3>
<textarea
onChange={this.handleChange}
ref="textarea"
defaultValue={this.state.value} />
defaultValue={this.state.value}
/>
<h3>Output</h3>
<div
className="content"
dangerouslySetInnerHTML={{
__html: converter.makeHtml(this.state.value)
}}
dangerouslySetInnerHTML={this.getRawMarkup()}
/>
</div>
);
}
});
}
React.render(<MarkdownEditor />, mountNode);
`;
ReactDOM.render(<MarkdownEditor />, mountNode);
`.trim();
React.render(
ReactDOM.render(
<ReactPlayground codeText={MARKDOWN_COMPONENT} />,
document.getElementById('markdownExample')
);

View File

@@ -1,28 +1,35 @@
var TIMER_COMPONENT = `
var Timer = React.createClass({
getInitialState: function() {
return {secondsElapsed: 0};
},
tick: function() {
this.setState({secondsElapsed: this.state.secondsElapsed + 1});
},
componentDidMount: function() {
this.interval = setInterval(this.tick, 1000);
},
componentWillUnmount: function() {
class Timer extends React.Component {
constructor(props) {
super(props);
this.state = {secondsElapsed: 0};
}
tick() {
this.setState((prevState) => ({
secondsElapsed: prevState.secondsElapsed + 1
}));
}
componentDidMount() {
this.interval = setInterval(() => this.tick(), 1000);
}
componentWillUnmount() {
clearInterval(this.interval);
},
render: function() {
}
render() {
return (
<div>Seconds Elapsed: {this.state.secondsElapsed}</div>
);
}
});
}
React.render(<Timer />, mountNode);
`;
ReactDOM.render(<Timer />, mountNode);
`.trim();
React.render(
ReactDOM.render(
<ReactPlayground codeText={TIMER_COMPONENT} />,
document.getElementById('timerExample')
);

View File

@@ -1,43 +1,58 @@
var TODO_COMPONENT = `
var TodoList = React.createClass({
render: function() {
var createItem = function(itemText) {
return <li>{itemText}</li>;
};
return <ul>{this.props.items.map(createItem)}</ul>;
class TodoApp extends React.Component {
constructor(props) {
super(props);
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
this.state = {items: [], text: ''};
}
});
var TodoApp = React.createClass({
getInitialState: function() {
return {items: [], text: ''};
},
onChange: function(e) {
this.setState({text: e.target.value});
},
handleSubmit: function(e) {
e.preventDefault();
var nextItems = this.state.items.concat([this.state.text]);
var nextText = '';
this.setState({items: nextItems, text: nextText});
},
render: function() {
render() {
return (
<div>
<h3>TODO</h3>
<TodoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<input onChange={this.onChange} value={this.state.text} />
<input onChange={this.handleChange} value={this.state.text} />
<button>{'Add #' + (this.state.items.length + 1)}</button>
</form>
</div>
);
}
});
React.render(<TodoApp />, mountNode);
`;
handleChange(e) {
this.setState({text: e.target.value});
}
React.render(
handleSubmit(e) {
e.preventDefault();
var newItem = {
text: this.state.text,
id: Date.now()
};
this.setState((prevState) => ({
items: prevState.items.concat(newItem),
text: ''
}));
}
}
class TodoList extends React.Component {
render() {
return (
<ul>
{this.props.items.map(item => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
}
}
ReactDOM.render(<TodoApp />, mountNode);
`.trim();
ReactDOM.render(
<ReactPlayground codeText={TODO_COMPONENT} />,
document.getElementById('todoExample')
);

View File

@@ -1,4 +1,4 @@
// Ideally it would be nice to just redirect, but Github Pages is very basic and
// Ideally it would be nice to just redirect, but GitHub Pages is very basic and
// lacks that functionality.
console.warn(
'html-jsx-lib.js has moved to http://reactjs.github.io/react-magic/' +

View File

@@ -1,82 +0,0 @@
/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
/**
* This is a web interface for the HTML to JSX converter contained in
* `html-jsx-lib.js`.
*/
;(function() {
var HELLO_COMPONENT = "\
<!-- Hello world -->\n\
<div class=\"awesome\" style=\"border: 1px solid red\">\n\
<label for=\"name\">Enter your name: </label>\n\
<input type=\"text\" id=\"name\" />\n\
</div>\n\
<p>Enter your HTML here</p>\
";
var HTMLtoJSXComponent = React.createClass({
getInitialState: function() {
return {
outputClassName: 'NewComponent',
createClass: true
};
},
onReactClassNameChange: function(evt) {
this.setState({ outputClassName: evt.target.value });
},
onCreateClassChange: function(evt) {
this.setState({ createClass: evt.target.checked });
},
setInput: function(input) {
this.setState({ input: input });
this.convertToJsx();
},
convertToJSX: function(input) {
var converter = new HTMLtoJSX({
outputClassName: this.state.outputClassName,
createClass: this.state.createClass
});
return converter.convert(input);
},
render: function() {
return (
<div>
<div id="options">
<label>
<input
type="checkbox"
checked={this.state.createClass}
onChange={this.onCreateClassChange} />
Create class
</label>
<label style={{display: this.state.createClass ? '' : 'none'}}>
·
Class name:
<input
type="text"
value={this.state.outputClassName}
onChange={this.onReactClassNameChange} />
</label>
</div>
<ReactPlayground
codeText={HELLO_COMPONENT}
renderCode={true}
transformer={this.convertToJSX}
showCompiledJSTab={false}
editorTabTitle="Live HTML Editor"
/>
</div>
);
}
});
React.render(<HTMLtoJSXComponent />, document.getElementById('jsxCompiler'));
}());

View File

@@ -1,8 +0,0 @@
/*
HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

View File

@@ -1,46 +0,0 @@
var HELLO_COMPONENT = "\
var HelloMessage = React.createClass({\n\
render: function() {\n\
return <div>Hello {this.props.name}</div>;\n\
}\n\
});\n\
\n\
React.render(<HelloMessage name=\"John\" />, mountNode);\
";
function transformer(harmony, code) {
return JSXTransformer.transform(code, {harmony: harmony}).code;
}
var CompilerPlayground = React.createClass({
getInitialState: function() {
return {harmony: false};
},
handleHarmonyChange: function(e) {
this.setState({harmony: e.target.checked});
},
render: function() {
return (
<div>
<ReactPlayground
codeText={HELLO_COMPONENT}
renderCode={true}
transformer={transformer.bind(null, this.state.harmony)}
showCompiledJSTab={false}
showLineNumbers={true}
/>
<label className="compiler-option">
<input
type="checkbox"
onChange={this.handleHarmonyChange}
checked={this.state.harmony} />{' '}
Enable ES6 transforms (<code>--harmony</code>)
</label>
</div>
);
}
});
React.render(
<CompilerPlayground />,
document.getElementById('jsxCompiler')
);

View File

@@ -11,24 +11,24 @@ var IS_MOBILE = (
var CodeMirrorEditor = React.createClass({
propTypes: {
lineNumbers: React.PropTypes.bool,
onChange: React.PropTypes.func
onChange: React.PropTypes.func,
},
getDefaultProps: function() {
return {
lineNumbers: false
lineNumbers: false,
};
},
componentDidMount: function() {
if (IS_MOBILE) return;
this.editor = CodeMirror.fromTextArea(this.refs.editor.getDOMNode(), {
mode: 'javascript',
this.editor = CodeMirror.fromTextArea(this.refs.editor, {
mode: 'jsx',
lineNumbers: this.props.lineNumbers,
lineWrapping: true,
smartIndent: false, // javascript mode does bad things with jsx indents
matchBrackets: true,
theme: 'solarized-light',
readOnly: this.props.readOnly
readOnly: this.props.readOnly,
});
this.editor.on('change', this.handleChange);
},
@@ -60,7 +60,7 @@ var CodeMirrorEditor = React.createClass({
{editor}
</div>
);
}
},
});
var selfCleaningTimeout = {
@@ -71,7 +71,7 @@ var selfCleaningTimeout = {
setTimeout: function() {
clearTimeout(this.timeoutID);
this.timeoutID = setTimeout.apply(null, arguments);
}
},
};
var ReactPlayground = React.createClass({
@@ -85,17 +85,23 @@ var ReactPlayground = React.createClass({
renderCode: React.PropTypes.bool,
showCompiledJSTab: React.PropTypes.bool,
showLineNumbers: React.PropTypes.bool,
editorTabTitle: React.PropTypes.string
editorTabTitle: React.PropTypes.string,
},
getDefaultProps: function() {
return {
transformer: function(code) {
return JSXTransformer.transform(code).code;
transformer: function(code, options) {
var presets = ['react'];
if (!options || !options.skipES2015Transform) {
presets.push('es2015');
}
return Babel.transform(code, {
presets
}).code;
},
editorTabTitle: 'Live JSX Editor',
showCompiledJSTab: true,
showLineNumbers: false
showLineNumbers: false,
};
},
@@ -115,15 +121,15 @@ var ReactPlayground = React.createClass({
this.setState({mode: mode});
},
compileCode: function() {
return this.props.transformer(this.state.code);
compileCode: function(options) {
return this.props.transformer(this.state.code, options);
},
render: function() {
var isJS = this.state.mode === this.MODES.JS;
var compiledCode = '';
try {
compiledCode = this.compileCode();
compiledCode = this.compileCode({skipES2015Transform: true});
} catch (err) {}
var JSContent =
@@ -194,29 +200,35 @@ var ReactPlayground = React.createClass({
},
executeCode: function() {
var mountNode = this.refs.mount.getDOMNode();
var mountNode = this.refs.mount;
try {
React.unmountComponentAtNode(mountNode);
ReactDOM.unmountComponentAtNode(mountNode);
} catch (e) { }
try {
var compiledCode = this.compileCode();
var compiledCode;
if (this.props.renderCode) {
React.render(
compiledCode = this.compileCode({skipES2015Transform: true});
ReactDOM.render(
<CodeMirrorEditor codeText={compiledCode} readOnly={true} />,
mountNode
);
} else {
compiledCode = this.compileCode({skipES2015Transform: false});
eval(compiledCode);
}
} catch (err) {
// Babel errors are preformatted, runtime errors are not.
const errorMessage = err._babel ?
<pre style={{overflowX: 'auto'}} className="playgroundError">{err.toString()}</pre> :
<div className="playgroundError">{err.toString()}</div>;
this.setTimeout(function() {
React.render(
<div className="playgroundError">{err.toString()}</div>,
ReactDOM.render(
errorMessage,
mountNode
);
}, 500);
}
}
},
});

View File

@@ -0,0 +1,29 @@
---
layout: default
sectionid: community
---
<section class="content wrap communityContent">
<div class="inner-content">
<a class="edit-page-link"
href="https://github.com/facebook/react/tree/master/docs/{{ page.path }}"
target="_blank">Edit on GitHub</a>
<h1>
{{ page.title }}
</h1>
<div class="subHeader">{{ page.description }}</div>
{{ content }}
<div class="docs-prevnext">
{% if page.prev %}
<a class="docs-prev" href="/react/community/{{ page.prev }}">&larr; Prev</a>
{% endif %}
{% if page.next %}
<a class="docs-next" href="/react/community/{{ page.next }}">Next &rarr;</a>
{% endif %}
</div>
</div>
{% include nav_community.html %}
</section>

View File

@@ -1,11 +1,9 @@
---
layout: default
sectionid: tips
sectionid: contributing
---
<section class="content wrap documentationContent">
{% include nav_docs.html %}
<div class="inner-content">
<h1>{{ page.title }}</h1>
<div class="subHeader">{{ page.description }}</div>
@@ -13,11 +11,13 @@ sectionid: tips
<div class="docs-prevnext">
{% if page.prev %}
<a class="docs-prev" href="/react/tips/{{ page.prev }}">&larr; Prev</a>
<a class="docs-prev" href="/react/contributing/{{ page.prev }}">&larr; Prev</a>
{% endif %}
{% if page.next %}
<a class="docs-next" href="/react/tips/{{ page.next }}">Next &rarr;</a>
<a class="docs-next" href="/react/contributing/{{ page.next }}">Next &rarr;</a>
{% endif %}
</div>
</div>
{% include nav_docs.html %}
</section>

View File

@@ -1,91 +1,71 @@
{% if page.excerpt %}
{% assign type = 'article' %}
{% assign sectionTitle = 'React Blog' %}
{% assign description = page.excerpt | strip_html %}
{% else %}
{% assign type = 'website' %}
{% assign sectionTitle = 'React' %}
{% assign description = 'A JavaScript library for building user interfaces' %}
{% endif %}
{% if page.id == 'home' %}
{% assign title = sectionTitle | append: ' - ' | append: page.title %}
{% else %}
{% assign title = page.title | append: ' - ' | append: sectionTitle %}
{% endif %}
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{{ page.title }} | React</title>
<meta name="viewport" content="width=device-width">
<meta property="og:title" content="{{ page.title }} | React">
<meta property="og:type" content="website">
<meta property="og:url" content="http://facebook.github.io/react{{ page.url }}">
<meta property="og:image" content="http://facebook.github.io/react/img/logo_og.png">
<meta property="og:description" content="A JavaScript library for building user interfaces">
<title>{{ title }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta property="og:title" content="{{ title }}">
<meta property="og:type" content="{{ type }}">
<meta property="og:url" content="https://facebook.github.io/react{{ page.url }}">
<meta property="og:image" content="https://facebook.github.io/react/img/logo_og.png">
<meta property="og:description" content="{{ description }}">
<meta property="fb:app_id" content="623268441017527">
<link rel="shortcut icon" href="/react/favicon.ico">
<link rel="alternate" type="application/rss+xml" title="{{ site.name }}" href="{{ site.url }}{{ site.baseurl }}/feed.xml">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css" />
<link rel="stylesheet" href="/react/css/syntax.css">
<link rel="stylesheet" href="/react/css/codemirror.css">
<link rel="stylesheet" href="/react/css/react.css">
<script type="text/javascript" src="//use.typekit.net/vqa1hcx.js"></script>
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
<script src="//use.typekit.net/vqa1hcx.js"></script>
<script>try{Typekit.load();}catch(e){}</script>
<!--[if lte IE 8]>
<script type="text/javascript" src="/react/js/html5shiv.min.js"></script>
<script type="text/javascript" src="/react/js/es5-shim.min.js"></script>
<script type="text/javascript" src="/react/js/es5-sham.min.js"></script>
<script src="https://unpkg.com/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
<script src="https://unpkg.com/es5-shim@4.5.9/es5-shim.min.js"></script>
<script src="https://unpkg.com/es5-shim@4.5.9/es5-sham.min.js"></script>
<![endif]-->
<script type="text/javascript" src="/react/js/codemirror.js"></script>
<script type="text/javascript" src="/react/js/javascript.js"></script>
<script type="text/javascript" src="/react/js/react.js"></script>
<script type="text/javascript" src="/react/js/JSXTransformer.js"></script>
<script type="text/javascript" src="/react/js/live_editor.js"></script>
<script type="text/javascript" src="/react/js/showdown.js"></script>
<script src="https://unpkg.com/docsearch.js@1.5.0/dist/cdn/docsearch.min.js"></script>
<script src="https://unpkg.com/codemirror@5.15.2"></script>
<script src="https://unpkg.com/codemirror@5.15.2/mode/javascript/javascript.js"></script>
<script src="https://unpkg.com/codemirror@5.15.2/mode/xml/xml.js"></script>
<script src="https://unpkg.com/codemirror@5.15.2/mode/jsx/jsx.js"></script>
<script src="https://unpkg.com/react/dist/react.min.js"></script>
<script src="https://unpkg.com/react-dom/dist/react-dom.min.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
<script src="/react/js/live_editor.js"></script>
</head>
<body>
<div class="container">
<div class="nav-main">
<div class="wrap">
<a class="nav-home" href="/react/index.html">
<img class="nav-logo" src="/react/img/logo.svg" width="36" height="36">
React
</a>
<ul class="nav-site">
<li><a href="/react/docs/getting-started.html"{% if page.sectionid == 'docs' or page.sectionid == 'tips' %} class="active"{% endif %}>docs</a></li>
<li><a href="/react/support.html"{% if page.id == 'support' %} class="active"{% endif %}>support</a></li>
<li><a href="/react/downloads.html"{% if page.id == 'downloads' %} class="active"{% endif %}>download</a></li>
<li><a href="/react/blog/"{% if page.sectionid == 'blog' %} class="active"{% endif %}>blog</a></li>
<li><a href="https://github.com/facebook/react">github</a>
</ul>
</div>
</div>
{% if page.id == 'home' %}
<div class="hero">
<div class="wrap">
<div class="text"><strong>React</strong></div>
<div class="minitext">
A JavaScript library for building user interfaces
</div>
<div class="buttons-unit">
<a href="/react/docs/getting-started.html" class="button">Get Started</a>
<a href="/react/downloads.html" class="button">Download React v{{site.react_version}}</a>
</div>
</div>
</div>
{% endif %}
{% include navigation.html %}
{{ content }}
<footer class="wrap">
<div class="left">
A Facebook &amp; Instagram collaboration.<br>
<a href="/react/acknowledgements.html">Acknowledgements</a>
</div>
<div class="right">
&copy; 2013&ndash;{{ site.time | date: '%Y' }} Facebook Inc.<br>
Documentation licensed under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
</div>
</footer>
{% include footer.html %}
</div>
<div id="fb-root"></div>
<div id="fb-root"></div>
<script src="/react/js/anchor-links.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -100,9 +80,15 @@
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=623268441017527";
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.6&appId=623268441017527";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
docsearch({
apiKey: '36221914cce388c46d0420343e0bb32e',
indexName: 'react',
inputSelector: '#algolia-doc-search'
});
</script>
</body>
</html>

View File

@@ -4,12 +4,10 @@ sectionid: docs
---
<section class="content wrap documentationContent">
{% include nav_docs.html %}
<div class="inner-content">
<a class="edit-page-link" href="https://github.com/facebook/react/tree/master/docs/{{ page.path }}" target="_blank">Edit on GitHub</a>
<h1>
{{ page.title }}
<a class="edit-page-link" href="https://github.com/facebook/react/tree/master/docs/{{ page.path }}" target="_blank">Edit on GitHub</a>
</h1>
<div class="subHeader">{{ page.description }}</div>
@@ -24,4 +22,6 @@ sectionid: docs
{% endif %}
</div>
</div>
{% include nav_docs.html %}
</section>

11
docs/_layouts/hero.html Normal file
View File

@@ -0,0 +1,11 @@
---
layout: default
---
{% if page.id == 'home' %}
{% include hero.html %}
{% endif %}
<section class="content wrap">
{{ content }}
</section>

View File

@@ -4,17 +4,9 @@ sectionid: blog
---
<section class="content wrap blogContent">
{% include nav_blog.html %}
<div class="inner-content">
<h1>{{ page.title }}</h1>
<p class="meta">{{ page.date | date: "%B %e, %Y" }} by {{ page.author }}</p>
<hr>
<div class="post">
{{ content }}
</div>
<div class="fb-like" data-send="true" data-width="650" data-show-faces="false"></div>
{% include blog_post.html isPermalink="true" page=page content=content %}
</div>
{% include nav_blog.html %}
</section>

View File

@@ -0,0 +1,8 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Redirecting...</title>
<link rel=canonical href="{{ page.dest_url }}">
<meta http-equiv=refresh content="0; url={{ page.dest_url }}">
<h1>Redirecting...</h1>
<a href="{{ page.dest_url }}">Click here if you are not redirected.</a>
<script>location="{{ page.dest_url }}"</script>

View File

@@ -0,0 +1,29 @@
---
layout: default
sectionid: tutorial
---
<section class="content wrap documentationContent">
{% include nav_tutorial.html %}
<div class="inner-content">
<a class="edit-page-link"
href="https://github.com/facebook/react/tree/master/docs/{{ page.path }}"
target="_blank">Edit on GitHub</a>
<h1>
{{ page.title }}
</h1>
<div class="subHeader">{{ page.description }}</div>
{{ content }}
<div class="docs-prevnext">
{% if page.prev %}
<a class="docs-prev" href="/react/tutorial/{{ page.prev }}">&larr; Prev</a>
{% endif %}
{% if page.next %}
<a class="docs-next" href="/react/tutorial/{{ page.next }}">Next &rarr;</a>
{% endif %}
</div>
</div>
</section>

22
docs/_plugins/authors.rb Normal file
View File

@@ -0,0 +1,22 @@
# This transforms the data associated with each post, specifically the author.
# We store our author information in a yaml file and specify the keys in The
# post front matter. Instead of looking up the complete data each time we need
# it, we'll just look it up here and assign. This plays nicely with tools like
# jekyll-feed which expect post.author to be in a specific format.
module Authors
class Generator < Jekyll::Generator
def generate(site)
site.posts.docs.each do |post|
authors = []
if post['author'].kind_of?(Array)
for author in post['author']
authors.push(site.data['authors'][author])
end
else
authors.push(site.data['authors'][post['author']])
end
post.data['authors'] = authors
end
end
end
end

View File

@@ -1,17 +0,0 @@
require 'redcarpet'
require 'sanitize'
# Simple converter that is probably better than RedCarpet's built in TOC id
# generator (which ends up with things lik id="toc_1"... terrible).
class Redcarpet::Render::HTML
def header(title, level)
clean_title = Sanitize.clean(title)
.downcase
.gsub(/\s+/, "-")
.gsub(/[^A-Za-z0-9\-_.]/, "")
return "<h#{level}><a class=\"anchor\" name=\"#{clean_title}\"></a>#{title} <a class=\"hash-link\" href=\"##{clean_title}\">#</a></h#{level}>"
end
end

View File

@@ -1,13 +1,39 @@
module Jekyll
module SidebarItemFilter
def sidebar_item_link(item)
def docs_sidebar_link(item)
return sidebar_helper(item, 'docs')
end
def docs_old_sidebar_link(item)
return sidebar_helper(item, 'docs-old')
end
def community_sidebar_link(item)
return sidebar_helper(item, 'community')
end
def tutorial_sidebar_link(item)
return sidebar_helper(item, 'tutorial')
end
def sidebar_helper(item, group)
forceInternal = item["forceInternal"]
pageID = @context.registers[:page]["id"]
itemID = item["id"]
href = item["href"] || "/react/docs/#{itemID}.html"
className = pageID == itemID ? ' class="active"' : ''
href = item["href"] || "/react/#{group}/#{itemID}.html"
classes = []
if pageID == itemID
classes.push("active")
end
if item["href"] && (forceInternal == nil)
classes.push("external")
end
className = classes.size > 0 ? " class=\"#{classes.join(' ')}\"" : ""
return "<a href=\"#{href}\"#{className}>#{item["title"]}</a>"
end
end
end

View File

@@ -1,9 +1,9 @@
---
title: JSFiddle Integration
author: Christopher Chedeau
author: vjeux
---
[JSFiddle](http://jsfiddle.net) just announced support for React. This is an exciting news as it makes collaboration on snippets of code a lot easier. You can play around this **[base React JSFiddle](http://jsfiddle.net/vjeux/kb3gN/)**, fork it and share it! A [fiddle without JSX](http://jsfiddle.net/vjeux/VkebS/) is also available.
[JSFiddle](https://jsfiddle.net) just announced support for React. This is an exciting news as it makes collaboration on snippets of code a lot easier. You can play around this **[base React JSFiddle](http://jsfiddle.net/vjeux/kb3gN/)**, fork it and share it! A [fiddle without JSX](http://jsfiddle.net/vjeux/VkebS/) is also available.
<blockquote class="twitter-tweet" align="center"><p>React (by Facebook) is now available on JSFiddle. <a href="http://t.co/wNQf9JPv5u" title="http://facebook.github.io/react/">facebook.github.io/react/</a></p>&mdash; JSFiddle (@jsfiddle) <a href="https://twitter.com/jsfiddle/status/341114115781177344">June 2, 2013</a></blockquote>

View File

@@ -1,6 +1,6 @@
---
title: Why did we build React?
author: Pete Hunt
author: petehunt
---
There are a lot of JavaScript MVC frameworks out there. Why did we build React
@@ -40,7 +40,7 @@ React really shines when your data changes over time.
In a traditional JavaScript application, you need to look at what data changed
and imperatively make changes to the DOM to keep it up-to-date. Even AngularJS,
which provides a declarative interface via directives and data binding [requires
a linking function to manually update DOM nodes](http://code.angularjs.org/1.0.8/docs/guide/directive#reasonsbehindthecompilelinkseparation).
a linking function to manually update DOM nodes](https://code.angularjs.org/1.0.8/docs/guide/directive#reasonsbehindthecompilelinkseparation).
React takes a different approach.
@@ -56,7 +56,7 @@ to the DOM.
> lightweight description of what the DOM should look like.
We call this process **reconciliation**. Check out
[this jsFiddle](http://jsfiddle.net/fv6RD/3/) to see an example of
[this jsFiddle](http://jsfiddle.net/2h6th4ju/) to see an example of
reconciliation in action.
Because this re-render is so fast (around 1ms for TodoMVC), the developer
@@ -74,7 +74,7 @@ some pretty cool things with it:
- We've built internal prototypes that run React apps in a web worker and use
React to drive **native iOS views** via an Objective-C bridge.
- You can run React
[on the server](http://github.com/petehunt/react-server-rendering-example)
[on the server](https://github.com/petehunt/react-server-rendering-example)
for SEO, performance, code sharing and overall flexibility.
- Events behave in a consistent, standards-compliant way in all browsers
(including IE8) and automatically use

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #1"
author: Vjeux
author: vjeux
---
React was open sourced two weeks ago and it's time for a little round-up of what has been going on.
@@ -32,16 +32,16 @@ It looks like [Ben Alpert](http://benalpert.com/) is the first person outside of
[Mario Mueller](http://blog.xenji.com/) wrote a menu component in React and was able to easily integrate it with require.js, EventEmitter2 and bower.
> I recently stumbled upon facebook's React library, which is a Javascript library for building reusable frontend components. Even if this lib is only at version 0.3.x it behaves very stable, it is fast and is fun to code. I'm a big fan of require.js, so I tried to use React within the require.js eco system. It was not as hard as expected and here are some examples and some thoughts about it.
> I recently stumbled upon facebook's React library, which is a JavaScript library for building reusable frontend components. Even if this lib is only at version 0.3.x it behaves very stable, it is fast and is fun to code. I'm a big fan of require.js, so I tried to use React within the require.js eco system. It was not as hard as expected and here are some examples and some thoughts about it.
>
> [Read the full post...](http://blog.xenji.com/2013/06/facebooks-react-require-js.html)
## Origins of React
[Pete Hunt](http://www.petehunt.net/blog/) explained what differentiates React from other JavaScript libraries in [a previous blog post](http://facebook.github.io/react/blog/2013/06/05/why-react.html). [Lee Byron](http://leebyron.com/) gives another perspective on Quora:
[Pete Hunt](http://www.petehunt.net/blog/) explained what differentiates React from other JavaScript libraries in [a previous blog post](/react/blog/2013/06/05/why-react.html). [Lee Byron](http://leebyron.com/) gives another perspective on Quora:
> React isn't quite like any other popular Javascript libraries, and it solves a very specific problem: complex UI rendering. It's also intended to be used along side many other popular libraries. For example, React works well with Backbone.js, amongst many others.
> React isn't quite like any other popular JavaScript libraries, and it solves a very specific problem: complex UI rendering. It's also intended to be used along side many other popular libraries. For example, React works well with Backbone.js, amongst many others.
>
> React was born out of frustrations with the common pattern of writing two-way data bindings in complex MVC apps. React is an implementation of one-way data bindings.
>
> [Read the full post...](http://www.quora.com/React-JS-Library/How-is-Facebooks-React-JavaScript-library/answer/Lee-Byron?srid=3DcX)
> [Read the full post...](https://www.quora.com/React-JS-Library/How-is-Facebooks-React-JavaScript-library/answer/Lee-Byron?srid=3DcX)

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #2"
author: Vjeux
author: vjeux
---
Since the launch we have received a lot of feedback and are actively working on React 0.4. In the meantime, here are the highlights of this week.
@@ -9,7 +9,7 @@ Since the launch we have received a lot of feedback and are actively working on
[Andrew Greig](http://www.andrewgreig.com/) made a blog post that gives a high level description of what React is.
> I have been using Facebooks recently released Javascript framework called React.js for the last few days and have managed to obtain a rather high level understanding of how it works and formed a good perspective on how it fits in to the entire javascript framework ecosystem.
> I have been using Facebooks recently released JavaScript framework called React.js for the last few days and have managed to obtain a rather high level understanding of how it works and formed a good perspective on how it fits in to the entire javascript framework ecosystem.
>
> Basically, React is not an MVC framework. It is not a replacement for Backbone or Knockout or Angular, instead it is designed to work with existing frameworks and help extend their functionality.
>
@@ -21,12 +21,12 @@ Since the launch we have received a lot of feedback and are actively working on
## React and Socket.IO Chat Application
[Danial Khosravi](http://danialk.github.io/) made a real-time chat application that interacts with the back-end using Socket.IO.
[Danial Khosravi](https://danialk.github.io/) made a real-time chat application that interacts with the back-end using Socket.IO.
> A week ago I was playing with AngularJS and [this little chat application](https://github.com/btford/angular-socket-io-im) which uses socket.io and nodejs for realtime communication. Yesterday I saw a post about ReactJS in [EchoJS](http://www.echojs.com/) and started playing with this UI library. After playing a bit with React, I decided to write and chat application using React and I used Bran Ford's Backend for server side of this little app.
> <figure>[![](/react/img/blog/chatapp.png)](http://danialk.github.io/blog/2013/06/16/reactjs-and-socket-dot-io-chat-application/)</figure>
> <figure>[![](/react/img/blog/chatapp.png)](https://danialk.github.io/blog/2013/06/16/reactjs-and-socket-dot-io-chat-application/)</figure>
>
> [Read the full post...](http://danialk.github.io/blog/2013/06/16/reactjs-and-socket-dot-io-chat-application/)
> [Read the full post...](https://danialk.github.io/blog/2013/06/16/reactjs-and-socket-dot-io-chat-application/)
## React and Other Frameworks
@@ -36,7 +36,7 @@ Since the launch we have received a lot of feedback and are actively working on
>
> We've designed React from the beginning to work well with other libraries. Angular is no exception. Let's take the original Angular example and use React to implement the fundoo-rating directive.
>
> [Read the full post...](http://www.quora.com/Pete-Hunt/Posts/Facebooks-React-vs-AngularJS-A-Closer-Look)
> [Read the full post...](https://www.quora.com/Pete-Hunt/Posts/Facebooks-React-vs-AngularJS-A-Closer-Look)
In the same vein, [Markov Twain](https://twitter.com/markov_twain/status/345702941845499906) re-implemented the examples on the front-page [with Ember](http://jsbin.com/azihiw/2/edit) and [Vlad Yazhbin](https://twitter.com/vla) re-implemented the tutorial [with Angular](http://jsfiddle.net/vla/Cdrse/).
@@ -64,7 +64,7 @@ Mozilla and Google are actively working on Web Components. [Vjeux](http://blog.v
Many of you pointed out differences between JSX and HTML. In order to clear up some confusion, we have added some documentation that covers the four main differences:
- [Whitespace removal](http://facebook.github.io/react/docs/jsx-is-not-html.html)
- [HTML Entities](http://facebook.github.io/react/docs/jsx-is-not-html.html)
- [Comments](http://facebook.github.io/react/docs/jsx-is-not-html.html)
- [Custom HTML Attributes](http://facebook.github.io/react/docs/jsx-is-not-html.html)
- [Whitespace removal](/react/docs/jsx-is-not-html.html)
- [HTML Entities](/react/docs/jsx-is-not-html.html)
- [Comments](/react/docs/jsx-is-not-html.html)
- [Custom HTML Attributes](/react/docs/jsx-is-not-html.html)

View File

@@ -1,6 +1,6 @@
---
title: "React v0.3.3"
author: Paul O'Shannessy
author: zpao
---
We have a ton of great stuff coming in v0.4, but in the meantime we're releasing v0.3.3. This release addresses some small issues people were having and simplifies our tools to make them easier to use.

View File

@@ -1,13 +1,13 @@
---
title: "Community Round-up #3"
author: Vjeux
author: vjeux
---
The highlight of this week is that an interaction-heavy app has been ported to React. React components are solving issues they had with nested views.
## Moving From Backbone To React
[Clay Allsopp](http://twitter.com/clayallsopp) successfully ported [Propeller](http://usepropeller.com/blog/posts/from-backbone-to-react/), a fairly big, interaction-heavy JavaScript app, to React.
[Clay Allsopp](https://twitter.com/clayallsopp) successfully ported [Propeller](http://usepropeller.com/blog/posts/from-backbone-to-react/), a fairly big, interaction-heavy JavaScript app, to React.
> [<img style="float: right; margin: 0 0 10px 10px;" src="/react/img/blog/propeller-logo.png" />](http://usepropeller.com/blog/posts/from-backbone-to-react/)Subviews involve a lot of easy-to-forget boilerplate that Backbone (by design) doesn't automate. Libraries like Backbone.Marionette offer more abstractions to make view nesting easier, but they're all limited by the fact that Backbone delegates how and went view-document attachment occurs to the application code.
>
@@ -19,7 +19,7 @@ The highlight of this week is that an interaction-heavy app has been ported to R
## Grunt Task for JSX
[Eric Clemmons](http://ericclemmons.github.io/) wrote a task for [Grunt](http://gruntjs.com/) that applies the JSX transformation to your Javascript files. It also works with [Browserify](http://browserify.org/) if you want all your files to be concatenated and minified together.
[Eric Clemmons](https://ericclemmons.github.io/) wrote a task for [Grunt](http://gruntjs.com/) that applies the JSX transformation to your JavaScript files. It also works with [Browserify](http://browserify.org/) if you want all your files to be concatenated and minified together.
> Grunt task for compiling Facebook React's .jsx templates into .js
>
@@ -81,9 +81,9 @@ browserify: {
>
> [Read the full post...](http://blog.vjeux.com/2013/javascript/react-coffeescript.html)
## Tutorial in Plain Javascript
## Tutorial in Plain JavaScript
We've seen a lot of people comparing React with various frameworks. [Ricardo Tomasi](http://ricardo.cc/) decided to re-implement the tutorial without any framework, just plain Javascript.
We've seen a lot of people comparing React with various frameworks. [Ricardo Tomasi](http://ricardo.cc/) decided to re-implement the tutorial without any framework, just plain JavaScript.
> Facebook & Instagram launched the React framework and an accompanying tutorial. Developer Vlad Yazhbin decided to rewrite that using AngularJS. The end result is pretty neat, but if you're like me you will not actually appreciate the HTML speaking for itself and doing all the hard work. So let's see what that looks like in plain javascript.
>

View File

@@ -1,6 +1,6 @@
---
title: "New in React v0.4: Autobind by Default"
author: Paul O'Shannessy
author: zpao
---
React v0.4 is very close to completion. As we finish it off, we'd like to share with you some of the major changes we've made since v0.3. This is the first of several posts we'll be making over the next week.
@@ -8,7 +8,7 @@ React v0.4 is very close to completion. As we finish it off, we'd like to share
## What is React.autoBind?
If you take a look at most of our current examples, you'll see us using `React.autoBind` for event handlers. This is used in place of `Function.prototype.bind`. Remember that in JS, [function calls are late-bound](http://bonsaiden.github.io/JavaScript-Garden/#function.this). That means that if you simply pass a function around, the `this` used inside won't necessarily be the `this` you expect. `Function.prototype.bind` creates a new, properly bound, function so that when called, `this` is exactly what you expect it to be.
If you take a look at most of our current examples, you'll see us using `React.autoBind` for event handlers. This is used in place of `Function.prototype.bind`. Remember that in JS, [function calls are late-bound](https://bonsaiden.github.io/JavaScript-Garden/#function.this). That means that if you simply pass a function around, the `this` used inside won't necessarily be the `this` you expect. `Function.prototype.bind` creates a new, properly bound, function so that when called, `this` is exactly what you expect it to be.
Before we launched React, we would write this:

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #4"
author: Vjeux
author: vjeux
---
React reconciliation process appears to be very well suited to implement a text editor with a live preview as people at Khan Academy show us.
@@ -47,11 +47,11 @@ Over the past several weeks, members of our team, [Pete Hunt](http://www.petehun
[Pete Hunt](http://www.petehunt.net/) recorded himself implementing a simple `<Blink>` tag in React.
<figure><iframe src="https://player.vimeo.com/video/67248575" width="500" height="340" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></figure>
<figure><iframe src="https://player.vimeo.com/video/67248575" width="100%" height="340" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></figure>
## Snake in React
[Tom Occhino](http://tomocchino.com/) implemented Snake in 150 lines with React.
> [Check the source on Github](https://github.com/tomocchino/react-snake/blob/master/src/snake.js)
> <figure>[![](/react/img/blog/snake.png)](http://tomocchino.github.io/react-snake/)</figure>
> [Check the source on GitHub](https://github.com/tomocchino/react-snake/blob/master/src/snake.js)
> <figure>[![](/react/img/blog/snake.png)](https://tomocchino.github.io/react-snake/)</figure>

View File

@@ -1,6 +1,6 @@
---
title: "New in React v0.4: Prop Validation and Default Values"
author: Paul O'Shannessy
author: zpao
---
Many of the questions we got following the public launch of React revolved around `props`, specifically that people wanted to do validation and to make sure their components had sensible defaults.

View File

@@ -1,12 +1,12 @@
---
title: "React v0.4.0"
author: Paul O'Shannessy
author: zpao
---
Over the past 2 months we've been taking feedback and working hard to make React even better. We fixed some bugs, made some under-the-hood improvements, and added several features that we think will improve the experience developing with React. Today we're proud to announce the availability of React v0.4!
This release could not have happened without the support of our growing community. Since launch day, the community has contributed blog posts, questions to the [Google Group](http://groups.google.com/group/reactjs), and issues and pull requests on GitHub. We've had contributions ranging from documentation improvements to major changes to React's rendering. We've seen people integrate React into the tools they're using and the products they're building, and we're all very excited to see what our budding community builds next!
This release could not have happened without the support of our growing community. Since launch day, the community has contributed blog posts, questions to the [Google Group](https://groups.google.com/group/reactjs), and issues and pull requests on GitHub. We've had contributions ranging from documentation improvements to major changes to React's rendering. We've seen people integrate React into the tools they're using and the products they're building, and we're all very excited to see what our budding community builds next!
React v0.4 has some big changes. We've also restructured the documentation to better communicate how to use React. We've summarized the changes below and linked to documentation where we think it will be especially useful.
@@ -18,10 +18,10 @@ When you're ready, [go download it](/react/downloads.html)!
* Switch from using `id` attribute to `data-reactid` to track DOM nodes. This allows you to integrate with other JS and CSS libraries more easily.
* Support for more DOM elements and attributes (e.g., `<canvas>`)
* Improved server-side rendering APIs. `React.renderComponentToString(<component>, callback)` allows you to use React on the server and generate markup which can be sent down to the browser.
* `prop` improvements: validation and default values. [Read our blog post for details...](http://facebook.github.io/react/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html)
* Support for the `key` prop, which allows for finer control over reconciliation. [Read the docs for details...](http://facebook.github.io/react/docs/multiple-components.html)
* Removed `React.autoBind`. [Read our blog post for details...](http://facebook.github.io/react/blog/2013/07/02/react-v0-4-autobind-by-default.html)
* Improvements to forms. We've written wrappers around `<input>`, `<textarea>`, `<option>`, and `<select>` in order to standardize many inconsistencies in browser implementations. This includes support for `defaultValue`, and improved implementation of the `onChange` event, and circuit completion. [Read the docs for details...](http://facebook.github.io/react/docs/forms.html)
* `prop` improvements: validation and default values. [Read our blog post for details...](/react/blog/2013/07/11/react-v0-4-prop-validation-and-default-values.html)
* Support for the `key` prop, which allows for finer control over reconciliation. [Read the docs for details...](/react/docs/multiple-components.html)
* Removed `React.autoBind`. [Read our blog post for details...](/react/blog/2013/07/02/react-v0-4-autobind-by-default.html)
* Improvements to forms. We've written wrappers around `<input>`, `<textarea>`, `<option>`, and `<select>` in order to standardize many inconsistencies in browser implementations. This includes support for `defaultValue`, and improved implementation of the `onChange` event, and circuit completion. [Read the docs for details...](/react/docs/forms.html)
* We've implemented an improved synthetic event system that conforms to the W3C spec.
* Updates to your component are batched now, which may result in a significantly faster re-render of components. `this.setState` now takes an optional callback as its second parameter. If you were using `onClick={this.setState.bind(this, state)}` previously, you'll want to make sure you add a third parameter so that the event is not treated as the callback.

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #5"
author: Vjeux
author: vjeux
---
We launched the [React Facebook Page](https://www.facebook.com/react) along with the React v0.4 launch. 700 people already liked it to get updated on the project :)
@@ -18,7 +18,7 @@ We launched the [React Facebook Page](https://www.facebook.com/react) along with
## React Samples
Learning a new library is always easier when you have working examples you can play with. [jwh](https://github.com/jhw) put many of them on his [react-samples Github repo](https://github.com/jhw/react-samples).
Learning a new library is always easier when you have working examples you can play with. [jwh](https://github.com/jhw) put many of them on his [react-samples GitHub repo](https://github.com/jhw/react-samples).
> Some simple examples with Facebook's React framework
>
@@ -52,7 +52,7 @@ Learning a new library is always easier when you have working examples you can p
## React Chosen Wrapper
[Cheng Lou](https://github.com/chenglou) wrote a wrapper for the [Chosen](http://harvesthq.github.io/chosen/) input library called [react-chosen](https://github.com/chenglou/react-chosen). It took just 25 lines to be able to use jQuery component as a React one.
[Cheng Lou](https://github.com/chenglou) wrote a wrapper for the [Chosen](https://harvesthq.github.io/chosen/) input library called [react-chosen](https://github.com/chenglou/react-chosen). It took just 25 lines to be able to use jQuery component as a React one.
```javascript
React.renderComponent(
@@ -60,7 +60,7 @@ React.renderComponent(
<option value="Facebook">Facebook</option>
<option value="Harvest">Harvest</option>
</Chosen>
, document.body);
, document.getElementById('example'));
```
@@ -68,14 +68,14 @@ React.renderComponent(
[Domenic Denicola](http://domenicdenicola.com/) wrote a slide deck about the great applications of ES6 features and one slide shows how we could use Template Strings to compile JSX at run-time without the need for a pre-processing phase.
<figure><iframe src="https://www.slideshare.net/slideshow/embed_code/24187146?rel=0&startSlide=36" width="600" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe></figure>
<figure><iframe src="https://www.slideshare.net/slideshow/embed_code/24187146?rel=0&startSlide=36" width="100%" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe></figure>
## React Presentation
[Tom Occhino](http://tomocchino.com/) and [Jordan Walke](https://github.com/jordwalke), React developers, did a presentation of React at Facebook Seattle's office. Check out the first 25 minutes for the presentation and the remaining 45 for a Q&A. I highly recommend you watching this video.
<figure><iframe width="650" height="400" src="//www.youtube.com/embed/XxVg_s8xAms" frameborder="0" allowfullscreen></iframe></figure>
<figure><iframe width="100%" height="400" src="//www.youtube-nocookie.com/embed/XxVg_s8xAms" frameborder="0" allowfullscreen></iframe></figure>
## Docs

View File

@@ -1,6 +1,6 @@
---
title: "React v0.4.1"
author: Paul O'Shannessy
author: zpao
---
React v0.4.1 is a small update, mostly containing correctness fixes. Some code has been restructured internally but those changes do not impact any of our public APIs.

View File

@@ -1,6 +1,6 @@
---
title: "Use React and JSX in Ruby on Rails"
author: Paul O'Shannessy
author: zpao
---
Today we're releasing a gem to make it easier to use React and JSX in Ruby on Rails applications: [react-rails](https://github.com/facebook/react-rails).
@@ -38,7 +38,7 @@ When you name your file with `myfile.js.jsx`, `react-rails` will automatically t
```js
/** @jsx React.DOM */
React.renderComponent(<MyComponent/>, document.body)
React.renderComponent(<MyComponent/>, document.getElementById('example'))
```

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #6"
author: Vjeux
author: vjeux
---
This is the first Community Round-up where none of the items are from Facebook/Instagram employees. It's great to see the adoption of React growing.
@@ -23,7 +23,7 @@ This is the first Community Round-up where none of the items are from Facebook/I
>
> `reactify` transform activates for files with either `.jsx` extension or `/** @jsx React.DOM */` pragma as a first line for any `.js` file.
>
> [Check it out on Github...](https://github.com/andreypopp/reactify)
> [Check it out on GitHub...](https://github.com/andreypopp/reactify)
@@ -49,12 +49,12 @@ este.demos.react.todoApp = este.react.create (`/** @lends {React.ReactComponent.
]
```
[Check it out on Github...](https://github.com/steida/este-library/blob/master/este/demos/thirdparty/react/start.coffee)
[Check it out on GitHub...](https://github.com/steida/este-library/blob/master/este/demos/thirdparty/react/start.coffee)
## React Stylus Boilerplate
[Zaim Bakar](http://zaim.github.io/) shared his boilerplate to get started with Stylus CSS processor.
[Zaim Bakar](https://zaim.github.io/) shared his boilerplate to get started with Stylus CSS processor.
> This is my boilerplate React project using Grunt as the build tool, and Stylus as my CSS preprocessor.
>
@@ -64,7 +64,7 @@ este.demos.react.todoApp = este.react.create (`/** @lends {React.ReactComponent.
> - `grunt build` to compile JSX and Stylus into a development build
> - `grunt dist` to minify and optimize the development build for production
>
> [Check it out on Github...](https://github.com/zaim/react-stylus-boilerplate)
> [Check it out on GitHub...](https://github.com/zaim/react-stylus-boilerplate)
## WebFUI

View File

@@ -1,6 +1,6 @@
---
title: "Use React and JSX in Python Applications"
author: Kunal Mehta
author: kmeht
---
Today we're happy to announce the initial release of [PyReact](https://github.com/facebook/react-python), which makes it easier to use React and JSX in your Python applications. It's designed to provide an API to transform your JSX files into JavaScript, as well as provide access to the latest React source files.

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #7"
author: Vjeux
author: vjeux
---
It's been three months since we open sourced React and it is going well. Some stats so far:
@@ -8,9 +8,9 @@ It's been three months since we open sourced React and it is going well. Some st
* 114 285 unique visitors on this website
* [1933 stars](https://github.com/facebook/react/stargazers) and [210 forks](https://github.com/facebook/react/network/members)
* [226 posts on Google Group](https://groups.google.com/forum/#!forum/reactjs)
* [76 Github projects using React](https://gist.github.com/vjeux/6335762)
* [76 GitHub projects using React](https://gist.github.com/vjeux/6335762)
* [30 contributors](https://github.com/facebook/react/graphs/contributors)
* [15 blog posts](http://facebook.github.io/react/blog/)
* [15 blog posts](/react/blog/)
* 2 early adopters: [Khan Academy](http://benalpert.com/2013/06/09/using-react-to-speed-up-khan-academy.html) and [Propeller](http://usepropeller.com/blog/posts/from-backbone-to-react/)

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #8"
author: Vjeux
author: vjeux
---
A lot has happened in the month since our last update. Here are some of the more interesting things we've found. But first, we have a couple updates before we share links.
@@ -9,9 +9,9 @@ First, we are organizing a [React Hackathon](http://reactjshack-a-thon.splashtha
We've also reached a point where there are too many questions for us to handle directly. We're encouraging people to ask questions on [StackOverflow](http://stackoverflow.com/questions/tagged/reactjs) using the tag [[reactjs]](http://stackoverflow.com/questions/tagged/reactjs). Many members of the team and community have subscribed to the tag, so feel free to ask questions there. We think these will be more discoverable than Google Groups archives or IRC logs.
## Javascript Jabber
## JavaScript Jabber
[Pete Hunt](http://www.petehunt.net/) and [Jordan Walke](https://github.com/jordwalke) were interviewed on [Javascript Jabber](http://javascriptjabber.com/073-jsj-react-with-pete-hunt-and-jordan-walke/) for an hour. They go over many aspects of React such as 60 FPS, Data binding, Performance, Diffing Algorithm, DOM Manipulation, Node.js support, server-side rendering, JSX, requestAnimationFrame and the community. This is a gold mine of information about React.
[Pete Hunt](http://www.petehunt.net/) and [Jordan Walke](https://github.com/jordwalke) were interviewed on [JavaScript Jabber](http://javascriptjabber.com/073-jsj-react-with-pete-hunt-and-jordan-walke/) for an hour. They go over many aspects of React such as 60 FPS, Data binding, Performance, Diffing Algorithm, DOM Manipulation, Node.js support, server-side rendering, JSX, requestAnimationFrame and the community. This is a gold mine of information about React.
> **PETE:** So React was designed all around that. Conceptually, how you build a React app is that every time your data changes, it's like hitting the refresh button in a server-rendered app. What we do is we conceptually throw out all of the markup and event handlers that you've registered and we reset the whole page and then we redraw the entire page. If you're writing a server-rendered app, handling updates is really easy because you hit the refresh button and you're pretty much guaranteed to get what you expect.
>
@@ -34,7 +34,7 @@ While this is not going to work for all the attributes since they are camelCased
## Remarkable React
[Stoyan Stefanov](http://www.phpied.com/) gave a talk at [BrazilJS](http://braziljs.com.br/) about React and wrote an article with the content of the presentation. He goes through the difficulties of writting _active apps_ using the DOM API and shows how React handles it.
[Stoyan Stefanov](http://www.phpied.com/) gave a talk at [BrazilJS](http://braziljs.com.br/) about React and wrote an article with the content of the presentation. He goes through the difficulties of writing _active apps_ using the DOM API and shows how React handles it.
> So how does exactly React deal with it internally? Two crazy ideas - virtual DOM and synthetic events.
>
@@ -53,7 +53,7 @@ While this is not going to work for all the attributes since they are camelCased
## Markdown in React
[Ben Alpert](http://benalpert.com/) converted [marked](https://github.com/chjj/marked), a Markdown Javascript implementation, in React: [marked-react](https://github.com/spicyj/marked-react). Even without using JSX, the HTML generation is now a lot cleaner. It is also safer as forgetting a call to `escape` will not introduce an XSS vulnerability.
[Ben Alpert](http://benalpert.com/) converted [marked](https://github.com/chjj/marked), a Markdown JavaScript implementation, in React: [marked-react](https://github.com/spicyj/marked-react). Even without using JSX, the HTML generation is now a lot cleaner. It is also safer as forgetting a call to `escape` will not introduce an XSS vulnerability.
<figure>[![](/react/img/blog/markdown_refactor.png)](https://github.com/spicyj/marked-react/commit/cb70c9df6542c7c34ede9efe16f9b6580692a457)</figure>
@@ -66,4 +66,4 @@ While this is not going to work for all the attributes since they are camelCased
[Vjeux](http://blog.vjeux.com/) re-implemented the display part of the IRC logger in React. Just 130 lines are needed for a performant infinite scroll with timestamps and color-coded author names.
<iframe width="100%" height="300" src="https://jsfiddle.net/vjeux/QL9tz/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
[View the source on JSFiddle...](http://jsfiddle.net/vjeux/QL9tz)

View File

@@ -1,6 +1,6 @@
---
title: "React v0.5"
author: Paul O'Shannessy
author: zpao
---
This release is the result of several months of hard work from members of the team and the community. While there are no groundbreaking changes in core, we've worked hard to improve performance and memory usage. We've also worked hard to make sure we are being consistent in our usage of DOM properties.

View File

@@ -1,6 +1,6 @@
---
title: "React v0.5.1"
author: Paul O'Shannessy
author: zpao
---
This release focuses on fixing some small bugs that have been uncovered over the past two weeks. I would like to thank everybody involved, specifically members of the community who fixed half of the issues found. Thanks to [Ben Alpert][1], [Andrey Popp][2], and [Laurence Rowe][3] for their contributions!

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #9"
author: Vjeux
author: vjeux
---
We organized a React hackathon last week-end in the Facebook Seattle office. 50 people, grouped into 15 teams, came to hack for a day on React. It was a lot of fun and we'll probably organize more in the future.
@@ -29,7 +29,7 @@ We organized a React hackathon last week-end in the Facebook Seattle office. 50
The video will be available soon on the [JSConf EU website](http://2013.jsconf.eu/speakers/pete-hunt-react-rethinking-best-practices.html), but in the meantime, here are Pete's slides:
<figure><iframe src="https://www.slideshare.net/slideshow/embed_code/26589373" width="550" height="450" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen></iframe></figure>
<figure><iframe src="https://www.slideshare.net/slideshow/embed_code/26589373" width="100%" height="450" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen></iframe></figure>
## Pump - Clojure bindings for React
@@ -56,7 +56,7 @@ The video will be available soon on the [JSConf EU website](http://2013.jsconf.e
[Todd Kennedy](http://blog.selfassembled.org/) working at [Cond&eacute; Nast](http://www.condenast.com/) implemented a wrapper on-top of [JSHint](http://www.jshint.com/) that first converts JSX files to JS.
> A wrapper around JSHint to allow linting of files containg JSX syntax. Accepts glob patterns. Respects your local .jshintrc file and .gitignore to filter your glob patterns.
> A wrapper around JSHint to allow linting of files containing JSX syntax. Accepts glob patterns. Respects your local .jshintrc file and .gitignore to filter your glob patterns.
>
> ```
npm install -g jsxhint
@@ -96,4 +96,3 @@ var Table = React.createClass({
> You see that React components are defined using a regular JS object. Some properties and methods of the object such as render() have special meanings, the rest is upforgrabs.
>
> [Read the full article...](http://www.phpied.com/reactive-table/)

View File

@@ -1,142 +0,0 @@
---
title: "Thinking in React"
author: Pete Hunt
---
React is, in my opinion, the premier way to build big, fast Web apps with JavaScript. It has scaled very well for us at Facebook and Instagram.
One of the many great parts of React is how it makes you think about apps as you build them. In this post I'll walk you through the thought process of building a searchable product data table using React.
## Start with a mock
Imagine that we already have a JSON API and a mock from our designer. Our designer apparently isn't very good because the mock looks like this:
![Mockup](/react/img/blog/thinking-in-react-mock.png)
Our JSON API returns some data that looks like this:
```
[
{category: "Sporting Goods", price: "$49.99", stocked: true, name: "Football"},
{category: "Sporting Goods", price: "$9.99", stocked: true, name: "Baseball"},
{category: "Sporting Goods", price: "$29.99", stocked: false, name: "Basketball"},
{category: "Electronics", price: "$99.99", stocked: true, name: "iPod Touch"},
{category: "Electronics", price: "$399.99", stocked: false, name: "iPhone 5"},
{category: "Electronics", price: "$199.99", stocked: true, name: "Nexus 7"}
];
```
## Step 1: break the UI into a component hierarchy
The first thing you'll want to do is to draw boxes around every component (and subcomponent) in the mock and give them all names. If you're working with a designer they may have already done this, so go talk to them! Their Photoshop layer names may end up being the names of your React components!
But how do you know what should be its own component? Just use the same techniques for deciding if you should create a new function or object. One such technique is the [single responsibility principle](http://en.wikipedia.org/wiki/Single_responsibility_principle), that is, a component should ideally only do one thing. If it ends up growing it should be decomposed into smaller subcomponents.
Since you're often displaying a JSON data model to a user, you'll find that if your model was built correctly your UI (and therefore your component structure) will map nicely onto it. That's because user interfaces and data models tend to adhere to the same *information architecture* which means the work of separating your UI into components is often trivial. Just break it up into components that represent exactly one piece of your data model.
![Component diagram](/react/img/blog/thinking-in-react-components.png)
You'll see here that we have five components in our simple app. I've italicized the data each component represents.
1. **`FilterableProductTable` (orange):** contains the entirety of the example
2. **`SearchBar` (blue):** receives all *user input*
3. **`ProductTable` (green):** displays and filters the *data collection* based on *user input*
4. **`ProductCategoryRow` (turquoise):** displays a heading for each *category*
5. **`ProductRow` (red):** displays a row for each *product*
If you look at `ProductTable` you'll see that the table header (containing the "Name" and "Price" labels) isn't its own component. This is a matter of preference and there's an argument to be made either way. For this example I left it as part of `ProductTable` because it is part of rendering the *data collection* which is `ProductTable`'s responsibility. However if this header grows to be complex (i.e. if we were to add affordances for sorting) it would certainly make sense to make this its own `ProductTableHeader` component.
Now that we've identified the components in our mock, let's arrange them into a hierarchy. This is easy. Components that appear within another component in the mock should appear as a child in the hierarchy:
* `FilterableProductTable`
* `SearchBar`
* `ProductTable`
* `ProductCategoryRow`
* `ProductRow`
## Step 2: Build a static version in React
<iframe width="100%" height="300" src="https://jsfiddle.net/6wQMG/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
Now that you have your component hierarchy it's time to start implementing your app. The easiest way is to build a version that takes your data model and renders the UI but has no interactivity. It's easiest to decouple these processes because building a static version requires a lot of typing and no thinking, and adding interactivity requires a lot of thinking and not a lot of typing. We'll see why.
To build a static version of your app that renders your data model you'll want to build components that reuse other components and pass data using *props*. *props* are a way of passing data from parent to child. If you're familiar with the concept of *state*, **don't use state at all** to build this static version. State is reserved only for interactivity, that is, data that changes over time. Since this is a static version of the app you don't need it.
You can build top-down or bottom-up. That is, you can either start with building the components higher up in the hierarchy (i.e. starting with `FilterableProductTable`) or with the ones lower in it (`ProductRow`). In simpler examples it's usually easier to go top-down and on larger projects it's easier to go bottom-up and write tests as you build.
At the end of this step you'll have a library of reusable components that render your data model. The components will only have `render()` methods since this is a static version of your app. The component at the top of the hierarchy (`FilterableProductTable`) will take your data model as a prop. If you make a change to your underlying data model and call `renderComponent()` again the UI will be updated. It's easy to see how your UI is updated and where to make changes since there's nothing complicated going on since React's **one-way data flow** (also called *one-way binding*) keeps everything modular, easy to reason about, and fast.
Simply refer to the [React docs](http://facebook.github.io/react/docs/) if you need help executing this step.
### A brief interlude: props vs state
There are two types of "model" data in React: props and state. It's important to understand the distinction between the two; skim [the official React docs](http://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html) if you aren't sure what the difference is.
## Step 3: Identify the minimal (but complete) representation of UI state
To make your UI interactive you need to be able to trigger changes to your underlying data model. React makes this easy with **state**.
To build your app correctly you first need to think of the minimal set of mutable state that your app needs. The key here is DRY: *Don't Repeat Yourself*. Figure out what the absolute minimal representation of the state of your application needs to be and compute everything else you need on-demand. For example, if you're building a TODO list, just keep an array of the TODO items around; don't keep a separate state variable for the count. Instead, when you want to render the TODO count simply take the length of the TODO items array.
Think of all of the pieces of data in our example application. We have:
* The original list of products
* The search text the user has entered
* The value of the checkbox
* The filtered list of products
Let's go through each one and figure out which one is state. Simply ask three questions about each piece of data:
1. Is it passed in from a parent via props? If so, it probably isn't state.
2. Does it change over time? If not, it probably isn't state.
3. Can you compute it based on any other state or props in your component? If so, it's not state.
The original list of products is passed in as props, so that's not state. The search text and the checkbox seem to be state since they change over time and can't be computed from anything. And finally, the filtered list of products isn't state because it can be computed by combining the original list of products with the search text and value of the checkbox.
So finally, our state is:
* The search text the user has entered
* The value of the checkbox
## Step 4: Identify where your state should live
<iframe width="100%" height="300" src="https://jsfiddle.net/QvHnx/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
OK, so we've identified what the minimal set of app state is. Next we need to identify which component mutates, or *owns*, this state.
Remember: React is all about one-way data flow down the component hierarchy. It may not be immediately clear which component should own what state. **This is often the most challenging part for newcomers to understand,** so follow these steps to figure it out:
For each piece of state in your application:
* Identify every component that renders something based on that state.
* Find a common owner component (a single component above all the components that need the state in the hierarchy).
* Either the common owner or another component higher up in the hierarchy should own the state.
* If you can't find a component where it makes sense to own the state, create a new component simply for holding the state and add it somewhere in the hierarchy above the common owner component.
Let's run through this strategy for our application:
* `ProductTable` needs to filter the product list based on state and `SearchBar` needs to display the search text and checked state.
* The common owner component is `FilterableProductTable`.
* It conceptually makes sense for the filter text and checked value to live in `FilterableProductTable`
Cool, so we've decided that our state lives in `FilterableProductTable`. First, add a `getInitialState()` method to `FilterableProductTable` that returns `{filterText: '', inStockOnly: false}` to reflect the initial state of your application. Then pass `filterText` and `inStockOnly` to `ProductTable` and `SearchBar` as a prop. Finally, use these props to filter the rows in `ProductTable` and set the values of the form fields in `SearchBar`.
You can start seeing how your application will behave: set `filterText` to `"ball"` and refresh your app. You'll see the data table is updated correctly.
## Step 5: Add inverse data flow
<iframe width="100%" height="300" src="https://jsfiddle.net/3Vs3Q/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
So far we've built an app that renders correctly as a function of props and state flowing down the hierarchy. Now it's time to support data flowing the other way: the form components deep in the hierarchy need to update the state in `FilterableProductTable`.
React makes this data flow explicit to make it easy to understand how your program works, but it does require a little more typing than traditional two-way data binding. React provides an add-on called `ReactLink` to make this pattern as convenient as two-way binding, but for the purpose of this post we'll keep everything explicit.
If you try to type or check the box in the current version of the example you'll see that React ignores your input. This is intentional, as we've set the `value` prop of the `input` to always be equal to the `state` passed in from `FilterableProductTable`.
Let's think about what we want to happen. We want to make sure that whenever the user changes the form we update the state to reflect the user input. Since components should only update their own state, `FilterableProductTable` will pass a callback to `SearchBar` that will fire whenever the state should be updated. We can use the `onChange` event on the inputs to be notified of it. And the callback passed by `FilterableProductTable` will call `setState()` and the app will be updated.
Though this sounds like a lot it's really just a few lines of code. And it's really explicit how your data is flowing throughout the app.
## And that's it
Hopefully this gives you an idea of how to think about building components and applications with React. While it may be a little more typing than you're used to, remember that code is read far more than it's written, and it's extremely easy to read this modular, explicit code. As you start to build large libraries of components you'll appreciate this explicitness and modularity, and with code reuse your lines of code will start to shrink :)

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #10"
author: Vjeux
author: vjeux
---
This is the 10th round-up already and React has come quite far since it was open sourced. Almost all new web projects at Khan Academy, Facebook, and Instagram are being developed using React. React has been deployed in a variety of contexts: a Chrome extension, a Windows 8 application, mobile websites, and desktop websites supporting Internet Explorer 8! Language-wise, React is not only being used within JavaScript but also CoffeeScript and ClojureScript.
@@ -26,7 +26,7 @@ The best part is that no drastic changes have been required to support all those
[Pete Hunt](http://www.petehunt.net/)'s talk at JSConf EU 2013 is now available in video.
<figure><iframe width="600" height="370" src="//www.youtube.com/embed/x7cQ3mrcKaY" frameborder="0" allowfullscreen></iframe></figure>
<figure><iframe width="100%" height="370" src="//www.youtube-nocookie.com/embed/x7cQ3mrcKaY" frameborder="0" allowfullscreen></iframe></figure>
## Server-side React with PHP

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #11"
author: Vjeux
author: vjeux
---
This round-up is the proof that React has taken off from its Facebook's root: it features three in-depth presentations of React done by external people. This is awesome, keep them coming!
@@ -9,25 +9,25 @@ This round-up is the proof that React has taken off from its Facebook's root: it
[Steve Luscher](https://github.com/steveluscher) working at [LeanPub](https://leanpub.com/) made a 30 min talk at [Super VanJS](https://twitter.com/vanjs). He does a remarkable job at explaining why React is so fast with very exciting demos using the HTML5 Audio API.
<figure><iframe width="600" height="338" src="//www.youtube.com/embed/1OeXsL5mr4g" frameborder="0" allowfullscreen></iframe></figure>
<figure><iframe width="100%" height="338" src="//www.youtube-nocookie.com/embed/1OeXsL5mr4g" frameborder="0" allowfullscreen></iframe></figure>
## React Tips
[Connor McSheffrey](http://connormcsheffrey.com/) and [Cheng Lou](https://github.com/chenglou) added a new section to the documentation. It's a list of small tips that you will probably find useful while working on React. Since each article is very small and focused, we [encourage you to contribute](http://facebook.github.io/react/tips/introduction.html)!
[Connor McSheffrey](http://connormcsheffrey.com/) and [Cheng Lou](https://github.com/chenglou) added a new section to the documentation. It's a list of small tips that you will probably find useful while working on React. Since each article is very small and focused, we [encourage you to contribute](/react/tips/introduction.html)!
- [Inline Styles](http://facebook.github.io/react/tips/inline-styles.html)
- [If-Else in JSX](http://facebook.github.io/react/tips/if-else-in-JSX.html)
- [Self-Closing Tag](http://facebook.github.io/react/tips/self-closing-tag.html)
- [Maximum Number of JSX Root Nodes](http://facebook.github.io/react/tips/maximum-number-of-jsx-root-nodes.html)
- [Shorthand for Specifying Pixel Values in style props](http://facebook.github.io/react/tips/style-props-value-px.html)
- [Type of the Children props](http://facebook.github.io/react/tips/children-props-type.html)
- [Value of null for Controlled Input](http://facebook.github.io/react/tips/controlled-input-null-value.html)
- [`componentWillReceiveProps` Not Triggered After Mounting](http://facebook.github.io/react/tips/componentWillReceiveProps-not-triggered-after-mounting.html)
- [Props in getInitialState Is an Anti-Pattern](http://facebook.github.io/react/tips/props-in-getInitialState-as-anti-pattern.html)
- [DOM Event Listeners in a Component](http://facebook.github.io/react/tips/dom-event-listeners.html)
- [Load Initial Data via AJAX](http://facebook.github.io/react/tips/initial-ajax.html)
- [False in JSX](http://facebook.github.io/react/tips/false-in-jsx.html)
- [Inline Styles](/react/tips/inline-styles.html)
- [If-Else in JSX](/react/tips/if-else-in-JSX.html)
- [Self-Closing Tag](/react/tips/self-closing-tag.html)
- [Maximum Number of JSX Root Nodes](/react/tips/maximum-number-of-jsx-root-nodes.html)
- [Shorthand for Specifying Pixel Values in style props](/react/tips/style-props-value-px.html)
- [Type of the Children props](/react/tips/children-props-type.html)
- [Value of null for Controlled Input](/react/tips/controlled-input-null-value.html)
- [`componentWillReceiveProps` Not Triggered After Mounting](/react/tips/componentWillReceiveProps-not-triggered-after-mounting.html)
- [Props in getInitialState Is an Anti-Pattern](/react/tips/props-in-getInitialState-as-anti-pattern.html)
- [DOM Event Listeners in a Component](/react/tips/dom-event-listeners.html)
- [Load Initial Data via AJAX](/react/tips/initial-ajax.html)
- [False in JSX](/react/tips/false-in-jsx.html)
## Intro to the React Framework
@@ -50,7 +50,7 @@ This round-up is the proof that React has taken off from its Facebook's root: it
## Genesis Skeleton
[Eric Clemmons](http://ericclemmons.github.io/) is working on a "Modern, opinionated, full-stack starter kit for rapid, streamlined application development". The version 0.4.0 has just been released and has first-class support for React.
[Eric Clemmons](https://ericclemmons.github.io/) is working on a "Modern, opinionated, full-stack starter kit for rapid, streamlined application development". The version 0.4.0 has just been released and has first-class support for React.
<figure>[![](/react/img/blog/genesis_skeleton.png)](http://genesis-skeleton.com/)</figure>
@@ -64,7 +64,7 @@ This round-up is the proof that React has taken off from its Facebook's root: it
>
> [Read the full article...](http://rz.scale-it.pl/2013/10/20/frontend_components_in_react.html)
<figure><iframe src="https://docs.google.com/presentation/d/1JSFbjCuuexwOHCeHWBMNRIJdyfD2Z0ZQwX65WOWkfaI/embed?start=false" frameborder="0" width="600" height="468" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"> </iframe></figure>
<figure><iframe src="https://docs.google.com/presentation/d/1JSFbjCuuexwOHCeHWBMNRIJdyfD2Z0ZQwX65WOWkfaI/embed?start=false" frameborder="0" width="100%" height="468" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"> </iframe></figure>
## JSX

View File

@@ -1,6 +1,6 @@
---
title: "React v0.5.2, v0.4.2"
author: Paul O'Shannessy
author: zpao
---
Today we're releasing an update to address a potential XSS vulnerability that can arise when using user data as a `key`. Typically "safe" data is used for a `key`, for example, an id from your database, or a unique hash. However there are cases where it may be reasonable to use user generated content. A carefully crafted piece of content could result in arbitrary JS execution. While we make a very concerted effort to ensure all text is escaped before inserting it into the DOM, we missed one case. Immediately following the discovery of this vulnerability, we performed an audit to ensure we this was the only such vulnerability.
@@ -15,7 +15,7 @@ While we've encouraged responsible disclosure as part of [Facebook's whitehat bo
You can learn more about the vulnerability discussed here: [CVE-2013-7035][cve].
[download]: http://facebook.github.io/react/downloads.html
[download]: /react/downloads.html
[bounty]: https://www.facebook.com/whitehat/
[ember]: http://emberjs.com/security/
[cve]: https://groups.google.com/forum/#!topic/reactjs/OIqxlB2aGfU

View File

@@ -1,6 +1,6 @@
---
title: "React v0.8"
author: Paul O'Shannessy
author: zpao
---
I'll start by answering the obvious question:

View File

@@ -1,28 +1,28 @@
---
title: "Community Round-up #12"
author: Vjeux
author: vjeux
---
React got featured on the front-page of Hacker News thanks to the Om library. If you try it out for the first time, take a look at the [docs](/react/docs/getting-started.html) and do not hesitate to ask questions on the [Google Group](http://groups.google.com/group/reactjs), [IRC](irc://chat.freenode.net/reactjs) or [Stack Overflow](http://stackoverflow.com/questions/tagged/reactjs). We are trying our best to help you out!
React got featured on the front-page of Hacker News thanks to the Om library. If you try it out for the first time, take a look at the [docs](/react/docs/getting-started.html) and do not hesitate to ask questions on the [Google Group](https://groups.google.com/group/reactjs), [IRC](irc://chat.freenode.net/reactjs) or [Stack Overflow](http://stackoverflow.com/questions/tagged/reactjs). We are trying our best to help you out!
## The Future of Javascript MVC
## The Future of JavaScript MVC
[David Nolen](http://swannodette.github.io/) announced Om, a thin wrapper on-top of React in ClojureScript. It stands out by only using immutable data structures. This unlocks the ability to write a very efficient [shouldComponentUpdate](http://facebook.github.io/react/docs/component-specs.html#updating-shouldcomponentupdate) and get huge performance improvements on some tasks.
[David Nolen](https://swannodette.github.io/) announced Om, a thin wrapper on-top of React in ClojureScript. It stands out by only using immutable data structures. This unlocks the ability to write a very efficient [shouldComponentUpdate](/react/docs/component-specs.html#updating-shouldcomponentupdate) and get huge performance improvements on some tasks.
> We've known this for some time over here in the ClojureScript corner of the world - all of our collections are immutable and modeled directly on the original Clojure versions written in Java. Modern JavaScript engines have now been tuned to the point that it's no longer uncommon to see collection performance within 2.5X of the Java Virtual Machine.
>
> Wait, wait, wait. What does the performance of persistent data structures have to do with the future of JavaScript MVCs?
>
> A whole lot.
> <figure>[![](/react/img/blog/om-backbone.png)](http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/)</figure>
> <figure>[![](/react/img/blog/om-backbone.png)](https://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/)</figure>
>
> [Read the full article...](http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/)
> [Read the full article...](https://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/)
## Scroll Position with React
Managing the scroll position when new content is inserted is usually very tricky to get right. [Vjeux](http://blog.vjeux.com/) discovered that [componentWillUpdate](http://facebook.github.io/react/docs/component-specs.html#updating-componentwillupdate) and [componentDidUpdate](http://facebook.github.io/react/docs/component-specs.html#updating-componentdidupdate) were triggered exactly at the right time to manage the scroll position.
Managing the scroll position when new content is inserted is usually very tricky to get right. [Vjeux](http://blog.vjeux.com/) discovered that [componentWillUpdate](/react/docs/component-specs.html#updating-componentwillupdate) and [componentDidUpdate](/react/docs/component-specs.html#updating-componentdidupdate) were triggered exactly at the right time to manage the scroll position.
> We can check the scroll position before the component has updated with componentWillUpdate and scroll if necessary at componentDidUpdate
>
@@ -45,10 +45,10 @@ componentDidUpdate: function() {
## Lights Out
React declarative approach is well suited to write games. [Cheng Lou](https://github.com/chenglou) wrote the famous Lights Out game in React. It's a good example of use of [TransitionGroup](http://facebook.github.io/react/docs/animation.html) to implement animations.
<figure>[![](/react/img/blog/lights-out.png)](http://chenglou.github.io/react-lights-out/)</figure>
React declarative approach is well suited to write games. [Cheng Lou](https://github.com/chenglou) wrote the famous Lights Out game in React. It's a good example of use of [TransitionGroup](/react/docs/animation.html) to implement animations.
<figure>[![](/react/img/blog/lights-out.png)](https://chenglou.github.io/react-lights-out/)</figure>
[Try it out!](http://chenglou.github.io/react-lights-out/)
[Try it out!](https://chenglou.github.io/react-lights-out/)
## Reactive Table Bookmarklet
@@ -63,9 +63,7 @@ React declarative approach is well suited to write games. [Cheng Lou](https://gi
[Ross Allen](https://twitter.com/ssorallen) implemented [MontageJS](http://montagejs.org/)'s [Reddit tutorial](http://montagejs.org/docs/tutorial-reddit-client-with-montagejs.html) in React. This is a good opportunity to compare the philosophies of the two libraries.
<iframe width="100%" height="300" src="https://jsfiddle.net/ssorallen/fEsYt/embedded/result,html,js" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
[View the source on JSFiddle...](http://jsfiddle.net/ssorallen/fEsYt/)
[View the source on JSFiddle...](https://jsfiddle.net/ssorallen/fEsYt/)
## Writing Good React Components
@@ -93,9 +91,9 @@ hoodie new todomvc -t "hoodiehq/hoodie-react-todomvc"
## JSX Compiler
Ever wanted to have a quick way to see what a JSX tag would be converted to? [Tim Yung](http://www.yungsters.com/) made a page for it.
<figure>[![](/react/img/blog/jsx-compiler.png)](http://facebook.github.io/react/jsx-compiler.html)</figure>
<figure>[![](/react/img/blog/jsx-compiler.png)](/react/jsx-compiler.html)</figure>
[Try it out!](http://facebook.github.io/react/jsx-compiler.html)
[Try it out!](/react/jsx-compiler.html)

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #13"
author: Vjeux
author: vjeux
---
Happy holidays! This blog post is a little-late Christmas present for all the React users. Hopefully it will inspire you to write awesome web apps in 2014!
@@ -10,27 +10,27 @@ Happy holidays! This blog post is a little-late Christmas present for all the Re
[Pete Hunt](http://www.petehunt.net/) wrote three demos showing that React can be used to run 60fps native-like experiences on mobile web. A frosted glass effect, an image gallery with 3d animations and an infinite scroll view.
<figure><iframe src="//player.vimeo.com/video/79659941" width="220" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></figure>
<figure><iframe src="//player.vimeo.com/video/79659941" width="100%" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></figure>
[Try out the demos!](http://petehunt.github.io/react-touch/)
[Try out the demos!](https://petehunt.github.io/react-touch/)
## Introduction to React
[Stoyan Stefanov](http://www.phpied.com/) talked at Joe Dev On Tech about React. He goes over all the features of the library and ends with a concrete example.
<figure><iframe width="560" height="315" src="//www.youtube.com/embed/SMMRJif5QW0" frameborder="0" allowfullscreen></iframe></figure>
<figure><iframe width="100%" height="315" src="//www.youtube-nocookie.com/embed/SMMRJif5QW0" frameborder="0" allowfullscreen></iframe></figure>
## JSX: E4X The Good Parts
JSX is often compared to the now defunct E4X, [Vjeux](http://blog.vjeux.com/) went over all the E4X features and explained how JSX is different and hopefully doesn't repeat the same mistakes.
> E4X (ECMAScript for XML) is a Javascript syntax extension and a runtime to manipulate XML. It was promoted by Mozilla but failed to become mainstream and is now deprecated. JSX was inspired by E4X. In this article, I'm going to go over all the features of E4X and explain the design decisions behind JSX.
> E4X (ECMAScript for XML) is a JavaScript syntax extension and a runtime to manipulate XML. It was promoted by Mozilla but failed to become mainstream and is now deprecated. JSX was inspired by E4X. In this article, I'm going to go over all the features of E4X and explain the design decisions behind JSX.
>
> **Historical Context**
>
> E4X has been created in 2002 by John Schneider. This was the golden age of XML where it was being used for everything: data, configuration files, code, interfaces (DOM) ... E4X was first implemented inside of Rhino, a Javascript implementation from Mozilla written in Java.
> E4X has been created in 2002 by John Schneider. This was the golden age of XML where it was being used for everything: data, configuration files, code, interfaces (DOM) ... E4X was first implemented inside of Rhino, a JavaScript implementation from Mozilla written in Java.
>
> [Continue reading ...](http://blog.vjeux.com/2013/javascript/jsx-e4x-the-good-parts.html)
@@ -115,4 +115,3 @@ var MyComponent = React.createClass({
## Random Tweet
<center><blockquote class="twitter-tweet" lang="en"><p>I may be starting to get annoying with this, but ReactJS is really exciting. I truly feel the virtual DOM is a game changer.</p>&mdash; Eric Florenzano (@ericflo) <a href="https://twitter.com/ericflo/statuses/413842834974732288">December 20, 2013</a></blockquote></center>

View File

@@ -1,11 +1,11 @@
---
title: "React Chrome Developer Tools"
author: Sebastian Markbåge
author: sebmarkbage
---
With the new year, we thought you'd enjoy some new tools for debugging React code. Today we're releasing the [React Developer Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi), an extension to the Chrome Developer Tools. [Download them from the Chrome Web Store](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi).
<figure><iframe width="560" height="315" src="//www.youtube.com/embed/Cey7BS6dE0M" frameborder="0" allowfullscreen></iframe></figure>
<figure><iframe width="100%" height="315" src="//www.youtube-nocookie.com/embed/Cey7BS6dE0M" frameborder="0" allowfullscreen></iframe></figure>
You will get a new tab titled "React" in your Chrome DevTools. This tab shows you a list of the root React Components that are rendered on the page as well as the subcomponents that each root renders.
@@ -15,4 +15,3 @@ When you inspect a DOM element using the regular Elements tab, you can switch ov
<figure>[![](/react/img/blog/react-dev-tools.jpg)](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi)</figure>
We hope these tools will help your team better understand your component hierarchy and track down bugs. We're very excited about this initial launch and appreciate any feedback you may have. As always, we also accept [pull requests on GitHub](https://github.com/facebook/react-devtools).

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #14"
author: Vjeux
author: vjeux
---
The theme of this first round-up of 2014 is integration. I've tried to assemble a list of articles and projects that use React in various environments.
@@ -13,7 +13,7 @@ React is only one-piece of your web application stack. [Mark Lussier](https://gi
>
> I encourage you to fork, and make it right and submit a pull request!
>
> My current opinion is using tools like Grunt, Browserify, Bower and mutiple grunt plugins to get the job done. I also opted for Zepto over jQuery and the Flatiron Project's Director when I need a router. Oh and for the last little bit of tech that makes you mad, I am in the SASS camp when it comes to stylesheets
> My current opinion is using tools like Grunt, Browserify, Bower and multiple grunt plugins to get the job done. I also opted for Zepto over jQuery and the Flatiron Project's Director when I need a router. Oh and for the last little bit of tech that makes you mad, I am in the SASS camp when it comes to stylesheets
>
> [Check it out on GitHub...](https://github.com/intabulas/reactjs-baseline)
@@ -28,7 +28,7 @@ React is only one-piece of your web application stack. [Mark Lussier](https://gi
## React Rails Tutorial
[Selem Delul](http://selem.im) bundled the [React Tutorial](http://facebook.github.io/react/docs/tutorial.html) into a rails app. This is a good example on how to get started with a rails project.
[Selem Delul](http://selem.im) bundled the [React Tutorial](/react/tutorial/tutorial.html) into a rails app. This is a good example on how to get started with a rails project.
> ```
git clone https://github.com/necrodome/react-rails-tutorial
@@ -45,7 +45,7 @@ rails s
[Eldar Djafarov](http://eldar.djafarov.com/) implemented a mixin to link Backbone models to React state and a small abstraction to write two-way binding on-top.
<iframe width="100%" height="300" src="https://jsfiddle.net/djkojb/qZf48/13/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
[View code on JSFiddle](http://jsfiddle.net/djkojb/qZf48/13/)
[Check out the blog post...](http://eldar.djafarov.com/2013/11/reactjs-mixing-with-backbone/)
@@ -71,8 +71,7 @@ rails s
[Thomas Aylott](http://subtlegradient.com/) implemented an API that looks like Web Components but using React underneath.
<iframe width="100%" height="300" src="https://jsfiddle.net/SubtleGradient/ue2Aa/embedded/html,js,result" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
[View the source on JSFiddle...](http://jsfiddle.net/SubtleGradient/ue2Aa)
## React vs Angular

View File

@@ -1,9 +1,9 @@
---
title: "Community Round-up #15"
author: Jonas Gebhardt
author: jgebhardt
---
Interest in React seems to have surged ever since David Nolen ([@swannodette](https://twitter.com/swannodette))'s introduction of [Om](https://github.com/swannodette/om) in his post ["The Future of Javascript MVC Frameworks"](http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/).
Interest in React seems to have surged ever since David Nolen ([@swannodette](https://twitter.com/swannodette))'s introduction of [Om](https://github.com/swannodette/om) in his post ["The Future of JavaScript MVC Frameworks"](https://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/).
In this React Community Round-up, we are taking a closer look at React from a functional programming perspective.
@@ -15,13 +15,13 @@ To start things off, Eric Normand ([@ericnormand](https://twitter.com/ericnorman
> [Read the full post...](http://www.lispcast.com/react-another-level-of-indirection)
## Reagent: Minimalistic React for ClojureScript
Dan Holmsand ([@holmsand](https://twitter.com/holmsand)) created [Reagent](http://holmsand.github.io/reagent/), a simplistic ClojureScript API to React.
Dan Holmsand ([@holmsand](https://twitter.com/holmsand)) created [Reagent](https://holmsand.github.io/reagent/), a simplistic ClojureScript API to React.
> It allows you to define efficient React components using nothing but plain ClojureScript functions and data, that describe your UI using a Hiccup-like syntax.
>
> The goal of Reagent is to make it possible to define arbitrarily complex UIs using just a couple of basic concepts, and to be fast enough by default that you rarely have to care about performance.
>
> [Check it out on Github...](http://holmsand.github.io/reagent/)
> [Check it out on GitHub...](https://holmsand.github.io/reagent/)
## Functional DOM programming
@@ -34,7 +34,7 @@ React's one-way data-binding naturally lends itself to a functional programming
Pete also explains this in detail at his #MeteorDevShop talk (about 30 Minutes):
<iframe width="560" height="315" src="//www.youtube.com/embed/Lqcs6hPOcFw?start=2963" frameborder="0" allowfullscreen></iframe>
<iframe width="100%" height="315" src="//www.youtube-nocookie.com/embed/Lqcs6hPOcFw?start=2963" frameborder="0" allowfullscreen></iframe>
@@ -106,7 +106,7 @@ In a separate post, Dyrkell breaks down [how to build a binary clock component](
[[Demo](http://www.lexicallyscoped.com/demo/binclock/)] [[Code](https://github.com/fredyr/binclock/blob/master/src/binclock/core.cljs)]
### Time Travel: Implementing undo in Om
David Nolen shows how to leverage immutable data structures to [add global undo](http://swannodette.github.io/2013/12/31/time-travel/) functionality to an app using just 13 lines of ClojureScript.
David Nolen shows how to leverage immutable data structures to [add global undo](https://swannodette.github.io/2013/12/31/time-travel/) functionality to an app using just 13 lines of ClojureScript.
### A Step-by-Step Om Walkthrough

View File

@@ -1,6 +1,6 @@
---
title: "Community Round-up #16"
author: Jonas Gebhardt
author: jgebhardt
---
There have been many posts recently covering the <i>why</i> and <i>how</i> of React. This week's community round-up includes a collection of recent articles to help you get started with React, along with a few posts that explain some of the inner workings.
@@ -9,7 +9,7 @@ There have been many posts recently covering the <i>why</i> and <i>how</i> of Re
## React in a nutshell
Got five minutes to pitch React to your coworkers? John Lynch ([@johnrlynch](https://twitter.com/johnrlynch)) put together [this excellent and refreshing slideshow](http://slid.es/johnlynch/reactjs):
<iframe src="//slid.es/johnlynch/reactjs/embed" width="576" height="420" scrolling="no" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
<iframe src="//slid.es/johnlynch/reactjs/embed" width="100%" height="420" scrolling="no" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
@@ -54,13 +54,13 @@ It's great to see the React community expand internationally. [This site](http:/
### Egghead.io video tutorials
Joe Maddalone ([@joemaddalone](https://twitter.com/joemaddalone)) of [egghead.io](https://egghead.io/) created a series of React video tutorials, such as [this](http://www.youtube.com/watch?v=rFvZydtmsxM&feature=youtu.be&a) introduction to React Components. [[part 1](http://www.youtube.com/watch?v=rFvZydtmsxM&feature=youtu.be&a)], [[part 2](http://www.youtube.com/watch?v=5yvFLrt7N8M)]
Joe Maddalone ([@joemaddalone](https://twitter.com/joemaddalone)) of [egghead.io](https://egghead.io/) created a series of React video tutorials, such as [this](http://www.youtube-nocookie.com/v/rFvZydtmsxM) introduction to React Components. [[part 1](http://www.youtube-nocookie.com/v/rFvZydtmsxM)], [[part 2](http://www.youtube-nocookie.com/v/5yvFLrt7N8M)]
### "React: Finally, a great server/client web stack"
Eric Florenzano ([@ericflo](https://twitter.com/ericflo)) sheds some light on what makes React perfect for server rendering:
> [...] the ideal solution would fully render the markup on the server, deliver it to the client so that it can be shown to the user instantly. Then it would asynchronously load some Javascript that would attach to the rendered markup, and invisibly promote the page into a full app that can render its own markup. [...]
> [...] the ideal solution would fully render the markup on the server, deliver it to the client so that it can be shown to the user instantly. Then it would asynchronously load some JavaScript that would attach to the rendered markup, and invisibly promote the page into a full app that can render its own markup. [...]
> What I've discovered is that enough of the pieces have come together, that this futuristic-sounding web environment is actually surprisingly easy to do now with React.js.

Some files were not shown because too many files have changed in this diff Show More