@grupalia/rn-ui-kit 0.17.0 → 0.18.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.
@@ -14,6 +14,14 @@ var _BaseText = _interopRequireDefault(require("./BaseText"));
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ function parseMilitaryTime(time) {
18
+ const hour = Math.floor(time / 100);
19
+ const minute = time % 100;
20
+ return {
21
+ hour,
22
+ minute
23
+ };
24
+ }
17
25
  function TimeSlots({
18
26
  timeSlots,
19
27
  selectedTime,
@@ -78,9 +86,10 @@ function DateTimeSelector({
78
86
  onChange,
79
87
  minDate,
80
88
  maxDate,
81
- minHour = 0,
82
- maxHour = 23,
83
- timeSlotStepMinutes = 30,
89
+ minHour = 800,
90
+ maxHour = 2300,
91
+ timeSlotIntervalMinutes = 30,
92
+ timeSlotDurationMinutes,
84
93
  disabledWeekDays = [],
85
94
  disabledHours = [],
86
95
  dateLabel,
@@ -105,20 +114,37 @@ function DateTimeSelector({
105
114
  const getTimeSlotsForDate = (0, _react.useCallback)(date => {
106
115
  const slots = [];
107
116
  const now = new Date();
108
- for (let hour = minHour; hour <= maxHour; hour += 1) {
117
+ const minHourParsed = minHour >= 100 ? parseMilitaryTime(minHour) : {
118
+ hour: minHour,
119
+ minute: 0
120
+ };
121
+ const minHourInMinutes = minHourParsed.hour * 60 + minHourParsed.minute;
122
+ const maxHourParsed = maxHour >= 100 ? parseMilitaryTime(maxHour) : {
123
+ hour: maxHour,
124
+ minute: 0
125
+ };
126
+ const maxHourInMinutes = maxHourParsed.hour * 60 + maxHourParsed.minute;
127
+ for (let hour = 0; hour <= 23; hour += 1) {
109
128
  if (disabledHours.includes(hour)) continue;
110
129
  if (!allowPastDatetimes && (0, _dateFns.isToday)(date) && hour < now.getHours()) continue;
111
- for (let minute = 0; minute < 60; minute += timeSlotStepMinutes) {
130
+ for (let minute = 0; minute < 60; minute += timeSlotIntervalMinutes) {
131
+ const currentTimeInMinutes = hour * 60 + minute;
132
+ if (currentTimeInMinutes < minHourInMinutes || currentTimeInMinutes > maxHourInMinutes) continue;
112
133
  if (!allowPastDatetimes && (0, _dateFns.isToday)(date) && hour === now.getHours() && minute <= now.getMinutes()) continue;
113
- const endTime = new Date();
114
- endTime.setHours(hour, minute + timeSlotStepMinutes, 0, 0);
115
- const endHour = endTime.getHours();
116
- const endMinute = endTime.getMinutes();
134
+ const startTimeInMinutes = hour * 60 + minute;
135
+ const endTimeInMinutes = startTimeInMinutes + (timeSlotDurationMinutes || 0);
136
+ const endHour = Math.floor(endTimeInMinutes / 60);
137
+ const endMinute = endTimeInMinutes % 60;
117
138
  const startTime = new Date().setHours(hour, minute);
118
- const endTimeForLabel = new Date().setHours(endHour, endMinute);
119
- const startLabel = (0, _dateFns.format)(startTime, 'h:mm');
120
- const endLabel = (0, _dateFns.format)(endTimeForLabel, 'h:mm a');
121
- const hourLabel = `${startLabel} - ${endLabel}`;
139
+ const startLabel = (0, _dateFns.format)(startTime, 'H:mm');
140
+ let hourLabel;
141
+ if (timeSlotDurationMinutes && timeSlotDurationMinutes > 0) {
142
+ const endTimeForLabel = new Date().setHours(endHour, endMinute);
143
+ const endLabel = (0, _dateFns.format)(endTimeForLabel, 'H:mm');
144
+ hourLabel = `${startLabel} - ${endLabel}`;
145
+ } else {
146
+ hourLabel = startLabel;
147
+ }
122
148
  slots.push({
123
149
  hour,
124
150
  minute,
@@ -129,7 +155,7 @@ function DateTimeSelector({
129
155
  }
130
156
  }
131
157
  return slots;
132
- }, [minHour, maxHour, timeSlotStepMinutes, disabledHours, allowPastDatetimes]);
158
+ }, [minHour, maxHour, timeSlotIntervalMinutes, timeSlotDurationMinutes, disabledHours, allowPastDatetimes]);
133
159
  const timeSlots = (0, _react.useMemo)(() => {
134
160
  if (!selectedDate) return [];
135
161
  return getTimeSlotsForDate(selectedDate);
@@ -1 +1 @@
1
- {"version":3,"names":["_dateFns","require","_nativewind","_react","_interopRequireWildcard","_hocComponents","_BaseDatesScrollView","_interopRequireDefault","_BaseRadioGroup","_BaseText","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TimeSlots","timeSlots","selectedTime","handleTimePress","disabled","timeLabel","radioOptions","map","slot","label","value","hour","minute","selectedValue","undefined","handleRadioChange","split","Number","jsxs","View","className","children","jsx","GestureScrollView","style","flex","minHeight","showsVerticalScrollIndicator","nestedScrollEnabled","options","onChange","length","LinearGradient","colors","start","x","y","end","pointerEvents","DateTimeSelector","minDate","maxDate","minHour","maxHour","timeSlotStepMinutes","disabledWeekDays","disabledHours","dateLabel","description","error","allowPastDatetimes","props","selectedDate","setSelectedDate","useState","minDateStartOfDay","useMemo","startOfDay","Date","maxDateEndOfDay","dateRange","startDate","endDate","addDays","eachDayOfInterval","getTimeSlotsForDate","useCallback","date","slots","now","includes","isToday","getHours","getMinutes","endTime","setHours","endHour","endMinute","startTime","endTimeForLabel","startLabel","format","endLabel","hourLabel","push","isDayDisabled","day","isBefore","isAfter","getDay","availableSlots","handleDayPress","time","newDate","isSameDay","onDayPress","_default","exports","styled"],"sourceRoot":"../../../src","sources":["components/DateTimeSelector.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dateFns","require","_nativewind","_react","_interopRequireWildcard","_hocComponents","_BaseDatesScrollView","_interopRequireDefault","_BaseRadioGroup","_BaseText","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","parseMilitaryTime","time","hour","Math","floor","minute","TimeSlots","timeSlots","selectedTime","handleTimePress","disabled","timeLabel","radioOptions","map","slot","label","value","selectedValue","undefined","handleRadioChange","split","Number","jsxs","View","className","children","jsx","GestureScrollView","style","flex","minHeight","showsVerticalScrollIndicator","nestedScrollEnabled","options","onChange","length","LinearGradient","colors","start","x","y","end","pointerEvents","DateTimeSelector","minDate","maxDate","minHour","maxHour","timeSlotIntervalMinutes","timeSlotDurationMinutes","disabledWeekDays","disabledHours","dateLabel","description","error","allowPastDatetimes","props","selectedDate","setSelectedDate","useState","minDateStartOfDay","useMemo","startOfDay","Date","maxDateEndOfDay","dateRange","startDate","endDate","addDays","eachDayOfInterval","getTimeSlotsForDate","useCallback","date","slots","now","minHourParsed","minHourInMinutes","maxHourParsed","maxHourInMinutes","includes","isToday","getHours","currentTimeInMinutes","getMinutes","startTimeInMinutes","endTimeInMinutes","endHour","endMinute","startTime","setHours","startLabel","format","hourLabel","endTimeForLabel","endLabel","push","isDayDisabled","day","isBefore","isAfter","getDay","availableSlots","handleDayPress","newDate","isSameDay","onDayPress","_default","exports","styled"],"sourceRoot":"../../../src","sources":["components/DateTimeSelector.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,14 @@ import BaseDatesScrollView from "./BaseDatesScrollView.js";
8
8
  import BaseRadioGroup from "./BaseRadioGroup.js";
9
9
  import BaseText from "./BaseText.js";
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ function parseMilitaryTime(time) {
12
+ const hour = Math.floor(time / 100);
13
+ const minute = time % 100;
14
+ return {
15
+ hour,
16
+ minute
17
+ };
18
+ }
11
19
  function TimeSlots({
12
20
  timeSlots,
13
21
  selectedTime,
@@ -72,9 +80,10 @@ function DateTimeSelector({
72
80
  onChange,
73
81
  minDate,
74
82
  maxDate,
75
- minHour = 0,
76
- maxHour = 23,
77
- timeSlotStepMinutes = 30,
83
+ minHour = 800,
84
+ maxHour = 2300,
85
+ timeSlotIntervalMinutes = 30,
86
+ timeSlotDurationMinutes,
78
87
  disabledWeekDays = [],
79
88
  disabledHours = [],
80
89
  dateLabel,
@@ -99,20 +108,37 @@ function DateTimeSelector({
99
108
  const getTimeSlotsForDate = useCallback(date => {
100
109
  const slots = [];
101
110
  const now = new Date();
102
- for (let hour = minHour; hour <= maxHour; hour += 1) {
111
+ const minHourParsed = minHour >= 100 ? parseMilitaryTime(minHour) : {
112
+ hour: minHour,
113
+ minute: 0
114
+ };
115
+ const minHourInMinutes = minHourParsed.hour * 60 + minHourParsed.minute;
116
+ const maxHourParsed = maxHour >= 100 ? parseMilitaryTime(maxHour) : {
117
+ hour: maxHour,
118
+ minute: 0
119
+ };
120
+ const maxHourInMinutes = maxHourParsed.hour * 60 + maxHourParsed.minute;
121
+ for (let hour = 0; hour <= 23; hour += 1) {
103
122
  if (disabledHours.includes(hour)) continue;
104
123
  if (!allowPastDatetimes && isToday(date) && hour < now.getHours()) continue;
105
- for (let minute = 0; minute < 60; minute += timeSlotStepMinutes) {
124
+ for (let minute = 0; minute < 60; minute += timeSlotIntervalMinutes) {
125
+ const currentTimeInMinutes = hour * 60 + minute;
126
+ if (currentTimeInMinutes < minHourInMinutes || currentTimeInMinutes > maxHourInMinutes) continue;
106
127
  if (!allowPastDatetimes && isToday(date) && hour === now.getHours() && minute <= now.getMinutes()) continue;
107
- const endTime = new Date();
108
- endTime.setHours(hour, minute + timeSlotStepMinutes, 0, 0);
109
- const endHour = endTime.getHours();
110
- const endMinute = endTime.getMinutes();
128
+ const startTimeInMinutes = hour * 60 + minute;
129
+ const endTimeInMinutes = startTimeInMinutes + (timeSlotDurationMinutes || 0);
130
+ const endHour = Math.floor(endTimeInMinutes / 60);
131
+ const endMinute = endTimeInMinutes % 60;
111
132
  const startTime = new Date().setHours(hour, minute);
112
- const endTimeForLabel = new Date().setHours(endHour, endMinute);
113
- const startLabel = format(startTime, 'h:mm');
114
- const endLabel = format(endTimeForLabel, 'h:mm a');
115
- const hourLabel = `${startLabel} - ${endLabel}`;
133
+ const startLabel = format(startTime, 'H:mm');
134
+ let hourLabel;
135
+ if (timeSlotDurationMinutes && timeSlotDurationMinutes > 0) {
136
+ const endTimeForLabel = new Date().setHours(endHour, endMinute);
137
+ const endLabel = format(endTimeForLabel, 'H:mm');
138
+ hourLabel = `${startLabel} - ${endLabel}`;
139
+ } else {
140
+ hourLabel = startLabel;
141
+ }
116
142
  slots.push({
117
143
  hour,
118
144
  minute,
@@ -123,7 +149,7 @@ function DateTimeSelector({
123
149
  }
124
150
  }
125
151
  return slots;
126
- }, [minHour, maxHour, timeSlotStepMinutes, disabledHours, allowPastDatetimes]);
152
+ }, [minHour, maxHour, timeSlotIntervalMinutes, timeSlotDurationMinutes, disabledHours, allowPastDatetimes]);
127
153
  const timeSlots = useMemo(() => {
128
154
  if (!selectedDate) return [];
129
155
  return getTimeSlotsForDate(selectedDate);
@@ -1 +1 @@
1
- {"version":3,"names":["format","eachDayOfInterval","isSameDay","isBefore","isAfter","getDay","addDays","startOfDay","isToday","styled","React","useMemo","useCallback","useState","View","GestureScrollView","LinearGradient","BaseDatesScrollView","BaseRadioGroup","BaseText","jsx","_jsx","jsxs","_jsxs","TimeSlots","timeSlots","selectedTime","handleTimePress","disabled","timeLabel","radioOptions","map","slot","label","value","hour","minute","selectedValue","undefined","handleRadioChange","split","Number","className","children","style","flex","minHeight","showsVerticalScrollIndicator","nestedScrollEnabled","options","onChange","length","colors","start","x","y","end","pointerEvents","DateTimeSelector","minDate","maxDate","minHour","maxHour","timeSlotStepMinutes","disabledWeekDays","disabledHours","dateLabel","description","error","allowPastDatetimes","props","selectedDate","setSelectedDate","minDateStartOfDay","Date","maxDateEndOfDay","dateRange","startDate","endDate","getTimeSlotsForDate","date","slots","now","includes","getHours","getMinutes","endTime","setHours","endHour","endMinute","startTime","endTimeForLabel","startLabel","endLabel","hourLabel","push","isDayDisabled","day","availableSlots","handleDayPress","time","newDate","onDayPress"],"sourceRoot":"../../../src","sources":["components/DateTimeSelector.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["format","eachDayOfInterval","isSameDay","isBefore","isAfter","getDay","addDays","startOfDay","isToday","styled","React","useMemo","useCallback","useState","View","GestureScrollView","LinearGradient","BaseDatesScrollView","BaseRadioGroup","BaseText","jsx","_jsx","jsxs","_jsxs","parseMilitaryTime","time","hour","Math","floor","minute","TimeSlots","timeSlots","selectedTime","handleTimePress","disabled","timeLabel","radioOptions","map","slot","label","value","selectedValue","undefined","handleRadioChange","split","Number","className","children","style","flex","minHeight","showsVerticalScrollIndicator","nestedScrollEnabled","options","onChange","length","colors","start","x","y","end","pointerEvents","DateTimeSelector","minDate","maxDate","minHour","maxHour","timeSlotIntervalMinutes","timeSlotDurationMinutes","disabledWeekDays","disabledHours","dateLabel","description","error","allowPastDatetimes","props","selectedDate","setSelectedDate","minDateStartOfDay","Date","maxDateEndOfDay","dateRange","startDate","endDate","getTimeSlotsForDate","date","slots","now","minHourParsed","minHourInMinutes","maxHourParsed","maxHourInMinutes","includes","getHours","currentTimeInMinutes","getMinutes","startTimeInMinutes","endTimeInMinutes","endHour","endMinute","startTime","setHours","startLabel","hourLabel","endTimeForLabel","endLabel","push","isDayDisabled","day","availableSlots","handleDayPress","newDate","onDayPress"],"sourceRoot":"../../../src","sources":["components/DateTimeSelector.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,8 @@ export interface DateTimeSelectorProps extends ViewProps {
7
7
  maxDate?: Date;
8
8
  minHour?: number;
9
9
  maxHour?: number;
10
- timeSlotStepMinutes?: number;
10
+ timeSlotIntervalMinutes?: number;
11
+ timeSlotDurationMinutes?: number;
11
12
  disabledWeekDays?: number[];
12
13
  disabledHours?: number[];
13
14
  dateLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTimeSelector.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgFzC,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;;;;;;;AA4JD,wBAAwC"}
1
+ {"version":3,"file":"DateTimeSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTimeSelector.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAsFzC,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;;;;;;;AA2LD,wBAAwC"}
@@ -7,7 +7,8 @@ export interface DateTimeSelectorProps extends ViewProps {
7
7
  maxDate?: Date;
8
8
  minHour?: number;
9
9
  maxHour?: number;
10
- timeSlotStepMinutes?: number;
10
+ timeSlotIntervalMinutes?: number;
11
+ timeSlotDurationMinutes?: number;
11
12
  disabledWeekDays?: number[];
12
13
  disabledHours?: number[];
13
14
  dateLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTimeSelector.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgFzC,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;;;;;;;AA4JD,wBAAwC"}
1
+ {"version":3,"file":"DateTimeSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTimeSelector.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAsFzC,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;;;;;;;AA2LD,wBAAwC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grupalia/rn-ui-kit",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "Grupalia React Native UI Kit",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/module/index.d.ts",
@@ -18,6 +18,12 @@ import BaseDatesScrollView from './BaseDatesScrollView';
18
18
  import BaseRadioGroup, { RadioOption } from './BaseRadioGroup';
19
19
  import BaseText from './BaseText';
20
20
 
21
+ function parseMilitaryTime(time: number): { hour: number; minute: number } {
22
+ const hour = Math.floor(time / 100);
23
+ const minute = time % 100;
24
+ return { hour, minute };
25
+ }
26
+
21
27
  interface TimeSlot {
22
28
  hour: number;
23
29
  minute: number;
@@ -98,7 +104,8 @@ export interface DateTimeSelectorProps extends ViewProps {
98
104
  maxDate?: Date;
99
105
  minHour?: number;
100
106
  maxHour?: number;
101
- timeSlotStepMinutes?: number;
107
+ timeSlotIntervalMinutes?: number;
108
+ timeSlotDurationMinutes?: number;
102
109
  disabledWeekDays?: number[];
103
110
  disabledHours?: number[];
104
111
  dateLabel?: string;
@@ -115,9 +122,10 @@ function DateTimeSelector({
115
122
  onChange,
116
123
  minDate,
117
124
  maxDate,
118
- minHour = 0,
119
- maxHour = 23,
120
- timeSlotStepMinutes = 30,
125
+ minHour = 800,
126
+ maxHour = 2300,
127
+ timeSlotIntervalMinutes = 30,
128
+ timeSlotDurationMinutes,
121
129
  disabledWeekDays = [],
122
130
  disabledHours = [],
123
131
  dateLabel,
@@ -144,11 +152,28 @@ function DateTimeSelector({
144
152
  const slots: TimeSlot[] = [];
145
153
  const now = new Date();
146
154
 
147
- for (let hour = minHour; hour <= maxHour; hour += 1) {
155
+ const minHourParsed = minHour >= 100
156
+ ? parseMilitaryTime(minHour)
157
+ : { hour: minHour, minute: 0 };
158
+ const minHourInMinutes = minHourParsed.hour * 60 + minHourParsed.minute;
159
+
160
+ const maxHourParsed = maxHour >= 100
161
+ ? parseMilitaryTime(maxHour)
162
+ : { hour: maxHour, minute: 0 };
163
+ const maxHourInMinutes = maxHourParsed.hour * 60 + maxHourParsed.minute;
164
+
165
+ for (let hour = 0; hour <= 23; hour += 1) {
148
166
  if (disabledHours.includes(hour)) continue;
149
167
  if (!allowPastDatetimes && isToday(date) && hour < now.getHours()) continue;
150
168
 
151
- for (let minute = 0; minute < 60; minute += timeSlotStepMinutes) {
169
+ for (let minute = 0; minute < 60; minute += timeSlotIntervalMinutes) {
170
+ const currentTimeInMinutes = hour * 60 + minute;
171
+
172
+ if (
173
+ currentTimeInMinutes < minHourInMinutes
174
+ || currentTimeInMinutes > maxHourInMinutes
175
+ ) continue;
176
+
152
177
  if (
153
178
  !allowPastDatetimes
154
179
  && isToday(date)
@@ -156,16 +181,22 @@ function DateTimeSelector({
156
181
  && minute <= now.getMinutes()
157
182
  ) continue;
158
183
 
159
- const endTime = new Date();
160
- endTime.setHours(hour, minute + timeSlotStepMinutes, 0, 0);
161
- const endHour = endTime.getHours();
162
- const endMinute = endTime.getMinutes();
184
+ const startTimeInMinutes = hour * 60 + minute;
185
+ const endTimeInMinutes = startTimeInMinutes + (timeSlotDurationMinutes || 0);
186
+ const endHour = Math.floor(endTimeInMinutes / 60);
187
+ const endMinute = endTimeInMinutes % 60;
163
188
 
164
189
  const startTime = new Date().setHours(hour, minute);
165
- const endTimeForLabel = new Date().setHours(endHour, endMinute);
166
- const startLabel = format(startTime, 'h:mm');
167
- const endLabel = format(endTimeForLabel, 'h:mm a');
168
- const hourLabel = `${startLabel} - ${endLabel}`;
190
+ const startLabel = format(startTime, 'H:mm');
191
+
192
+ let hourLabel: string;
193
+ if (timeSlotDurationMinutes && timeSlotDurationMinutes > 0) {
194
+ const endTimeForLabel = new Date().setHours(endHour, endMinute);
195
+ const endLabel = format(endTimeForLabel, 'H:mm');
196
+ hourLabel = `${startLabel} - ${endLabel}`;
197
+ } else {
198
+ hourLabel = startLabel;
199
+ }
169
200
 
170
201
  slots.push({
171
202
  hour, minute, endHour, endMinute, label: hourLabel,
@@ -174,7 +205,14 @@ function DateTimeSelector({
174
205
  }
175
206
 
176
207
  return slots;
177
- }, [minHour, maxHour, timeSlotStepMinutes, disabledHours, allowPastDatetimes]);
208
+ }, [
209
+ minHour,
210
+ maxHour,
211
+ timeSlotIntervalMinutes,
212
+ timeSlotDurationMinutes,
213
+ disabledHours,
214
+ allowPastDatetimes,
215
+ ]);
178
216
 
179
217
  const timeSlots = useMemo<TimeSlot[]>(() => {
180
218
  if (!selectedDate) return [];