Skip to content

Commit 0b50241

Browse files
authored
chore: optimize format value (#156)
1 parent 95cb621 commit 0b50241

File tree

9 files changed

+88
-24
lines changed

9 files changed

+88
-24
lines changed

src/RangePicker.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,11 +651,19 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
651651
// Close should sync back with text value
652652
const startStr =
653653
mergedValue && mergedValue[0]
654-
? generateConfig.locale.format(locale.locale, mergedValue[0], 'YYYYMMDDHHmmss')
654+
? formatValue(mergedValue[0], {
655+
locale,
656+
format: 'YYYYMMDDHHmmss',
657+
generateConfig,
658+
})
655659
: '';
656660
const endStr =
657661
mergedValue && mergedValue[1]
658-
? generateConfig.locale.format(locale.locale, mergedValue[1], 'YYYYMMDDHHmmss')
662+
? formatValue(mergedValue[1], {
663+
locale,
664+
format: 'YYYYMMDDHHmmss',
665+
generateConfig,
666+
})
659667
: '';
660668

661669
useEffect(() => {

src/panels/DatePanel/DateBody.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import * as React from 'react';
22
import { GenerateConfig } from '../../generate';
3-
import { WEEK_DAY_COUNT, getWeekStartDate, isSameDate, isSameMonth } from '../../utils/dateUtil';
3+
import {
4+
WEEK_DAY_COUNT,
5+
getWeekStartDate,
6+
isSameDate,
7+
isSameMonth,
8+
formatValue,
9+
} from '../../utils/dateUtil';
410
import { Locale } from '../../interface';
511
import RangeContext from '../../RangeContext';
612
import useCellClassName from '../../hooks/useCellClassName';
@@ -86,7 +92,13 @@ function DateBody<DateType>(props: DateBodyProps<DateType>) {
8692
getCellText={generateConfig.getDate}
8793
getCellClassName={getCellClassName}
8894
getCellDate={generateConfig.addDate}
89-
titleCell={date => generateConfig.locale.format(locale.locale, date, 'YYYY-MM-DD')}
95+
titleCell={date =>
96+
formatValue(date, {
97+
locale,
98+
format: 'YYYY-MM-DD',
99+
generateConfig,
100+
})
101+
}
90102
headerCells={headerCells}
91103
/>
92104
);

src/panels/DatePanel/DateHeader.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Header from '../Header';
33
import { Locale } from '../../interface';
44
import { GenerateConfig } from '../../generate';
55
import PanelContext from '../../PanelContext';
6+
import { formatValue } from '../../utils/dateUtil';
67

78
export interface DateHeaderProps<DateType> {
89
prefixCls: string;
@@ -57,7 +58,11 @@ function DateHeader<DateType>(props: DateHeaderProps<DateType>) {
5758
tabIndex={-1}
5859
className={`${prefixCls}-year-btn`}
5960
>
60-
{generateConfig.locale.format(locale.locale, viewDate, locale.yearFormat)}
61+
{formatValue(viewDate, {
62+
locale,
63+
format: locale.yearFormat,
64+
generateConfig,
65+
})}
6166
</button>
6267
);
6368
const monthNode: React.ReactNode = (
@@ -69,18 +74,16 @@ function DateHeader<DateType>(props: DateHeaderProps<DateType>) {
6974
className={`${prefixCls}-month-btn`}
7075
>
7176
{locale.monthFormat
72-
? generateConfig.locale.format(
73-
locale.locale,
74-
viewDate,
75-
locale.monthFormat,
76-
)
77+
? formatValue(viewDate, {
78+
locale,
79+
format: locale.monthFormat,
80+
generateConfig,
81+
})
7782
: monthsLocale[month]}
7883
</button>
7984
);
8085

81-
const monthYearNodes = locale.monthBeforeYear
82-
? [monthNode, yearNode]
83-
: [yearNode, monthNode];
86+
const monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];
8487

8588
return (
8689
<Header

src/panels/MonthPanel/MonthBody.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22
import { GenerateConfig } from '../../generate';
33
import { Locale } from '../../interface';
4-
import { isSameMonth } from '../../utils/dateUtil';
4+
import { formatValue, isSameMonth } from '../../utils/dateUtil';
55
import RangeContext from '../../RangeContext';
66
import useCellClassName from '../../hooks/useCellClassName';
77
import PanelBody from '../PanelBody';
@@ -61,12 +61,22 @@ function MonthBody<DateType>(props: MonthBodyProps<DateType>) {
6161
getCellNode={getCellNode}
6262
getCellText={date =>
6363
locale.monthFormat
64-
? generateConfig.locale.format(locale.locale, date, locale.monthFormat)
64+
? formatValue(date, {
65+
locale,
66+
format: locale.monthFormat,
67+
generateConfig,
68+
})
6569
: monthsLocale[generateConfig.getMonth(date)]
6670
}
6771
getCellClassName={getCellClassName}
6872
getCellDate={generateConfig.addMonth}
69-
titleCell={date => generateConfig.locale.format(locale.locale, date, 'YYYY-MM')}
73+
titleCell={date =>
74+
formatValue(date, {
75+
locale,
76+
format: 'YYYY-MM',
77+
generateConfig,
78+
})
79+
}
7080
/>
7181
);
7282
}

src/panels/MonthPanel/MonthHeader.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Header from '../Header';
33
import { Locale } from '../../interface';
44
import { GenerateConfig } from '../../generate';
55
import PanelContext from '../../PanelContext';
6+
import { formatValue } from '../../utils/dateUtil';
67

78
export interface MonthHeaderProps<DateType> {
89
prefixCls: string;
@@ -40,7 +41,11 @@ function MonthHeader<DateType>(props: MonthHeaderProps<DateType>) {
4041
onSuperNext={onNextYear}
4142
>
4243
<button type="button" onClick={onYearClick} className={`${prefixCls}-year-btn`}>
43-
{generateConfig.locale.format(locale.locale, viewDate, locale.yearFormat)}
44+
{formatValue(viewDate, {
45+
locale,
46+
format: locale.yearFormat,
47+
generateConfig,
48+
})}
4449
</button>
4550
</Header>
4651
);

src/panels/QuarterPanel/QuarterBody.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22
import { GenerateConfig } from '../../generate';
33
import { Locale } from '../../interface';
4-
import { isSameQuarter } from '../../utils/dateUtil';
4+
import { formatValue, isSameQuarter } from '../../utils/dateUtil';
55
import RangeContext from '../../RangeContext';
66
import useCellClassName from '../../hooks/useCellClassName';
77
import PanelBody from '../PanelBody';
@@ -46,11 +46,21 @@ function QuarterBody<DateType>(props: QuarterBodyProps<DateType>) {
4646
colNum={QUARTER_COL_COUNT}
4747
baseDate={baseQuarter}
4848
getCellText={date =>
49-
generateConfig.locale.format(locale.locale, date, locale.quarterFormat || '[Q]Q')
49+
formatValue(date, {
50+
locale,
51+
format: locale.quarterFormat || '[Q]Q',
52+
generateConfig,
53+
})
5054
}
5155
getCellClassName={getCellClassName}
5256
getCellDate={(date, offset) => generateConfig.addMonth(date, offset * 3)}
53-
titleCell={date => generateConfig.locale.format(locale.locale, date, 'YYYY-[Q]Q')}
57+
titleCell={date =>
58+
formatValue(date, {
59+
locale,
60+
format: 'YYYY-[Q]Q',
61+
generateConfig,
62+
})
63+
}
5464
/>
5565
);
5666
}

src/panels/QuarterPanel/QuarterHeader.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Header from '../Header';
33
import { Locale } from '../../interface';
44
import { GenerateConfig } from '../../generate';
55
import PanelContext from '../../PanelContext';
6+
import { formatValue } from '../../utils/dateUtil';
67

78
export interface QuarterHeaderProps<DateType> {
89
prefixCls: string;
@@ -39,7 +40,11 @@ function QuarterHeader<DateType>(props: QuarterHeaderProps<DateType>) {
3940
onSuperNext={onNextYear}
4041
>
4142
<button type="button" onClick={onYearClick} className={`${prefixCls}-year-btn`}>
42-
{generateConfig.locale.format(locale.locale, viewDate, locale.yearFormat)}
43+
{formatValue(viewDate, {
44+
locale,
45+
format: locale.yearFormat,
46+
generateConfig,
47+
})}
4348
</button>
4449
</Header>
4550
);

src/panels/TimePanel/TimeHeader.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Header from '../Header';
33
import { Locale } from '../../interface';
44
import { GenerateConfig } from '../../generate';
55
import PanelContext from '../../PanelContext';
6+
import { formatValue } from '../../utils/dateUtil';
67

78
export interface TimeHeaderProps<DateType> {
89
prefixCls: string;
@@ -24,7 +25,11 @@ function TimeHeader<DateType>(props: TimeHeaderProps<DateType>) {
2425
return (
2526
<Header prefixCls={headerPrefixCls}>
2627
{value
27-
? generateConfig.locale.format(locale.locale, value, format)
28+
? formatValue(value, {
29+
locale,
30+
format,
31+
generateConfig,
32+
})
2833
: '\u00A0'}
2934
</Header>
3035
);

src/panels/YearPanel/YearBody.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { GenerateConfig } from '../../generate';
33
import { YEAR_DECADE_COUNT } from '.';
44
import { Locale, NullableDateType } from '../../interface';
55
import useCellClassName from '../../hooks/useCellClassName';
6-
import { isSameYear } from '../../utils/dateUtil';
6+
import { formatValue, isSameYear } from '../../utils/dateUtil';
77
import RangeContext from '../../RangeContext';
88
import PanelBody from '../PanelBody';
99

@@ -60,7 +60,13 @@ function YearBody<DateType>(props: YearBodyProps<DateType>) {
6060
getCellText={generateConfig.getYear}
6161
getCellClassName={getCellClassName}
6262
getCellDate={generateConfig.addYear}
63-
titleCell={date => generateConfig.locale.format(locale.locale, date, 'YYYY')}
63+
titleCell={date =>
64+
formatValue(date, {
65+
locale,
66+
format: 'YYYY',
67+
generateConfig,
68+
})
69+
}
6470
/>
6571
);
6672
}

0 commit comments

Comments
 (0)