diff --git a/example/examples/Advanced.js b/example/examples/Advanced.js
deleted file mode 100644
index 6674a1a..0000000
--- a/example/examples/Advanced.js
+++ /dev/null
@@ -1,108 +0,0 @@
-import React, { Component } from 'react';
-import { Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
-import SearchInput, { createFilter } from 'react-native-search-filter';
-import DeviceInfo from 'react-native-device-info';
-import DatePicker from 'react-native-date-picker-x';
-import locales from '../locales';
-
-Date.prototype.addHours = function (h) {
- this.setTime(this.getTime() + (h * 60 * 60 * 1000));
- return this;
-}
-
-export default class Advanced extends Component {
-
- state = {
- chosenDate: new Date(),
- searchTerm: '',
- locale: DeviceInfo.getDeviceLocale(),
- textColor: '#000000',
- }
-
- render() {
- const result = locales.filter(createFilter(this.state.searchTerm)).slice(0, 5);
- return (
-
-
-
- Current locale: {this.state.locale}
- Current date: {this.state.chosenDate.toISOString()}
-
-
-
- );
- }
-
- changeColors = () => {
- this.props.setBackground(randomColor());
- this.setState({ textColor: randomColor() })
- }
-
- setDate = (newDate) => this.setState({ chosenDate: newDate })
- searchUpdated = (term) => this.setState({ searchTerm: term })
-
-}
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- alignItems: 'center',
- justifyContent: 'center',
- marginTop: 15,
- backgroundColor: 'transparent',
- },
- item: {
- borderWidth: 1,
- marginTop: -1,
- borderColor: 'rgba(0,0,0,1)',
- padding: 3,
- width: 100,
- alignItems: 'center',
- },
- emailSubject: {
- color: 'rgba(0,0,0,0.5)'
- },
- searchInput: {
- padding: 5,
- borderColor: '#CCC',
- borderWidth: 1,
- width: 100,
- }
-})
-
-const randomColor = () => '#' + pad(Math.floor(Math.random() * 16777215).toString(16), 6);
-
-function pad(n, width) {
- n = n + '';
- return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;
-}
\ No newline at end of file
diff --git a/example/index.js b/example/index.js
index bd7c799..1ed3cf6 100644
--- a/example/index.js
+++ b/example/index.js
@@ -1,4 +1,4 @@
import { AppRegistry } from 'react-native'
-import App from './App'
+import App from './src/App'
AppRegistry.registerComponent('DatePickerExample', () => App)
diff --git a/example/App.js b/example/src/App.js
similarity index 90%
rename from example/App.js
rename to example/src/App.js
index 121a804..8aa0618 100644
--- a/example/App.js
+++ b/example/src/App.js
@@ -5,6 +5,7 @@ import DeviceInfo from 'react-native-device-info';
import DatePicker from 'react-native-date-picker-x';
import locales from './locales';
import examples from './examples';
+import Advanced from './examples/Advanced';
export default class App extends Component {
@@ -18,7 +19,7 @@ export default class App extends Component {
- Examples
+ {!this.state.picker && 'Examples'}
{!this.state.picker && this.renderButtons()}
{!!this.state.picker && this.renderBackButton()}
{!!this.state.picker && this.renderPicker()}
@@ -51,7 +52,7 @@ export default class App extends Component {
renderBackButton = (key) => (
this.setState({ picker: undefined })}
- style={{ margin: 10 }}
+ style={{ margin: 10, position: 'absolute', top: 0, left: 10, }}
>
Back
@@ -61,12 +62,11 @@ export default class App extends Component {
const styles = StyleSheet.create({
container: {
- flex: 1,
paddingTop: 15,
},
content: {
alignItems: 'center',
- flex: 1,
+ // flex: 1,
},
text: {
color: 'dodgerblue',
diff --git a/example/src/PropSlider.js b/example/src/PropSlider.js
new file mode 100644
index 0000000..ea58347
--- /dev/null
+++ b/example/src/PropSlider.js
@@ -0,0 +1,60 @@
+import React, { Component } from 'react';
+import { FlatList, Dimensions, Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
+import SearchInput, { createFilter } from 'react-native-search-filter';
+import DeviceInfo from 'react-native-device-info';
+import DatePicker from 'react-native-date-picker-x';
+import Carousel from 'react-native-snap-carousel';
+
+const { width, height } = Dimensions.get('screen')
+
+export default class PropSlider extends Component {
+
+ render() {
+ return (
+ item.name}
+ />
+ )
+ }
+
+ data = () => this.props.data.map(prop => (prop.selected = this.props.selectedProp === prop.name, prop))
+
+ onPress = index => () => this.props.onSelect(this.props.data[index].name)
+
+ renderItem = ({ item, index }) => (
+
+ {item.name}
+
+ )
+
+ getStyle = (item) => ({
+ backgroundColor: item.selected ? '#82e584' : '#abcdef',
+ width: this.props.width ? this.props.width : 100,
+ height: 30,
+ })
+
+}
+
+const styles = StyleSheet.create({
+ list: {
+ width,
+ },
+ content: {
+ padding: 20,
+ },
+ item: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginHorizontal: 5,
+ borderRadius: 10,
+ },
+})
\ No newline at end of file
diff --git a/example/exampleKeys.js b/example/src/exampleKeys.js
similarity index 100%
rename from example/exampleKeys.js
rename to example/src/exampleKeys.js
diff --git a/example/examples.js b/example/src/examples.js
similarity index 100%
rename from example/examples.js
rename to example/src/examples.js
diff --git a/example/src/examples/Advanced.js b/example/src/examples/Advanced.js
new file mode 100644
index 0000000..97dcb6f
--- /dev/null
+++ b/example/src/examples/Advanced.js
@@ -0,0 +1,115 @@
+import React, { Component } from 'react';
+import { Dimensions, Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
+import SearchInput, { createFilter } from 'react-native-search-filter';
+import DatePicker from 'react-native-date-picker-x';
+import Carousel from 'react-native-snap-carousel';
+import PropSlider from '../PropSlider';
+import LocalePicker from '../propPickers/LocalePicker';
+import ModePicker from '../propPickers/ModePicker';
+import DateChange from '../propPickers/DateChange';
+import FadeToColor from '../propPickers/FadeToColor';
+import TextColor from '../propPickers/TextColor';
+import DeviceInfo from 'react-native-device-info';
+
+Date.prototype.addHours = function (h) {
+ this.setTime(this.getTime() + (h * 60 * 60 * 1000));
+ return this;
+}
+
+
+export default class Advanced extends Component {
+
+ state = {
+ chosenDate: new Date(),
+ searchTerm: '',
+ textColor: '#000000',
+ selectedProp: 'mode',
+ locale: DeviceInfo.getDeviceLocale(),
+ mode: 'datetime',
+ }
+
+ render() {
+ return (
+
+
+ Picker date: {this.state.chosenDate.toISOString()}
+
+ Change prop:
+
+
+ Prop value:
+ {this.selectedPropData().component}
+
+ )
+ }
+
+ propertyList = () => [
+ {
+ name: 'mode', component:
+ this.setState({ mode })} />
+ },
+ {
+ name: 'locale', component:
+ this.setState({ locale })} />
+ },
+ {
+ name: 'date', component:
+ this.setState({ chosenDate })} />
+ },
+ { name: 'minuteInterval' },
+ { name: 'minDate' },
+ { name: 'maxDate' },
+ {
+ name: 'fadeToColor', component:
+ this.props.setBackground(randomColor())} />
+ },
+ {
+ name: 'textColor', component:
+ this.setState({ textColor: randomColor() })} />
+ },
+ ]
+
+ selectedPropData = () => this.propertyList().find(p => p.name === this.state.selectedProp)
+ onSelect = selectedProp => this.setState({ selectedProp })
+ setDate = newDate => this.setState({ chosenDate: newDate })
+
+}
+
+const styles = StyleSheet.create({
+ container: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginTop: 15,
+ backgroundColor: 'transparent',
+ flex: 1,
+ },
+ item: {
+ borderWidth: 1,
+ marginTop: -1,
+ borderColor: 'rgba(0,0,0,1)',
+ padding: 3,
+ width: 100,
+ alignItems: 'center',
+ },
+})
+
+const randomColor = () => '#' + pad(Math.floor(Math.random() * 16777215).toString(16), 6);
+
+function pad(n, width) {
+ n = n + '';
+ return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;
+}
\ No newline at end of file
diff --git a/example/examples/Minimal.js b/example/src/examples/Minimal.js
similarity index 100%
rename from example/examples/Minimal.js
rename to example/src/examples/Minimal.js
diff --git a/example/examples/TimeMode.js b/example/src/examples/TimeMode.js
similarity index 100%
rename from example/examples/TimeMode.js
rename to example/src/examples/TimeMode.js
diff --git a/example/locales.js b/example/src/locales.js
similarity index 100%
rename from example/locales.js
rename to example/src/locales.js
diff --git a/example/src/propPickers/DateChange.js b/example/src/propPickers/DateChange.js
new file mode 100644
index 0000000..9e673a3
--- /dev/null
+++ b/example/src/propPickers/DateChange.js
@@ -0,0 +1,26 @@
+import React, { Component } from 'react';
+import { Dimensions, Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
+
+export default class extends Component {
+
+ render() {
+ return (
+
+ this.props.onChange(
+ new Date(this.props.value.getTime() + 60 * 1000)
+ )} />
+
+ this.props.onChange(
+ new Date(this.props.value.getTime() + 60 * 60 * 1000)
+ )} />
+
+ this.props.onChange(
+ new Date(this.props.value.getTime() + 60 * 60 * 24 * 1000)
+ )} />
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/example/src/propPickers/FadeToColor.js b/example/src/propPickers/FadeToColor.js
new file mode 100644
index 0000000..0b609b2
--- /dev/null
+++ b/example/src/propPickers/FadeToColor.js
@@ -0,0 +1,15 @@
+import React, { Component } from 'react';
+import { Dimensions, Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
+import SearchInput, { createFilter } from 'react-native-search-filter';
+import locales from '../locales';
+import PropSlider from '../PropSlider';
+
+export default class extends Component {
+
+ render() {
+ return (
+
+ );
+ }
+
+}
\ No newline at end of file
diff --git a/example/src/propPickers/LocalePicker.js b/example/src/propPickers/LocalePicker.js
new file mode 100644
index 0000000..13fa567
--- /dev/null
+++ b/example/src/propPickers/LocalePicker.js
@@ -0,0 +1,42 @@
+import React, { Component } from 'react';
+import { Dimensions, Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
+import SearchInput, { createFilter } from 'react-native-search-filter';
+import locales from '../locales';
+import PropSlider from '../PropSlider';
+
+const data = locales.map(key => ({ name: key }));
+
+const split1 = Math.floor(data.length / 3);
+const split2 = Math.floor(2 * data.length / 3);
+
+const data1 = data.slice(0, split1);
+const data2 = data.slice(split1, split2);
+const data3 = data.slice(split2);
+
+export default class LocalPicker extends Component {
+
+ render() {
+ return (
+
+
+
+
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/example/src/propPickers/ModePicker.js b/example/src/propPickers/ModePicker.js
new file mode 100644
index 0000000..68803ad
--- /dev/null
+++ b/example/src/propPickers/ModePicker.js
@@ -0,0 +1,25 @@
+import React, { Component } from 'react';
+import { Dimensions, Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
+import SearchInput, { createFilter } from 'react-native-search-filter';
+import locales from '../locales';
+import PropSlider from '../PropSlider';
+
+const data = [
+ { name: 'datetime' },
+ { name: 'date' },
+ { name: 'time' },
+]
+
+export default class extends Component {
+
+ render() {
+ return (
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/example/src/propPickers/TextColor.js b/example/src/propPickers/TextColor.js
new file mode 100644
index 0000000..0b609b2
--- /dev/null
+++ b/example/src/propPickers/TextColor.js
@@ -0,0 +1,15 @@
+import React, { Component } from 'react';
+import { Dimensions, Button, View, StyleSheet, ScrollView, Text, TouchableOpacity } from 'react-native';
+import SearchInput, { createFilter } from 'react-native-search-filter';
+import locales from '../locales';
+import PropSlider from '../PropSlider';
+
+export default class extends Component {
+
+ render() {
+ return (
+
+ );
+ }
+
+}
\ No newline at end of file