ant-design/components/date-picker/util.ts
Jony J 8fb50a6443
feat: retire deprecated api and migrate scope (#52876)
* chore: upgrade RC component dependencies

* chore: trigger CI build

* chore: update deps and import path

* chore: update deps

* test: update snapshot

* test: update snapshot

* fix: lint fix

* chore: migrate Drawer to @rc-component/drawer

* chore: migrate Image to @rc-component/image

* test: update snapshot

* chore: replace api

* fix cascader dropdown api and snap, popupAlign

* fix ci test

* fix key

* test: update snapshot

* Revert "test: update snapshot"

This reverts commit 66a993332b.

* chore: fix logic

* test: update snapshot

* chore: revert part logic

---------

Signed-off-by: Jony J <1844749591@qq.com>
Co-authored-by: thinkasany <480968828@qq.com>
Co-authored-by: 二货机器人 <smith3816@gmail.com>
2025-02-27 21:22:09 +08:00

85 lines
2.4 KiB
TypeScript

import * as React from 'react';
import type { PickerMode } from '@rc-component/picker/lib/interface';
import useSelectIcons from '../select/useIcons';
import type { PickerLocale, PickerProps } from './generatePicker';
export function getPlaceholder(
locale: PickerLocale,
picker?: PickerMode,
customizePlaceholder?: string,
): string {
if (customizePlaceholder !== undefined) {
return customizePlaceholder;
}
if (picker === 'year' && locale.lang.yearPlaceholder) {
return locale.lang.yearPlaceholder;
}
if (picker === 'quarter' && locale.lang.quarterPlaceholder) {
return locale.lang.quarterPlaceholder;
}
if (picker === 'month' && locale.lang.monthPlaceholder) {
return locale.lang.monthPlaceholder;
}
if (picker === 'week' && locale.lang.weekPlaceholder) {
return locale.lang.weekPlaceholder;
}
if (picker === 'time' && locale.timePickerLocale.placeholder) {
return locale!.timePickerLocale.placeholder;
}
return locale.lang.placeholder;
}
export function getRangePlaceholder(
locale: PickerLocale,
picker?: PickerMode,
customizePlaceholder?: [string, string],
) {
if (customizePlaceholder !== undefined) {
return customizePlaceholder;
}
if (picker === 'year' && locale.lang.yearPlaceholder) {
return locale.lang.rangeYearPlaceholder;
}
if (picker === 'quarter' && locale.lang.quarterPlaceholder) {
return locale.lang.rangeQuarterPlaceholder;
}
if (picker === 'month' && locale.lang.monthPlaceholder) {
return locale.lang.rangeMonthPlaceholder;
}
if (picker === 'week' && locale.lang.weekPlaceholder) {
return locale.lang.rangeWeekPlaceholder;
}
if (picker === 'time' && locale.timePickerLocale.placeholder) {
return locale!.timePickerLocale.rangePlaceholder;
}
return locale.lang.rangePlaceholder;
}
export function useIcons(props: Pick<PickerProps, 'allowClear' | 'removeIcon'>, prefixCls: string) {
const { allowClear = true } = props;
const { clearIcon, removeIcon } = useSelectIcons({
...props,
prefixCls,
componentName: 'DatePicker',
});
const mergedAllowClear = React.useMemo(() => {
if (allowClear === false) {
return false;
}
const allowClearConfig = allowClear === true ? {} : allowClear;
return {
clearIcon: clearIcon as React.ReactNode,
...allowClearConfig,
};
}, [allowClear, clearIcon]);
return [mergedAllowClear, removeIcon] as const;
}