/* eslint-disable max-len */ import React from 'react'; import {DatePicker as AntdDatePicker} from 'antd'; import classNames from 'classnames'; import hoistNonReactStatics from 'hoist-non-react-statics'; import './index.less'; const clsPrefix = 'osui-picker'; type BaseDatePickerType = typeof AntdDatePicker; function attachOSUIClassName(Component: any) { const ComponentOut = React.forwardRef( (props, ref) => { return ( ); } ); return ComponentOut; } interface DatePickerInterface extends BaseDatePickerType { MonthPicker: typeof AntdDatePicker.MonthPicker; WeekPicker: typeof AntdDatePicker.WeekPicker; QuarterPicker: typeof AntdDatePicker.QuarterPicker; YearPicker: typeof AntdDatePicker.YearPicker; TimePicker: typeof AntdDatePicker.TimePicker; RangePicker: typeof AntdDatePicker.RangePicker; } const DatePicker = attachOSUIClassName(AntdDatePicker) as unknown as DatePickerInterface; // 确保所有的NonReactStatics都提升上来 hoistNonReactStatics(DatePicker, AntdDatePicker); // 覆盖 DatePicker.MonthPicker = attachOSUIClassName(AntdDatePicker.MonthPicker) as unknown as typeof AntdDatePicker.MonthPicker; DatePicker.WeekPicker = attachOSUIClassName(AntdDatePicker.WeekPicker) as unknown as typeof AntdDatePicker.WeekPicker; DatePicker.YearPicker = attachOSUIClassName(AntdDatePicker.YearPicker) as unknown as typeof AntdDatePicker.YearPicker; DatePicker.QuarterPicker = attachOSUIClassName(AntdDatePicker.QuarterPicker) as unknown as typeof AntdDatePicker.QuarterPicker; DatePicker.TimePicker = attachOSUIClassName(AntdDatePicker.TimePicker) as unknown as typeof AntdDatePicker.TimePicker; DatePicker.RangePicker = attachOSUIClassName(AntdDatePicker.RangePicker) as unknown as typeof AntdDatePicker.RangePicker; export type {DatePickerProps} from 'antd'; export default DatePicker;