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.mjs CHANGED
@@ -1249,13 +1249,13 @@ var EventBlocks = React19__default.memo(({
1249
1249
  );
1250
1250
  const Renderer = eventRenderer;
1251
1251
  return events?.map(
1252
- (evt) => {
1252
+ (evt, index) => {
1253
1253
  const selected = isEventSelected?.(evt) ?? false;
1254
1254
  const disabled = isEventDisabled?.(evt) ?? false;
1255
1255
  return /* @__PURE__ */ React19__default.createElement(
1256
1256
  Renderer,
1257
1257
  {
1258
- key: `${evt.id}`,
1258
+ key: `${evt.from}-${evt.to}-${index}`,
1259
1259
  event: evt,
1260
1260
  onLongPress,
1261
1261
  onPress,
@@ -1414,16 +1414,10 @@ var CalendarInner = (props) => {
1414
1414
  const selectedEvent = useGetSelectedEvent2();
1415
1415
  const setSelectedEvent = useSetSelectedEvent2();
1416
1416
  const setDraggedEventDraft = useSetDraggedEventDraft2();
1417
- const APPOINTMENT_BLOCK_WIDTH = useMemo(
1418
- () => (width - TIME_LABEL_WIDTH) / numberOfColumns,
1419
- [width, numberOfColumns]
1420
- );
1421
1417
  const hourHeightRef = useRef(hourHeight);
1422
1418
  hourHeightRef.current = hourHeight;
1423
1419
  const resourcesRef = useRef(resources);
1424
1420
  resourcesRef.current = resources;
1425
- const apptWidthRef = useRef(APPOINTMENT_BLOCK_WIDTH);
1426
- apptWidthRef.current = APPOINTMENT_BLOCK_WIDTH;
1427
1421
  const isMultiDayRef = useRef(isMultiDay);
1428
1422
  isMultiDayRef.current = isMultiDay;
1429
1423
  const daysRef = useRef(days);
@@ -1436,13 +1430,19 @@ var CalendarInner = (props) => {
1436
1430
  }, [selectedEvent, setSelectedEvent, setDraggedEventDraft]);
1437
1431
  useEffect(() => {
1438
1432
  scrollX.value = 0;
1439
- }, [mode, numberOfColumns]);
1433
+ }, [mode, numberOfColumns, width]);
1440
1434
  const verticalScrollViewRef = useAnimatedRef();
1441
1435
  const headerScrollViewRef = useAnimatedRef();
1442
1436
  const flashListRef = useRef(null);
1443
1437
  const prevResourceIdsRef = useRef([]);
1444
1438
  const [layout, setLayout] = useState(null);
1445
1439
  const [dragReady, setDragReady] = useState(false);
1440
+ const APPOINTMENT_BLOCK_WIDTH = useMemo(
1441
+ () => ((layout?.width ?? width) - TIME_LABEL_WIDTH) / numberOfColumns,
1442
+ [layout?.width, width, numberOfColumns]
1443
+ );
1444
+ const apptWidthRef = useRef(APPOINTMENT_BLOCK_WIDTH);
1445
+ apptWidthRef.current = APPOINTMENT_BLOCK_WIDTH;
1446
1446
  const dateRef = useRef(date);
1447
1447
  dateRef.current = date;
1448
1448
  const eventStartedTop = useSharedValue(0);
@@ -1492,7 +1492,7 @@ var CalendarInner = (props) => {
1492
1492
  resourceId: landedResourceId,
1493
1493
  date: landedDate
1494
1494
  });
1495
- }, [mode, resourceIds, activeResourceId, selectedEvent, hourHeight, setDraggedEventDraft, days]);
1495
+ }, [mode, resourceIds, activeResourceId, selectedEvent, hourHeight, setDraggedEventDraft, days, date]);
1496
1496
  const columns = useMemo(() => {
1497
1497
  if (!isMultiDay) {
1498
1498
  return resourceIds.map((resourceId) => ({ kind: "resource", resourceId }));
@@ -1700,6 +1700,13 @@ var CalendarInner = (props) => {
1700
1700
  lastHapticScrollY.value = scrollY.value;
1701
1701
  eventHeight.value = initialHeight;
1702
1702
  setSelectedEvent(event);
1703
+ setDraggedEventDraft({
1704
+ event,
1705
+ from: positionToMinutes(eventTop, hh),
1706
+ to: positionToMinutes(eventTop + initialHeight, hh),
1707
+ resourceId: event.resourceId,
1708
+ date: event.date
1709
+ });
1703
1710
  requestAnimationFrame(() => setDragReady(true));
1704
1711
  triggerHaptic("Medium");
1705
1712
  };
@@ -1738,16 +1745,15 @@ var CalendarInner = (props) => {
1738
1745
  }, [resources, onBlockTap]);
1739
1746
  useEffect(() => {
1740
1747
  const handleOrientationChange = () => {
1741
- if (selectedEvent) {
1742
- setSelectedEvent(null);
1743
- setDragReady(false);
1744
- }
1748
+ setSelectedEvent(null);
1749
+ setDragReady(false);
1750
+ setLayout(null);
1745
1751
  };
1746
1752
  const subscription = Dimensions.addEventListener("change", handleOrientationChange);
1747
1753
  return () => {
1748
1754
  subscription.remove();
1749
1755
  };
1750
- }, [setSelectedEvent, selectedEvent, setDragReady]);
1756
+ }, [setSelectedEvent, setDragReady]);
1751
1757
  const renderItem = useCallback(({ item, index }) => {
1752
1758
  const rid = !isMultiDay ? item : activeResourceId ?? resourceIds[0];
1753
1759
  const dayDate = !isMultiDay ? void 0 : item.dayDate;