Skip to content

Commit

Permalink
semantic refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
AlanCutFlim committed Nov 23, 2020
1 parent 3491ecc commit 024ae27
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 26 deletions.
4 changes: 2 additions & 2 deletions src/generate/dateFns.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ const generateConfig: GenerateConfig<Date> = {
const clone = Locale[dealLocal(locale)];
return clone.options.weekStartsOn;
},
getWeekFirstDayValue: (locale, date) => {
return startOfWeek(date, { locale: Locale[dealLocal(locale)] }).valueOf();
getWeekFirstDate: (locale, date) => {
return startOfWeek(date, { locale: Locale[dealLocal(locale)] });
},
getWeek: (locale, date) => {
return getWeek(date, { locale: Locale[dealLocal(locale)] });
Expand Down
6 changes: 1 addition & 5 deletions src/generate/dayjs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,7 @@ const generateConfig: GenerateConfig<Dayjs> = {
.locale(parseLocale(locale))
.localeData()
.firstDayOfWeek(),
getWeekFirstDayValue: (locale, date) =>
date
.locale(parseLocale(locale))
.weekday(0)
.valueOf(),
getWeekFirstDate: (locale, date) => date.locale(parseLocale(locale)).weekday(0),
getWeek: (locale, date) => date.locale(parseLocale(locale)).week(),
getShortWeekDays: locale =>
dayjs()
Expand Down
2 changes: 1 addition & 1 deletion src/generate/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export interface GenerateConfig<DateType> {

locale: {
getWeekFirstDay: (locale: string) => number;
getWeekFirstDayValue: (locale: string, value: DateType) => number;
getWeekFirstDate: (locale: string, value: DateType) => DateType;
getWeek: (locale: string, value: DateType) => number;

format: (locale: string, date: DateType, format: string) => string;
Expand Down
4 changes: 2 additions & 2 deletions src/generate/moment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,10 @@ const generateConfig: GenerateConfig<Moment> = {
const date = moment().locale(locale);
return date.localeData().firstDayOfWeek();
},
getWeekFirstDayValue: (locale, date) => {
getWeekFirstDate: (locale, date) => {
const clone = date.clone();
const result = clone.locale(locale);
return result.weekday(0).valueOf();
return result.weekday(0);
},
getWeek: (locale, date) => {
const clone = date.clone();
Expand Down
8 changes: 4 additions & 4 deletions src/hooks/useRangeDisabled.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ export default function useRangeDisabled<DateType>(
const startDate = getValue(selectedValue, 0);
const endDate = getValue(selectedValue, 1);

function weekFirstDayValue(date: DateType) {
return generateConfig.locale.getWeekFirstDayValue(locale.locale, date);
function weekFirstDate(date: DateType) {
return generateConfig.locale.getWeekFirstDate(locale.locale, date);
}

function monthNumber(date: DateType) {
Expand Down Expand Up @@ -61,7 +61,7 @@ export default function useRangeDisabled<DateType>(
case 'month':
return monthNumber(date) > monthNumber(endDate);
case 'week':
return weekFirstDayValue(date) > weekFirstDayValue(endDate);
return weekFirstDate(date) > weekFirstDate(endDate);
default:
return (
!isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate)
Expand Down Expand Up @@ -95,7 +95,7 @@ export default function useRangeDisabled<DateType>(
case 'month':
return monthNumber(date) < monthNumber(startDate);
case 'week':
return weekFirstDayValue(date) < weekFirstDayValue(startDate);
return weekFirstDate(date) < weekFirstDate(startDate);
default:
return (
!isSameDate(generateConfig, date, startDate) &&
Expand Down
22 changes: 10 additions & 12 deletions tests/generate.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,18 +134,16 @@ describe('Picker.Generate', () => {

it('getWeekFirstDayValue', () => {
const formatStr = name === 'date-fns' ? 'yyyy-MM-dd' : 'YYYY-MM-DD';
expect(
generateConfig.locale.getWeekFirstDayValue(
'en_US',
generateConfig.locale.parse('en_US', '2020-12-30', [formatStr]),
),
).toEqual(1609027200000);
expect(
generateConfig.locale.getWeekFirstDayValue(
'zh_CN',
generateConfig.locale.parse('zh_CN', '2020-12-30', [formatStr]),
),
).toEqual(1609113600000);
const usDate = generateConfig.locale.getWeekFirstDate(
'en_US',
generateConfig.locale.parse('en_US', '2020-12-30', [formatStr]),
);
const cnDate = generateConfig.locale.getWeekFirstDate(
'zh_CN',
generateConfig.locale.parse('zh_CN', '2020-12-30', [formatStr]),
);
expect(generateConfig.locale.format('en_US', usDate, formatStr)).toEqual('2020-12-27');
expect(generateConfig.locale.format('zh_CN', cnDate, formatStr)).toEqual('2020-12-28');
});

it('Parse format Wo', () => {
Expand Down

0 comments on commit 024ae27

Please sign in to comment.