From 0e548dc2fee06c9efe19deac72ab0c2965aa89d2 Mon Sep 17 00:00:00 2001 From: Fhelipe Rodrigues Date: Fri, 24 Mar 2023 12:16:08 -0300 Subject: [PATCH] corrigindo click duplo + fechar modal select --- index.js | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index 3f7150b..7b86657 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ //import liraries import React, { Component } from 'react'; -import { Text, StyleSheet, TouchableOpacity, View, FlatList, TextInput, Dimensions, Animated, Platform } from 'react-native'; +import { Text, StyleSheet, TouchableOpacity, View, FlatList, TextInput, Dimensions, Animated, Platform, Keyboard } from 'react-native'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import Modal from 'react-native-modal'; import Button from './lib/Button'; @@ -67,6 +67,19 @@ class Select2 extends Component { return defaultFontName ? { fontFamily: defaultFontName } : {}; } + + handleConfirm() { + let { onSelect } = this.props; + let { selectedItem } = this.state; + let selectedIds = [], selectedObjectItems = []; + selectedItem.map(item => { + selectedIds.push(item.id); + selectedObjectItems.push(item); + }) + onSelect && onSelect(selectedIds, selectedObjectItems); + this.setState({ show: false, keyword: '', preSelectedItem: selectedItem }); + } + cancelSelection() { let { data, preSelectedItem } = this.state; data.map(item => { @@ -95,6 +108,11 @@ class Select2 extends Component { data.map(item => { if (item.checked) selectedItem.push(item); }) + if(isSelectSingle && item.checked) { + Keyboard.dismiss() + this.closeModal() + this.handleConfirm() + } this.setState({ data, selectedItem }); } keyExtractor = (item, idx) => idx.toString(); @@ -128,11 +146,11 @@ class Select2 extends Component { render() { let { - style, modalStyle, title, onSelect, onRemoveItem, popupTitle, colorTheme, + style, modalStyle, title, onRemoveItem, popupTitle, colorTheme, isSelectSingle, cancelButtonText, selectButtonText, searchPlaceHolderText, selectedTitleStyle, buttonTextStyle, buttonStyle, showSearchBox } = this.props; - let { show, selectedItem, preSelectedItem, inputRef } = this.state; + let { show, preSelectedItem, inputRef } = this.state; return ( + {!isSelectSingle &&