From 0a63dc529d7feefe02f720103ff26ff5b67eb0b8 Mon Sep 17 00:00:00 2001 From: Nurielly Caroline Brizola Date: Wed, 14 Oct 2020 10:10:36 -0300 Subject: [PATCH 1/7] Removing a fixed color --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 5c94a58..0bc877c 100644 --- a/index.js +++ b/index.js @@ -220,7 +220,7 @@ class Select2 extends Component { preSelectedItem.length > 0 ? ( isSelectSingle - ? {preSelectedItem[0].name} + ? {preSelectedItem[0].name} : { preSelectedItem.map((tag, index) => { From 1e0c02f94a0bee7b9fd9fbcb7a94f096607595ef Mon Sep 17 00:00:00 2001 From: Fhelipe Rodrigues Date: Tue, 21 Mar 2023 12:10:33 -0300 Subject: [PATCH 2/7] ref input + abrir modal com input focus --- index.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 0bc877c..3f7150b 100644 --- a/index.js +++ b/index.js @@ -27,7 +27,8 @@ class Select2 extends Component { preSelectedItem: [], selectedItem: [], data: [], - keyword: '' + keyword: '', + inputRef: React.createRef(), } animatedHeight = new Animated.Value(INIT_HEIGHT); @@ -131,13 +132,18 @@ class Select2 extends Component { isSelectSingle, cancelButtonText, selectButtonText, searchPlaceHolderText, selectedTitleStyle, buttonTextStyle, buttonStyle, showSearchBox } = this.props; - let { show, selectedItem, preSelectedItem } = this.state; + let { show, selectedItem, preSelectedItem, inputRef } = this.state; return ( { + setTimeout(() => { + this.state.inputRef.current.focus() + }, 100); + }} onBackdropPress={this.closeModal} style={{ justifyContent: 'flex-end', @@ -158,6 +164,7 @@ class Select2 extends Component { { showSearchBox ? Date: Fri, 24 Mar 2023 12:16:08 -0300 Subject: [PATCH 3/7] 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 &&