util.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import * as React from 'react';
  2. import useSelectIcons from '../select/useIcons';
  3. export function getPlaceholder(locale, picker, customizePlaceholder) {
  4. if (customizePlaceholder !== undefined) {
  5. return customizePlaceholder;
  6. }
  7. if (picker === 'year' && locale.lang.yearPlaceholder) {
  8. return locale.lang.yearPlaceholder;
  9. }
  10. if (picker === 'quarter' && locale.lang.quarterPlaceholder) {
  11. return locale.lang.quarterPlaceholder;
  12. }
  13. if (picker === 'month' && locale.lang.monthPlaceholder) {
  14. return locale.lang.monthPlaceholder;
  15. }
  16. if (picker === 'week' && locale.lang.weekPlaceholder) {
  17. return locale.lang.weekPlaceholder;
  18. }
  19. if (picker === 'time' && locale.timePickerLocale.placeholder) {
  20. return locale.timePickerLocale.placeholder;
  21. }
  22. return locale.lang.placeholder;
  23. }
  24. export function getRangePlaceholder(locale, picker, customizePlaceholder) {
  25. if (customizePlaceholder !== undefined) {
  26. return customizePlaceholder;
  27. }
  28. if (picker === 'year' && locale.lang.yearPlaceholder) {
  29. return locale.lang.rangeYearPlaceholder;
  30. }
  31. if (picker === 'quarter' && locale.lang.quarterPlaceholder) {
  32. return locale.lang.rangeQuarterPlaceholder;
  33. }
  34. if (picker === 'month' && locale.lang.monthPlaceholder) {
  35. return locale.lang.rangeMonthPlaceholder;
  36. }
  37. if (picker === 'week' && locale.lang.weekPlaceholder) {
  38. return locale.lang.rangeWeekPlaceholder;
  39. }
  40. if (picker === 'time' && locale.timePickerLocale.placeholder) {
  41. return locale.timePickerLocale.rangePlaceholder;
  42. }
  43. return locale.lang.rangePlaceholder;
  44. }
  45. export function useIcons(props, prefixCls) {
  46. const {
  47. allowClear = true
  48. } = props;
  49. const {
  50. clearIcon,
  51. removeIcon
  52. } = useSelectIcons(Object.assign(Object.assign({}, props), {
  53. prefixCls,
  54. componentName: 'DatePicker'
  55. }));
  56. const mergedAllowClear = React.useMemo(() => {
  57. if (allowClear === false) {
  58. return false;
  59. }
  60. const allowClearConfig = allowClear === true ? {} : allowClear;
  61. return Object.assign({
  62. clearIcon: clearIcon
  63. }, allowClearConfig);
  64. }, [allowClear, clearIcon]);
  65. return [mergedAllowClear, removeIcon];
  66. }