Commit Graph

927 Commits

Author SHA1 Message Date
Andreas Svensson bf7826c68d Normalize and polyfill KeyboardEvent further, also MouseEvent+TouchEvent
KeyboardEvent now normalizes "charCode", "keyCode", "which" across all browsers
KeyboardEvent has partial "key"-support for KeyDown/KeyUp and full "key"-support for KeyPress.
KeyboardEvent, MouseEvent and TouchEvent now has "getModifierState", polyfill when not implemented.
2014-05-01 16:56:43 +02:00
Ben Alpert d5a4d29532 Fix some linty things 2014-04-28 23:30:05 -03:00
Ben Alpert 9dbbaf12bf ReactTransitionGroup: Fix changing to null child
Fixes #1457.

Test Plan: grunt fasttest
2014-04-28 20:52:42 -03:00
Paul O’Shannessy d657479a9d Merge branch 'spicyj-nested-render' from #1402 2014-04-27 13:15:58 -07:00
Cheng Lou 8b23a7e699 Warn instead of throw for nested render calls 2014-04-27 13:15:42 -07:00
Paul O’Shannessy 28820e0adb Merge pull request #887 from syranide/textdocument
Test innerText/textContent on document.documentElement instead
2014-04-24 16:10:13 -07:00
Andreas Svensson a9a398b15a Test innerText/textContent on document.documentElement instead 2014-04-24 23:51:05 +02:00
Andreas Svensson 9ee1d92b52 Remove unnecessary tests from insertChildAt and inline it instead 2014-04-24 23:44:41 +02:00
Isaac Salier-Hellendag cc292c1e22 Fix IE11 collapsed ranges in ReactDOMSelection
In IE10/11, it is apparently possible to have a Selection or Range object that has the following properties:

  - `anchorNode` === `focusNode` (Selection) or `startContainer` === `endContainer` (Range)
  - `anchorOffset` === `focusOffset` (Selection) or `startOffset` === `endOffset` (Range)
  - `isCollapsed` === `false` (Selection) or `collapsed` === `false` (Range)

As defined in http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html, this doesn't really make sense. Since the nodes and offsets are the same, the "collapsed" value should be `true`.

Moreover, when calling `selection.toString()` in this case, it appears that the entire text contents of `body` -- including `<script>` tag contents -- are considered within the selection. I thought maybe the selected nodes were missing from the DOM or something, but no, they're there.

Sidestep all of this in `ReactDOMSelection` by calculating the `collapsed` property manually and setting the selection length directly to zero if it is actually collapsed.

Side note: I think that for selection restoration on contenteditables, we shouldn't try to do this offset calculation. We should just use the structure provided natively (nodes and offsets) since we can restore using that structure as well.
2014-04-24 12:53:08 -07:00
Cheng Lou 7fa656dae9 Don't let new keys on style from transferPropsTo override old ones
Previous behavior: `transferPropsTo(<div style={{color: 'red'}} />)` would get `color` overriden if we transfer in a `style={{color: 'blue'}}`. This is inconsistent with how other props are transfered.

This simply reverses the order of arguments.

closes #1435
2014-04-23 16:44:32 -07:00
Paul O'Shannessy 3d605da15f Split DefaultDOMPropertyConfig
This makes it a little easier to add SVG properties. It also makes use of that injection that we claim is easy to use and will likely start playing a bigger part soon.

Closes #1009
2014-04-23 16:22:10 -07:00
Jan Kassens 514f5fb98b fix warnings in cloneWithProps test
Don't test refs in this case, already testing warning above
2014-04-23 14:14:45 -07:00
Jan Kassens 9e9d8dbe76 fix warnings in ReactComponentLifeCycle test
Don't use inputs to avoid warnings in tests
2014-04-23 14:14:42 -07:00
Jonas Gebhardt 01d41f6e18 better error message for React EventPlugin order check
Ran into this while inadvertently requiring multiple React versions in a separate project (`require('react');` vs `require('React');`
2014-04-21 15:42:25 -07:00
Jan Kassens 4c199daa26 fix log spew from ReactDOMTextarea test
Similar to previous but for textarea. If `value` is set, we have to also set
`onChange` to avoid warnings.
2014-04-21 15:42:00 -07:00
Jan Kassens 089146b2f8 fix log spew from ReactDOMInput test
The prop validation threw a warning that either `onChange` or `readOnly` is required. Set the `onChange` where needed.
2014-04-21 15:41:50 -07:00
Paul O'Shannessy c8933b947b unbreak server-side/web worker
We're now trying to access document directly at require time. Wrapping in a function prevented that before. But we can simply check what environment we're in first.
2014-04-20 11:44:01 -07:00
Juraj Dudak 385eb1cef1 Fixed a bug in expectRenderedChildAt
React components have _mountIndex, that looks like it is their order in DOM.
If you swap 2 elements in DOM, their order in children array isn't changed, but their _mountIndex is
2014-04-18 12:57:24 -07:00
Christoph Pojer 9a13393ce3 Remove function wrappers in DOMSelection
There is no point in doing the feature detection on every call, unless there is an IE bug where it is not sure about which support for selection it has (totally plausible).
2014-04-18 12:57:05 -07:00
Jonas Gebhardt 3a49ee7d82 Add typed ReactLink to ReactProps
Adds a PropType that checks for proper use of the ReactLink API and optionally validates the type of value passed in via the link. Basically, it's a wrapper around PropTypes.shape that hides the implementation of ReactLink.
2014-04-18 12:56:46 -07:00
Cheng Lou 0a5c22264b Make custom PropTypes return error rather than whatever
The new rule for PropTypes is that it should return an error object if validation fails, not throw, not warn.
2014-04-18 12:56:25 -07:00
Cheng Lou 4487831281 Allow false as an acceptable renderable type value
`false` is renderable.
2014-04-18 12:56:06 -07:00
Cheng Lou 3ee081b125 Merge pull request #1188 from spicyj/comp-spec-inv
Add clearer invariants to composite spec mixing
2014-04-17 12:50:29 -07:00
Cheng Lou 13f799ee8e Merge pull request #1419 from spicyj/inv-process
Add clearer invariant in processUpdates
2014-04-17 01:30:58 -07:00
Ben Alpert 945d041160 Add clearer invariant in processUpdates
The `updatedChildren[j].parentNode.removeChild(updatedChildren[j]);` line below can fail if (1) we're moving/moving the same node twice or (2) the node we're looking for is gone completely. This makes it easier to distinguish between the two cases.

Perf shouldn't be a concern here because this is DOM code and invariants are fast in comparison.

Test Plan: grunt test
2014-04-16 15:09:31 -07:00
Paul O’Shannessy b3f5e863e0 Merge pull request #1340 from matthewwithanm/download-attribute
Support download attribute properly
2014-04-15 16:30:30 -07:00
Ben Alpert cc0233dd76 Don't try to detach a detached node
Test Plan: grunt test
2014-04-15 11:27:46 -07:00
Ben Alpert c9767c2822 Guard top-level methods, not in every render call
Test Plan: grunt test
2014-04-15 00:03:02 -07:00
Matthew Dapena-Tretter 32a7a1cedb Rename "booleanish" to "overloaded boolean" 2014-04-14 23:00:25 -04:00
Cheng Lou c6df1c2dd2 Fix PropType for travis
closes #1404
2014-04-14 17:20:50 -07:00
Paul O’Shannessy 717eacdb64 Merge pull request #1183 from lrowe/patch-6
meta http-equiv attribute name
2014-04-14 17:03:16 -07:00
Cheng Lou b9c50ee8fd Merge pull request #1403 from spicyj/keyword-spacing
Make code spacing more consistent
2014-04-14 11:06:11 -07:00
Laurence Rowe b5017c26b4 meta http-equiv attribute name 2014-04-13 17:56:03 -04:00
Cheng Lou ea361e884e Merge pull request #1284 from plievone/directives-2-commands
[addons] Renamed update() directives to commands
2014-04-13 14:25:38 -07:00
Ben Alpert f923933ef3 Make code spacing more consistent
I'm a little surprised we don't have lint rules for this.
2014-04-13 14:25:11 -07:00
Cheng Lou 716dcead3a Merge pull request #1405 from spicyj/css-tests
Restore CSSTransitionGroup tests
2014-04-13 14:23:53 -07:00
Cheng Lou 3c27f8564d Merge pull request #1324 from jordwalke/executeDispatchesInOrder
Make EventPluginUtils clear dispatchIDs and dispatchListeners
2014-04-13 00:23:26 -07:00
Ben Alpert b918f7fc07 Restore CSSTransitionGroup tests
Not sure what happened here.

Test Plan: grunt test
2014-04-12 17:05:29 -07:00
Ben Alpert 382be4e9e9 Improve error for nested render calls
In the future we could consider wrapping the entire public API (renderComponent, setProps, setState, etc) in this check but this should do for now.

Test Plan: grunt test
2014-04-12 15:37:48 -07:00
Cheng Lou 775d2a3952 Merge pull request #1184 from spicyj/setInnerHTML
Consolidate innerHTML setting logic
2014-04-12 00:58:37 -07:00
Ben Alpert 534e7c06e9 Consolidate innerHTML setting logic
See https://github.com/facebook/react/commit/7eb33ef#commitcomment-5447724.
2014-04-12 00:41:54 -07:00
Cheng Lou ed1b4dbfb5 Merge pull request #1394 from spicyj/gh-1164
Add test for isValidDescriptor
2014-04-11 20:48:29 -07:00
Cheng Lou f4f6b055df Merge pull request #1190 from spicyj/custom-set-null
Remove custom attrs properly when setting to null
2014-04-11 18:02:02 -07:00
Paul O’Shannessy 3e2182fd16 Merge pull request #1231 from spicyj/gh-1227
Batch updates caused by handlers in multiple roots
2014-04-11 17:16:04 -07:00
Paul O'Shannessy 3bf12bba0d add displayName to component spec functions
closes #992
2014-04-11 16:39:45 -07:00
Cheng Lou d673e51044 Make PropType.object pass for Date and RegExp instances
8855d6153e gave more accurate error messages for date and regexp by returning 'date' and 'regexp' respectively from `getPropType`.
However, for the object primitive check, which compares the instance passed with `getPropType's` return string, `object` !== 'date'.
This adds special hanlding for those.
2014-04-11 16:39:02 -07:00
Matthew Dapena-Tretter 1c63a3a7f4 Test more falsey values 2014-04-10 09:21:56 -04:00
Matthew Dapena-Tretter 4b71cf2efe Combine valid value checks 2014-04-10 09:21:56 -04:00
Matthew Dapena-Tretter 77ae237be9 Rename CAN_BE_MINIMIZED to HAS_BOOLEANISH_VALUE 2014-04-10 09:18:39 -04:00
Matthew Dapena-Tretter 422a8d9c2c Support minimizable, non-boolean attributes
Fixes GH-1337
2014-04-10 09:17:39 -04:00