Skip to content

Commit acfb384

Browse files
committed
feat: Add more customize icon support
1 parent faaea0d commit acfb384

File tree

7 files changed

+28
-5
lines changed

7 files changed

+28
-5
lines changed

src/Picker.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ export interface PickerSharedProps<DateType> {
4646
// Render
4747
suffixIcon?: React.ReactNode;
4848
clearIcon?: React.ReactNode;
49+
prevIcon?: React.ReactNode;
50+
nextIcon?: React.ReactNode;
51+
superPrevIcon?: React.ReactNode;
52+
superNextIcon?: React.ReactNode;
4953
getPopupContainer?: (node: HTMLElement) => HTMLElement;
5054

5155
// Events

src/interface.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ export interface PanelSharedProps<DateType> {
6868
locale: Locale;
6969
disabledDate?: (date: DateType) => boolean;
7070

71+
prevIcon?: React.ReactNode;
72+
nextIcon?: React.ReactNode;
73+
superPrevIcon?: React.ReactNode;
74+
superNextIcon?: React.ReactNode;
75+
7176
/**
7277
* Typescript can not handle generic type so we can not use `forwardRef` here.
7378
* Thus, move ref into operationRef.

src/panels/DatePanel/DateHeader.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ function DateHeader<DateType>(props: DateHeaderProps<DateType>) {
7777

7878
return (
7979
<Header
80+
{...props}
8081
prefixCls={headerPrefixCls}
8182
onSuperPrev={onPrevYear}
8283
onPrev={onPrevMonth}

src/panels/DecadePanel/DecadeHeader.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ function DecadeHeader<DateType>(props: YearHeaderProps<DateType>) {
2929

3030
return (
3131
<Header
32+
{...props}
3233
prefixCls={headerPrefixCls}
3334
onSuperPrev={onPrevDecades}
3435
onSuperNext={onNextDecades}

src/panels/Header.tsx

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@ import * as React from 'react';
22

33
export interface HeaderProps {
44
prefixCls: string;
5+
6+
// Icons
7+
prevIcon?: React.ReactNode;
8+
nextIcon?: React.ReactNode;
9+
superPrevIcon?: React.ReactNode;
10+
superNextIcon?: React.ReactNode;
11+
512
/** Last one step */
613
onPrev?: () => void;
714
/** Next one step */
@@ -16,6 +23,10 @@ export interface HeaderProps {
1623

1724
function Header({
1825
prefixCls,
26+
prevIcon = '\u2039',
27+
nextIcon = '\u203A',
28+
superPrevIcon = '\u00AB',
29+
superNextIcon = '\u00BB',
1930
onSuperPrev,
2031
onSuperNext,
2132
onPrev,
@@ -31,7 +42,7 @@ function Header({
3142
tabIndex={-1}
3243
className={`${prefixCls}-super-prev-btn`}
3344
>
34-
{'\u00AB'}
45+
{superPrevIcon}
3546
</button>
3647
)}
3748
{onPrev && (
@@ -41,7 +52,7 @@ function Header({
4152
tabIndex={-1}
4253
className={`${prefixCls}-prev-btn`}
4354
>
44-
{'\u2039'}
55+
{prevIcon}
4556
</button>
4657
)}
4758
<div className={`${prefixCls}-view`}>{children}</div>
@@ -52,7 +63,7 @@ function Header({
5263
tabIndex={-1}
5364
className={`${prefixCls}-next-btn`}
5465
>
55-
{'\u203A'}
66+
{nextIcon}
5667
</button>
5768
)}
5869
{onSuperNext && (
@@ -62,7 +73,7 @@ function Header({
6273
tabIndex={-1}
6374
className={`${prefixCls}-super-next-btn`}
6475
>
65-
{'\u00BB'}
76+
{superNextIcon}
6677
</button>
6778
)}
6879
</div>

src/panels/TimePanel/TimeBody.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export interface BodyOperationRef {
2626
onUpDown: (diff: number) => void;
2727
}
2828

29-
export interface TimeBodyProps<DateType> extends SharedTimeProps {
29+
export interface TimeBodyProps<DateType> extends SharedTimeProps<DateType> {
3030
prefixCls: string;
3131
locale: Locale;
3232
generateConfig: GenerateConfig<DateType>;

src/panels/YearPanel/YearHeader.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ function YearHeader<DateType>(props: YearHeaderProps<DateType>) {
3232

3333
return (
3434
<Header
35+
{...props}
3536
prefixCls={headerPrefixCls}
3637
onSuperPrev={onPrevDecade}
3738
onSuperNext={onNextDecade}

0 commit comments

Comments
 (0)