mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 09:35:48 +00:00
18e6094cab
Summary: For some reason we're now spamming the logs everytime we render an Image because overflow is not defined in the whitelist. overflow: 'hidden' is needed for network images with cover mode. The way we currently define those is not optimal where we try to factor as many things as possible into distinct propTypes. However for Text we're not even using this but we are getting all the ones from View (which many do not apply) and remove some that aren't needed. It may be useful to cleanup this in the future but in the short term, it's better to remove this warning that doesn't have much value anyway.
74 lines
2.1 KiB
JavaScript
74 lines
2.1 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-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.
|
|
*
|
|
* @providesModule StyleSheetValidation
|
|
* @flow
|
|
*/
|
|
'use strict';
|
|
|
|
var ImageStylePropTypes = require('ImageStylePropTypes');
|
|
var ReactPropTypeLocations = require('ReactPropTypeLocations');
|
|
var TextStylePropTypes = require('TextStylePropTypes');
|
|
var ViewStylePropTypes = require('ViewStylePropTypes');
|
|
|
|
var invariant = require('invariant');
|
|
|
|
class StyleSheetValidation {
|
|
static validateStyleProp(prop, style, caller) {
|
|
if (!__DEV__) {
|
|
return;
|
|
}
|
|
if (allStylePropTypes[prop] === undefined) {
|
|
var message1 = '"' + prop + '" is not a valid style property.';
|
|
var message2 = '\nValid style props: ' +
|
|
JSON.stringify(Object.keys(allStylePropTypes).sort(), null, ' ');
|
|
styleError(message1, style, caller, message2);
|
|
}
|
|
var error = allStylePropTypes[prop](
|
|
style,
|
|
prop,
|
|
caller,
|
|
ReactPropTypeLocations.prop
|
|
);
|
|
if (error) {
|
|
styleError(error.message, style, caller);
|
|
}
|
|
}
|
|
|
|
static validateStyle(name, styles) {
|
|
if (!__DEV__) {
|
|
return;
|
|
}
|
|
for (var prop in styles[name]) {
|
|
StyleSheetValidation.validateStyleProp(prop, styles[name], 'StyleSheet ' + name);
|
|
}
|
|
}
|
|
|
|
static addValidStylePropTypes(stylePropTypes) {
|
|
for (var key in stylePropTypes) {
|
|
allStylePropTypes[key] = stylePropTypes[key];
|
|
}
|
|
}
|
|
}
|
|
|
|
var styleError = function(message1, style, caller?, message2?) {
|
|
invariant(
|
|
false,
|
|
message1 + '\n' + (caller || '<<unknown>>') + ': ' +
|
|
JSON.stringify(style, null, ' ') + (message2 || '')
|
|
);
|
|
};
|
|
|
|
var allStylePropTypes = {};
|
|
|
|
StyleSheetValidation.addValidStylePropTypes(ImageStylePropTypes);
|
|
StyleSheetValidation.addValidStylePropTypes(TextStylePropTypes);
|
|
StyleSheetValidation.addValidStylePropTypes(ViewStylePropTypes);
|
|
|
|
module.exports = StyleSheetValidation;
|