Skip to content

Commit dba1414

Browse files
committed
feat: support footer
1 parent 1014ff1 commit dba1414

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/PickerInput/Popup/Footer.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import classNames from 'classnames';
1+
import cls from 'classnames';
22
import * as React from 'react';
33
import type { GenerateConfig } from '../../generate';
44
import useTimeInfo from '../../hooks/useTimeInfo';
@@ -42,7 +42,13 @@ export default function Footer(props: FooterProps) {
4242
disabledDate,
4343
} = props;
4444

45-
const { prefixCls, locale, button: Button = 'button' } = React.useContext(PickerContext);
45+
const {
46+
prefixCls,
47+
locale,
48+
button: Button = 'button',
49+
classNames,
50+
styles,
51+
} = React.useContext(PickerContext);
4652

4753
// >>> Now
4854
const now = generateConfig.getNow();
@@ -70,7 +76,7 @@ export default function Footer(props: FooterProps) {
7076
const presetNode = showNow && (
7177
<li className={nowPrefixCls}>
7278
<a
73-
className={classNames(nowBtnPrefixCls, nowDisabled && `${nowBtnPrefixCls}-disabled`)}
79+
className={cls(nowBtnPrefixCls, nowDisabled && `${nowBtnPrefixCls}-disabled`)}
7480
aria-disabled={nowDisabled}
7581
onClick={onInternalNow}
7682
>
@@ -101,7 +107,10 @@ export default function Footer(props: FooterProps) {
101107
}
102108

103109
return (
104-
<div className={`${prefixCls}-footer`}>
110+
<div
111+
className={cls(`${prefixCls}-footer`, classNames.popup.footer)}
112+
style={styles.popup.footer}
113+
>
105114
{extraNode && <div className={`${prefixCls}-footer-extra`}>{extraNode}</div>}
106115
{rangeNode}
107116
</div>

tests/picker.spec.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,13 +1357,15 @@ describe('Picker.Basic', () => {
13571357
body: 'custom-body',
13581358
content: 'custom-content',
13591359
item: 'custom-item',
1360+
footer: 'custom-footer',
13601361
};
13611362
const popupStyles = {
13621363
root: { color: 'red' },
13631364
header: { color: 'purple' },
13641365
body: { color: 'green' },
13651366
content: { color: 'blue' },
13661367
item: { color: 'yellow' },
1368+
footer: { color: 'orange' },
13671369
};
13681370
render(
13691371
<DayPicker
@@ -1384,6 +1386,7 @@ describe('Picker.Basic', () => {
13841386
const body = document.querySelector('.rc-picker-body');
13851387
const content = document.querySelector('.rc-picker-content');
13861388
const item = document.querySelector('.rc-picker-cell');
1389+
const footer = document.querySelector('.rc-picker-footer');
13871390

13881391
expect(header).toHaveClass(popupClassNames.header);
13891392
expect(header).toHaveStyle(popupStyles.header);
@@ -1393,6 +1396,8 @@ describe('Picker.Basic', () => {
13931396
expect(content).toHaveStyle(popupStyles.content);
13941397
expect(item).toHaveClass(popupClassNames.item);
13951398
expect(item).toHaveStyle(popupStyles.item);
1399+
expect(footer).toHaveClass(popupClassNames.footer);
1400+
expect(footer).toHaveStyle(popupStyles.footer);
13961401
});
13971402

13981403
it('support classNames and styles for panel', () => {

0 commit comments

Comments
 (0)