@seafile/seafile-calendar 0.0.32-beta.11 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Calendar.js CHANGED
@@ -108,7 +108,8 @@ var Calendar = function (_React$Component) {
108
108
  _this.state = {
109
109
  mode: _this.props.mode || 'date',
110
110
  value: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || (0, _dayjs2['default'])(),
111
- selectedValue: props.selectedValue || props.defaultSelectedValue
111
+ selectedValue: props.selectedValue || props.defaultSelectedValue,
112
+ currentStatus: _util.CALENDAR_STATUS.SPECIFIC_TIME
112
113
  };
113
114
  return _this;
114
115
  }
@@ -156,7 +157,8 @@ var Calendar = function (_React$Component) {
156
157
  showWeekNumber = props.showWeekNumber;
157
158
  var value = state.value,
158
159
  selectedValue = state.selectedValue,
159
- mode = state.mode;
160
+ mode = state.mode,
161
+ currentStatus = state.currentStatus;
160
162
 
161
163
  var showTimePicker = mode === 'time';
162
164
  var disabledTimeConfig = showTimePicker && disabledTime && timePicker ? (0, _util.getTimeConfig)(selectedValue, disabledTime) : null;
@@ -181,9 +183,10 @@ var Calendar = function (_React$Component) {
181
183
  timePickerEle = _react2['default'].cloneElement(timePicker, timePickerProps);
182
184
  }
183
185
  var calendarInputPlaceholder = dateInputPlaceholder || (Array.isArray(this.getFormat()) ? this.getFormat()[0] : this.getFormat());
186
+ var inputFormat = Array.isArray(this.getFormat()) ? this.getFormat() : [this.getFormat()];
184
187
 
185
188
  var dateInputElement = props.showDateInput ? _react2['default'].createElement(_DateInput2['default'], {
186
- format: this.getFormat(),
189
+ format: inputFormat,
187
190
  key: 'date-input',
188
191
  value: value,
189
192
  locale: locale,
@@ -248,7 +251,8 @@ var Calendar = function (_React$Component) {
248
251
  onSelect: this.onDateTableSelect,
249
252
  disabledDate: disabledDate,
250
253
  showWeekNumber: showWeekNumber,
251
- firstDayOfWeek: firstDayOfWeek
254
+ firstDayOfWeek: firstDayOfWeek,
255
+ currentStatus: currentStatus
252
256
  })
253
257
  ),
254
258
  _react2['default'].createElement(_CalendarFooter2['default'], {
@@ -280,7 +284,7 @@ var Calendar = function (_React$Component) {
280
284
  onSelect: this.onDateTableSelect,
281
285
  onClickRightPanelTime: onClickRightPanelTime,
282
286
  defaultMinutesTime: this.props.defaultMinutesTime,
283
- format: this.getFormat()
287
+ format: inputFormat
284
288
  })
285
289
  )
286
290
  ));
@@ -423,6 +427,7 @@ var _initialiseProps = function _initialiseProps() {
423
427
  this.onClear = function () {
424
428
  _this2.onSelect(null);
425
429
  _this2.props.onClear();
430
+ _this2.setState({ currentStatus: _util.CALENDAR_STATUS.CURRENT_TIME });
426
431
  };
427
432
 
428
433
  this.onOk = function () {
@@ -449,6 +454,7 @@ var _initialiseProps = function _initialiseProps() {
449
454
  var timePicker = _this2.props.timePicker;
450
455
  var selectedValue = _this2.state.selectedValue;
451
456
 
457
+ _this2.setState({ currentStatus: _util.CALENDAR_STATUS.SPECIFIC_TIME });
452
458
  if (!selectedValue && timePicker) {
453
459
  var timePickerDefaultValue = timePicker.props.defaultValue;
454
460
  if (timePickerDefaultValue) {
@@ -63,6 +63,7 @@ var DateInput = function (_React$Component) {
63
63
  _this.state = {
64
64
  str: (0, _util.formatDate)(selectedValue, _this.props.format),
65
65
  hasFocus: false,
66
+ isInputEmpty: false,
66
67
  localFormat: _this.props.format[0]
67
68
  };
68
69
  return _this;
@@ -173,11 +174,16 @@ var _initialiseProps = function _initialiseProps() {
173
174
 
174
175
  // 没有内容,合法并直接退出
175
176
 
176
- if (!str) {
177
- onChange((0, _dayjs2['default'])());
178
- _this2.setState({ str: '' });
177
+ if (!str || !calendarStr) {
178
+ _this2.setState({ isInputEmpty: true });
179
+ _this2.onClear();
179
180
  return;
180
181
  }
182
+
183
+ if (_this2.state.isInputEmpty) {
184
+ _this2.setState({ isInputEmpty: false });
185
+ }
186
+
181
187
  var parsed = (0, _dayjs2['default'])(calendarStr, format[0]);
182
188
  var value = _this2.props.value.clone();
183
189
  value = value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());
@@ -216,7 +222,11 @@ var _initialiseProps = function _initialiseProps() {
216
222
  if (keyCode === _KeyCode2['default'].ENTER && onSelect) {
217
223
  var validateDate = !disabledDate || !disabledDate(value);
218
224
  if (validateDate) {
219
- onSelect(value.clone());
225
+ if (_this2.state.isInputEmpty) {
226
+ onSelect(null);
227
+ } else {
228
+ onSelect(value.clone());
229
+ }
220
230
  }
221
231
  event.preventDefault();
222
232
  }
@@ -78,7 +78,8 @@ var DateTBody = function (_React$Component) {
78
78
  dateRender = props.dateRender,
79
79
  disabledDate = props.disabledDate,
80
80
  hoverValue = props.hoverValue,
81
- firstDayOfWeek = props.firstDayOfWeek;
81
+ firstDayOfWeek = props.firstDayOfWeek,
82
+ currentStatus = props.currentStatus;
82
83
 
83
84
  var iIndex = void 0;
84
85
  var jIndex = void 0;
@@ -146,7 +147,7 @@ var DateTBody = function (_React$Component) {
146
147
  for (jIndex = 0; jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT; jIndex++) {
147
148
  var next = null;
148
149
  var last = null;
149
- current = dateTable[passed];
150
+ current = (0, _util.syncCurrentTime)(dateTable[passed], currentStatus);
150
151
  if (jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT - 1) {
151
152
  next = dateTable[passed + 1];
152
153
  }
@@ -298,7 +299,8 @@ DateTBody.propTypes = {
298
299
  value: _propTypes2['default'].object,
299
300
  hoverValue: _propTypes2['default'].any,
300
301
  showWeekNumber: _propTypes2['default'].bool,
301
- firstDayOfWeek: _propTypes2['default'].string
302
+ firstDayOfWeek: _propTypes2['default'].string,
303
+ currentStatus: _propTypes2['default'].string
302
304
  };
303
305
  DateTBody.defaultProps = {
304
306
  hoverValue: []
package/lib/util/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.isLeapYear = exports.DATE_FORMATS = exports.getCurrentTime = exports.getCurrentYear = exports.getCurrentMonth = exports.getCurrentDate = undefined;
4
+ exports.isLeapYear = exports.syncCurrentTime = exports.CALENDAR_STATUS = exports.DATE_FORMATS = exports.getCurrentTime = exports.getCurrentYear = exports.getCurrentMonth = exports.getCurrentDate = undefined;
5
5
 
6
6
  var _extends2 = require('babel-runtime/helpers/extends');
7
7
 
@@ -62,6 +62,18 @@ var DATE_FORMATS = exports.DATE_FORMATS = {
62
62
  Germany_Russia_etcAndTime: 'DD.MM.YYYY HH:mm'
63
63
  };
64
64
 
65
+ var CALENDAR_STATUS = exports.CALENDAR_STATUS = {
66
+ SPECIFIC_TIME: 'specific_time',
67
+ CURRENT_TIME: 'current_time'
68
+ };
69
+
70
+ var syncCurrentTime = exports.syncCurrentTime = function syncCurrentTime(date, status) {
71
+ if (status === CALENDAR_STATUS.CURRENT_TIME) {
72
+ return date.hour((0, _dayjs2['default'])().hour()).minute((0, _dayjs2['default'])().minute()).second((0, _dayjs2['default'])().second());
73
+ }
74
+ return date;
75
+ };
76
+
65
77
  var defaultDisabledTime = {
66
78
  disabledHours: function disabledHours() {
67
79
  return [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/seafile-calendar",
3
- "version": "0.0.32-beta.11",
3
+ "version": "0.0.32",
4
4
  "description": "React Calendar",
5
5
  "keywords": [
6
6
  "react",
@@ -68,6 +68,7 @@
68
68
  "devDependencies": {
69
69
  "@types/react": "^16.3.13",
70
70
  "async": "~3.1.0",
71
+ "chokidar": "^4.0.3",
71
72
  "dtslint": "^0.9.0",
72
73
  "enzyme": "^3.3.0",
73
74
  "enzyme-adapter-react-16": "^1.1.1",