UNPKG

@arpitbhalla/rneui-base-dev

Version:
182 lines (181 loc) 9.08 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchBarDefault = void 0; var react_1 = __importDefault(require("react")); var react_native_1 = require("react-native"); var helpers_1 = require("../helpers"); var Input_1 = require("../Input"); var Icon_1 = require("../Icon"); var defaultSearchIcon = function (theme) { var _a; return ({ type: 'material', size: 18, name: 'search', color: (_a = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _a === void 0 ? void 0 : _a.grey3, }); }; var defaultClearIcon = function (theme) { var _a; return ({ type: 'material', size: 18, name: 'clear', color: (_a = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _a === void 0 ? void 0 : _a.grey3, }); }; var SearchBarDefault = (function (_super) { __extends(SearchBarDefault, _super); function SearchBarDefault(props) { var _this = _super.call(this, props) || this; _this.focus = function () { _this.input.focus(); }; _this.blur = function () { _this.input.blur(); }; _this.clear = function () { _this.input.clear(); _this.onChangeText(''); _this.props.onClear(); }; _this.onFocus = function (event) { _this.props.onFocus(event); _this.setState({ isEmpty: _this.props.value === '' }); }; _this.onBlur = function (event) { _this.props.onBlur(event); }; _this.onChangeText = function (text) { _this.props.onChangeText(text); _this.setState({ isEmpty: text === '' }); }; var value = props.value; _this.state = { isEmpty: value ? value === '' : true, }; return _this; } SearchBarDefault.prototype.render = function () { var _this = this; var _a, _b, _c, _d, _e, _f; var _g = this.props, _h = _g.theme, theme = _h === void 0 ? helpers_1.defaultTheme : _h, rest = __rest(_g, ["theme"]); var lightTheme = rest.lightTheme, round = rest.round, _j = rest.clearIcon, clearIcon = _j === void 0 ? defaultClearIcon(theme) : _j, containerStyle = rest.containerStyle, _k = rest.searchIcon, searchIcon = _k === void 0 ? defaultSearchIcon(theme) : _k, leftIconContainerStyle = rest.leftIconContainerStyle, rightIconContainerStyle = rest.rightIconContainerStyle, inputContainerStyle = rest.inputContainerStyle, inputStyle = rest.inputStyle, showLoading = rest.showLoading, loadingProps = rest.loadingProps, _l = rest.placeholderTextColor, placeholderTextColor = _l === void 0 ? (_a = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _a === void 0 ? void 0 : _a.grey3 : _l, attributes = __rest(rest, ["lightTheme", "round", "clearIcon", "containerStyle", "searchIcon", "leftIconContainerStyle", "rightIconContainerStyle", "inputContainerStyle", "inputStyle", "showLoading", "loadingProps", "placeholderTextColor"]); var isEmpty = this.state.isEmpty; var loadingStyle = loadingProps.style, otherLoadingProps = __rest(loadingProps, ["style"]); return (react_1.default.createElement(react_native_1.View, { testID: "RNE__SearchBar-wrapper", style: react_native_1.StyleSheet.flatten([ { borderTopWidth: 1, borderBottomWidth: 1, borderBottomColor: '#000', borderTopColor: '#000', padding: 8, backgroundColor: (_b = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _b === void 0 ? void 0 : _b.grey0, }, lightTheme && { borderTopColor: '#e1e1e1', borderBottomColor: '#e1e1e1', backgroundColor: (_c = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _c === void 0 ? void 0 : _c.grey5, }, containerStyle, ]) }, react_1.default.createElement(Input_1.Input, __assign({ testID: "RNE__SearchBar", renderErrorMessage: false }, attributes, { onFocus: this.onFocus, onBlur: this.onBlur, onChangeText: this.onChangeText, ref: function (input) { _this.input = input; }, placeholderTextColor: placeholderTextColor, inputStyle: react_native_1.StyleSheet.flatten([ { color: (_d = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _d === void 0 ? void 0 : _d.grey3, marginLeft: 10, }, inputStyle, ]), inputContainerStyle: react_native_1.StyleSheet.flatten([ { borderBottomWidth: 0, borderRadius: 3, overflow: 'hidden', minHeight: 30, backgroundColor: (_e = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _e === void 0 ? void 0 : _e.searchBg, }, lightTheme && { backgroundColor: (_f = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _f === void 0 ? void 0 : _f.grey4, }, round && styles.round, inputContainerStyle, ]), containerStyle: styles.inputContainer, leftIcon: (0, helpers_1.renderNode)(Icon_1.Icon, searchIcon, defaultSearchIcon(theme)), leftIconContainerStyle: react_native_1.StyleSheet.flatten([ styles.leftIconContainerStyle, leftIconContainerStyle, ]), rightIcon: react_1.default.createElement(react_native_1.View, { style: { flexDirection: 'row' } }, showLoading && (react_1.default.createElement(react_native_1.ActivityIndicator, __assign({ key: "loading", style: react_native_1.StyleSheet.flatten([{ marginRight: 5 }, loadingStyle]) }, otherLoadingProps))), !isEmpty && (0, helpers_1.renderNode)(Icon_1.Icon, clearIcon, __assign(__assign({}, defaultClearIcon(theme)), { key: 'cancel', onPress: this.clear }))), rightIconContainerStyle: react_native_1.StyleSheet.flatten([ styles.rightIconContainerStyle, rightIconContainerStyle, ]) })))); }; SearchBarDefault.defaultProps = { value: '', loadingProps: {}, showLoading: false, lightTheme: false, round: false, onClear: function () { return null; }, onFocus: function () { return null; }, onBlur: function () { return null; }, onChangeText: function () { return null; }, }; return SearchBarDefault; }(react_1.default.Component)); exports.SearchBarDefault = SearchBarDefault; var styles = react_native_1.StyleSheet.create({ rightIconContainerStyle: { marginRight: 8, }, leftIconContainerStyle: { marginLeft: 8, }, inputContainer: { paddingHorizontal: 0, }, round: { borderRadius: 15, }, });