import React from "react"; import styled from "styled-components"; import { labelStyle } from "constants/DefaultTheme"; import { ControlGroup, Classes, Label } from "@blueprintjs/core"; import { ComponentProps } from "components/designSystems/appsmith/BaseComponent"; import { DateInput, DateRangeInput } from "@blueprintjs/datetime"; import moment from "moment-timezone"; import "../../../../node_modules/@blueprintjs/datetime/lib/css/blueprint-datetime.css"; import { DatePickerType } from "widgets/DatePickerWidget"; import { WIDGET_PADDING } from "constants/WidgetConstants"; const StyledControlGroup = styled(ControlGroup)` &&& { label { ${labelStyle} flex: 0 1 30%; text-align: right; margin: 0 ${WIDGET_PADDING * 2}px 0 0; align-self: center; } } `; class DatePickerComponent extends React.Component { render() { return ( {this.props.label && ( )} {this.props.datePickerType === "DATE_PICKER" ? ( ) : ( )} ); } formatDate = (date: Date): string => { if (this.props.timezone) { return moment(date) .tz(this.props.timezone) .format(this.props.dateFormat); } return moment(date).format(this.props.dateFormat); }; parseDate = (dateStr: string): Date => { if (this.props.timezone) { return moment(dateStr) .tz(this.props.timezone) .toDate(); } return moment(dateStr).toDate(); }; onDateSelected = (selectedDate: Date) => { this.props.onDateSelected(selectedDate); }; } export interface DatePickerComponentProps extends ComponentProps { label: string; defaultDate?: Date; dateFormat: string; enableTimePicker?: boolean; selectedDate?: Date; minDate?: Date; maxDate?: Date; timezone?: string; datePickerType: DatePickerType; onDateSelected: (date: Date) => void; isLoading: boolean; } export default DatePickerComponent;