Feel free to contribute to this project
Bundle of useful and beautiful customizable components
npm i react-native-thiering
Let's build the preview! (You can find the full code below)
import { Dropdown } from "react-native-thiering";
const [selected, setSelected] = useState({
label: "Germany",
value: "germany",
});
const list = [
{
label: "Germany",
value: "germany",
},
{
label: "Italy",
value: "italy",
},
{
label: "France",
value: "france",
},
];
<Dropdown
list={list}
defaultValue={selected.value}
onChange={setSelected}
/>
<Dropdown
list={list}
defaultValue={selected.value}
onChange={setSelected}
placeholder="Select country"
containerStyle={{ width: 300 }}
/>
import React, { useState } from "react";
import { StyleSheet, View, Text } from "react-native";
import { Dropdown } from "react-native-thiering";
export default function App() {
const [selected, setSelected] = useState({
label: "Germany",
value: "germany",
});
const list = [
{
label: "Germany",
value: "germany",
},
{
label: "Italy",
value: "italy",
},
{
label: "France",
value: "france",
},
];
return (
<View style={styles.container}>
<Text>Selected: {selected.label}</Text>
<Dropdown
list={list}
defaultValue={selected.value}
onChange={setSelected}
placeholder="Select country"
containerStyle={{ width: 300 }}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
},
});
Name | Value | Description |
---|---|---|
DropdownItem | {label: string; value: string;} |
Dropdown item type |
Property | Type | Default | Description |
---|---|---|---|
list | DropdownItem[] |
[] |
List that will be displayed in dropdown |
defaultValue | string |
- | Initial value of dropdown |
open | boolean |
false |
Initial state of dropdown (opened/closed) |
onChange | (item: DropdownItem) => void |
- | Fires when new value is selected |
onChangeText | (text: string) => void |
- | Fires when search input changes |
placeholder | string |
"Search..." |
Placeholder of search input |
placeholderTextColor | string |
"#888" |
Placeholder text color |
iconLeft | JSX.Element |
<Icon name="search-outline" size={18} color={"#888"} /> |
Icon left of search input |
iconRightClose | JSX.Element |
<Icon name="chevron-up" size={18} color={"#888"} /> |
Icon right of search input when dropdown is open |
iconRight | JSX.Element |
<Icon name="chevron-down" size={18} color={"#888"} /> |
Icon right of search input when dropdown is closed |
Property | Type | Default | Description |
---|---|---|---|
containerStyle | ViewStyle |
- | Style of view container |
searchBarStyle | ViewStyle |
- | Style of TouchableOpacity |
textInputStyle | TextStyle |
- | Style of search input |
dropdownStyle | ViewStyle |
- | Style of dropdown |
dropdownItemStyle | ViewStyle |
- | Style of dropdown item |