added selectCostCenter.jsx
This commit is contained in:
95
components/Selects/select-cost-center.jsx
Normal file
95
components/Selects/select-cost-center.jsx
Normal file
@@ -0,0 +1,95 @@
|
||||
import React, { useState } from "react";
|
||||
import { StyleSheet, Text, View } from "react-native";
|
||||
import { Dropdown } from "react-native-element-dropdown";
|
||||
import { connect } from "react-redux";
|
||||
|
||||
const data = [
|
||||
{ label: "Item 1", value: "1" },
|
||||
{ label: "Item 2", value: "2" },
|
||||
{ label: "Item 3", value: "3" },
|
||||
{ label: "Item 4", value: "4" },
|
||||
{ label: "Item 5", value: "5" },
|
||||
{ label: "Item 6", value: "6" },
|
||||
{ label: "Item 7", value: "7" },
|
||||
{ label: "Item 8", value: "8" },
|
||||
];
|
||||
|
||||
export function SelectCostCenter(props) {
|
||||
const [value, setValue] = useState(null);
|
||||
const [isFocus, setIsFocus] = useState(false);
|
||||
|
||||
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Dropdown
|
||||
style={[styles.dropdown, isFocus && { borderColor: "blue" }]}
|
||||
placeholderStyle={styles.placeholderStyle}
|
||||
selectedTextStyle={styles.selectedTextStyle}
|
||||
inputSearchStyle={styles.inputSearchStyle}
|
||||
iconStyle={styles.iconStyle}
|
||||
data={data}
|
||||
search
|
||||
maxHeight={300}
|
||||
labelField="label"
|
||||
valueField="value"
|
||||
placeholder={!isFocus ? "Select item" : "..."}
|
||||
searchPlaceholder="Search..."
|
||||
value={value}
|
||||
onFocus={() => setIsFocus(true)}
|
||||
onBlur={() => setIsFocus(false)}
|
||||
onChange={(item) => {
|
||||
setValue(item.value);
|
||||
setIsFocus(false);
|
||||
}}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const mapStateToProps = (state) => ({});
|
||||
|
||||
const mapDispatchToProps = {};
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(SelectCostCenter);
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
backgroundColor: "white",
|
||||
padding: 16,
|
||||
justifyContent: "center",
|
||||
alignContent: "center",
|
||||
},
|
||||
dropdown: {
|
||||
height: 50,
|
||||
borderColor: "gray",
|
||||
borderWidth: 0.5,
|
||||
borderRadius: 8,
|
||||
paddingHorizontal: 8,
|
||||
},
|
||||
icon: {
|
||||
marginRight: 5,
|
||||
},
|
||||
label: {
|
||||
position: "absolute",
|
||||
backgroundColor: "white",
|
||||
left: 22,
|
||||
top: 8,
|
||||
zIndex: 999,
|
||||
paddingHorizontal: 8,
|
||||
fontSize: 14,
|
||||
},
|
||||
placeholderStyle: {
|
||||
fontSize: 16,
|
||||
},
|
||||
selectedTextStyle: {
|
||||
fontSize: 16,
|
||||
},
|
||||
iconStyle: {
|
||||
width: 20,
|
||||
height: 20,
|
||||
},
|
||||
inputSearchStyle: {
|
||||
height: 40,
|
||||
fontSize: 16,
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user