mirror of
https://github.com/status-im/react-native.git
synced 2025-02-05 14:13:26 +00:00
[ReactNative] Fix secure text entry
Summary: @public `validAttributes` strikes again. Test Plan: secure box in example is actually secure
This commit is contained in:
parent
6c6b8bec7e
commit
3102fc5df9
@ -19,7 +19,6 @@ var Platform = require('Platform');
|
|||||||
var PropTypes = require('ReactPropTypes');
|
var PropTypes = require('ReactPropTypes');
|
||||||
var React = require('React');
|
var React = require('React');
|
||||||
var ReactChildren = require('ReactChildren');
|
var ReactChildren = require('ReactChildren');
|
||||||
var ReactNativeViewAttributes = require('ReactNativeViewAttributes');
|
|
||||||
var StyleSheet = require('StyleSheet');
|
var StyleSheet = require('StyleSheet');
|
||||||
var Text = require('Text');
|
var Text = require('Text');
|
||||||
var TextInputState = require('TextInputState');
|
var TextInputState = require('TextInputState');
|
||||||
@ -29,36 +28,7 @@ var TouchableWithoutFeedback = require('TouchableWithoutFeedback');
|
|||||||
var createReactNativeComponentClass = require('createReactNativeComponentClass');
|
var createReactNativeComponentClass = require('createReactNativeComponentClass');
|
||||||
var emptyFunction = require('emptyFunction');
|
var emptyFunction = require('emptyFunction');
|
||||||
var invariant = require('invariant');
|
var invariant = require('invariant');
|
||||||
var merge = require('merge');
|
var requireNativeComponent = require('requireNativeComponent');
|
||||||
|
|
||||||
var RCTTextViewAttributes = merge(ReactNativeViewAttributes.UIView, {
|
|
||||||
autoCorrect: true,
|
|
||||||
autoCapitalize: true,
|
|
||||||
clearTextOnFocus: true,
|
|
||||||
color: true,
|
|
||||||
editable: true,
|
|
||||||
fontFamily: true,
|
|
||||||
fontSize: true,
|
|
||||||
fontStyle: true,
|
|
||||||
fontWeight: true,
|
|
||||||
keyboardType: true,
|
|
||||||
returnKeyType: true,
|
|
||||||
enablesReturnKeyAutomatically: true,
|
|
||||||
secureTextEntry: true,
|
|
||||||
selectTextOnFocus: true,
|
|
||||||
mostRecentEventCounter: true,
|
|
||||||
placeholder: true,
|
|
||||||
placeholderTextColor: true,
|
|
||||||
text: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
var RCTTextFieldAttributes = merge(RCTTextViewAttributes, {
|
|
||||||
caretHidden: true,
|
|
||||||
enabled: true,
|
|
||||||
clearButtonMode: true,
|
|
||||||
clearTextOnFocus: true,
|
|
||||||
selectTextOnFocus: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
var onlyMultiline = {
|
var onlyMultiline = {
|
||||||
onSelectionChange: true,
|
onSelectionChange: true,
|
||||||
@ -82,16 +52,14 @@ var AndroidTextInputAttributes = {
|
|||||||
testID: true,
|
testID: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
var viewConfigIOS = {
|
|
||||||
uiViewClassName: 'RCTTextField',
|
|
||||||
validAttributes: RCTTextFieldAttributes,
|
|
||||||
};
|
|
||||||
|
|
||||||
var viewConfigAndroid = {
|
var viewConfigAndroid = {
|
||||||
uiViewClassName: 'AndroidTextInput',
|
uiViewClassName: 'AndroidTextInput',
|
||||||
validAttributes: AndroidTextInputAttributes,
|
validAttributes: AndroidTextInputAttributes,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var RCTTextView = requireNativeComponent('RCTTextView', null);
|
||||||
|
var RCTTextField = requireNativeComponent('RCTTextField', null);
|
||||||
|
|
||||||
type DefaultProps = {
|
type DefaultProps = {
|
||||||
bufferDelay: number;
|
bufferDelay: number;
|
||||||
};
|
};
|
||||||
@ -164,7 +132,7 @@ var TextInput = React.createClass({
|
|||||||
*/
|
*/
|
||||||
keyboardType: PropTypes.oneOf([
|
keyboardType: PropTypes.oneOf([
|
||||||
// Cross-platform
|
// Cross-platform
|
||||||
'default',
|
'default',
|
||||||
'numeric',
|
'numeric',
|
||||||
'email-address',
|
'email-address',
|
||||||
// iOS-only
|
// iOS-only
|
||||||
@ -296,7 +264,7 @@ var TextInput = React.createClass({
|
|||||||
*/
|
*/
|
||||||
mixins: [NativeMethodsMixin, TimerMixin],
|
mixins: [NativeMethodsMixin, TimerMixin],
|
||||||
|
|
||||||
viewConfig: ((Platform.OS === 'ios' ? viewConfigIOS :
|
viewConfig: ((Platform.OS === 'ios' ? RCTTextField.viewConfig :
|
||||||
(Platform.OS === 'android' ? viewConfigAndroid : {})) : Object),
|
(Platform.OS === 'android' ? viewConfigAndroid : {})) : Object),
|
||||||
|
|
||||||
isFocused: function(): boolean {
|
isFocused: function(): boolean {
|
||||||
@ -577,16 +545,6 @@ var styles = StyleSheet.create({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var RCTTextView = createReactNativeComponentClass({
|
|
||||||
validAttributes: RCTTextViewAttributes,
|
|
||||||
uiViewClassName: 'RCTTextView',
|
|
||||||
});
|
|
||||||
|
|
||||||
var RCTTextField = createReactNativeComponentClass({
|
|
||||||
validAttributes: RCTTextFieldAttributes,
|
|
||||||
uiViewClassName: 'RCTTextField',
|
|
||||||
});
|
|
||||||
|
|
||||||
var AndroidTextInput = createReactNativeComponentClass({
|
var AndroidTextInput = createReactNativeComponentClass({
|
||||||
validAttributes: AndroidTextInputAttributes,
|
validAttributes: AndroidTextInputAttributes,
|
||||||
uiViewClassName: 'AndroidTextInput',
|
uiViewClassName: 'AndroidTextInput',
|
||||||
|
@ -35,6 +35,7 @@ var createReactNativeComponentClass = function(
|
|||||||
this.previousFlattenedStyle = null;
|
this.previousFlattenedStyle = null;
|
||||||
};
|
};
|
||||||
Constructor.displayName = viewConfig.uiViewClassName;
|
Constructor.displayName = viewConfig.uiViewClassName;
|
||||||
|
Constructor.viewConfig = viewConfig;
|
||||||
Constructor.prototype = new ReactNativeBaseComponent(viewConfig);
|
Constructor.prototype = new ReactNativeBaseComponent(viewConfig);
|
||||||
Constructor.prototype.constructor = Constructor;
|
Constructor.prototype.constructor = Constructor;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user