Skip to content

Commit

Permalink
move generate into src
Browse files Browse the repository at this point in the history
  • Loading branch information
zombieJ committed Nov 24, 2019
1 parent 575c5a3 commit a48d57a
Show file tree
Hide file tree
Showing 17 changed files with 139 additions and 130 deletions.
118 changes: 2 additions & 116 deletions examples/basic.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import moment, { Moment } from 'moment';
import Picker from '../src/Picker';
import PickerPanel from '../src/PickerPanel';
import { GenerateConfig } from '../src/utils/generateUtil';
import momentGenerateConfig from '../src/generate/moment';
import zhCN from '../src/locale/zh_CN';
import enUS from '../src/locale/en_US';
import jaJP from '../src/locale/ja_JP';
Expand All @@ -12,120 +12,6 @@ import { PanelMode } from '../src/interface';
// const defaultValue = moment('2019-09-03 05:02:03');
const defaultValue = moment('2019-11-28 01:02:03');

const generateConfig: GenerateConfig<Moment> = {
// get
getFirstDateOfMonth: date => {
const clone = date.clone();
clone.date(1);
return clone;
},
getLastDateOfMonth: date => {
const clone = date.clone();
clone
.date(1)
.add(1, 'month')
.subtract(1, 'day');
return clone;
},
getNow: () => moment(),
getWeekDay: date => date.weekday(),
getYear: date => date.year(),
getMonth: date => date.month(),
getDate: date => date.date(),
getHour: date => date.hour(),
getMinute: date => date.minute(),
getSecond: date => date.second(),

// set
addYear: (date, diff) => {
const clone = date.clone();
clone.add(diff, 'year');
return clone;
},
addMonth: (date, diff) => {
const clone = date.clone();
clone.add(diff, 'month');
return clone;
},
addDate: (date, diff) => {
const clone = date.clone();
clone.add(diff, 'day');
return clone;
},
setYear: (date, year) => {
const clone = date.clone();
clone.year(year);
return clone;
},
setMonth: (date, month) => {
const clone = date.clone();
clone.month(month);
return clone;
},
setDate: (date, num) => {
const clone = date.clone();
clone.date(num);
return clone;
},
setHour: (date, hour) => {
const clone = date.clone();
clone.hour(hour);
return clone;
},
setMinute: (date, minute) => {
const clone = date.clone();
clone.minute(minute);
return clone;
},
setSecond: (date, second) => {
const clone = date.clone();
clone.second(second);
return clone;
},

locale: {
getWeekFirstDay: locale => {
const date = moment().locale(locale);
return date.localeData().firstDayOfWeek();
},
getWeek: (locale, date) => {
const clone = date.clone();
clone.locale(locale);
return clone.week();
},
getShortWeekDays: locale => {
const date = moment().locale(locale);
return date.localeData().weekdaysMin();
},
getShortMonths: locale => {
const date = moment().locale(locale);
return date.localeData().monthsShort();
},
format: (locale, date, format) => {
const clone = date.clone();
clone.locale(locale);
return clone.format(format);
},
parse: (locale, text, formats) => {
for (let i = 0; i < formats.length; i += 1) {
let format = formats[i];
let strictMode = true;

if (format.includes('o')) {
format = format.replace(/o/g, '');
strictMode = false;
}

const date = moment(text, format, locale, strictMode);
if (date.isValid()) {
return date;
}
}
return null;
},
},
};

const getMonthNextMode = (next: PanelMode): PanelMode => {
if (next === 'date') {
return 'month';
Expand Down Expand Up @@ -153,7 +39,7 @@ export default () => {
};

const sharedProps = {
generateConfig,
generateConfig: momentGenerateConfig,
value,
onSelect,
onChange,
Expand Down
2 changes: 1 addition & 1 deletion src/Picker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import KeyCode from 'rc-util/lib/KeyCode';
import classNames from 'classnames';
import PickerPanel from './PickerPanel';
import PickerTrigger from './PickerTrigger';
import { GenerateConfig } from './utils/generateUtil';
import { GenerateConfig } from './generate';
import { Locale, PanelMode, GetNextMode } from './interface';
import { isEqual } from './utils/dateUtil';
import { toArray } from './utils/miscUtil';
Expand Down
2 changes: 1 addition & 1 deletion src/PickerPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import WeekPanel from './panels/WeekPanel';
import MonthPanel from './panels/MonthPanel';
import YearPanel from './panels/YearPanel';
import DecadePanel from './panels/DecadePanel';
import { GenerateConfig } from './utils/generateUtil';
import { GenerateConfig } from './generate';
import { Locale, PanelMode, PanelRefProps, GetNextMode } from './interface';
import { isEqual } from './utils/dateUtil';
import PanelContext from './PanelContext';
Expand Down
File renamed without changes.
118 changes: 118 additions & 0 deletions src/generate/moment.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
import moment, { Moment } from 'moment';
import { GenerateConfig } from '.';

const generateConfig: GenerateConfig<Moment> = {
// get
getFirstDateOfMonth: date => {
const clone = date.clone();
clone.date(1);
return clone;
},
getLastDateOfMonth: date => {
const clone = date.clone();
clone
.date(1)
.add(1, 'month')
.subtract(1, 'day');
return clone;
},
getNow: () => moment(),
getWeekDay: date => date.weekday(),
getYear: date => date.year(),
getMonth: date => date.month(),
getDate: date => date.date(),
getHour: date => date.hour(),
getMinute: date => date.minute(),
getSecond: date => date.second(),

// set
addYear: (date, diff) => {
const clone = date.clone();
clone.add(diff, 'year');
return clone;
},
addMonth: (date, diff) => {
const clone = date.clone();
clone.add(diff, 'month');
return clone;
},
addDate: (date, diff) => {
const clone = date.clone();
clone.add(diff, 'day');
return clone;
},
setYear: (date, year) => {
const clone = date.clone();
clone.year(year);
return clone;
},
setMonth: (date, month) => {
const clone = date.clone();
clone.month(month);
return clone;
},
setDate: (date, num) => {
const clone = date.clone();
clone.date(num);
return clone;
},
setHour: (date, hour) => {
const clone = date.clone();
clone.hour(hour);
return clone;
},
setMinute: (date, minute) => {
const clone = date.clone();
clone.minute(minute);
return clone;
},
setSecond: (date, second) => {
const clone = date.clone();
clone.second(second);
return clone;
},

locale: {
getWeekFirstDay: locale => {
const date = moment().locale(locale);
return date.localeData().firstDayOfWeek();
},
getWeek: (locale, date) => {
const clone = date.clone();
clone.locale(locale);
return clone.week();
},
getShortWeekDays: locale => {
const date = moment().locale(locale);
return date.localeData().weekdaysMin();
},
getShortMonths: locale => {
const date = moment().locale(locale);
return date.localeData().monthsShort();
},
format: (locale, date, format) => {
const clone = date.clone();
clone.locale(locale);
return clone.format(format);
},
parse: (locale, text, formats) => {
for (let i = 0; i < formats.length; i += 1) {
let format = formats[i];
let strictMode = true;

if (format.includes('o')) {
format = format.replace(/o/g, '');
strictMode = false;
}

const date = moment(text, format, locale, strictMode);
if (date.isValid()) {
return date;
}
}
return null;
},
},
};

export default generateConfig;
7 changes: 6 additions & 1 deletion src/interface.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { GenerateConfig } from './utils/generateUtil';
import { GenerateConfig } from './generate';

export interface Locale {
locale: string;
Expand Down Expand Up @@ -58,6 +58,11 @@ export interface PanelSharedProps<DateType> {
prefixCls: string;
generateConfig: GenerateConfig<DateType>;
value: DateType;
/**
* @private Set another value in the panel to display ranged value style.
* Panel only has one value, this is only style effect.
*/
rangedValue?: DateType;
viewDate: DateType;
/** [Legacy] Set default display picker view date */
defaultPickerValue?: DateType;
Expand Down
2 changes: 1 addition & 1 deletion src/panels/DatePanel/DateBody.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import classNames from 'classnames';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';
import {
WEEK_DAY_COUNT,
getWeekStartDate,
Expand Down
2 changes: 1 addition & 1 deletion src/panels/DatePanel/DateHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import Header from '../Header';
import { Locale } from '../../interface';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';

export interface DateHeaderProps<DateType> {
prefixCls: string;
Expand Down
2 changes: 1 addition & 1 deletion src/panels/DecadePanel/DecadeBody.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import classNames from 'classnames';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';
import { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from '.';

const DECADE_COL_COUNT = 3;
Expand Down
2 changes: 1 addition & 1 deletion src/panels/DecadePanel/DecadeHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import Header from '../Header';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';
import { DECADE_DISTANCE_COUNT } from '.';

export interface YearHeaderProps<DateType> {
Expand Down
2 changes: 1 addition & 1 deletion src/panels/MonthPanel/MonthBody.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import classNames from 'classnames';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';
import { Locale } from '../../interface';
import { isSameMonth } from '../../utils/dateUtil';

Expand Down
2 changes: 1 addition & 1 deletion src/panels/MonthPanel/MonthHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import Header from '../Header';
import { Locale } from '../../interface';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';

export interface MonthHeaderProps<DateType> {
prefixCls: string;
Expand Down
2 changes: 1 addition & 1 deletion src/panels/TimePanel/TimeBody.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as React from 'react';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';
import { Locale } from '../../interface';
import TimeUnitColumn, { Unit } from './TimeUnitColumn';
import { leftPad } from '../../utils/miscUtil';
Expand Down
2 changes: 1 addition & 1 deletion src/panels/TimePanel/TimeHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import Header from '../Header';
import { Locale } from '../../interface';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';

export interface TimeHeaderProps<DateType> {
prefixCls: string;
Expand Down
2 changes: 1 addition & 1 deletion src/panels/YearPanel/YearBody.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import classNames from 'classnames';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';
import { YEAR_DECADE_COUNT } from '.';

export const YEAR_COL_COUNT = 3;
Expand Down
2 changes: 1 addition & 1 deletion src/panels/YearPanel/YearHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import Header from '../Header';
import { GenerateConfig } from '../../utils/generateUtil';
import { GenerateConfig } from '../../generate';
import { YEAR_DECADE_COUNT } from '.';

export interface YearHeaderProps<DateType> {
Expand Down
2 changes: 1 addition & 1 deletion src/utils/dateUtil.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { GenerateConfig } from './generateUtil';
import { GenerateConfig } from '../generate';

export const WEEK_DAY_COUNT = 7;

Expand Down

1 comment on commit a48d57a

@vercel
Copy link

@vercel vercel bot commented on a48d57a Nov 24, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.