1
0

index.tsx 1.9 KB

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