Unbreaking falsy check on style values

Style values can be the number zero which is an actual value. So we check for
null instead. The empty string case falls through.
This commit is contained in:
CommitSyncScript authored and Paul O’Shannessy committed 2013-06-13 17:49:04 -07:00
1 parent b525a0c061
commit 770ec5946a
3 files changed
+16 -6

No files matched your search

+2 -1
View File
@@ -247,7 +247,8 @@ ReactNativeComponent.Mixin = {
if (lastProp) {
// Unset styles on `lastProp` but not on `nextProp`.
for (styleName in lastProp) {
if (lastProp.hasOwnProperty(styleName) && !nextProp[styleName]) {
if (lastProp.hasOwnProperty(styleName) &&
!nextProp.hasOwnProperty(styleName)) {
styleUpdates = styleUpdates || {};
styleUpdates[styleName] = '';
}
@@ -70,7 +70,7 @@ describe('ReactNativeComponent', function() {
});
it("should update styles when mutating style object", function() {
var styles = { display: 'none', fontFamily: 'Arial' };
var styles = { display: 'none', fontFamily: 'Arial', opacity: 0 };
var stub = ReactTestUtils.renderIntoDocument(<div style={styles} />);
var stubStyle = stub.getDOMNode().style;
@@ -82,12 +82,21 @@ describe('ReactNativeComponent', function() {
stub.receiveProps({ style: styles }, transaction);
expect(stubStyle.display).toEqual('block');
expect(stubStyle.fontFamily).toEqual('Arial');
expect(stubStyle.opacity).toEqual('0');
styles.fontFamily = 'Helvetica';
stub.receiveProps({ style: styles }, transaction);
expect(stubStyle.display).toEqual('block');
expect(stubStyle.fontFamily).toEqual('Helvetica');
expect(stubStyle.opacity).toEqual('0');
styles.opacity = 0.5;
stub.receiveProps({ style: styles }, transaction);
expect(stubStyle.display).toEqual('block');
expect(stubStyle.fontFamily).toEqual('Helvetica');
expect(stubStyle.opacity).toEqual('0.5');
});
it("should update styles if initially null", function() {
+4 -4
View File
@@ -74,8 +74,10 @@ var CSSPropertyOperations = {
if (!styles.hasOwnProperty(styleName)) {
continue;
}
var styleValue = styles[styleName];
if (!styleValue) {
var styleValue = dangerousStyleValue(styleName, styles[styleName]);
if (styleValue) {
style[styleName] = styleValue;
} else {
var expansion = CSSProperty.shorthandPropertyExpansions[styleName];
if (expansion) {
// Shorthand property that IE8 won't like unsetting, so unset each
@@ -86,8 +88,6 @@ var CSSPropertyOperations = {
} else {
style[styleName] = '';
}
} else {
style[styleName] = dangerousStyleValue(styleName, styleValue);
}
}
}