import React, { Component } from 'react'; import { StyleSheet, Text, View } from 'react-native'; import DatePicker from 'react-native-date-picker-x'; import DeviceInfo from 'react-native-device-info'; import DateChange from '../propPickers/DateChange'; import FadeToColor from '../propPickers/FadeToColor'; import LocalePicker from '../propPickers/LocalePicker'; import ModePicker from '../propPickers/ModePicker'; import TextColor from '../propPickers/TextColor'; import PropSlider from '../PropSlider'; 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; }