react-native-resource-calendar 1.1.5 → 1.1.7

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 CHANGED
@@ -1274,13 +1274,13 @@ var EventBlocks = React19__namespace.default.memo(({
1274
1274
  );
1275
1275
  const Renderer = eventRenderer;
1276
1276
  return events?.map(
1277
- (evt) => {
1277
+ (evt, index) => {
1278
1278
  const selected = isEventSelected?.(evt) ?? false;
1279
1279
  const disabled = isEventDisabled?.(evt) ?? false;
1280
1280
  return /* @__PURE__ */ React19__namespace.default.createElement(
1281
1281
  Renderer,
1282
1282
  {
1283
- key: `${evt.id}`,
1283
+ key: `${evt.from}-${evt.to}-${index}`,
1284
1284
  event: evt,
1285
1285
  onLongPress,
1286
1286
  onPress,
@@ -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 }));
@@ -1725,6 +1725,13 @@ var CalendarInner = (props) => {
1725
1725
  lastHapticScrollY.value = scrollY.value;
1726
1726
  eventHeight.value = initialHeight;
1727
1727
  setSelectedEvent(event);
1728
+ setDraggedEventDraft({
1729
+ event,
1730
+ from: positionToMinutes(eventTop, hh),
1731
+ to: positionToMinutes(eventTop + initialHeight, hh),
1732
+ resourceId: event.resourceId,
1733
+ date: event.date
1734
+ });
1728
1735
  requestAnimationFrame(() => setDragReady(true));
1729
1736
  triggerHaptic("Medium");
1730
1737
  };
@@ -1763,16 +1770,15 @@ var CalendarInner = (props) => {
1763
1770
  }, [resources, onBlockTap]);
1764
1771
  React19.useEffect(() => {
1765
1772
  const handleOrientationChange = () => {
1766
- if (selectedEvent) {
1767
- setSelectedEvent(null);
1768
- setDragReady(false);
1769
- }
1773
+ setSelectedEvent(null);
1774
+ setDragReady(false);
1775
+ setLayout(null);
1770
1776
  };
1771
1777
  const subscription = reactNative.Dimensions.addEventListener("change", handleOrientationChange);
1772
1778
  return () => {
1773
1779
  subscription.remove();
1774
1780
  };
1775
- }, [setSelectedEvent, selectedEvent, setDragReady]);
1781
+ }, [setSelectedEvent, setDragReady]);
1776
1782
  const renderItem = React19.useCallback(({ item, index }) => {
1777
1783
  const rid = !isMultiDay ? item : activeResourceId ?? resourceIds[0];
1778
1784
  const dayDate = !isMultiDay ? void 0 : item.dayDate;