import { Button, Grid } from "@mui/material"; import { DateTimeValidationError, PickerChangeHandlerContext } from "@mui/x-date-pickers"; import { periodOptions, PeriodOptionsNames } from "fwork-jsts-common"; import { Moment } from "moment"; import React, { useState } from "react"; import { DatePickerExtComponent } from "../datePicker"; import { ModalComponent } from "../modal"; export interface IDateTimeRangeDialogComponentProps { style?: React.CSSProperties | undefined, initPeriodOptionsName?: PeriodOptionsNames diProps?: { initValue: Moment | undefined } dfProps?: { initValue: Moment | undefined } onConfirm?: (di: Moment | undefined, df: Moment | undefined, label: string | undefined, periodValueKey?: PeriodOptionsNames) => void } export const DateTimeRangeComponent: React.FC = ({ style, initPeriodOptionsName, diProps, dfProps, onConfirm, }) => { const valuesFromInitPeriodValuekey = initPeriodOptionsName ? periodOptions[initPeriodOptionsName]() : undefined const [di, setDi] = useState(valuesFromInitPeriodValuekey?.di ?? diProps?.initValue) const [df, setDf] = useState(valuesFromInitPeriodValuekey?.df ?? dfProps?.initValue) const [label, setLabel] = useState(valuesFromInitPeriodValuekey?.label ?? '') const [periodValueKey, setPeriodValueKey] = useState(initPeriodOptionsName) return <> ) => { setDi(value?.startOf('day')) setLabel('') setPeriodValueKey(undefined) }} /> ) => { setDf(value?.endOf('day')) setLabel('') setPeriodValueKey(undefined) }} /> } onConfirm={(_) => onConfirm?.(di, df, label, periodValueKey)} style={style} > }