@planningcenter/tapestry-react 2.8.1 → 2.9.0-rc.0

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.
@@ -106,6 +106,7 @@ function DateField(_ref) {
106
106
  var navigateCalendarWithArrowKeys = (0, _useArrowKeysToNavigateCalendar.useArrowKeysToNavigateCalendar)({
107
107
  date: value,
108
108
  calendarIsOpen: isPopoverOpen,
109
+ closeCalendar: closePopover,
109
110
  openCalendar: openPopover,
110
111
  onChange: setDate
111
112
  });
@@ -8,6 +8,7 @@ var _react = require("react");
8
8
  var useArrowKeysToNavigateCalendar = function useArrowKeysToNavigateCalendar(_ref) {
9
9
  var date = _ref.date,
10
10
  calendarIsOpen = _ref.calendarIsOpen,
11
+ closeCalendar = _ref.closeCalendar,
11
12
  openCalendar = _ref.openCalendar,
12
13
  onChange = _ref.onChange;
13
14
  var incrementDate = (0, _react.useCallback)(function (by) {
@@ -30,6 +31,9 @@ var useArrowKeysToNavigateCalendar = function useArrowKeysToNavigateCalendar(_re
30
31
  } else if (event.key === 'ArrowRight') {
31
32
  event.preventDefault();
32
33
  incrementDate(1);
34
+ } else if (event.key === 'Enter') {
35
+ event.preventDefault();
36
+ closeCalendar();
33
37
  }
34
38
  } else {
35
39
  if (event.key === 'ArrowDown') {
@@ -87,9 +87,15 @@ var TimeField = /*#__PURE__*/function (_Component) {
87
87
  }, _this.updateTime);
88
88
  });
89
89
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleHoursChange", function (hours) {
90
- _this.updateTime({
91
- hours: hours
92
- });
90
+ if (_this.twelveHourClock && hours === 0) {
91
+ _this.updateTime({
92
+ hours: 12
93
+ });
94
+ } else {
95
+ _this.updateTime({
96
+ hours: hours
97
+ });
98
+ }
93
99
  });
94
100
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleHoursKeyDown", function (event) {
95
101
  var hour = Number(event.target.value);
@@ -215,7 +221,7 @@ var TimeField = /*#__PURE__*/function (_Component) {
215
221
  fontVariantNumeric: "tabular-nums",
216
222
  moveFocusOnMax: true,
217
223
  value: twelveHourClock ? hours % _utils2.HOURS_TO_NOON || _utils2.HOURS_TO_NOON : hours,
218
- min: twelveHourClock ? 1 : 0,
224
+ min: 0,
219
225
  max: twelveHourClock ? _utils2.HOURS_TO_NOON : _utils2.HOURS_IN_DAY - 1,
220
226
  pad: 2,
221
227
  grow: 0,
@@ -85,6 +85,7 @@ function DateField(_ref) {
85
85
  var navigateCalendarWithArrowKeys = useArrowKeysToNavigateCalendar({
86
86
  date: value,
87
87
  calendarIsOpen: isPopoverOpen,
88
+ closeCalendar: closePopover,
88
89
  openCalendar: openPopover,
89
90
  onChange: setDate
90
91
  });
@@ -2,6 +2,7 @@ import { useCallback } from "react";
2
2
  export var useArrowKeysToNavigateCalendar = function useArrowKeysToNavigateCalendar(_ref) {
3
3
  var date = _ref.date,
4
4
  calendarIsOpen = _ref.calendarIsOpen,
5
+ closeCalendar = _ref.closeCalendar,
5
6
  openCalendar = _ref.openCalendar,
6
7
  onChange = _ref.onChange;
7
8
  var incrementDate = useCallback(function (by) {
@@ -24,6 +25,9 @@ export var useArrowKeysToNavigateCalendar = function useArrowKeysToNavigateCalen
24
25
  } else if (event.key === 'ArrowRight') {
25
26
  event.preventDefault();
26
27
  incrementDate(1);
28
+ } else if (event.key === 'Enter') {
29
+ event.preventDefault();
30
+ closeCalendar();
27
31
  }
28
32
  } else {
29
33
  if (event.key === 'ArrowDown') {
@@ -78,9 +78,15 @@ var TimeField = /*#__PURE__*/function (_Component) {
78
78
  });
79
79
 
80
80
  _defineProperty(_assertThisInitialized(_this), "handleHoursChange", function (hours) {
81
- _this.updateTime({
82
- hours: hours
83
- });
81
+ if (_this.twelveHourClock && hours === 0) {
82
+ _this.updateTime({
83
+ hours: 12
84
+ });
85
+ } else {
86
+ _this.updateTime({
87
+ hours: hours
88
+ });
89
+ }
84
90
  });
85
91
 
86
92
  _defineProperty(_assertThisInitialized(_this), "handleHoursKeyDown", function (event) {
@@ -213,7 +219,7 @@ var TimeField = /*#__PURE__*/function (_Component) {
213
219
  fontVariantNumeric: "tabular-nums",
214
220
  moveFocusOnMax: true,
215
221
  value: twelveHourClock ? hours % HOURS_TO_NOON || HOURS_TO_NOON : hours,
216
- min: twelveHourClock ? 1 : 0,
222
+ min: 0,
217
223
  max: twelveHourClock ? HOURS_TO_NOON : HOURS_IN_DAY - 1,
218
224
  pad: 2,
219
225
  grow: 0,
@@ -2,7 +2,8 @@ interface Props {
2
2
  date: Date;
3
3
  calendarIsOpen: boolean;
4
4
  openCalendar: () => void;
5
+ closeCalendar: () => void;
5
6
  onChange: (date: Date) => void;
6
7
  }
7
- export declare const useArrowKeysToNavigateCalendar: ({ date, calendarIsOpen, openCalendar, onChange, }: Props) => (event: React.KeyboardEvent<HTMLInputElement>) => void;
8
+ export declare const useArrowKeysToNavigateCalendar: ({ date, calendarIsOpen, closeCalendar, openCalendar, onChange, }: Props) => (event: React.KeyboardEvent<HTMLInputElement>) => void;
8
9
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planningcenter/tapestry-react",
3
- "version": "2.8.1",
3
+ "version": "2.9.0-rc.0",
4
4
  "description": "A collection of flexible React components to help you build resilient, accessible user interfaces quickly and effectively.",
5
5
  "author": "Front End Systems Engineering <frontend@pco.bz>",
6
6
  "main": "dist/cjs/index.js",
@@ -151,6 +151,7 @@ function DateField({
151
151
  const navigateCalendarWithArrowKeys = useArrowKeysToNavigateCalendar({
152
152
  date: value,
153
153
  calendarIsOpen: isPopoverOpen,
154
+ closeCalendar: closePopover,
154
155
  openCalendar: openPopover,
155
156
  onChange: setDate,
156
157
  })
@@ -4,12 +4,14 @@ interface Props {
4
4
  date: Date
5
5
  calendarIsOpen: boolean
6
6
  openCalendar: () => void
7
+ closeCalendar: () => void
7
8
  onChange: (date: Date) => void
8
9
  }
9
10
 
10
11
  export const useArrowKeysToNavigateCalendar = ({
11
12
  date,
12
13
  calendarIsOpen,
14
+ closeCalendar,
13
15
  openCalendar,
14
16
  onChange,
15
17
  }: Props) => {
@@ -39,6 +41,9 @@ export const useArrowKeysToNavigateCalendar = ({
39
41
  } else if (event.key === 'ArrowRight') {
40
42
  event.preventDefault()
41
43
  incrementDate(1)
44
+ } else if (event.key === 'Enter') {
45
+ event.preventDefault()
46
+ closeCalendar()
42
47
  }
43
48
  } else {
44
49
  if (event.key === 'ArrowDown') {
@@ -118,7 +118,11 @@ class TimeField extends Component<Props> {
118
118
  }
119
119
 
120
120
  handleHoursChange = (hours) => {
121
- this.updateTime({ hours })
121
+ if (this.twelveHourClock && hours === 0) {
122
+ this.updateTime({ hours: 12 })
123
+ } else {
124
+ this.updateTime({ hours })
125
+ }
122
126
  }
123
127
 
124
128
  handleHoursKeyDown = (event) => {
@@ -228,7 +232,7 @@ class TimeField extends Component<Props> {
228
232
  value={
229
233
  twelveHourClock ? hours % HOURS_TO_NOON || HOURS_TO_NOON : hours
230
234
  }
231
- min={twelveHourClock ? 1 : 0}
235
+ min={0}
232
236
  max={twelveHourClock ? HOURS_TO_NOON : HOURS_IN_DAY - 1}
233
237
  pad={2}
234
238
  grow={0}