// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import PropTypes from 'prop-types'; import React, {PureComponent} from 'react'; import {InteractionManager, Keyboard} from 'react-native'; import CustomPropTypes from 'app/constants/custom_prop_types'; import Search from './search_box'; export default class SearchBarIos extends PureComponent { static propTypes = { onCancelButtonPress: PropTypes.func, onChangeText: PropTypes.func, onFocus: PropTypes.func, onBlur: PropTypes.func, onSearchButtonPress: PropTypes.func, onSelectionChange: PropTypes.func, backgroundColor: PropTypes.string, placeholderTextColor: PropTypes.string, titleCancelColor: PropTypes.string, tintColorSearch: PropTypes.string, tintColorDelete: PropTypes.string, cancelButtonStyle: CustomPropTypes.Style, inputStyle: CustomPropTypes.Style, placeholder: PropTypes.string, cancelTitle: PropTypes.oneOfType([ PropTypes.string, PropTypes.object, ]), returnKeyType: PropTypes.string, keyboardType: PropTypes.string, autoCapitalize: PropTypes.string, inputHeight: PropTypes.number, inputBorderRadius: PropTypes.number, blurOnSubmit: PropTypes.bool, value: PropTypes.string, }; static defaultProps = { onSearchButtonPress: () => true, onCancelButtonPress: () => true, onChangeText: () => true, onFocus: () => true, onBlur: () => true, onSelectionChange: () => true, blurOnSubmit: true, }; cancel = () => { this.refs.search.onCancel(); }; onBlur = () => { this.props.onBlur(); }; onCancel = () => { Keyboard.dismiss(); InteractionManager.runAfterInteractions(() => { this.props.onCancelButtonPress(); }); }; onChangeText = (text) => { this.props.onChangeText(text); }; onDelete = () => { this.props.onChangeText('', true); }; onFocus = () => { this.props.onFocus(); }; onSearch = (text) => { if (text) { this.props.onSearchButtonPress(text); } }; onSelectionChange = (event) => { this.props.onSelectionChange(event); }; blur = () => { this.refs.search.blur(); }; focus = () => { this.refs.search.focus(); }; render() { return ( ); } }