expo-select-dropdonwn-modal-autocomplete
v1.1.2
Published
Is a package like select dropdown but on a modal where you should pass an array or array of objects as a prop and returns a selectd item or object.
Downloads
2
Maintainers
Readme
React native expo select dropdown modal with autocomplete search filter
Feature
Using this package, you can display an array of object on select dropdown on modal screen and select a specific object and render its display name.
Props
title - Default title is Select Item, Pass a title to display initially, such as 'Select company', 'Select user', etc, than after you select an item, selected item's display name will be displayed.
data - To render your items on a list, just pass array of objects, Note: only pass array of objects.
onSelect - Pass a method to select an item. For example, if you have a state like const[selectedCompany, setSelectedCompany] = useState(), just pass setSelectedCompany to onSelect prop.
displayName - Pass a prop as string to displayName for example displayName={"name"}, in this case name should be a field inside a object you passed on data array, like as data = [{id: 1, name: abc, age: 50}, {id: 2, name: def, age: 25}], So now on this object, except for id, name and age, if you mis-spell or pass a string which is not a field of a object on array, the package will not render anyhing on a modal list.
Usage
import { StatusBar } from 'expo-status-bar';
import { useState } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import SelectDropdownModal from 'expo-select-dropdonwn-modal-autocomplete'
export default function App() {
const companyUsers = [
{ id: 1, name: 'Ram' },
{ id: 2, name: 'Shyam' },
{ id: 3, name: 'Hari' },
{ id: 4, name: 'Krishna' },
{ id: 5, name: 'Bishnu' },
{ id: 6, name: 'Basu' },
]
const [selectedUser, setSelectedUser] = useState()
return (
<View style={styles.container}>
<SelectDropdownModal
data={companyUsers}
displayName={'name'}
onSelect={setSelectedUser}
title='Select user'
/>
{!!selectedUser && <Text style={{textAlign: 'center', padding: 12, fontSize: 32}}>{selectedUser.name}</Text>}
<StatusBar style="auto" />
</View>
);
}