react-native-resource-calendar 1.1.6 → 1.1.8
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.
- package/dist/index.js +20 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1439,16 +1439,10 @@ var CalendarInner = (props) => {
|
|
|
1439
1439
|
const selectedEvent = useGetSelectedEvent2();
|
|
1440
1440
|
const setSelectedEvent = useSetSelectedEvent2();
|
|
1441
1441
|
const setDraggedEventDraft = useSetDraggedEventDraft2();
|
|
1442
|
-
const APPOINTMENT_BLOCK_WIDTH = React19.useMemo(
|
|
1443
|
-
() => (width - TIME_LABEL_WIDTH) / numberOfColumns,
|
|
1444
|
-
[width, numberOfColumns]
|
|
1445
|
-
);
|
|
1446
1442
|
const hourHeightRef = React19.useRef(hourHeight);
|
|
1447
1443
|
hourHeightRef.current = hourHeight;
|
|
1448
1444
|
const resourcesRef = React19.useRef(resources);
|
|
1449
1445
|
resourcesRef.current = resources;
|
|
1450
|
-
const apptWidthRef = React19.useRef(APPOINTMENT_BLOCK_WIDTH);
|
|
1451
|
-
apptWidthRef.current = APPOINTMENT_BLOCK_WIDTH;
|
|
1452
1446
|
const isMultiDayRef = React19.useRef(isMultiDay);
|
|
1453
1447
|
isMultiDayRef.current = isMultiDay;
|
|
1454
1448
|
const daysRef = React19.useRef(days);
|
|
@@ -1461,13 +1455,19 @@ var CalendarInner = (props) => {
|
|
|
1461
1455
|
}, [selectedEvent, setSelectedEvent, setDraggedEventDraft]);
|
|
1462
1456
|
React19.useEffect(() => {
|
|
1463
1457
|
scrollX.value = 0;
|
|
1464
|
-
}, [mode, numberOfColumns]);
|
|
1458
|
+
}, [mode, numberOfColumns, width]);
|
|
1465
1459
|
const verticalScrollViewRef = Animated2.useAnimatedRef();
|
|
1466
1460
|
const headerScrollViewRef = Animated2.useAnimatedRef();
|
|
1467
1461
|
const flashListRef = React19.useRef(null);
|
|
1468
1462
|
const prevResourceIdsRef = React19.useRef([]);
|
|
1469
1463
|
const [layout, setLayout] = React19.useState(null);
|
|
1470
1464
|
const [dragReady, setDragReady] = React19.useState(false);
|
|
1465
|
+
const APPOINTMENT_BLOCK_WIDTH = React19.useMemo(
|
|
1466
|
+
() => ((layout?.width ?? width) - TIME_LABEL_WIDTH) / numberOfColumns,
|
|
1467
|
+
[layout?.width, width, numberOfColumns]
|
|
1468
|
+
);
|
|
1469
|
+
const apptWidthRef = React19.useRef(APPOINTMENT_BLOCK_WIDTH);
|
|
1470
|
+
apptWidthRef.current = APPOINTMENT_BLOCK_WIDTH;
|
|
1471
1471
|
const dateRef = React19.useRef(date);
|
|
1472
1472
|
dateRef.current = date;
|
|
1473
1473
|
const eventStartedTop = Animated2.useSharedValue(0);
|
|
@@ -1517,7 +1517,7 @@ var CalendarInner = (props) => {
|
|
|
1517
1517
|
resourceId: landedResourceId,
|
|
1518
1518
|
date: landedDate
|
|
1519
1519
|
});
|
|
1520
|
-
}, [mode, resourceIds, activeResourceId, selectedEvent, hourHeight, setDraggedEventDraft, days]);
|
|
1520
|
+
}, [mode, resourceIds, activeResourceId, selectedEvent, hourHeight, setDraggedEventDraft, days, date]);
|
|
1521
1521
|
const columns = React19.useMemo(() => {
|
|
1522
1522
|
if (!isMultiDay) {
|
|
1523
1523
|
return resourceIds.map((resourceId) => ({ kind: "resource", resourceId }));
|
|
@@ -1710,21 +1710,25 @@ var CalendarInner = (props) => {
|
|
|
1710
1710
|
const days2 = daysRef.current;
|
|
1711
1711
|
const APPOINTMENT_BLOCK_WIDTH2 = apptWidthRef.current;
|
|
1712
1712
|
const isMultiDay2 = isMultiDayRef.current;
|
|
1713
|
-
const EPS = 1e-4;
|
|
1714
|
-
const leftmostColumnIndex = Math.max(0, Math.floor((scrollX.value + EPS) / APPOINTMENT_BLOCK_WIDTH2));
|
|
1715
1713
|
let absoluteColIndex;
|
|
1716
1714
|
if (!isMultiDay2) {
|
|
1717
1715
|
absoluteColIndex = findResourceIndexFor(event.resourceId, resources2?.map((r) => r.id));
|
|
1718
1716
|
} else {
|
|
1719
1717
|
absoluteColIndex = findDayIndexFor(event.date, days2);
|
|
1720
1718
|
}
|
|
1721
|
-
const
|
|
1722
|
-
const selectedAppointmentStartedX = TIME_LABEL_WIDTH + APPOINTMENT_BLOCK_WIDTH2 / 2 + APPOINTMENT_BLOCK_WIDTH2 * screenColumn;
|
|
1719
|
+
const selectedAppointmentStartedX = TIME_LABEL_WIDTH + APPOINTMENT_BLOCK_WIDTH2 * absoluteColIndex + APPOINTMENT_BLOCK_WIDTH2 / 2 - scrollX.value;
|
|
1723
1720
|
panXAbs.value = selectedAppointmentStartedX;
|
|
1724
1721
|
startedX.value = selectedAppointmentStartedX;
|
|
1725
1722
|
lastHapticScrollY.value = scrollY.value;
|
|
1726
1723
|
eventHeight.value = initialHeight;
|
|
1727
1724
|
setSelectedEvent(event);
|
|
1725
|
+
setDraggedEventDraft({
|
|
1726
|
+
event,
|
|
1727
|
+
from: positionToMinutes(eventTop, hh),
|
|
1728
|
+
to: positionToMinutes(eventTop + initialHeight, hh),
|
|
1729
|
+
resourceId: event.resourceId,
|
|
1730
|
+
date: event.date
|
|
1731
|
+
});
|
|
1728
1732
|
requestAnimationFrame(() => setDragReady(true));
|
|
1729
1733
|
triggerHaptic("Medium");
|
|
1730
1734
|
};
|
|
@@ -1763,16 +1767,15 @@ var CalendarInner = (props) => {
|
|
|
1763
1767
|
}, [resources, onBlockTap]);
|
|
1764
1768
|
React19.useEffect(() => {
|
|
1765
1769
|
const handleOrientationChange = () => {
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
}
|
|
1770
|
+
setSelectedEvent(null);
|
|
1771
|
+
setDragReady(false);
|
|
1772
|
+
setLayout(null);
|
|
1770
1773
|
};
|
|
1771
1774
|
const subscription = reactNative.Dimensions.addEventListener("change", handleOrientationChange);
|
|
1772
1775
|
return () => {
|
|
1773
1776
|
subscription.remove();
|
|
1774
1777
|
};
|
|
1775
|
-
}, [setSelectedEvent,
|
|
1778
|
+
}, [setSelectedEvent, setDragReady]);
|
|
1776
1779
|
const renderItem = React19.useCallback(({ item, index }) => {
|
|
1777
1780
|
const rid = !isMultiDay ? item : activeResourceId ?? resourceIds[0];
|
|
1778
1781
|
const dayDate = !isMultiDay ? void 0 : item.dayDate;
|