react-native-resource-calendar 1.0.25 → 1.1.1
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 +24 -24
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +26 -26
- package/dist/index.mjs.map +1 -1
- package/package.json +17 -11
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var React19 = require('react');
|
|
4
4
|
var reactNativeGestureHandler = require('react-native-gesture-handler');
|
|
5
|
+
var reactNativeWorklets = require('react-native-worklets');
|
|
5
6
|
var Animated2 = require('react-native-reanimated');
|
|
6
7
|
var reactNative = require('react-native');
|
|
7
8
|
var flashList = require('@shopify/flash-list');
|
|
@@ -805,35 +806,35 @@ var EventGridBlocksSkia = ({
|
|
|
805
806
|
}, []);
|
|
806
807
|
const longPressGesture = reactNativeGestureHandler.Gesture.LongPress().onBegin((e) => {
|
|
807
808
|
"worklet";
|
|
808
|
-
|
|
809
|
+
reactNativeWorklets.scheduleOnRN(onPressBegin, Math.floor(e.y / rowHeight));
|
|
809
810
|
}).onEnd((e) => {
|
|
810
811
|
"worklet";
|
|
811
|
-
|
|
812
|
-
}).onTouchesCancelled(() => {
|
|
813
|
-
"worklet";
|
|
814
|
-
Animated2.runOnJS(onTouchesUp)();
|
|
812
|
+
reactNativeWorklets.scheduleOnRN(onSlotLongPress, Math.floor(e.y / rowHeight));
|
|
815
813
|
}).onTouchesUp(() => {
|
|
816
814
|
"worklet";
|
|
817
|
-
|
|
815
|
+
reactNativeWorklets.scheduleOnRN(onTouchesUp);
|
|
816
|
+
}).onTouchesCancelled(() => {
|
|
817
|
+
"worklet";
|
|
818
|
+
reactNativeWorklets.scheduleOnRN(onTouchesUp);
|
|
818
819
|
}).onFinalize(() => {
|
|
819
820
|
"worklet";
|
|
820
|
-
|
|
821
|
+
reactNativeWorklets.scheduleOnRN(onTouchesUp);
|
|
821
822
|
});
|
|
822
823
|
const tapGesture = reactNativeGestureHandler.Gesture.Tap().onBegin((e) => {
|
|
823
824
|
"worklet";
|
|
824
|
-
|
|
825
|
+
reactNativeWorklets.scheduleOnRN(onPressBegin, Math.floor(e.y / rowHeight));
|
|
825
826
|
}).onEnd((e) => {
|
|
826
827
|
"worklet";
|
|
827
|
-
|
|
828
|
-
}).onTouchesCancelled(() => {
|
|
829
|
-
"worklet";
|
|
830
|
-
Animated2.runOnJS(onTouchesUp)();
|
|
828
|
+
reactNativeWorklets.scheduleOnRN(onSlotPress, Math.floor(e.y / rowHeight));
|
|
831
829
|
}).onTouchesUp(() => {
|
|
832
830
|
"worklet";
|
|
833
|
-
|
|
831
|
+
reactNativeWorklets.scheduleOnRN(onTouchesUp);
|
|
832
|
+
}).onTouchesCancelled(() => {
|
|
833
|
+
"worklet";
|
|
834
|
+
reactNativeWorklets.scheduleOnRN(onTouchesUp);
|
|
834
835
|
}).onFinalize(() => {
|
|
835
836
|
"worklet";
|
|
836
|
-
|
|
837
|
+
reactNativeWorklets.scheduleOnRN(onTouchesUp);
|
|
837
838
|
});
|
|
838
839
|
const composedGesture = reactNativeGestureHandler.Gesture.Race(longPressGesture, tapGesture);
|
|
839
840
|
return /* @__PURE__ */ React19__namespace.createElement(reactNativeGestureHandler.GestureDetector, { gesture: composedGesture }, /* @__PURE__ */ React19__namespace.createElement(reactNative.View, null, /* @__PURE__ */ React19__namespace.createElement(reactNativeSkia.Canvas, { style: { width: APPOINTMENT_BLOCK_WIDTH, height: segmentHeight } }, firstRects.map(({ x, y, width: w, height: h, row }, idx) => /* @__PURE__ */ React19__namespace.createElement(React19__namespace.Fragment, { key: idx }, /* @__PURE__ */ React19__namespace.createElement(
|
|
@@ -1573,7 +1574,7 @@ var CalendarInner = (props) => {
|
|
|
1573
1574
|
if (finalHeight !== eventHeight.value) {
|
|
1574
1575
|
eventHeight.value = finalHeight;
|
|
1575
1576
|
panYAbs.value = onScreenTop + finalHeight / 2;
|
|
1576
|
-
|
|
1577
|
+
reactNativeWorklets.scheduleOnRN(triggerHaptic);
|
|
1577
1578
|
}
|
|
1578
1579
|
if (layout) {
|
|
1579
1580
|
const AUTO_SCROLL_BUFFER = 30;
|
|
@@ -1599,7 +1600,7 @@ var CalendarInner = (props) => {
|
|
|
1599
1600
|
snappedAbsoluteTop = Math.min(snappedAbsoluteTop, maxAbsoluteTop);
|
|
1600
1601
|
}
|
|
1601
1602
|
if (snappedAbsoluteTop !== eventStartedTop.value) {
|
|
1602
|
-
|
|
1603
|
+
reactNativeWorklets.scheduleOnRN(triggerHaptic);
|
|
1603
1604
|
eventStartedTop.value = snappedAbsoluteTop;
|
|
1604
1605
|
}
|
|
1605
1606
|
panYAbs.value = snappedAbsoluteTop - scrollY.value + eventHeight.value / 2;
|
|
@@ -1658,7 +1659,7 @@ var CalendarInner = (props) => {
|
|
|
1658
1659
|
startedX.value = finalPanXValue;
|
|
1659
1660
|
isPulling.value = false;
|
|
1660
1661
|
isDragging.value = false;
|
|
1661
|
-
|
|
1662
|
+
reactNativeWorklets.scheduleOnRN(finalizeDrag, colIndex, adjustedFinalEventTop, eventHeight.value);
|
|
1662
1663
|
});
|
|
1663
1664
|
const scrollListTo = (x) => {
|
|
1664
1665
|
flashListRef.current?.scrollToOffset({ offset: x, animated: false });
|
|
@@ -1673,8 +1674,8 @@ var CalendarInner = (props) => {
|
|
|
1673
1674
|
lastXScrollTime.value = now;
|
|
1674
1675
|
const increment = APPOINTMENT_BLOCK_WIDTH * Math.sign(autoScrollXSpeed.value);
|
|
1675
1676
|
const newScrollX = scrollX.value + increment;
|
|
1676
|
-
|
|
1677
|
-
|
|
1677
|
+
reactNativeWorklets.scheduleOnRN(scrollListTo, newScrollX);
|
|
1678
|
+
reactNativeWorklets.scheduleOnRN(triggerHaptic, "Medium");
|
|
1678
1679
|
}
|
|
1679
1680
|
});
|
|
1680
1681
|
Animated2.useFrameCallback(() => {
|
|
@@ -1708,7 +1709,7 @@ var CalendarInner = (props) => {
|
|
|
1708
1709
|
const scrollDiff = Math.abs(newScrollY - lastHapticScrollY.value);
|
|
1709
1710
|
if (scrollDiff >= snapInterval) {
|
|
1710
1711
|
lastHapticScrollY.value = newScrollY;
|
|
1711
|
-
|
|
1712
|
+
reactNativeWorklets.scheduleOnRN(triggerHaptic, "Medium");
|
|
1712
1713
|
}
|
|
1713
1714
|
});
|
|
1714
1715
|
React19.useEffect(() => {
|
|
@@ -1742,7 +1743,7 @@ var CalendarInner = (props) => {
|
|
|
1742
1743
|
eventHeight.value = initialHeight;
|
|
1743
1744
|
setSelectedEvent(event);
|
|
1744
1745
|
requestAnimationFrame(() => setDragReady(true));
|
|
1745
|
-
|
|
1746
|
+
triggerHaptic("Medium");
|
|
1746
1747
|
};
|
|
1747
1748
|
}, []);
|
|
1748
1749
|
const internalStableOnLongPress = React19.useCallback((e) => {
|
|
@@ -1766,13 +1767,13 @@ var CalendarInner = (props) => {
|
|
|
1766
1767
|
}
|
|
1767
1768
|
});
|
|
1768
1769
|
const handleBlockLongPress = React19.useCallback((resourceId, time) => {
|
|
1769
|
-
|
|
1770
|
+
triggerHaptic("Medium");
|
|
1770
1771
|
const resource = resources.find((r) => r.id === resourceId);
|
|
1771
1772
|
if (onBlockLongPress)
|
|
1772
1773
|
onBlockLongPress(resource, new Date(time));
|
|
1773
1774
|
}, [resources, onBlockLongPress]);
|
|
1774
1775
|
const handleBlockPress = React19.useCallback((resourceId, time) => {
|
|
1775
|
-
|
|
1776
|
+
triggerHaptic("Medium");
|
|
1776
1777
|
const resource = resources.find((r) => r.id === resourceId);
|
|
1777
1778
|
if (onBlockTap)
|
|
1778
1779
|
onBlockTap(resource, new Date(time));
|
|
@@ -1936,7 +1937,6 @@ var CalendarInner = (props) => {
|
|
|
1936
1937
|
scrollEnabled: !selectedEvent,
|
|
1937
1938
|
ref: flashListRef,
|
|
1938
1939
|
onScroll: flashListScrollHandler,
|
|
1939
|
-
estimatedItemSize: APPOINTMENT_BLOCK_WIDTH,
|
|
1940
1940
|
data: !isMultiDay ? resourceIds : columns,
|
|
1941
1941
|
horizontal: true,
|
|
1942
1942
|
renderItem,
|