Commit Graph
206 Commits
Author SHA1 Message Date
Mouad Debbar 97dbada03d Up-to-date React.Children
Make sure we actually include `.count`
2014-07-14 15:01:44 -07:00
Paul O’Shannessy 0f9cec2e78 0.11.0-rc1 2014-07-12 19:50:45 -07:00
Paul O’Shannessy 2b0e51bdba Add String.prototype.trim to polyfill check
Also shortens the URL so it fits on 1 line
2014-07-11 10:36:38 -07:00
Ben Alpert 70bf3e1306 Give useful error when using two copies of React
If we don't error here, we end up with a confusing error later on in this.getDOMNode() where ReactMount doesn't have the proper container registered in its object.
2014-07-03 14:20:31 -07:00
Paul O'Shannessy 5b17e75707 Support more properties for image maps
Supporting the `<area>` tag is pretty useless if we don't support the necessary properties.
2014-06-30 20:54:44 -07:00
Sebastian Markbage ef67406272 Add simple React.createDescriptor hook
This is the minimal runtime change we need to switch the JSX syntax to resolve
to React.createDescriptor(...)
2014-06-26 15:42:18 -07:00
Sebastian Markbage d0719a5ea4 Preparing to move defaultProps resolution and type validation to the descriptor
This copies the propType and contextType validation to a wrapper around the
descriptor factory. By doing the validation early, we make it easier to track
down bugs. It also prepares for static type checking which should be done at the
usage site.

This validation is not yet active and is just logged using monitorCodeUse. This
will allow us to clean up callsites which would fail this new type of
validation.

I chose to copy the validation of abstracting it out since this is just an
intermediate step to avoid spamming consoles. This makes more a much cleaner
diff review/history. The original validation in the instance will be deleted as
soon as we can turn on the warnings.

Additionally, getDefaultProps are moved to become a static function which is
only executed once. It should be moved to statics but we don't have a
convenient way to merge mixins in statics right now. Deferring to ES6 classes.

This is still a breaking change since you can return an object or array from
getDefaultProps, which later gets mutated and now the shared instance is
mutated. Mutating an object that is passed into you from props is highly
discouraged and likely to lead to subtle bugs anyway. So I'm not too worried.

The defaultProps will later be resolved in the descriptor factory. This will
enable a perf optimizations where we don't create an unnecessary object
allocation when you use default props. It also means that ReactChildren.map
has access to resolved properties which gives them consistent behavior whether
or not the default prop is specified.
2014-06-26 15:40:12 -07:00
Paul O’Shannessy 0cf686fe1e Merge pull request #1738 from cassus/master
Add missing markerStart, markerMid, markerEnd SVG attributes
2014-06-26 15:24:30 -07:00
Paul O’Shannessy 3581a92fc3 Merge pull request #1642 from ryanseddon/trimCSSValues
Correctly trim strings for css properties
2014-06-25 22:02:54 -07:00
Paul O’Shannessy 295da0a795 Merge pull request #1741 from spicyj/mount-unused
Remove unused properties from ReactMount
2014-06-25 21:24:42 -07:00
Ben Alpert b8ad5a23c6 Remove unused properties from ReactMount
(useTouchEvents lives in EventPluginUtils.)

Test Plan: jest
2014-06-24 22:03:43 -07:00
Cheng Lou d52bebd07b Merge pull request #1716 from somethingkindawierd/master
Removes value attribute from rendered html of textarea
2014-06-24 19:14:19 -07:00
Jon Beebe e077dd40eb Adds empty onChange handler to textarea test 2014-06-24 07:26:07 -05:00
Cassus Adam Banko 30705f794c Add missing markerStart, markerMid, markerEnd SVG attributes 2014-06-24 11:17:34 +02:00
Cheng Lou f81e213f41 Merge pull request #1495 from syranide/ie8noscript
Fix ReactEmptyComponent disappearing and throwing in IE8
2014-06-23 13:38:36 -07:00
Ryan Seddon 2bff5c5c7e Correctly trim strings for css properties
* If a unitless value is passed with a space it'll return `1 px`
2014-06-23 09:43:50 +10:00
petehunt c33cceb466 Expose React.addons.Perf 2014-06-20 17:55:48 -04:00
Paul O’Shannessy f0fc42af77 Merge pull request #1464 from spicyj/style-esc
Don't double-escape style names
2014-06-20 12:12:18 -07:00
Jonas Enlund 0377ec579e Added missing SVG attributes: fill-opacity, font-family, font-size, opacity, stroke-opacity.
Closes #1557
2014-06-20 12:45:31 -04:00
Josh Bassett 11486f1b31 Add 'patternContentUnits' to SVG attributes.
Closes #1702
2014-06-20 12:45:23 -04:00
Nate Hunzaker 3f29d5d6cb Add support for patternUnits attribute.
The patternUnits attribute defines how a pattern's coordinate system is
defined (x, y, width, height). This is particularly important when using
repeatable patterns in SVG. This commit adds this attribute to the lists
of known properties.

Closes #1548
2014-06-20 11:32:31 -04:00
Brandon Bloom aebb3261ee Add support for SVG ellipse elements.
Closes #1675
2014-06-20 11:29:19 -04:00
Andreas Svensson b36e05b0af Fix ReactEmptyComponent disappearing and throwing in IE8 2014-06-20 10:08:49 +02:00
Ben Newman 4cef56d73b Fix tests broken by undefined window references in ReactEventListener.
This test breakage blames to e1c2d02fdd.
2014-06-19 15:32:45 -04:00
Jon Beebe b9c132e58a Removes value from rendered attributes of textarea 2014-06-19 07:14:49 -05:00
Ben Alpert 52127dd7cf Remove unnecessary topLevelTypes indirection
topLevelTypes is a key mirror, so dependency and topLevelType are always the same here.
2014-06-16 12:18:19 -07:00
Pete Hunt e1c2d02fdd Create ReactEventListener
Per our discussion friday, this creates ReactEventListener and renames variables to use the "handle"
nomenclature.
2014-06-14 20:38:45 -07:00
Tim Yung 431155d2e2 Revert #1536
It's causing issues in product code. Reverting until it can be
investigated further.
2014-06-14 20:36:07 -07:00
Kunal Mehta 0f7423f31d Merge pull request #1661 from spicyj/test-ie10-select-multiple
Fix select switching to multiple in IE
2014-06-13 14:24:50 -07:00
Cheng Lou 303a719f92 Merge pull request #1658 from spicyj/test-ie10-submit-label
Fix submit-button value test in IE10
2014-06-11 13:44:27 -07:00
Cheng Lou 9eff32c80c Merge pull request #1659 from spicyj/test-ie10-iframe
Fix EnterLeaveEventPlugin-test in IE10
2014-06-11 13:44:16 -07:00
Daniel Gasienica 7c2dec5bd3 Prevent null reference access when unsetting styles 2014-06-10 13:33:32 -07:00
Ben Alpert eaa68b8e6b Fix select switching to multiple in IE
This one was an actual behavioral bug rather than a bug with the tests; our intention was that the first element from the `defaultValue` array would remain selected but IE seemed to be choosing the last one instead. Now we set the value for uncontrolled components in componentDidUpdate when switching from multiple to non-multiple to ensure that a consistent option gets selected.

Test Plan: Ran the ReactDOMSelect tests in jest, phantomjs, IE10, Chrome, and Firefox. Also tested an uncontrolled select manually to make sure that nothing crazy happened when switching between options.
2014-06-07 19:16:34 -07:00
Ben Alpert 5790a75622 Fix submit-button value test in IE10
Test Plan: Ran test in jest, phantomjs, IE10, Chrome, and Firefox.
2014-06-07 18:50:29 -07:00
Ben Alpert e938116549 Fix EnterLeaveEventPlugin-test in IE10
Previously this was failing because iframeDocument.body wasn't properly initialized. Creating the document this way seems to work in all environments

Test Plan: Ran the test in jest, phantomjs, IE10, Chrome, and Firefox.
2014-06-07 18:45:32 -07:00
Ben Alpert e501238c10 Fix getEventModifierState, no allocations
Alternative to #1637 that doesn't allocate on every event.

Test Plan: Crossed fingers.
2014-06-03 14:35:29 -07:00
Ben Alpert 3e34739cb9 Fix onLoad and onError on images
Fixes bug introduced in c62c2c5.

Test Plan: Tested that the onLoad event was properly triggered on an image. Didn't test onError but I can only assume that it works equally well.
2014-05-30 16:53:46 -07:00
Fred Zhao 50516585a4 Update findComponentRoot and processUpdates warnings for SVG
I ran into a really difficult-to-debug issue with a React app with SVG
elements. Christopher sat down with me for a while and we finally figured out
that the browser was moving non-SVG elements out of a parent `<svg>` node which
triggered the `processUpdates()` invariant. This updates the error message
thrown from there to include this scenario in the possible issues list.
2014-05-28 18:19:49 -07:00
Paul O’Shannessy 0ad8cfad1a Merge pull request #1590 from spicyj/svg-classname
Handle className properly on SVG nodes
2014-05-28 10:14:59 -07:00
Timothy Yung bca1f0e352 Merge pull request #1536 from spicyj/gh-1169
Attach empty onclick listener to each node
2014-05-27 16:44:08 -04:00
Ben Alpert e096000bb5 Attach empty onclick listener to each node
Fixes #1169.

This is a more robust way of fixing what MobileSafariClickPlugin previously tried to. Now even if you don't want anything to do with touch events, click events still work properly.

Test Plan: Added a click handler to an `<img />` element and triggered it in the iOS simulator -- it didn't execute before.
2014-05-27 13:40:17 -07:00
Paul O'Shannessy 7a9b81ef55 remove spurios module ref
long long ago in a galaxy far away this was probably a dependency
2014-05-23 15:35:22 -07:00
Paul O'Shannessy c62c2c59bb Remove event listeners from native dom wrapper components
Not removing them resulted in leaks as we would hold on to removed nodes forever.

This really showed up with images and the load event where we would unmount and create a new img with the same react id as the old one. We properly cleared and primed the caches but we would handle the load event for both nodes. We would eventually hit an invariant in that path as we tried to handle the event for the removed node, which no longer matched the node we had in the cache.

By forcefully removing the listener, we'll avoid this problem entirely and we should leak fewer DOM nodes.
2014-05-23 11:30:19 -07:00
Ben Alpert 37f61c479e Handle className properly on SVG nodes
This strategy avoids a runtime check for every set (as opposed to using a mutation method).

Test Plan: Verify that changing className works on a div and a rect in latest Chrome, latest Firefox, IE9. Verify that the div works in IE8.
2014-05-22 20:31:04 -07:00
Ian Obermiller bf5dfc87dc Error in extractEvents
If the event is on the window object, topScroll, for instance, the topLevelTarget will not have getAttribute defined. Restore the previous `|| !topLevelTarget.attributes` check to avoid an error on every scroll.
2014-05-21 15:12:26 -07:00
Paul O’Shannessy c6309567c9 Merge pull request #1559 from spicyj/gh-1376
Allow unmounting title tag
2014-05-20 11:23:36 -07:00
Paul O’Shannessy e63eab111c Merge pull request #1553 from givingstage/invalid_checksum_warning_spacing
Fixed spacing of invalid checksum warning
2014-05-20 11:23:19 -07:00
Ben Alpert 4e5ed8317b Switch style test to pass in jsdom
This should be testing approximately the same thing and passes in Jest.

Test Plan: Cherry-pick Jest config from #1528 and verify that running `jest`.
2014-05-19 16:56:30 -07:00
Ben Alpert 550795445e Use Object.prototype.hasOwnProperty for doc in IE8
Test Plan: Loaded ballmer-peak example in IE8 without errors and interacted with the text field.
2014-05-19 13:09:47 -07:00
Paul O’Shannessy 0c6bee049e Merge pull request #1189 from spicyj/hasown
Add hasOwnProperty checks where appropriate
2014-05-19 09:38:56 -07:00