diff --git a/src/hooks/useTimeConfig.ts b/src/hooks/useTimeConfig.ts index e6ec47c87..e3b0fdc01 100644 --- a/src/hooks/useTimeConfig.ts +++ b/src/hooks/useTimeConfig.ts @@ -56,7 +56,7 @@ export function getTimeConfig( return { format: 'HH:mm:ss', - ...timeConfig, + ...pickProps(timeConfig), }; } diff --git a/src/utils/miscUtil.ts b/src/utils/miscUtil.ts index 1d161b59d..ffd839aaf 100644 --- a/src/utils/miscUtil.ts +++ b/src/utils/miscUtil.ts @@ -24,9 +24,13 @@ export function fillIndex(ori: T, index: number, value: T[numbe return clone; } -export function pickProps(props: T, keys: (keyof T)[] | readonly (keyof T)[]) { +/** Pick props from the key list. Will filter empty value */ +export function pickProps(props: T, keys?: (keyof T)[] | readonly (keyof T)[]) { const clone = {} as T; - keys.forEach((key) => { + + const mergedKeys = (keys || Object.keys(props)) as typeof keys; + + mergedKeys.forEach((key) => { if (props[key] !== undefined) { clone[key] = props[key]; } diff --git a/tests/picker.spec.tsx b/tests/picker.spec.tsx index f6a6bdadd..97098550d 100644 --- a/tests/picker.spec.tsx +++ b/tests/picker.spec.tsx @@ -1275,4 +1275,22 @@ describe('Picker.Basic', () => { expect(document.querySelector('.rc-picker-dropdown')).toHaveClass('bamboo'); }); + + it('showTime config should have format', () => { + render( + , + ); + + // console.log(document.body.innerHTML); + + expect(document.querySelector('.rc-picker-time-panel .rc-picker-header').textContent).toBe( + '03:05:07', + ); + }); });