@dreamcommerce/aurora 3.1.40 → 3.1.41-1

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.
@@ -40,7 +40,7 @@ var DatePicker = function DatePicker(_ref) {
40
40
  }, [selectedDates, mode]);
41
41
  var handleDateSelect = function handleDateSelect(selected) {
42
42
  onChange === null || onChange === void 0 ? void 0 : onChange(selected);
43
- if (mode === 'single') {
43
+ if (mode === 'single' && selected) {
44
44
  setOpen(false);
45
45
  }
46
46
  };
@@ -35,19 +35,35 @@ var TimePicker = function TimePicker(_ref) {
35
35
  _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
36
36
  tempMinute = _useState6[0],
37
37
  setTempMinute = _useState6[1];
38
+ var _useState7 = React.useState(undefined),
39
+ _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
40
+ validationError = _useState8[0],
41
+ setValidationError = _useState8[1];
38
42
  var isCancelledRef = React.useRef(false);
39
43
  var parsedTime = React.useMemo(function () {
40
44
  return value ? time_picker_utils.TimePickerUtils.parseStringToTime(value) : undefined;
41
45
  }, [value]);
46
+ var formatTempForDisplay = function formatTempForDisplay(hour, minute) {
47
+ if (hour === null && minute === null) {
48
+ return '';
49
+ }
50
+ var hourStr = hour === null ? 'gg' : String(hour).padStart(2, '0');
51
+ var minuteStr = minute === null ? 'mm' : String(minute).padStart(2, '0');
52
+ return "".concat(hourStr, ":").concat(minuteStr);
53
+ };
42
54
  var displayValue = React.useMemo(function () {
43
55
  if (open) {
44
- if (tempHour === null && tempMinute === null) {
45
- return '';
46
- }
47
- return time_picker_utils.TimePickerUtils.formatTimeForDisplay(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
56
+ return formatTempForDisplay(tempHour, tempMinute);
48
57
  }
49
58
  return parsedTime ? time_picker_utils.TimePickerUtils.formatTimeForDisplay(parsedTime.hour, parsedTime.minute) : '';
50
59
  }, [open, tempHour, tempMinute, parsedTime]);
60
+ var mergedErrors = React.useMemo(function () {
61
+ if (validationError && errors) {
62
+ return Array.isArray(errors) ? [validationError].concat(_rollupPluginBabelHelpers.toConsumableArray(errors)) : [validationError, errors];
63
+ }
64
+ if (validationError) return validationError;
65
+ return errors;
66
+ }, [errors, validationError]);
51
67
  var initializeTempValues = function initializeTempValues() {
52
68
  if (parsedTime) {
53
69
  setTempHour(parsedTime.hour);
@@ -56,36 +72,46 @@ var TimePicker = function TimePicker(_ref) {
56
72
  setTempHour(null);
57
73
  setTempMinute(null);
58
74
  }
75
+ setValidationError(undefined);
59
76
  };
60
77
  var saveValue = function saveValue() {
61
- if (tempHour === null && tempMinute === null) {
62
- onChange === null || onChange === void 0 ? void 0 : onChange('');
63
- } else {
64
- var formattedValue = time_picker_utils.TimePickerUtils.formatTimeToString(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
65
- onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
78
+ if (tempHour === null || tempMinute === null) {
79
+ // TODO: Add error message just to trigger the error state, not showing error message to the user
80
+ setValidationError('Select both hour and minute');
81
+ return false;
66
82
  }
83
+ var formattedValue = time_picker_utils.TimePickerUtils.formatTimeToString(tempHour, tempMinute);
84
+ onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
85
+ setValidationError(undefined);
86
+ return true;
67
87
  };
68
88
  var handleHourChange = function handleHourChange(hour) {
69
89
  if (hour === null) {
70
90
  setTempHour(null);
71
- setTempMinute(null);
91
+ return;
72
92
  } else {
73
93
  setTempHour(hour);
74
94
  if (tempMinute === null) {
75
95
  setTempMinute(0);
76
96
  }
77
97
  }
98
+ if (tempMinute !== null) {
99
+ setValidationError(undefined);
100
+ }
78
101
  };
79
102
  var handleMinuteChange = function handleMinuteChange(minute) {
80
103
  if (minute === null) {
81
- setTempHour(null);
82
104
  setTempMinute(null);
105
+ return;
83
106
  } else {
84
107
  setTempMinute(minute);
85
108
  if (tempHour === null) {
86
109
  setTempHour(0);
87
110
  }
88
111
  }
112
+ if (tempHour !== null) {
113
+ setValidationError(undefined);
114
+ }
89
115
  };
90
116
  var handleOpenChange = function handleOpenChange(newOpen) {
91
117
  if (newOpen) {
@@ -94,7 +120,11 @@ var TimePicker = function TimePicker(_ref) {
94
120
  setOpen(true);
95
121
  } else {
96
122
  if (!isCancelledRef.current) {
97
- saveValue();
123
+ var saved = saveValue();
124
+ if (!saved) {
125
+ setOpen(true);
126
+ return;
127
+ }
98
128
  }
99
129
  setOpen(false);
100
130
  }
@@ -105,8 +135,10 @@ var TimePicker = function TimePicker(_ref) {
105
135
  setOpen(false);
106
136
  };
107
137
  var handleChoose = function handleChoose() {
108
- saveValue();
109
- setOpen(false);
138
+ var saved = saveValue();
139
+ if (saved) {
140
+ setOpen(false);
141
+ }
110
142
  };
111
143
  return /*#__PURE__*/React__default['default'].createElement(popover.Popover, {
112
144
  open: open,
@@ -119,7 +151,7 @@ var TimePicker = function TimePicker(_ref) {
119
151
  value: displayValue,
120
152
  placeholder: placeholder,
121
153
  disabled: disabled,
122
- errors: errors
154
+ errors: mergedErrors
123
155
  })), /*#__PURE__*/React__default['default'].createElement(time_picker_content.TimePickerContent, {
124
156
  hour: tempHour,
125
157
  minute: tempMinute,
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -32,7 +32,7 @@ var DatePicker = function DatePicker(_ref) {
32
32
  }, [selectedDates, mode]);
33
33
  var handleDateSelect = function handleDateSelect(selected) {
34
34
  onChange === null || onChange === void 0 ? void 0 : onChange(selected);
35
- if (mode === 'single') {
35
+ if (mode === 'single' && selected) {
36
36
  setOpen(false);
37
37
  }
38
38
  };
@@ -1,5 +1,5 @@
1
1
  import React__default, { useState, useRef, useMemo } from 'react';
2
- import { slicedToArray as _slicedToArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { slicedToArray as _slicedToArray, toConsumableArray as _toConsumableArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
3
3
  import { cn } from '../../utilities/cn.js';
4
4
  import { Popover } from '../popover/popover.js';
5
5
  import { PopoverTrigger } from '../popover/components/popover_trigger.js';
@@ -27,19 +27,35 @@ var TimePicker = function TimePicker(_ref) {
27
27
  _useState6 = _slicedToArray(_useState5, 2),
28
28
  tempMinute = _useState6[0],
29
29
  setTempMinute = _useState6[1];
30
+ var _useState7 = useState(undefined),
31
+ _useState8 = _slicedToArray(_useState7, 2),
32
+ validationError = _useState8[0],
33
+ setValidationError = _useState8[1];
30
34
  var isCancelledRef = useRef(false);
31
35
  var parsedTime = useMemo(function () {
32
36
  return value ? TimePickerUtils.parseStringToTime(value) : undefined;
33
37
  }, [value]);
38
+ var formatTempForDisplay = function formatTempForDisplay(hour, minute) {
39
+ if (hour === null && minute === null) {
40
+ return '';
41
+ }
42
+ var hourStr = hour === null ? 'gg' : String(hour).padStart(2, '0');
43
+ var minuteStr = minute === null ? 'mm' : String(minute).padStart(2, '0');
44
+ return "".concat(hourStr, ":").concat(minuteStr);
45
+ };
34
46
  var displayValue = useMemo(function () {
35
47
  if (open) {
36
- if (tempHour === null && tempMinute === null) {
37
- return '';
38
- }
39
- return TimePickerUtils.formatTimeForDisplay(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
48
+ return formatTempForDisplay(tempHour, tempMinute);
40
49
  }
41
50
  return parsedTime ? TimePickerUtils.formatTimeForDisplay(parsedTime.hour, parsedTime.minute) : '';
42
51
  }, [open, tempHour, tempMinute, parsedTime]);
52
+ var mergedErrors = useMemo(function () {
53
+ if (validationError && errors) {
54
+ return Array.isArray(errors) ? [validationError].concat(_toConsumableArray(errors)) : [validationError, errors];
55
+ }
56
+ if (validationError) return validationError;
57
+ return errors;
58
+ }, [errors, validationError]);
43
59
  var initializeTempValues = function initializeTempValues() {
44
60
  if (parsedTime) {
45
61
  setTempHour(parsedTime.hour);
@@ -48,36 +64,46 @@ var TimePicker = function TimePicker(_ref) {
48
64
  setTempHour(null);
49
65
  setTempMinute(null);
50
66
  }
67
+ setValidationError(undefined);
51
68
  };
52
69
  var saveValue = function saveValue() {
53
- if (tempHour === null && tempMinute === null) {
54
- onChange === null || onChange === void 0 ? void 0 : onChange('');
55
- } else {
56
- var formattedValue = TimePickerUtils.formatTimeToString(tempHour !== null && tempHour !== void 0 ? tempHour : 0, tempMinute !== null && tempMinute !== void 0 ? tempMinute : 0);
57
- onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
70
+ if (tempHour === null || tempMinute === null) {
71
+ // TODO: Add error message just to trigger the error state, not showing error message to the user
72
+ setValidationError('Select both hour and minute');
73
+ return false;
58
74
  }
75
+ var formattedValue = TimePickerUtils.formatTimeToString(tempHour, tempMinute);
76
+ onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
77
+ setValidationError(undefined);
78
+ return true;
59
79
  };
60
80
  var handleHourChange = function handleHourChange(hour) {
61
81
  if (hour === null) {
62
82
  setTempHour(null);
63
- setTempMinute(null);
83
+ return;
64
84
  } else {
65
85
  setTempHour(hour);
66
86
  if (tempMinute === null) {
67
87
  setTempMinute(0);
68
88
  }
69
89
  }
90
+ if (tempMinute !== null) {
91
+ setValidationError(undefined);
92
+ }
70
93
  };
71
94
  var handleMinuteChange = function handleMinuteChange(minute) {
72
95
  if (minute === null) {
73
- setTempHour(null);
74
96
  setTempMinute(null);
97
+ return;
75
98
  } else {
76
99
  setTempMinute(minute);
77
100
  if (tempHour === null) {
78
101
  setTempHour(0);
79
102
  }
80
103
  }
104
+ if (tempHour !== null) {
105
+ setValidationError(undefined);
106
+ }
81
107
  };
82
108
  var handleOpenChange = function handleOpenChange(newOpen) {
83
109
  if (newOpen) {
@@ -86,7 +112,11 @@ var TimePicker = function TimePicker(_ref) {
86
112
  setOpen(true);
87
113
  } else {
88
114
  if (!isCancelledRef.current) {
89
- saveValue();
115
+ var saved = saveValue();
116
+ if (!saved) {
117
+ setOpen(true);
118
+ return;
119
+ }
90
120
  }
91
121
  setOpen(false);
92
122
  }
@@ -97,8 +127,10 @@ var TimePicker = function TimePicker(_ref) {
97
127
  setOpen(false);
98
128
  };
99
129
  var handleChoose = function handleChoose() {
100
- saveValue();
101
- setOpen(false);
130
+ var saved = saveValue();
131
+ if (saved) {
132
+ setOpen(false);
133
+ }
102
134
  };
103
135
  return /*#__PURE__*/React__default.createElement(Popover, {
104
136
  open: open,
@@ -111,7 +143,7 @@ var TimePicker = function TimePicker(_ref) {
111
143
  value: displayValue,
112
144
  placeholder: placeholder,
113
145
  disabled: disabled,
114
- errors: errors
146
+ errors: mergedErrors
115
147
  })), /*#__PURE__*/React__default.createElement(TimePickerContent, {
116
148
  hour: tempHour,
117
149
  minute: tempMinute,
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@dreamcommerce/aurora",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "3.1.40",
5
+ "version": "3.1.41-1",
6
6
  "description": "aurora",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",