@herca/rn-kit 0.1.91 → 0.1.92
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useState
|
|
3
|
+
import { useState } from 'react';
|
|
4
4
|
import { View, StyleSheet, TouchableOpacity, Pressable } from 'react-native';
|
|
5
5
|
import Color from "../Color/Color.js";
|
|
6
6
|
import Icon from "../Icon/index.js";
|
|
@@ -42,6 +42,11 @@ const Calendar = ({
|
|
|
42
42
|
const [currentDate, setCurrentDate] = useState(initialDate);
|
|
43
43
|
const [startDate, setStartDate] = useState(null);
|
|
44
44
|
const [endDate, setEndDate] = useState(null);
|
|
45
|
+
|
|
46
|
+
// HYBRID LOGIC: Pakai props jika ada, fallback ke internal state
|
|
47
|
+
const isControlled = dateStart !== undefined || dateEnd !== undefined;
|
|
48
|
+
const internalStartDate = isControlled ? dateStart ?? null : startDate;
|
|
49
|
+
const internalEndDate = isControlled ? dateEnd ?? null : endDate;
|
|
45
50
|
const getDaysInMonth = (month, year) => new Date(year, month + 1, 0).getDate();
|
|
46
51
|
const formatDateKey = date => {
|
|
47
52
|
const year = date.getFullYear();
|
|
@@ -130,15 +135,18 @@ const Calendar = ({
|
|
|
130
135
|
if (maxDate && date > maxDate) return true;
|
|
131
136
|
return false;
|
|
132
137
|
};
|
|
133
|
-
const isSameDate = (a, b) =>
|
|
134
|
-
|
|
138
|
+
const isSameDate = (a, b) => {
|
|
139
|
+
if (!a) return false;
|
|
140
|
+
return normalizeDate(a).getTime() === normalizeDate(b).getTime();
|
|
141
|
+
};
|
|
142
|
+
const isDateInRange = date => internalStartDate && internalEndDate && date >= internalStartDate && date <= internalEndDate;
|
|
135
143
|
const isMarkDisableDate = mark => !!mark?.disabled;
|
|
136
144
|
const setBackgroundDay = (date, keyWeek) => {
|
|
137
145
|
const key = formatDateKey(date);
|
|
138
146
|
const mark = markedDates[key];
|
|
139
147
|
const inRange = isDateInRange(date);
|
|
140
|
-
const isStart = isSameDate(
|
|
141
|
-
const isEnd = isSameDate(
|
|
148
|
+
const isStart = isSameDate(internalStartDate, date);
|
|
149
|
+
const isEnd = isSameDate(internalEndDate, date);
|
|
142
150
|
if (disabledDays && disabledDays[keyWeek]) {
|
|
143
151
|
return typeof disabledDays[keyWeek] === 'object' && disabledDays[keyWeek].hasOwnProperty('backgroundColor') ? disabledDays[keyWeek].backgroundColor : disabledBackgroundColor;
|
|
144
152
|
}
|
|
@@ -166,30 +174,44 @@ const Calendar = ({
|
|
|
166
174
|
return Color.gray[700];
|
|
167
175
|
};
|
|
168
176
|
const handlePressDay = date => {
|
|
177
|
+
const key = formatDateKey(date);
|
|
178
|
+
const mark = markedDates[key];
|
|
179
|
+
if (isMarkDisableDate(mark) || isDisabledDate(date)) return;
|
|
169
180
|
const selected = normalizeDate(date);
|
|
170
181
|
if (mode === 'single') {
|
|
171
|
-
|
|
172
|
-
|
|
182
|
+
if (!isControlled) {
|
|
183
|
+
setStartDate(selected);
|
|
184
|
+
setEndDate(null);
|
|
185
|
+
}
|
|
173
186
|
onChange?.({
|
|
174
187
|
date: selected
|
|
175
188
|
});
|
|
176
189
|
} else {
|
|
190
|
+
// Range mode
|
|
191
|
+
if (!isControlled) {
|
|
192
|
+
if (!startDate || startDate && endDate) {
|
|
193
|
+
setStartDate(selected);
|
|
194
|
+
setEndDate(null);
|
|
195
|
+
} else if (selected >= startDate) {
|
|
196
|
+
setEndDate(selected);
|
|
197
|
+
} else {
|
|
198
|
+
setStartDate(selected);
|
|
199
|
+
setEndDate(null);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Always call onChange
|
|
177
204
|
if (!startDate || startDate && endDate) {
|
|
178
|
-
setStartDate(selected);
|
|
179
|
-
setEndDate(null);
|
|
180
205
|
onChange?.({
|
|
181
206
|
startDate: selected,
|
|
182
207
|
endDate: null
|
|
183
208
|
});
|
|
184
209
|
} else if (selected >= startDate) {
|
|
185
|
-
setEndDate(selected);
|
|
186
210
|
onChange?.({
|
|
187
|
-
startDate,
|
|
211
|
+
startDate: startDate,
|
|
188
212
|
endDate: selected
|
|
189
213
|
});
|
|
190
214
|
} else {
|
|
191
|
-
setStartDate(selected);
|
|
192
|
-
setEndDate(null);
|
|
193
215
|
onChange?.({
|
|
194
216
|
startDate: selected,
|
|
195
217
|
endDate: null
|
|
@@ -210,17 +232,6 @@ const Calendar = ({
|
|
|
210
232
|
};
|
|
211
233
|
const calendarMatrix = generateCalendarMatrix();
|
|
212
234
|
const year = currentDate.getFullYear();
|
|
213
|
-
useEffect(() => {
|
|
214
|
-
if (mode === 'range' && !dateStart && !dateEnd) {
|
|
215
|
-
setStartDate(null);
|
|
216
|
-
setEndDate(null);
|
|
217
|
-
}
|
|
218
|
-
console.log({
|
|
219
|
-
dateStart,
|
|
220
|
-
dateEnd
|
|
221
|
-
});
|
|
222
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
223
|
-
}, [dateStart, dateEnd]);
|
|
224
235
|
return /*#__PURE__*/_jsxs(View, {
|
|
225
236
|
style: styles.container,
|
|
226
237
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","View","StyleSheet","TouchableOpacity","Pressable","Color","Icon","Typography","Dropdown","generateMonthOptions","generateYearOptions","layouting","spacing","jsx","_jsx","jsxs","_jsxs","DAYS","DEFAULT_SELECTED_BACKGROUND_COLOR","primary","DEFAULT_SELECTED_TEXT_COLOR","base","white100","DEFAULT_DISABLED_BACKGROUND_COLOR","DEFAULT_DISABLED_TEXT_COLOR","gray","formatDate","date","y","getFullYear","m","getMonth","padStart","d","getDate","Calendar","markedDates","disabledDays","minDate","maxDate","mode","onChange","selectedBackgroundColor","selectedTextColor","disabledBackgroundColor","disabledTextColor","dayName","language","initialDate","Date","dateStart","dateEnd","currentDate","setCurrentDate","startDate","setStartDate","endDate","setEndDate","getDaysInMonth","month","year","formatDateKey","String","day","generateCalendarMatrix","matrix","firstDay","getDay","maxDays","prevMonth","prevYear","prevMonthDays","row","i","push","from","length","nextDay","nextMonth","nextYear","normalizeDate","setHours","goToNextMonth","newDate","setMonth","goToPrevMonth","handleOnSelectYearDropdown","value","setFullYear","Number","handleOnSelectMonthDropdown","isWeekDay","isDisabledDate","dayOfWeek","isSameDate","a","b","getTime","isDateInRange","isMarkDisableDate","mark","disabled","setBackgroundDay","keyWeek","key","inRange","isStart","isEnd","hasOwnProperty","backgroundColor","selected","setTextColor","textColor","handlePressDay","getDayCellOpacity","cell","isSelected","hasCustomColor","calendarMatrix","console","log","style","styles","container","children","header","buttonNav","onPress","name","color","size","flex","rowCenter","gap","options","onSelect","renderButton","containerDropDown","variant","weight","toLocaleString","maxHeight","weekRow","map","index","center","week","rowIndex","colIndex","opacity","dayCell","baseDot","dots","Array","isArray","dotsContainer","dot","dotColor","create","flexDirection","justifyContent","alignItems","marginBottom","height","width","borderRadius","margin","padding","marginTop","marginHorizontal","textAlign"],"sourceRoot":"../../../src","sources":["Calendar/Calendar.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useState","View","StyleSheet","TouchableOpacity","Pressable","Color","Icon","Typography","Dropdown","generateMonthOptions","generateYearOptions","layouting","spacing","jsx","_jsx","jsxs","_jsxs","DAYS","DEFAULT_SELECTED_BACKGROUND_COLOR","primary","DEFAULT_SELECTED_TEXT_COLOR","base","white100","DEFAULT_DISABLED_BACKGROUND_COLOR","DEFAULT_DISABLED_TEXT_COLOR","gray","formatDate","date","y","getFullYear","m","getMonth","padStart","d","getDate","Calendar","markedDates","disabledDays","minDate","maxDate","mode","onChange","selectedBackgroundColor","selectedTextColor","disabledBackgroundColor","disabledTextColor","dayName","language","initialDate","Date","dateStart","dateEnd","currentDate","setCurrentDate","startDate","setStartDate","endDate","setEndDate","isControlled","undefined","internalStartDate","internalEndDate","getDaysInMonth","month","year","formatDateKey","String","day","generateCalendarMatrix","matrix","firstDay","getDay","maxDays","prevMonth","prevYear","prevMonthDays","row","i","push","from","length","nextDay","nextMonth","nextYear","normalizeDate","setHours","goToNextMonth","newDate","setMonth","goToPrevMonth","handleOnSelectYearDropdown","value","setFullYear","Number","handleOnSelectMonthDropdown","isWeekDay","isDisabledDate","dayOfWeek","isSameDate","a","b","getTime","isDateInRange","isMarkDisableDate","mark","disabled","setBackgroundDay","keyWeek","key","inRange","isStart","isEnd","hasOwnProperty","backgroundColor","selected","setTextColor","textColor","handlePressDay","getDayCellOpacity","cell","isSelected","hasCustomColor","calendarMatrix","style","styles","container","children","header","buttonNav","onPress","name","color","size","flex","rowCenter","gap","options","onSelect","renderButton","containerDropDown","variant","weight","toLocaleString","maxHeight","weekRow","map","index","center","week","rowIndex","colIndex","opacity","dayCell","baseDot","dots","Array","isArray","dotsContainer","dot","dotColor","create","flexDirection","justifyContent","alignItems","marginBottom","height","width","borderRadius","margin","padding","marginTop","marginHorizontal","textAlign"],"sourceRoot":"../../../src","sources":["Calendar/Calendar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,qBAAqB,CAAC;AAkB7B,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI,kBAMvD,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAI,8MAgBf,aAAa,4CAyWf,CAAC;AAqDF,eAAe,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState
|
|
1
|
+
import { useState } from 'react';
|
|
2
2
|
import { View, StyleSheet, TouchableOpacity, Pressable } from 'react-native';
|
|
3
3
|
import Color from '../Color/Color';
|
|
4
4
|
import type {
|
|
@@ -23,6 +23,7 @@ const DEFAULT_SELECTED_BACKGROUND_COLOR = Color.primary[1000];
|
|
|
23
23
|
const DEFAULT_SELECTED_TEXT_COLOR = Color.base.white100;
|
|
24
24
|
const DEFAULT_DISABLED_BACKGROUND_COLOR = Color.base.white100;
|
|
25
25
|
const DEFAULT_DISABLED_TEXT_COLOR = Color.gray[400];
|
|
26
|
+
|
|
26
27
|
export const formatDate = (date: Date | undefined | null) => {
|
|
27
28
|
if (!date) return null;
|
|
28
29
|
const y = date.getFullYear();
|
|
@@ -30,6 +31,7 @@ export const formatDate = (date: Date | undefined | null) => {
|
|
|
30
31
|
const d = `${date.getDate()}`.padStart(2, '0');
|
|
31
32
|
return `${y}-${m}-${d}`;
|
|
32
33
|
};
|
|
34
|
+
|
|
33
35
|
const Calendar = ({
|
|
34
36
|
markedDates = {},
|
|
35
37
|
disabledDays,
|
|
@@ -51,6 +53,11 @@ const Calendar = ({
|
|
|
51
53
|
const [startDate, setStartDate] = useState<Date | null>(null);
|
|
52
54
|
const [endDate, setEndDate] = useState<Date | null>(null);
|
|
53
55
|
|
|
56
|
+
// HYBRID LOGIC: Pakai props jika ada, fallback ke internal state
|
|
57
|
+
const isControlled = dateStart !== undefined || dateEnd !== undefined;
|
|
58
|
+
const internalStartDate = isControlled ? (dateStart ?? null) : startDate;
|
|
59
|
+
const internalEndDate = isControlled ? (dateEnd ?? null) : endDate;
|
|
60
|
+
|
|
54
61
|
const getDaysInMonth = (month: number, year: number) =>
|
|
55
62
|
new Date(year, month + 1, 0).getDate();
|
|
56
63
|
|
|
@@ -135,11 +142,13 @@ const Calendar = ({
|
|
|
135
142
|
newDate.setFullYear(Number(value));
|
|
136
143
|
setCurrentDate(newDate);
|
|
137
144
|
};
|
|
145
|
+
|
|
138
146
|
const handleOnSelectMonthDropdown = (value: string | number) => {
|
|
139
147
|
const newDate = new Date(currentDate);
|
|
140
148
|
newDate.setMonth(value as number);
|
|
141
149
|
setCurrentDate(newDate);
|
|
142
150
|
};
|
|
151
|
+
|
|
143
152
|
const isWeekDay = (day: number): day is WeekDay => day >= 0 && day <= 6;
|
|
144
153
|
|
|
145
154
|
const isDisabledDate = (date: Date) => {
|
|
@@ -150,11 +159,16 @@ const Calendar = ({
|
|
|
150
159
|
return false;
|
|
151
160
|
};
|
|
152
161
|
|
|
153
|
-
const isSameDate = (a: Date | null, b: Date) =>
|
|
154
|
-
|
|
162
|
+
const isSameDate = (a: Date | null, b: Date) => {
|
|
163
|
+
if (!a) return false;
|
|
164
|
+
return normalizeDate(a).getTime() === normalizeDate(b).getTime();
|
|
165
|
+
};
|
|
155
166
|
|
|
156
167
|
const isDateInRange = (date: Date) =>
|
|
157
|
-
|
|
168
|
+
internalStartDate &&
|
|
169
|
+
internalEndDate &&
|
|
170
|
+
date >= internalStartDate &&
|
|
171
|
+
date <= internalEndDate;
|
|
158
172
|
|
|
159
173
|
const isMarkDisableDate = (mark: MarkedDate | undefined) => !!mark?.disabled;
|
|
160
174
|
|
|
@@ -162,8 +176,10 @@ const Calendar = ({
|
|
|
162
176
|
const key = formatDateKey(date);
|
|
163
177
|
const mark = markedDates[key];
|
|
164
178
|
const inRange = isDateInRange(date);
|
|
165
|
-
|
|
166
|
-
const
|
|
179
|
+
|
|
180
|
+
const isStart = isSameDate(internalStartDate as Date, date);
|
|
181
|
+
const isEnd = isSameDate(internalEndDate as Date, date);
|
|
182
|
+
|
|
167
183
|
if (disabledDays && disabledDays[keyWeek]) {
|
|
168
184
|
return typeof disabledDays[keyWeek] === 'object' &&
|
|
169
185
|
disabledDays[keyWeek].hasOwnProperty('backgroundColor')
|
|
@@ -172,13 +188,16 @@ const Calendar = ({
|
|
|
172
188
|
}
|
|
173
189
|
|
|
174
190
|
if (isDisabledDate(date)) return disabledBackgroundColor;
|
|
191
|
+
|
|
175
192
|
if (
|
|
176
193
|
(mode === 'single' && isStart) ||
|
|
177
194
|
(mode === 'range' && (isStart || isEnd))
|
|
178
195
|
) {
|
|
179
196
|
return selectedBackgroundColor;
|
|
180
197
|
}
|
|
198
|
+
|
|
181
199
|
if (mark?.selected) return mark.backgroundColor || selectedBackgroundColor;
|
|
200
|
+
|
|
182
201
|
if (inRange) return Color.primary[50];
|
|
183
202
|
return 'white';
|
|
184
203
|
};
|
|
@@ -197,33 +216,54 @@ const Calendar = ({
|
|
|
197
216
|
}
|
|
198
217
|
|
|
199
218
|
if (isDisabledDate(date)) return disabledTextColor;
|
|
219
|
+
|
|
200
220
|
if (
|
|
201
221
|
(mode === 'single' && isStart) ||
|
|
202
222
|
(mode === 'range' && (isStart || isEnd))
|
|
203
223
|
) {
|
|
204
224
|
return selectedTextColor;
|
|
205
225
|
}
|
|
226
|
+
|
|
206
227
|
if (mark?.selected) return mark?.textColor || selectedTextColor;
|
|
228
|
+
|
|
207
229
|
return Color.gray[700];
|
|
208
230
|
};
|
|
209
231
|
|
|
210
232
|
const handlePressDay = (date: Date) => {
|
|
233
|
+
const key = formatDateKey(date);
|
|
234
|
+
const mark = markedDates[key];
|
|
235
|
+
|
|
236
|
+
if (isMarkDisableDate(mark) || isDisabledDate(date)) return;
|
|
237
|
+
|
|
211
238
|
const selected = normalizeDate(date);
|
|
239
|
+
|
|
212
240
|
if (mode === 'single') {
|
|
213
|
-
|
|
214
|
-
|
|
241
|
+
if (!isControlled) {
|
|
242
|
+
setStartDate(selected);
|
|
243
|
+
setEndDate(null);
|
|
244
|
+
}
|
|
245
|
+
|
|
215
246
|
onChange?.({ date: selected });
|
|
216
247
|
} else {
|
|
248
|
+
// Range mode
|
|
249
|
+
if (!isControlled) {
|
|
250
|
+
if (!startDate || (startDate && endDate)) {
|
|
251
|
+
setStartDate(selected);
|
|
252
|
+
setEndDate(null);
|
|
253
|
+
} else if (selected >= startDate) {
|
|
254
|
+
setEndDate(selected);
|
|
255
|
+
} else {
|
|
256
|
+
setStartDate(selected);
|
|
257
|
+
setEndDate(null);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Always call onChange
|
|
217
262
|
if (!startDate || (startDate && endDate)) {
|
|
218
|
-
setStartDate(selected);
|
|
219
|
-
setEndDate(null);
|
|
220
263
|
onChange?.({ startDate: selected, endDate: null });
|
|
221
264
|
} else if (selected >= startDate) {
|
|
222
|
-
|
|
223
|
-
onChange?.({ startDate, endDate: selected });
|
|
265
|
+
onChange?.({ startDate: startDate as Date, endDate: selected });
|
|
224
266
|
} else {
|
|
225
|
-
setStartDate(selected);
|
|
226
|
-
setEndDate(null);
|
|
227
267
|
onChange?.({ startDate: selected, endDate: null });
|
|
228
268
|
}
|
|
229
269
|
}
|
|
@@ -252,15 +292,6 @@ const Calendar = ({
|
|
|
252
292
|
const calendarMatrix = generateCalendarMatrix();
|
|
253
293
|
const year = currentDate.getFullYear();
|
|
254
294
|
|
|
255
|
-
useEffect(() => {
|
|
256
|
-
if (mode === 'range' && !dateStart && !dateEnd) {
|
|
257
|
-
setStartDate(null);
|
|
258
|
-
setEndDate(null);
|
|
259
|
-
}
|
|
260
|
-
console.log({ dateStart, dateEnd });
|
|
261
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
262
|
-
}, [dateStart, dateEnd]);
|
|
263
|
-
|
|
264
295
|
return (
|
|
265
296
|
<View style={styles.container}>
|
|
266
297
|
<View style={styles.header}>
|