bright-components 9.30.0 → 9.33.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/DayPicker/index.js +12 -1
- package/dist/components/Icons/CrossThick/index.js +31 -0
- package/dist/components/Icons/TickThick/index.js +31 -0
- package/dist/components/Time/TimePicker/TimeOverlay/index.js +5 -4
- package/dist/components/Time/TimePicker/index.js +9 -1
- package/dist/components/WithDayPicker/index.js +3 -3
- package/dist/components/withConfirmation/index.js +2 -1
- package/dist/setupTests.js +1 -0
- package/package.json +1 -1
- package/src/components/DayPicker/index.js +11 -1
- package/src/components/Icons/CrossThick/examples.md +5 -0
- package/src/components/Icons/CrossThick/index.js +19 -0
- package/src/components/Icons/TickThick/examples.md +5 -0
- package/src/components/Icons/TickThick/index.js +19 -0
- package/src/components/Time/DurationPicker/test.js +0 -1
- package/src/components/Time/TimePicker/TimeOverlay/index.js +112 -107
- package/src/components/Time/TimePicker/index.js +11 -1
- package/src/components/WithDayPicker/index.js +3 -3
- package/src/components/withConfirmation/index.js +5 -3
- package/src/setupTests.js +2 -0
@@ -174,6 +174,7 @@ function (_React$Component) {
|
|
174
174
|
dayPickerOpen: open || false
|
175
175
|
};
|
176
176
|
(0, _reactAutobind.default)(_assertThisInitialized(_this));
|
177
|
+
_this.containerRef = _react.default.createRef();
|
177
178
|
return _this;
|
178
179
|
}
|
179
180
|
|
@@ -245,6 +246,8 @@ function (_React$Component) {
|
|
245
246
|
};
|
246
247
|
|
247
248
|
_proto.toggleDayPicker = function toggleDayPicker() {
|
249
|
+
var _this2 = this;
|
250
|
+
|
248
251
|
var _this$props2 = this.props,
|
249
252
|
disabled = _this$props2.disabled,
|
250
253
|
GA = _this$props2.GA;
|
@@ -260,6 +263,13 @@ function (_React$Component) {
|
|
260
263
|
|
261
264
|
this.setState({
|
262
265
|
dayPickerOpen: !dayPickerOpen
|
266
|
+
}, function () {
|
267
|
+
if (_this2.containerRef.current) {
|
268
|
+
_this2.containerRef.current.scrollIntoView({
|
269
|
+
behavior: 'smooth',
|
270
|
+
block: 'nearest'
|
271
|
+
});
|
272
|
+
}
|
263
273
|
});
|
264
274
|
};
|
265
275
|
|
@@ -329,7 +339,8 @@ function (_React$Component) {
|
|
329
339
|
})), dayPickerOpen && _react.default.createElement(DayRangeContainer, {
|
330
340
|
panelAbsoluteOnDesktop: panelAbsoluteOnDesktop,
|
331
341
|
style: otherStyles,
|
332
|
-
width: width
|
342
|
+
width: width,
|
343
|
+
ref: this.containerRef
|
333
344
|
}, _react.default.createElement(_DayPickerPanel.default, {
|
334
345
|
month: this.getDefaultMonth(),
|
335
346
|
year: this.getDefaultYear(),
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.default = void 0;
|
5
|
+
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
7
|
+
|
8
|
+
var _propTypes = require("prop-types");
|
9
|
+
|
10
|
+
var _reactIconBase = _interopRequireDefault(require("react-icon-base"));
|
11
|
+
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
|
14
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
15
|
+
|
16
|
+
var CrossThickIcon = function CrossThickIcon(props) {
|
17
|
+
return _react.default.createElement(_reactIconBase.default, _extends({
|
18
|
+
viewBox: "0 0 33 32"
|
19
|
+
}, props), _react.default.createElement("path", {
|
20
|
+
d: "M23.58 20.585L18.997 16l4.585-4.585a2.003 2.003 0 000-2.829 2.001 2.001 0 00-2.83 0l-4.584 4.585-4.585-4.585a2 2 0 10-2.829 2.829L13.338 16l-4.585 4.585a2 2 0 102.829 2.829l4.585-4.585 4.585 4.585a2 2 0 002.829-2.829z"
|
21
|
+
}));
|
22
|
+
};
|
23
|
+
|
24
|
+
CrossThickIcon.propTypes = {
|
25
|
+
size: _propTypes.number
|
26
|
+
};
|
27
|
+
CrossThickIcon.defaultProps = {
|
28
|
+
size: 40
|
29
|
+
};
|
30
|
+
var _default = CrossThickIcon;
|
31
|
+
exports.default = _default;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports.default = void 0;
|
5
|
+
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
7
|
+
|
8
|
+
var _propTypes = require("prop-types");
|
9
|
+
|
10
|
+
var _reactIconBase = _interopRequireDefault(require("react-icon-base"));
|
11
|
+
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
|
14
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
15
|
+
|
16
|
+
var TickThickIcon = function TickThickIcon(props) {
|
17
|
+
return _react.default.createElement(_reactIconBase.default, _extends({
|
18
|
+
viewBox: "0 0 33 32"
|
19
|
+
}, props), _react.default.createElement("path", {
|
20
|
+
d: "M26.167 4a2 2 0 00-1.638.854L11.895 22.9l-4.313-4.314a2 2 0 10-2.83 2.829l6 6a2 2 0 003.04-.25L27.805 7.146A2.001 2.001 0 0026.167 4z"
|
21
|
+
}));
|
22
|
+
};
|
23
|
+
|
24
|
+
TickThickIcon.propTypes = {
|
25
|
+
size: _propTypes.number
|
26
|
+
};
|
27
|
+
TickThickIcon.defaultProps = {
|
28
|
+
size: 40
|
29
|
+
};
|
30
|
+
var _default = TickThickIcon;
|
31
|
+
exports.default = _default;
|
@@ -144,7 +144,7 @@ var convertHours = function convertHours(hour) {
|
|
144
144
|
return hour > 12 ? hour - 12 : hour;
|
145
145
|
};
|
146
146
|
|
147
|
-
var TimeOverlay = function
|
147
|
+
var TimeOverlay = (0, _react.forwardRef)(function (_ref, ref) {
|
148
148
|
var value = _ref.value,
|
149
149
|
onChange = _ref.onChange,
|
150
150
|
onHide = _ref.onHide,
|
@@ -181,7 +181,9 @@ var TimeOverlay = function TimeOverlay(_ref) {
|
|
181
181
|
hours = _millisecondsToDurati.hours,
|
182
182
|
minutes = _millisecondsToDurati.minutes;
|
183
183
|
|
184
|
-
return _react.default.createElement(Overlay,
|
184
|
+
return _react.default.createElement(Overlay, {
|
185
|
+
ref: ref
|
186
|
+
}, _react.default.createElement(Content, null, _react.default.createElement(_UnitInput.default, {
|
185
187
|
unit: "hours",
|
186
188
|
value: hours,
|
187
189
|
onChange: function onChange(i) {
|
@@ -230,8 +232,7 @@ var TimeOverlay = function TimeOverlay(_ref) {
|
|
230
232
|
},
|
231
233
|
"data-e2e": "time-apply"
|
232
234
|
}, "Apply")));
|
233
|
-
};
|
234
|
-
|
235
|
+
});
|
235
236
|
var timeShape = (0, _propTypes.shape)({
|
236
237
|
hours: _propTypes.number,
|
237
238
|
minutes: _propTypes.number
|
@@ -98,6 +98,7 @@ var TimePicker = function TimePicker(_ref) {
|
|
98
98
|
var nodeRef = (0, _useClickOutside.default)(function () {
|
99
99
|
return setPickerVisible(false);
|
100
100
|
});
|
101
|
+
var myRef = (0, _react.useRef)();
|
101
102
|
|
102
103
|
var _useState3 = (0, _react.useState)((0, _durationToTimeString.default)(value)),
|
103
104
|
internalValue = _useState3[0],
|
@@ -107,6 +108,12 @@ var TimePicker = function TimePicker(_ref) {
|
|
107
108
|
// keep internal value in sync with prop change
|
108
109
|
setInternalValue((0, _durationToTimeString.default)(value));
|
109
110
|
}, [value]);
|
111
|
+
(0, _react.useEffect)(function () {
|
112
|
+
if (myRef.current) myRef.current.scrollIntoView({
|
113
|
+
behavior: 'smooth',
|
114
|
+
block: 'nearest'
|
115
|
+
});
|
116
|
+
}, [pickerVisible]);
|
110
117
|
|
111
118
|
var changeHandler = function changeHandler(_ref2) {
|
112
119
|
var newHours = _ref2.hours,
|
@@ -216,7 +223,8 @@ var TimePicker = function TimePicker(_ref) {
|
|
216
223
|
hourIncrements: hourIncrements,
|
217
224
|
minuteIncrements: minuteIncrements,
|
218
225
|
min: min,
|
219
|
-
max: max
|
226
|
+
max: max,
|
227
|
+
ref: myRef
|
220
228
|
})));
|
221
229
|
};
|
222
230
|
|
@@ -133,10 +133,10 @@ WithDayPicker.defaultProps = {
|
|
133
133
|
inModal: false,
|
134
134
|
view: 'calendar',
|
135
135
|
month: today.getMonth(),
|
136
|
-
year: today.
|
136
|
+
year: today.getFullYear(),
|
137
137
|
yearRange: {
|
138
|
-
min: today.
|
139
|
-
max: today.
|
138
|
+
min: today.getFullYear() - 1,
|
139
|
+
max: today.getFullYear() + 1
|
140
140
|
},
|
141
141
|
onClear: undefined,
|
142
142
|
yearsToDisplay: null,
|
@@ -146,8 +146,9 @@ var withConfirmation = function withConfirmation(WrappedComponent) {
|
|
146
146
|
disabled: loading,
|
147
147
|
onClick: !href ? this.onButtonClick : this.close,
|
148
148
|
href: href || undefined,
|
149
|
-
as: href ? 'a' :
|
149
|
+
as: href ? 'a' : undefined
|
150
150
|
}), error ? 'Try again' : yesLabel), _react.default.createElement(_OutlineButton.default, {
|
151
|
+
disabled: loading,
|
151
152
|
onClick: this.close
|
152
153
|
}, error ? 'Cancel' : noLabel))));
|
153
154
|
};
|
package/dist/setupTests.js
CHANGED
package/package.json
CHANGED
@@ -111,6 +111,8 @@ class DayPicker extends React.Component {
|
|
111
111
|
dayPickerOpen: open || false
|
112
112
|
};
|
113
113
|
autobind(this);
|
114
|
+
|
115
|
+
this.containerRef = React.createRef();
|
114
116
|
}
|
115
117
|
|
116
118
|
getDefaultMonth() {
|
@@ -188,7 +190,14 @@ class DayPicker extends React.Component {
|
|
188
190
|
});
|
189
191
|
}
|
190
192
|
|
191
|
-
this.setState({ dayPickerOpen: !dayPickerOpen })
|
193
|
+
this.setState({ dayPickerOpen: !dayPickerOpen }, () => {
|
194
|
+
if (this.containerRef.current) {
|
195
|
+
this.containerRef.current.scrollIntoView({
|
196
|
+
behavior: 'smooth',
|
197
|
+
block: 'nearest'
|
198
|
+
});
|
199
|
+
}
|
200
|
+
});
|
192
201
|
}
|
193
202
|
|
194
203
|
clearValue() {
|
@@ -261,6 +270,7 @@ class DayPicker extends React.Component {
|
|
261
270
|
panelAbsoluteOnDesktop={panelAbsoluteOnDesktop}
|
262
271
|
style={otherStyles}
|
263
272
|
width={width}
|
273
|
+
ref={this.containerRef}
|
264
274
|
>
|
265
275
|
<DayPickerPanel
|
266
276
|
month={this.getDefaultMonth()}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { number } from 'prop-types';
|
3
|
+
import IconBase from 'react-icon-base';
|
4
|
+
|
5
|
+
const CrossThickIcon = props => (
|
6
|
+
<IconBase viewBox="0 0 33 32" {...props}>
|
7
|
+
<path d="M23.58 20.585L18.997 16l4.585-4.585a2.003 2.003 0 000-2.829 2.001 2.001 0 00-2.83 0l-4.584 4.585-4.585-4.585a2 2 0 10-2.829 2.829L13.338 16l-4.585 4.585a2 2 0 102.829 2.829l4.585-4.585 4.585 4.585a2 2 0 002.829-2.829z" />
|
8
|
+
</IconBase>
|
9
|
+
);
|
10
|
+
|
11
|
+
CrossThickIcon.propTypes = {
|
12
|
+
size: number
|
13
|
+
};
|
14
|
+
|
15
|
+
CrossThickIcon.defaultProps = {
|
16
|
+
size: 40
|
17
|
+
};
|
18
|
+
|
19
|
+
export default CrossThickIcon;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { number } from 'prop-types';
|
3
|
+
import IconBase from 'react-icon-base';
|
4
|
+
|
5
|
+
const TickThickIcon = props => (
|
6
|
+
<IconBase viewBox="0 0 33 32" {...props}>
|
7
|
+
<path d="M26.167 4a2 2 0 00-1.638.854L11.895 22.9l-4.313-4.314a2 2 0 10-2.83 2.829l6 6a2 2 0 003.04-.25L27.805 7.146A2.001 2.001 0 0026.167 4z" />
|
8
|
+
</IconBase>
|
9
|
+
);
|
10
|
+
|
11
|
+
TickThickIcon.propTypes = {
|
12
|
+
size: number
|
13
|
+
};
|
14
|
+
|
15
|
+
TickThickIcon.defaultProps = {
|
16
|
+
size: 40
|
17
|
+
};
|
18
|
+
|
19
|
+
export default TickThickIcon;
|
@@ -3,7 +3,6 @@ import { render, fireEvent } from '@testing-library/react';
|
|
3
3
|
import DurationPicker from '.';
|
4
4
|
|
5
5
|
describe('<DurationPicker />', () => {
|
6
|
-
Element.prototype.scrollIntoView = jest.fn();
|
7
6
|
describe('on initial render', () => {
|
8
7
|
it('should display the time in the expected format', () => {
|
9
8
|
const { getByRole } = render(
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useState } from 'react';
|
1
|
+
import React, { useState, forwardRef } from 'react';
|
2
2
|
import { arrayOf, func, number, oneOfType, shape, string } from 'prop-types';
|
3
3
|
import millisecondsToDuration from 'utils/time/millisecondsToDuration';
|
4
4
|
import styled from 'styled-components';
|
@@ -85,114 +85,119 @@ const convertHours = hour => {
|
|
85
85
|
return hour > 12 ? hour - 12 : hour;
|
86
86
|
};
|
87
87
|
|
88
|
-
const TimeOverlay = (
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
);
|
108
|
-
|
109
|
-
const setHandler = (unitValue, unit) => {
|
110
|
-
const proposedDate = new Date(internalValue);
|
111
|
-
|
112
|
-
if (unit === 'minutes') {
|
113
|
-
proposedDate.setUTCMinutes(
|
114
|
-
roundTo(minuteIncrements)(getBoundedValue(unitValue, 0, 59))
|
88
|
+
const TimeOverlay = forwardRef(
|
89
|
+
(
|
90
|
+
{
|
91
|
+
value,
|
92
|
+
onChange,
|
93
|
+
onHide,
|
94
|
+
hourIncrements,
|
95
|
+
minuteIncrements,
|
96
|
+
min,
|
97
|
+
max,
|
98
|
+
GA
|
99
|
+
},
|
100
|
+
ref
|
101
|
+
) => {
|
102
|
+
const sanitizeValue = unsanitizedValue =>
|
103
|
+
getBoundedValue(
|
104
|
+
unsanitizedValue,
|
105
|
+
durationToMilliseconds(min),
|
106
|
+
durationToMilliseconds(max)
|
115
107
|
);
|
116
|
-
}
|
117
108
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
}
|
161
|
-
|
162
|
-
>
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
109
|
+
const [internalValue, setInternalValue] = useState(
|
110
|
+
sanitizeValue(durationToMilliseconds(value))
|
111
|
+
);
|
112
|
+
|
113
|
+
const setHandler = (unitValue, unit) => {
|
114
|
+
const proposedDate = new Date(internalValue);
|
115
|
+
|
116
|
+
if (unit === 'minutes') {
|
117
|
+
proposedDate.setUTCMinutes(
|
118
|
+
roundTo(minuteIncrements)(getBoundedValue(unitValue, 0, 59))
|
119
|
+
);
|
120
|
+
}
|
121
|
+
|
122
|
+
if (unit === 'hours') {
|
123
|
+
proposedDate.setUTCHours(
|
124
|
+
roundTo(hourIncrements)(getBoundedValue(unitValue, 0, 23))
|
125
|
+
);
|
126
|
+
}
|
127
|
+
|
128
|
+
const appliedValue = sanitizeValue(proposedDate.getTime());
|
129
|
+
setInternalValue(appliedValue);
|
130
|
+
};
|
131
|
+
|
132
|
+
const { hours, minutes } = millisecondsToDuration(internalValue);
|
133
|
+
|
134
|
+
return (
|
135
|
+
<Overlay ref={ref}>
|
136
|
+
<Content>
|
137
|
+
<UnitInput
|
138
|
+
unit="hours"
|
139
|
+
value={hours}
|
140
|
+
onChange={i => setHandler(i, 'hours')}
|
141
|
+
increment={hourIncrements}
|
142
|
+
min={min.hours}
|
143
|
+
max={max.hours}
|
144
|
+
/>
|
145
|
+
<UnitInput
|
146
|
+
unit="minutes"
|
147
|
+
value={minutes}
|
148
|
+
onChange={i => setHandler(i, 'minutes')}
|
149
|
+
increment={minuteIncrements}
|
150
|
+
min={hours === min.hours ? min.minutes : 0}
|
151
|
+
max={hours === max.hours ? max.minutes : 59}
|
152
|
+
/>
|
153
|
+
</Content>
|
154
|
+
<DialogButtonGroup>
|
155
|
+
<OutlineButton
|
156
|
+
type="button"
|
157
|
+
onClick={() => {
|
158
|
+
onHide();
|
159
|
+
if (GA) {
|
160
|
+
event({
|
161
|
+
category: GA.category,
|
162
|
+
action: `${GA.action} (Cancel)`
|
163
|
+
});
|
164
|
+
}
|
165
|
+
}}
|
166
|
+
>
|
167
|
+
Cancel
|
168
|
+
</OutlineButton>
|
169
|
+
<DisplayValue>
|
170
|
+
<TwentyFourHourValue>
|
171
|
+
{formatTimePart(hours)}:{formatTimePart(minutes)}
|
172
|
+
</TwentyFourHourValue>
|
173
|
+
<TwelveHourValue>
|
174
|
+
{convertHours(hours)}.{formatTimePart(minutes)}
|
175
|
+
{hours > 11 ? 'pm' : 'am'}{' '}
|
176
|
+
</TwelveHourValue>
|
177
|
+
</DisplayValue>
|
178
|
+
<BrandButton
|
179
|
+
type="button"
|
180
|
+
onClick={() => {
|
181
|
+
onChange({ hours, minutes });
|
182
|
+
onHide();
|
183
|
+
|
184
|
+
if (GA) {
|
185
|
+
event({
|
186
|
+
category: GA.category,
|
187
|
+
action: `${GA.action} (Apply)`,
|
188
|
+
label: `${hours} hrs ${minutes} mins`
|
189
|
+
});
|
190
|
+
}
|
191
|
+
}}
|
192
|
+
data-e2e="time-apply"
|
193
|
+
>
|
194
|
+
Apply
|
195
|
+
</BrandButton>
|
196
|
+
</DialogButtonGroup>
|
197
|
+
</Overlay>
|
198
|
+
);
|
199
|
+
}
|
200
|
+
);
|
196
201
|
|
197
202
|
const timeShape = shape({
|
198
203
|
hours: number,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
1
|
+
import React, { useEffect, useState, useRef } from 'react';
|
2
2
|
import { arrayOf, func, number, oneOfType, shape, string } from 'prop-types';
|
3
3
|
import styled from 'styled-components';
|
4
4
|
import ClockIcon from 'components/Icons/Clock';
|
@@ -54,6 +54,7 @@ const TimePicker = ({
|
|
54
54
|
const [pickerVisible, setPickerVisible] = useState(false);
|
55
55
|
const [hasFocus, setFocus] = useState(false);
|
56
56
|
const nodeRef = useClickOutside(() => setPickerVisible(false));
|
57
|
+
const myRef = useRef();
|
57
58
|
|
58
59
|
const [internalValue, setInternalValue] = useState(
|
59
60
|
durationToTimeString(value)
|
@@ -64,6 +65,14 @@ const TimePicker = ({
|
|
64
65
|
setInternalValue(durationToTimeString(value));
|
65
66
|
}, [value]);
|
66
67
|
|
68
|
+
useEffect(() => {
|
69
|
+
if (myRef.current)
|
70
|
+
myRef.current.scrollIntoView({
|
71
|
+
behavior: 'smooth',
|
72
|
+
block: 'nearest'
|
73
|
+
});
|
74
|
+
}, [pickerVisible]);
|
75
|
+
|
67
76
|
const changeHandler = ({ hours: newHours, minutes: newMinutes }) => {
|
68
77
|
const proposedDate = new Date(
|
69
78
|
durationToMs(value || { hours: 0, minutes: 0 })
|
@@ -180,6 +189,7 @@ const TimePicker = ({
|
|
180
189
|
minuteIncrements={minuteIncrements}
|
181
190
|
min={min}
|
182
191
|
max={max}
|
192
|
+
ref={myRef}
|
183
193
|
/>
|
184
194
|
)}
|
185
195
|
</Container>
|
@@ -101,10 +101,10 @@ WithDayPicker.defaultProps = {
|
|
101
101
|
inModal: false,
|
102
102
|
view: 'calendar',
|
103
103
|
month: today.getMonth(),
|
104
|
-
year: today.
|
104
|
+
year: today.getFullYear(),
|
105
105
|
yearRange: {
|
106
|
-
min: today.
|
107
|
-
max: today.
|
106
|
+
min: today.getFullYear() - 1,
|
107
|
+
max: today.getFullYear() + 1
|
108
108
|
},
|
109
109
|
onClear: undefined,
|
110
110
|
yearsToDisplay: null,
|
@@ -133,7 +133,6 @@ const withConfirmation = WrappedComponent => {
|
|
133
133
|
</P>
|
134
134
|
</Alert>
|
135
135
|
)}
|
136
|
-
|
137
136
|
<Button
|
138
137
|
{...buttonProps}
|
139
138
|
loading={loading}
|
@@ -142,12 +141,15 @@ const withConfirmation = WrappedComponent => {
|
|
142
141
|
!href ? this.onButtonClick : this.close
|
143
142
|
}
|
144
143
|
href={href || undefined}
|
145
|
-
as={href ? 'a' :
|
144
|
+
as={href ? 'a' : undefined}
|
146
145
|
>
|
147
146
|
{error ? 'Try again' : yesLabel}
|
148
147
|
</Button>
|
149
148
|
|
150
|
-
<OutlineButton
|
149
|
+
<OutlineButton
|
150
|
+
disabled={loading}
|
151
|
+
onClick={this.close}
|
152
|
+
>
|
151
153
|
{error ? 'Cancel' : noLabel}
|
152
154
|
</OutlineButton>
|
153
155
|
</Container>
|