phoenix-components-library
Version:
Component library for Phoenix Frontend Projects.
74 lines (63 loc) • 1.57 kB
JSX
import React from "react";
import PropTypes from "prop-types";
import moment from "moment";
import { DatePicker } from "antd";
import "./Datepicker-antd.css";
import "./Datepicker.css";
const propTypes = {
onDatepickerChange: PropTypes.func,
onDatepickerOkClick: PropTypes.func,
placeholder: PropTypes.string,
format: PropTypes.string,
defaultValue: PropTypes.instanceOf(Date),
showTime: PropTypes.bool,
disabled: PropTypes.bool
};
const defaultProps = {
onDatepickerChange: () => {},
onDatepickerOkClick: () => {},
placeholder: "Placeholder",
format: "YYYY-MM-DD",
defaultValue: null,
showTime: false,
disabled: false
};
const Datepicker = props => {
const {
showTime,
format,
placeholder,
onDatepickerChange,
onDatepickerOkClick,
defaultValue,
disabled
} = props;
const onDateChange = (momentDate, dateString) => {
onDatepickerChange(momentDate.toDate(), dateString);
};
const onOkClick = momentDate => {
onDatepickerOkClick(momentDate.toDate());
};
const getDefaultValue = () => {
if (!props.defaultValue) {
return {};
}
return { defaultValue: moment(defaultValue) };
};
return (
<div className="es-datepicker">
<DatePicker
showTime={showTime}
format={format}
placeholder={placeholder}
onChange={onDateChange}
onOk={onOkClick}
disabled={disabled}
{...getDefaultValue()}
/>
</div>
);
};
Datepicker.propTypes = propTypes;
Datepicker.defaultProps = defaultProps;
export { Datepicker };