index.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import React from 'react';
  2. import LocaleConsumer from '../locale/localeConsumer';
  3. import BaseTimePicker, { TimePickerProps as BasePickerProps, BaseValueType } from './TimePicker';
  4. import { ValidateStatus } from '../_base/baseComponent';
  5. import { ScrollItemProps } from '../scrollList/scrollItem';
  6. import ConfigContext from '../configProvider/context';
  7. import { get } from 'lodash-es';
  8. import { Locale } from '../locale/interface';
  9. export { TimeInputProps } from './TimeInput';
  10. export { TimePickerProps } from './TimePicker';
  11. export {
  12. BaseValueType,
  13. ScrollItemProps,
  14. ValidateStatus
  15. }
  16. export type LocalePickerProps = BasePickerProps;
  17. export default class LocaleTimePicker extends React.PureComponent<LocalePickerProps> {
  18. static propTypes = BaseTimePicker.propTypes;
  19. static defaultProps = BaseTimePicker.defaultProps;
  20. render() {
  21. const { type } = this.props;
  22. return (
  23. <ConfigContext.Consumer>
  24. {({ timeZone }: { timeZone: string | number }) => (
  25. <LocaleConsumer componentName="TimePicker">
  26. {(locale: Locale['TimePicker'], localeCode: string, dateFnsLocale: Locale['dateFnsLocale']) => (
  27. <BaseTimePicker
  28. timeZone={timeZone}
  29. placeholder={get(locale, ['placeholder', type])}
  30. {...this.props}
  31. locale={locale}
  32. localeCode={localeCode}
  33. dateFnsLocale={dateFnsLocale}
  34. />
  35. )}
  36. </LocaleConsumer>
  37. )}
  38. </ConfigContext.Consumer>
  39. );
  40. }
  41. }