Guest User

Untitled

a guest
Feb 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. /* app/components/auth/Input/index.js */
  2.  
  3. 'use strict';
  4.  
  5. import React, { Component } from 'react';
  6. import { Text, TextInput, View } from 'react-native';
  7. import PropTypes from 'prop-types';
  8.  
  9. import { HALF_OP_WHITE } from '../../../config/constants';
  10. import Line from '../../common/Line';
  11. import styles from './styles';
  12.  
  13. class Input extends Component {
  14. render() {
  15. const {
  16. children,
  17. icon,
  18. keyboardType,
  19. onChangeText,
  20. onSubmitEditing,
  21. placeholder,
  22. returnKeyType,
  23. secureTextEntry,
  24. width,
  25. value,
  26. onFocus,
  27. onBlur,
  28. isRequired,
  29. style,
  30. rightItem
  31. } = this.props;
  32. const autoCapitalize = keyboardType !== 'email-address';
  33. const paddingHorizontal = isRequired ? 2 : 2;
  34. return (
  35. <View
  36. ref={node => this._root = node}
  37. style={[styles.container, { width }, style]}
  38. >
  39. <View style={styles.subcontainer}>
  40. {icon != null && this._renderIcon(icon)}
  41. {isRequired && <Text style={styles.requiredText}>*</Text>}
  42. <TextInput
  43. ref="input"
  44. autoCapitalize={autoCapitalize ? 'words' : 'none'}
  45. autoCorrect={false}
  46. keyboardType={keyboardType}
  47. onFocus={onFocus}
  48. onBlur={onBlur}
  49. onChangeText={onChangeText}
  50. onSubmitEditing={onSubmitEditing}
  51. placeholder={placeholder}
  52. placeholderTextColor={HALF_OP_WHITE}
  53. returnKeyType={returnKeyType}
  54. secureTextEntry={secureTextEntry}
  55. style={[styles.input, { flex: 1, paddingHorizontal }]}
  56. underlineColorAndroid="transparent"
  57. value={value}
  58. />
  59. {value !== '' && rightItem}
  60. </View>
  61. <Line width={width} />
  62. </View>
  63. );
  64. }
  65.  
  66. _renderIcon(icon) {
  67. return (
  68. <View style={styles.iconView}>
  69. {icon}
  70. </View>
  71. );
  72. }
  73.  
  74. focus() {
  75. this.refs.input.focus();
  76. }
  77.  
  78. isFocused() {
  79. return this.refs.input.isFocused();
  80. }
  81. };
  82.  
  83. Input.propTypes = {
  84. keyboardType: PropTypes.string,
  85. icon: PropTypes.any,
  86. onChangeText: PropTypes.func.isRequired,
  87. onSubmitEditing: PropTypes.func.isRequired,
  88. onFocus: PropTypes.func,
  89. onBlur: PropTypes.func,
  90. placeholder: PropTypes.string.isRequired,
  91. returnKeyType: PropTypes.string,
  92. secureTextEntry: PropTypes.bool,
  93. value: PropTypes.string,
  94. width: PropTypes.number.isRequired,
  95. isRequired: PropTypes.bool,
  96. rightItem: PropTypes.any,
  97. };
  98.  
  99. Input.defaultProps = {
  100. keyboardType: 'default',
  101. secureTextEntry: false,
  102. returnKeyType: 'done',
  103. onBlur: () => {},
  104. onFocus: () => {},
  105. value: '',
  106. isRequired: false
  107. };
  108.  
  109. export { Input };
Add Comment
Please, Sign In to add comment