Skip to content

Commit

Permalink
add countrypicker component to select countries
Browse files Browse the repository at this point in the history
  • Loading branch information
m4rc0z committed Mar 20, 2018
1 parent cfe28e2 commit ed6d3f7
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 7 deletions.
1 change: 0 additions & 1 deletion App.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import App from './app/index';
import {AppRegistry} from 'react-native';

export default App;
58 changes: 58 additions & 0 deletions app/components/countryPicker/countryPicker.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import React, {Component} from 'react';
import SimplePicker from 'react-native-simple-picker';
import {Text, TouchableOpacity, View, Keyboard} from "react-native";
import {Button, FormInput} from 'react-native-elements'
import Icon from "react-native-elements/src/icons/Icon";

class CountryPicker extends Component {

constructor(props) {
super(props);
this.state = {
selectedOption: '',
};
}

state = {country: ""};

options = this.props.pickerData.map((item) => item.value);
labels = this.props.pickerData.map((item) => item.name);

render() {
return (
<View>
<TouchableOpacity>
<View>
<FormInput
ref={(ref) => { this.selectInput = ref; }}
editable={true}
placeholder={this.props.placeholder}
clearButtonMode="always"
onFocus={() => {
Keyboard.dismiss();
this.refs.picker.show();
this.selectInput.blur();
}}
value={
this.props.pickerData.find(element => element.value === this.state.selectedOption) ?
this.props.pickerData.find(element => element.value === this.state.selectedOption).name : ""
}
/>
</View>
</TouchableOpacity>
<SimplePicker
ref={'picker'}
options={this.options}
labels={this.labels}
onSubmit={(option) => {
this.setState({
selectedOption: option,
});
}}
/>
</View>
)
}
}

export default CountryPicker
4 changes: 1 addition & 3 deletions app/components/header/header.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ class HeaderComponent extends React.Component {
render() {
return (
<Header
leftComponent={{ icon: 'menu', color: '#fff' }}
centerComponent={{ text: 'MY TITLE', style: { color: '#fff' } }}
rightComponent={{ icon: 'home', color: '#fff' }}
centerComponent={{ text: 'Wine Vintage', style: { color: '#fff' } }}
/>
)
}
Expand Down
24 changes: 24 additions & 0 deletions app/components/mainpart/mainpart.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import React from 'react';
import {ScrollView, View, Picker} from "react-native";
import CountryPicker from "../countryPicker/countryPicker";

class MainPartComponent extends React.Component {
constructor() {
super();
}

countries = [
{name: "Italien", value: 0},
{name: "Spanien", value: 1}
];


render() {
return (
<CountryPicker placeholder={"Land auswählen"} pickerData={this.countries}/>
)
}
}


export default MainPartComponent;
3 changes: 3 additions & 0 deletions app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import HeaderComponent from "./components/header/header";
import styled from "styled-components";
import CountryPicker from "./components/countryPicker/countryPicker";
import MainPartComponent from "./components/mainpart/mainpart";

const TextContainer = styled.View`
flex: 1;
Expand All @@ -11,6 +13,7 @@ export default class App extends React.Component {
return (
<View>
<HeaderComponent />
<MainPartComponent />
<TextContainer>
<Text>Open up App.js to start working on your app!</Text>
<Text>Changes you make will automatically reload.</Text>
Expand Down
12 changes: 10 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"version": "0.1.0",
"private": true,
"devDependencies": {
"react-native-scripts": "1.11.1",
"jest-expo": "25.0.0",
"react-native-scripts": "1.11.1",
"react-test-renderer": "16.2.0"
},
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
Expand All @@ -23,6 +23,7 @@
"react": "16.2.0",
"react-native": "0.52.0",
"react-native-elements": "^0.19.0",
"react-native-simple-picker": "^1.4.3",
"styled-components": "^3.2.3"
}
}

0 comments on commit ed6d3f7

Please sign in to comment.