@jobber/components 4.25.0 → 4.25.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.
package/dist/DatePicker/index.js
CHANGED
|
@@ -82,12 +82,13 @@ function DatePicker({ onChange, onMonthChange, activator, inline, selected, read
|
|
|
82
82
|
const datePickerClassNames = classnames__default["default"](styles.datePicker, {
|
|
83
83
|
[styles.inline]: inline,
|
|
84
84
|
});
|
|
85
|
+
const { pickerRef } = useEscapeKeyToCloseDatePicker(open, ref);
|
|
85
86
|
if (smartAutofocus) {
|
|
86
87
|
useRefocusOnActivator.useRefocusOnActivator(open);
|
|
87
88
|
React.useEffect(focusOnSelectedDate, [open]);
|
|
88
89
|
}
|
|
89
90
|
return (React__default["default"].createElement("div", { className: wrapperClassName, ref: ref },
|
|
90
|
-
React__default["default"].createElement(ReactDatePicker__default["default"], { calendarClassName: datePickerClassNames, showPopperArrow: false, selected: selected, inline: inline, disabled: disabled, readOnly: readonly, onChange: handleChange, maxDate: maxDate, preventOpenOnFocus: true, minDate: minDate, useWeekdaysShort: true, customInput: React__default["default"].createElement(DatePickerActivator, { activator: activator, fullWidth: fullWidth }), renderCustomHeader: props => React__default["default"].createElement(DatePickerCustomHeader, Object.assign({}, props)), onCalendarOpen: handleCalendarOpen, onCalendarClose: handleCalendarClose, dateFormat: ["P", "PP", "PPP", "MMM dd yyyy", "MMMM dd yyyy"], highlightDates: highlightDates, onMonthChange: onMonthChange })));
|
|
91
|
+
React__default["default"].createElement(ReactDatePicker__default["default"], { ref: pickerRef, calendarClassName: datePickerClassNames, showPopperArrow: false, selected: selected, inline: inline, disabled: disabled, readOnly: readonly, onChange: handleChange, maxDate: maxDate, preventOpenOnFocus: true, minDate: minDate, useWeekdaysShort: true, customInput: React__default["default"].createElement(DatePickerActivator, { activator: activator, fullWidth: fullWidth }), renderCustomHeader: props => React__default["default"].createElement(DatePickerCustomHeader, Object.assign({}, props)), onCalendarOpen: handleCalendarOpen, onCalendarClose: handleCalendarClose, dateFormat: ["P", "PP", "PPP", "MMM dd yyyy", "MMMM dd yyyy"], highlightDates: highlightDates, onMonthChange: onMonthChange })));
|
|
91
92
|
/**
|
|
92
93
|
* The onChange callback on ReactDatePicker returns a Date and an Event, but
|
|
93
94
|
* the onChange in our interface only provides the Date. Simplifying the code
|
|
@@ -106,5 +107,28 @@ function DatePicker({ onChange, onMonthChange, activator, inline, selected, read
|
|
|
106
107
|
setOpen(false);
|
|
107
108
|
}
|
|
108
109
|
}
|
|
110
|
+
function useEscapeKeyToCloseDatePicker(open, ref) {
|
|
111
|
+
const pickerRef = React.useRef(null);
|
|
112
|
+
const escFunction = (event) => {
|
|
113
|
+
var _a;
|
|
114
|
+
if (event.key === "Escape" && open) {
|
|
115
|
+
// Close the picker ourselves and prevent propagation so that ESC presses with the picker open
|
|
116
|
+
// do not close parent elements that may also be listening for ESC presses such as Modals
|
|
117
|
+
(_a = pickerRef.current) === null || _a === void 0 ? void 0 : _a.setOpen(false);
|
|
118
|
+
event.stopPropagation();
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
React.useEffect(() => {
|
|
122
|
+
var _a;
|
|
123
|
+
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener("keydown", escFunction);
|
|
124
|
+
return () => {
|
|
125
|
+
var _a;
|
|
126
|
+
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener("keydown", escFunction);
|
|
127
|
+
};
|
|
128
|
+
}, [open, ref, pickerRef]);
|
|
129
|
+
return {
|
|
130
|
+
pickerRef,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
109
133
|
|
|
110
134
|
exports.DatePicker = DatePicker;
|
package/dist/InputDate/index.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var omit = require('lodash/omit');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var FormField = require('../FormField-0f880b07.js');
|
|
8
|
-
var DatePicker = require('../DatePicker-
|
|
8
|
+
var DatePicker = require('../DatePicker-2bfdba58.js');
|
|
9
9
|
require('../tslib.es6-5b8768b7.js');
|
|
10
10
|
require('uuid');
|
|
11
11
|
require('react-hook-form');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "4.25.
|
|
3
|
+
"version": "4.25.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"> 1%",
|
|
84
84
|
"IE 10"
|
|
85
85
|
],
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "a7f25a47c7b128c308f582d83238805f6606b401"
|
|
87
87
|
}
|