Commit Graph

658 Commits

Author SHA1 Message Date
Pete Hunt 526be1570e Fix memory leak with renderComponentToString()
This is leaking memory. Move event registration to mount time.
2014-01-24 18:23:51 -08:00
Jeff Morrison ce92efefc0 Codemod for whitespace change
This codemods to shim any old-style JSX whitespace so that it renders the same as before.
Basically it sticks explicit `{' '}` spaces in where spaces are no longer implicit.
2014-01-23 13:52:38 -08:00
Paul Shen 4a5a6ad733 Transfer the key prop in cloneWithProps
`cloneWithProps` uses `ReactPropTransferer`, which ignores the `key`
prop. See https://github.com/facebook/react/pull/713

However, this is not the case with `cloneWithProps` because when someone
is cloning a component and provides a key, they mean for the clone to
take it.
2014-01-23 13:48:39 -08:00
Pete Hunt 62b52e008e Don't reconcile children unneccessarily
We've talked about this perf optimization for a while now. This prevents us from re-reconciling components that are above the component being
reconciled in the owner hierarchy.
2014-01-23 13:48:36 -08:00
Andreas Svensson c16b5659a0 Implement stricter whitespace rules 2014-01-22 21:00:10 +01:00
Pete Hunt 0af9c3ebe7 Merge pull request #748 from spicyj/private-getvalue
Change LinkedValueMixin to a util class
2014-01-22 10:54:13 -08:00
Ben Alpert 95a80591dd Change LinkedValueMixin to a util class
This makes it clear that .getValue() is not a public API.
2014-01-22 09:57:59 -08:00
Paul O’Shannessy f0b01d0faa Merge pull request #885 from syranide/natext
Remove unnecessary 'NA'-fallback for getTextContentAccessor()
2014-01-21 17:22:48 -08:00
Paul O’Shannessy 1d1a790df0 Merge pull request #901 from syranide/80chars
Fix lines longer than 80 chars
2014-01-21 17:09:24 -08:00
cpojer 8b12670ef9 Perf Test for the propTypes change. 2014-01-21 14:05:38 -08:00
cpojer 2cac321b27 Change ReactPropTypes invariant's to console.warn. 2014-01-21 14:05:33 -08:00
Pete Hunt e3248efe92 Merge pull request #934 from syranide/minid
Shortened generated "data-reactid"
2014-01-20 13:26:42 -08:00
Andreas Svensson 559cd46181 Shortened generated "data-reactid" 2014-01-20 22:03:25 +01:00
Cheng Lou 4b392f19a8 Merge pull request #861 from andrewdavey/unitless-css-props
Unitless css props
2014-01-17 21:49:24 -08:00
Nick Thompson 0d2510ad9c Add span property to React DefaultDOMPropertyConfig
So that the `span` attribute on <colgroup> tags isn't swallowed by
React.
2014-01-17 17:17:31 -08:00
Tim Yung 79beb71d69 Fix ChangeEventPlugin Dependencies
When React moved to attaching top-level event listeners on-demand, not all of the dependencies for `ChangeEventPlugin` were set. This led to `onChange` events not firing under certain circumstances. For example, listening to `onChange` on a checkbox will not work because it relies on `onClick` (unless something else on the page was listening to `onClick`).
2014-01-17 17:17:31 -08:00
Sebastian Markbåge a05cef4a40 Merge pull request #852 from spicyj/no-store-mount-image
Don't store mount image on component instance
2014-01-17 15:44:57 -08:00
Paul O’Shannessy ef4bda326e Merge pull request #822 from chenglou/setstate
better error for bad setState arguments and mergeHelpers
2014-01-17 13:05:06 -08:00
Jeff Morrison 89819de4f2 Kill last remaining use of $ in React
It's only used here, so let's just inline this and get rid of the additional module.
Also it will make people like this guy happy: https://github.com/facebook/react/issues/900

(of course he might be even more happy if he wasn't using MS TFS....but that's a much bigger diff, and not one I can write...)
2014-01-15 16:46:11 -08:00
Alex Zelenskiy b5f905523b Adding 'scope' to list of standard html attributes in react
scope is used for screen readers, so it would be nice to have. Documentation here: http://www.w3.org/TR/WCAG20-TECHS/H63
2014-01-15 16:44:28 -08:00
Isaac Salier-Hellendag 4bdea53d6e Add topContextMenu to the event dependencies for SelectEventPlugin 2014-01-15 16:43:41 -08:00
Christopher Chedeau 9ade3c26d3 Introduce PropTypes.shape
This diff introduces PropType.shape which lets you type an object. PropType.object was already defined and since it isn't a function I couldn't really overload the meaning to also accept a type list. Instead of doing hackery, I decided to name it `shape`.

An example where this could be used is style:

```
  propTypes: {
    style: PropTypes.shape({
      color: PropStyle.string,
      fontSize: PropTypes.number
    })
  }
```
2014-01-15 16:42:04 -08:00
Cheng Lou 0906d282ec throw when using component/component class as mixin
throw invariant error to help people new to mixins, so that they don't get misled into trying to mixin components into another component
2014-01-15 16:41:45 -08:00
Pete Hunt 615dedc3e2 Merge pull request #881 from spicyj/checkbox-not-checked
"checkbox" not "checked"
2014-01-15 11:04:36 -08:00
Andreas Svensson fd02f2c1cd Fix lines longer than 80 chars 2014-01-15 15:19:14 +01:00
Ben Alpert 091534c376 Wrap _performComponentUpdate call in try/finally
Fixes #208. If you attempt a state update with a bad state then the render will fail (and the DOM won't change) but if you switch back to a valid state later then it'll rerender properly.
2014-01-14 20:30:07 -08:00
Ben Alpert d96c6914c7 Make findComponentRoot faster with more nodeCache
This is an alternative, less-invasive, fix for #891.

Test Plan:
On http://jsbin.com/OqOJidIQ/2/edit, got timings like

[75, 56, 30, 36, 27, 27, 28, 32, 27, 27, 28, 31]

instead of the old

[75, 729, 46, 32, 28, 34, 26, 27, 27, 30, 26, 26].

I also added a counter to getID and saw it was called 3014 times instead of the old 636264. (3014 is the number of nodes (3000) plus 3 calls that happen for the initial render and 1 for each of the 11 renders after that.)
2014-01-14 18:32:40 -08:00
cpojer c885abbf21 Allow null return values for functions to-be-merged. 2014-01-14 13:05:31 -08:00
Andreas Svensson 6c7697a1a9 Remove unnecessary 'NA'-fallback for getTextContentAccessor() 2014-01-14 11:41:23 +01:00
Pete Hunt d9b959884b Merge pull request #878 from spicyj/mount-unmounted
Improve "Can only mount when umounted" message
2014-01-13 14:38:07 -08:00
Ben Alpert 5857eb884c "checkbox" not "checked"
I can only assume this was a typo.
2014-01-13 14:28:56 -08:00
Ben Alpert 2f027fce2d Improve "Can only mount when umounted" message 2014-01-13 13:26:24 -08:00
Isaac Salier-Hellendag ad70848e80 Use fallback data for composition events if necessary 2014-01-13 13:15:17 -08:00
Pete Hunt c6f91ee6e8 Merge pull request #864 from spicyj/transition-key-set-faster
Rewrite mergeKeySets to be O(n) instead of O(n^3)
2014-01-13 12:50:42 -08:00
Ben Alpert 1825f30353 Always call callback in component context
This brings these other call sites in line with line 67 of ReactUpdates.js:

callbacks[j].call(component);
2014-01-13 08:59:48 -08:00
Cheng Lou 3d47177596 fix propTypes.any.weak test
accidentally copied over `.string.weak` and didn't change it
2014-01-12 20:47:16 -08:00
Paul O’Shannessy 59cba3e9f7 Add missing semicolon I missed in #865 2014-01-11 23:29:35 -08:00
Paul O’Shannessy 6ebb1cb3ee Merge pull request #865 from jergason/link-to-docs-on-keys-warning
link to docs in unique key prop warning
2014-01-11 23:21:46 -08:00
Jamison Dance 972acb4581 link to docs in unique key prop warning 2014-01-11 22:17:06 -07:00
Paul O'Shannessy 2c335b0e57 Quieter devtools upsell
Check that we're not in a iframe before upselling.
2014-01-10 21:11:33 -08:00
Cheng Lou d14ce00dc3 add React.PropTypes.any
add the ability for React propTypes to accept an `any` type: `someProp: React.PropTypes.any`.
This is more useful when combined with `.isRequired`, to enforce that _something_ is passed:
`someProp: React.PropTypes.any.isRequired`
2014-01-10 21:11:11 -08:00
Pete Hunt d8a8f6a881 Upsell dev tools
People probably don't know these exist. Add some information about React
dev mode as well as a link to the developer tools when using Chrome.
2014-01-10 21:10:54 -08:00
Tim Yung bcacd17f8b Better LinkedValueMixin Warning
Input elements of type `checkbox`, `hidden`, or `radio` can have a `value` without `onChange`. Also, if the input is `disabled`, who cares that it doesn't have an `onChange`?
2014-01-10 21:10:01 -08:00
Tim Yung f71dbab31a Fix Undefined ownerDocument Fatal in IE8
This fixes a JS fatal in IE8 when `topLevelTarget.ownerDocument` is sometimes undefined.
2014-01-10 21:07:23 -08:00
Tim Yung 73d9d286ee Fix EnterLeaveEventPlugin Test in jsdom
This is a follow-up to #803.

In jsdom (used for internal testing), `<iframe>` does not properly create a default document. This makes the `EnterLeaveEventPlugin` tests work for jsdom, too.

Open source does not need this because it uses PhantomJS.
2014-01-10 21:04:39 -08:00
Paul O’Shannessy 49d6d2169d Remove trailing whitespace 2014-01-10 21:04:39 -08:00
Ben Alpert 1efb14bcf6 Rewrite mergeKeySets to be O(n) instead of O(n^3) 2014-01-10 15:31:15 -08:00
Andrew Davey d6afb5285e CSS column-count property is unitless 2014-01-10 19:12:58 +00:00
Andrew Davey 423380f9c3 Unitless CSS flex properties 2014-01-10 11:16:06 +00:00
Andrew Davey b70c3ef4bb Refactor unit test 2014-01-10 11:16:06 +00:00