@tap-payments/os-micro-frontend-shared 0.0.189 → 0.0.191

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.
@@ -15,7 +15,7 @@ import ClickAwayListener from '@mui/material/ClickAwayListener';
15
15
  import Popper from '@mui/material/Popper';
16
16
  import { useTranslation } from 'react-i18next';
17
17
  import { Calendar as MDPicker, DateObject } from 'react-multi-date-picker';
18
- import TimePicker, { getDefaultHour, getDefaultMinute, convertTo12Hour } from '../Timepicker';
18
+ import TimePicker, { getDefaultHour, getDefaultMinute, convertTo12Hour, getPeriodFrom24Hour, convertTo24Hour } from '../Timepicker';
19
19
  import { darkLeftArrowIcon, darkRightArrowIcon } from '../../constants/index.js';
20
20
  import { ArrowButton, CalenderWrapper, SelectedDate, Wrapper, ButtonsWrapper, CancelButton, OkayButton, FooterButtonsWrapper } from './style';
21
21
  const weekDays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
@@ -26,7 +26,12 @@ function Calender(_a) {
26
26
  const [date, setDate] = useState(value ? new DateObject(new Date(value.toLocaleString())) : new DateObject(new Date()));
27
27
  const [tempDate, setTempDate] = useState(value ? new DateObject(new Date(value.toLocaleString())) : new DateObject(new Date()));
28
28
  const defaultHour = (value === null || value === void 0 ? void 0 : value.hour) ? convertTo12Hour(value.hour) : getDefaultHour();
29
- const [time, setTime] = useState({ hour: defaultHour, minute: (_b = value === null || value === void 0 ? void 0 : value.minute) !== null && _b !== void 0 ? _b : getDefaultMinute() });
29
+ const defaultPeriod = (value === null || value === void 0 ? void 0 : value.hour) ? getPeriodFrom24Hour(value.hour) : getPeriodFrom24Hour(new Date().getHours());
30
+ const [time, setTime] = useState({
31
+ hour: defaultHour,
32
+ minute: (_b = value === null || value === void 0 ? void 0 : value.minute) !== null && _b !== void 0 ? _b : getDefaultMinute(),
33
+ period: defaultPeriod,
34
+ });
30
35
  const { t } = useTranslation();
31
36
  const open = Boolean(anchorEl);
32
37
  const getArrow = (direction) => {
@@ -42,7 +47,11 @@ function Calender(_a) {
42
47
  setAnchorEl(null);
43
48
  };
44
49
  const handleSubmit = () => {
45
- const dateValue = enableTimePicker ? tempDate.setHour(time.hour).setMinute(time.minute) : tempDate;
50
+ let hour24 = time.hour;
51
+ if (enableTimePicker) {
52
+ hour24 = convertTo24Hour(time.hour, time.period || 'AM');
53
+ }
54
+ const dateValue = enableTimePicker ? tempDate.setHour(hour24).setMinute(time.minute) : tempDate;
46
55
  setDate(dateValue);
47
56
  if (setValue)
48
57
  setValue(dateValue);
@@ -1,6 +1,7 @@
1
1
  export type Time = {
2
2
  hour: number;
3
3
  minute: number;
4
+ period?: 'AM' | 'PM';
4
5
  };
5
6
  interface TimePickerProps {
6
7
  defaultTime?: Time;
@@ -9,18 +9,18 @@ import { Arrow, Button, Period, PeriodWrapper, Wrapper, Time, TimeWrapper, Input
9
9
  import { getDefaultHour, getDefaultMinute } from './utils';
10
10
  import { maxHour, maxMinute, periodList } from './constant';
11
11
  export function TimePicker({ onChange, defaultTime }) {
12
- var _a, _b;
12
+ var _a, _b, _c;
13
13
  const [anchorEl, setAnchorEl] = useState(null);
14
- const [period, setPeriod] = useState(new Date().getHours() >= maxHour ? 'PM' : 'AM');
15
- const [hours, setHours] = useState((_a = defaultTime === null || defaultTime === void 0 ? void 0 : defaultTime.hour) !== null && _a !== void 0 ? _a : getDefaultHour());
16
- const [minutes, setMinutes] = useState((_b = defaultTime === null || defaultTime === void 0 ? void 0 : defaultTime.minute) !== null && _b !== void 0 ? _b : getDefaultMinute());
14
+ const [period, setPeriod] = useState((_a = defaultTime === null || defaultTime === void 0 ? void 0 : defaultTime.period) !== null && _a !== void 0 ? _a : (new Date().getHours() >= maxHour ? 'PM' : 'AM'));
15
+ const [hours, setHours] = useState((_b = defaultTime === null || defaultTime === void 0 ? void 0 : defaultTime.hour) !== null && _b !== void 0 ? _b : getDefaultHour());
16
+ const [minutes, setMinutes] = useState((_c = defaultTime === null || defaultTime === void 0 ? void 0 : defaultTime.minute) !== null && _c !== void 0 ? _c : getDefaultMinute());
17
17
  const open = Boolean(anchorEl);
18
18
  const onOpen = (e) => {
19
19
  setAnchorEl(e.currentTarget);
20
20
  };
21
21
  const onClose = () => {
22
22
  setAnchorEl(null);
23
- onChange === null || onChange === void 0 ? void 0 : onChange({ hour: period === 'PM' ? hours + 12 : hours, minute: minutes });
23
+ onChange === null || onChange === void 0 ? void 0 : onChange({ hour: hours, minute: minutes, period: period });
24
24
  };
25
25
  const onClickPeriod = (selectedPeriod) => {
26
26
  setPeriod(selectedPeriod);
@@ -1,3 +1,5 @@
1
1
  export declare const convertTo12Hour: (hour24: number) => number;
2
+ export declare const getPeriodFrom24Hour: (hour24: number) => 'AM' | 'PM';
2
3
  export declare const getDefaultMinute: () => number;
3
4
  export declare const getDefaultHour: () => number;
5
+ export declare const convertTo24Hour: (hour12: number, period: 'AM' | 'PM') => number;
@@ -5,8 +5,20 @@ export const convertTo12Hour = (hour24) => {
5
5
  return hour24;
6
6
  return hour24 - 12;
7
7
  };
8
+ export const getPeriodFrom24Hour = (hour24) => {
9
+ return hour24 >= 12 ? 'PM' : 'AM';
10
+ };
8
11
  export const getDefaultMinute = () => new Date().getMinutes();
9
12
  export const getDefaultHour = () => {
10
13
  const currentHour = new Date().getHours();
11
14
  return convertTo12Hour(currentHour);
12
15
  };
16
+ export const convertTo24Hour = (hour12, period) => {
17
+ if (period === 'AM' && hour12 === 12) {
18
+ return 0;
19
+ }
20
+ else if (period === 'PM' && hour12 !== 12) {
21
+ return hour12 + 12;
22
+ }
23
+ return hour12;
24
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tap-payments/os-micro-frontend-shared",
3
3
  "description": "Shared components and utilities for Tap Payments micro frontends",
4
- "version": "0.0.189",
4
+ "version": "0.0.191",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
7
7
  "module": "build/index.js",