import React, {Component} from 'react'; import {ScrollView} from 'react-native'; import moment from 'moment'; import * as LightDate from 'light-date'; import {DateTimePicker, DateTimePickerProps, DateTimePickerMode, View, Text, Switch} from 'react-native-ui-lib'; interface State { mode: DateTimePickerMode; dateTimeFormatter: 'moment' | 'light-date'; } export default class DateTimePickerScreen extends Component<{}, State> { constructor(props: any) { super(props); this.state = { mode: 'time', dateTimeFormatter: 'moment' }; } getCustomInputValue = (value?: string) => { if (!value) { return 'Default'; } return value.includes((new Date().getFullYear() + 1).toString()) ? 'Next Year' : value; }; renderCustomInput: DateTimePickerProps['renderInput'] = ({value}) => { return ( Valid from {this.getCustomInputValue(value)} ); }; toggleTimeOrDate = () => { this.setState({mode: this.state.mode === 'time' ? 'date' : 'time'}); }; toggleFormatter = () => { this.setState({dateTimeFormatter: this.state.dateTimeFormatter === 'moment' ? 'light-date' : 'moment'}); }; getFormatter = (): DateTimePickerProps['dateTimeFormatter'] => { const {dateTimeFormatter} = this.state; if (dateTimeFormatter === 'moment') { return (value: Date, mode: DateTimePickerMode) => moment(value).format(mode === 'date' ? 'MMM D, YYYY' : 'h:mm A'); } else { return (value: Date, mode: DateTimePickerMode) => LightDate.format(value, mode === 'date' ? '{mm}-{dd}-{yyyy}' : '{HH}:{mm}'); } }; render() { const {mode, dateTimeFormatter} = this.state; return ( Date Time Picker Disabled Custom Input {mode} {dateTimeFormatter} ); } }