UNPKG

react-native-autocomplete-dropdown

Version:

Dropdown Item picker with search and autocomplete (typeahead) functionality for react native

98 lines (97 loc) 3.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RightButton = void 0; var _react = _interopRequireWildcard(require("react")); var _reactNative = require("react-native"); var _reactNativeFeather = require("react-native-feather"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } const RightButton = exports.RightButton = /*#__PURE__*/(0, _react.memo)(({ inputHeight, onClearPress, onChevronPress, isOpened, showChevron, showClear, loading, enableLoadingIndicator, buttonsContainerStyle, ChevronIconComponent, ClearIconComponent, RightIconComponent, onRightIconComponentPress }) => { const isOpenedAnimationValue = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current; (0, _react.useEffect)(() => { _reactNative.Animated.timing(isOpenedAnimationValue, { duration: 350, toValue: isOpened ? 1 : 0, useNativeDriver: true, easing: _reactNative.Easing.bezier(0.3, 0.58, 0.25, 0.99) }).start(); }, [isOpened, isOpenedAnimationValue]); const chevronSpin = isOpenedAnimationValue.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '180deg'] }); return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, { style: { ...styles.container, height: inputHeight, ...buttonsContainerStyle }, children: [(!enableLoadingIndicator || !loading) && showClear && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, { onPress: onClearPress, style: styles.clearButton, children: ClearIconComponent ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeFeather.XCircle, { width: 18, stroke: "#aeb4c6" }) }), enableLoadingIndicator && loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, { color: "#999" }), RightIconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, { onPress: onRightIconComponentPress, style: styles.chevronButton, children: RightIconComponent }), showChevron && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, { style: { transform: [{ rotate: chevronSpin }] }, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, { onPress: onChevronPress, style: styles.chevronButton, children: ChevronIconComponent ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeFeather.ChevronDown, { width: 20, stroke: "#727992" }) }) })] }); }); const styles = _reactNative.StyleSheet.create({ container: { position: 'relative', flex: 0, flexDirection: 'row', right: 8, zIndex: 10, justifyContent: 'center', alignItems: 'center', backgroundColor: 'transparent' }, clearButton: { width: 26, alignItems: 'center' }, chevronButton: { width: 26, alignItems: 'center', height: '100%', justifyContent: 'center' } }); //# sourceMappingURL=RightButton.js.map