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}
);
}
}