UNPKG

@eslam-elmeniawy/react-native-common-components

Version:

Common `ReactNative` components packed in library for usage in projects.

98 lines (94 loc) 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _reactNative = require("react-native"); var _reactNativePaper = require("react-native-paper"); var _lodash = require("lodash"); var _TextInputStyles = _interopRequireDefault(require("./TextInput.styles.js")); var _ResponsiveDimensions = _interopRequireDefault(require("../../utils/ResponsiveDimensions.js")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } // External imports. // Types imports. // Internal imports. const getLabel = props => { const { topLabelProps, isRequired, label } = props; if (topLabelProps) { return undefined; } if (label && typeof label === 'string') { return isRequired ? `${label} *` : label; } return label; }; const getPlaceholder = props => { const { isRequired, placeholder } = props; return placeholder && isRequired ? `${placeholder} *` : placeholder; }; const DefaultInput = /*#__PURE__*/React.memo(props => { const { dense, autoCapitalize, autoCorrect, error, errorProps, multiline, numberOfLines, returnKeyType, style, keyboardType, onChangeText, secureTextEntry, positiveNumbersOnly, hasPasswordToggle, scrollEnabled, ...other } = props; const _newProps = (0, _lodash.omit)(other, ['topLabelProps', 'isRequired', 'label', 'placeholder']); const _label = getLabel(props); const _isPassword = secureTextEntry === true || hasPasswordToggle === true; const _defaultNumberOfLines = multiline ? undefined : 1; const _handleTextChange = text => { let editedText = text; if (keyboardType === 'decimal-pad' || keyboardType === 'number-pad' || keyboardType === 'name-phone-pad' || keyboardType === 'numbers-and-punctuation' || keyboardType === 'numeric' || keyboardType === 'phone-pad') { editedText = editedText.replaceAll('٠', '0').replaceAll('١', '1').replaceAll('٢', '2').replaceAll('٣', '3').replaceAll('٤', '4').replaceAll('٥', '5').replaceAll('٦', '6').replaceAll('٧', '7').replaceAll('٨', '8').replaceAll('٩', '9'); } if (positiveNumbersOnly) { editedText = editedText.replace(/[^0-9]/g, ''); } onChangeText?.(editedText); }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.TextInput, { dense: dense ?? true, autoCapitalize: autoCapitalize ?? 'none', autoCorrect: autoCorrect ?? false, error: errorProps?.errorMessage ? true : error, label: _label, placeholder: getPlaceholder(props), multiline: multiline, numberOfLines: _isPassword ? 1 : numberOfLines ?? _defaultNumberOfLines, returnKeyType: returnKeyType ?? 'done', style: _reactNative.StyleSheet.flatten([_TextInputStyles.default.input, { minHeight: multiline ? _ResponsiveDimensions.default.vs(70) : undefined }, style]), keyboardType: keyboardType, onChangeText: _handleTextChange, secureTextEntry: secureTextEntry, scrollEnabled: scrollEnabled ?? (_isPassword ? false : multiline), ..._newProps }); }); var _default = exports.default = DefaultInput; //# sourceMappingURL=DefaultInput.js.map