diff --git a/src/components/Table/DateRangeWrapper.tsx b/src/components/Table/DateRangeWrapper.tsx new file mode 100644 index 0000000..506879f --- /dev/null +++ b/src/components/Table/DateRangeWrapper.tsx @@ -0,0 +1,34 @@ +import { memo } from 'react' +import { DatePicker, } from 'antd' +import moment, { Moment } from 'moment' +import { RangeValue } from 'rc-picker/lib/interface' +import { RangePickerSharedProps } from 'rc-picker/lib/RangePicker' + +import { defaultFormat } from '@utils' + +const { RangePicker } = DatePicker + +export type DateRangeWrapperProps = RangePickerSharedProps & { + value: RangeValue, + onChange: (date: RangeValue) => any + isUTC?: boolean +} + +const normalizeDates = (value: RangeValue, isUTC?: boolean): RangeValue => value && [ + value[0] ? (isUTC ? moment.utc(value[0]).local() : moment(value[0])) : null, + value[1] ? (isUTC ? moment.utc(value[1]).local() : moment(value[1])) : null, +] + +export const DateRangeWrapper = memo(({ value, onChange, isUTC, ...other }) => ( + onChange(date)} + value={normalizeDates(value)} + {...other} + /> +)) + +export default DateRangeWrapper