@planningcenter/tapestry-react 2.9.0-rc.2 → 2.9.0-rc.3
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.
|
@@ -27,10 +27,13 @@ var _utils = require("../utils");
|
|
|
27
27
|
|
|
28
28
|
var _utils2 = require("./utils");
|
|
29
29
|
|
|
30
|
+
var isMobile = typeof window !== 'undefined' ? /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) : false;
|
|
31
|
+
|
|
30
32
|
var TimeField = function TimeField(_ref) {
|
|
31
33
|
var ignoredKeys = _ref.ignoredKeys,
|
|
32
34
|
interval = _ref.interval,
|
|
33
|
-
isIOS = _ref.isIOS,
|
|
35
|
+
_ref$isIOS = _ref.isIOS,
|
|
36
|
+
isIOS = _ref$isIOS === void 0 ? false : _ref$isIOS,
|
|
34
37
|
max = _ref.max,
|
|
35
38
|
min = _ref.min,
|
|
36
39
|
onChange = _ref.onChange,
|
|
@@ -236,13 +239,18 @@ var TimeField = function TimeField(_ref) {
|
|
|
236
239
|
return onChange([hours, minutes]);
|
|
237
240
|
};
|
|
238
241
|
|
|
239
|
-
var
|
|
242
|
+
var handleMobileChange = function handleMobileChange(event) {
|
|
240
243
|
var _event$target$value$s = event.target.value.split(':'),
|
|
241
244
|
hours = _event$target$value$s[0],
|
|
242
245
|
minutes = _event$target$value$s[1];
|
|
243
246
|
|
|
244
|
-
|
|
245
|
-
|
|
247
|
+
if (hours || minutes) {
|
|
248
|
+
setHours(hours);
|
|
249
|
+
setMinutes(minutes);
|
|
250
|
+
} else {
|
|
251
|
+
setHours(0);
|
|
252
|
+
setMinutes(0);
|
|
253
|
+
}
|
|
246
254
|
};
|
|
247
255
|
|
|
248
256
|
(0, _react.useEffect)(function () {
|
|
@@ -254,11 +262,11 @@ var TimeField = function TimeField(_ref) {
|
|
|
254
262
|
|
|
255
263
|
updateTime([hours, minutes]);
|
|
256
264
|
}, [hours, minutes]);
|
|
257
|
-
return isIOS ? /*#__PURE__*/_react["default"].createElement(_Input["default"], (0, _extends2["default"])({}, restProps, {
|
|
265
|
+
return isMobile || isIOS ? /*#__PURE__*/_react["default"].createElement(_Input["default"], (0, _extends2["default"])({}, restProps, {
|
|
258
266
|
type: "time",
|
|
259
267
|
autoWidth: hours + ":" + (0, _utils.padNumber)(minutes, 2) + " " + meridiem,
|
|
260
268
|
value: (0, _utils.padNumber)(hours, 2) + ":" + (0, _utils.padNumber)(minutes, 2),
|
|
261
|
-
onChange:
|
|
269
|
+
onChange: handleMobileChange
|
|
262
270
|
})) : /*#__PURE__*/_react["default"].createElement(_InputBox["default"], (0, _extends2["default"])({
|
|
263
271
|
ref: ref,
|
|
264
272
|
inline: true
|
|
@@ -8,6 +8,7 @@ import InputField from '../Input/InputField';
|
|
|
8
8
|
import NumberField from '../NumberField';
|
|
9
9
|
import { noop, padNumber } from '../utils';
|
|
10
10
|
import { addHoursToTime, addMinutesToTime, addTimeToDate, getTimeFromDate } from './utils';
|
|
11
|
+
var isMobile = typeof window !== 'undefined' ? /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) : false;
|
|
11
12
|
|
|
12
13
|
var _ref2 = /*#__PURE__*/React.createElement(Box, {
|
|
13
14
|
as: "span",
|
|
@@ -19,7 +20,8 @@ var _ref2 = /*#__PURE__*/React.createElement(Box, {
|
|
|
19
20
|
var TimeField = function TimeField(_ref) {
|
|
20
21
|
var ignoredKeys = _ref.ignoredKeys,
|
|
21
22
|
interval = _ref.interval,
|
|
22
|
-
isIOS = _ref.isIOS,
|
|
23
|
+
_ref$isIOS = _ref.isIOS,
|
|
24
|
+
isIOS = _ref$isIOS === void 0 ? false : _ref$isIOS,
|
|
23
25
|
max = _ref.max,
|
|
24
26
|
min = _ref.min,
|
|
25
27
|
onChange = _ref.onChange,
|
|
@@ -226,13 +228,18 @@ var TimeField = function TimeField(_ref) {
|
|
|
226
228
|
return onChange([hours, minutes]);
|
|
227
229
|
};
|
|
228
230
|
|
|
229
|
-
var
|
|
231
|
+
var handleMobileChange = function handleMobileChange(event) {
|
|
230
232
|
var _event$target$value$s = event.target.value.split(':'),
|
|
231
233
|
hours = _event$target$value$s[0],
|
|
232
234
|
minutes = _event$target$value$s[1];
|
|
233
235
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
+
if (hours || minutes) {
|
|
237
|
+
setHours(hours);
|
|
238
|
+
setMinutes(minutes);
|
|
239
|
+
} else {
|
|
240
|
+
setHours(0);
|
|
241
|
+
setMinutes(0);
|
|
242
|
+
}
|
|
236
243
|
};
|
|
237
244
|
|
|
238
245
|
useEffect(function () {
|
|
@@ -244,11 +251,11 @@ var TimeField = function TimeField(_ref) {
|
|
|
244
251
|
|
|
245
252
|
updateTime([hours, minutes]);
|
|
246
253
|
}, [hours, minutes]);
|
|
247
|
-
return isIOS ? /*#__PURE__*/React.createElement(Input, _extends({}, restProps, {
|
|
254
|
+
return isMobile || isIOS ? /*#__PURE__*/React.createElement(Input, _extends({}, restProps, {
|
|
248
255
|
type: "time",
|
|
249
256
|
autoWidth: hours + ":" + padNumber(minutes, 2) + " " + meridiem,
|
|
250
257
|
value: padNumber(hours, 2) + ":" + padNumber(minutes, 2),
|
|
251
|
-
onChange:
|
|
258
|
+
onChange: handleMobileChange
|
|
252
259
|
})) : /*#__PURE__*/React.createElement(InputBox, _extends({
|
|
253
260
|
ref: ref,
|
|
254
261
|
inline: true
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@planningcenter/tapestry-react",
|
|
3
|
-
"version": "2.9.0-rc.
|
|
3
|
+
"version": "2.9.0-rc.3",
|
|
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",
|
|
@@ -5,7 +5,7 @@ import Input from '../Input/Input'
|
|
|
5
5
|
import InputBox from '../Input/InputBox'
|
|
6
6
|
import InputField from '../Input/InputField'
|
|
7
7
|
import NumberField from '../NumberField'
|
|
8
|
-
import {
|
|
8
|
+
import { noop, padNumber } from '../utils'
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
11
|
addHoursToTime,
|
|
@@ -49,10 +49,17 @@ type TimeFieldProps = {
|
|
|
49
49
|
value: [number, number]
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
const isMobile =
|
|
53
|
+
typeof window !== 'undefined'
|
|
54
|
+
? /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
|
55
|
+
navigator.userAgent
|
|
56
|
+
)
|
|
57
|
+
: false
|
|
58
|
+
|
|
52
59
|
const TimeField = ({
|
|
53
60
|
ignoredKeys,
|
|
54
61
|
interval,
|
|
55
|
-
isIOS,
|
|
62
|
+
isIOS = false,
|
|
56
63
|
max,
|
|
57
64
|
min,
|
|
58
65
|
onChange,
|
|
@@ -241,10 +248,16 @@ const TimeField = ({
|
|
|
241
248
|
return onChange([hours, minutes])
|
|
242
249
|
}
|
|
243
250
|
|
|
244
|
-
const
|
|
251
|
+
const handleMobileChange = (event: any) => {
|
|
245
252
|
const [hours, minutes] = event.target.value.split(':')
|
|
246
|
-
|
|
247
|
-
|
|
253
|
+
|
|
254
|
+
if (hours || minutes) {
|
|
255
|
+
setHours(hours)
|
|
256
|
+
setMinutes(minutes)
|
|
257
|
+
} else {
|
|
258
|
+
setHours(0)
|
|
259
|
+
setMinutes(0)
|
|
260
|
+
}
|
|
248
261
|
}
|
|
249
262
|
|
|
250
263
|
useEffect(() => {
|
|
@@ -256,13 +269,13 @@ const TimeField = ({
|
|
|
256
269
|
updateTime([hours, minutes])
|
|
257
270
|
}, [hours, minutes])
|
|
258
271
|
|
|
259
|
-
return isIOS ? (
|
|
272
|
+
return isMobile || isIOS ? (
|
|
260
273
|
<Input
|
|
261
274
|
{...restProps}
|
|
262
275
|
type="time"
|
|
263
276
|
autoWidth={`${hours}:${padNumber(minutes, 2)} ${meridiem}`}
|
|
264
277
|
value={`${padNumber(hours, 2)}:${padNumber(minutes, 2)}`}
|
|
265
|
-
onChange={
|
|
278
|
+
onChange={handleMobileChange}
|
|
266
279
|
/>
|
|
267
280
|
) : (
|
|
268
281
|
<InputBox ref={ref} inline {...restProps}>
|