From 0e71fb5062741a1bceabacf49a9052f6b3385bde Mon Sep 17 00:00:00 2001 From: Amanda Bullington <35536439+albullington@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:54:16 -0700 Subject: [PATCH] Patch draggable-flatlist with fix for reanimated 3 (#1346) * Temporarily comment out Android in Fastfile build lane * Fix: make draggable flatlist work with reanimated 3 * Add lib and commonjs library patch --- .gitignore | 2 + fastlane/Fastfile | 88 ++--- ios/Gemfile.lock | 1 + ...eact-native-draggable-flatlist+4.0.1.patch | 345 ++++++++++++++++++ 4 files changed, 394 insertions(+), 42 deletions(-) create mode 100644 patches/react-native-draggable-flatlist+4.0.1.patch diff --git a/.gitignore b/.gitignore index 023552ce1..ff1612614 100644 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,8 @@ fastlane/Appfile # Apple signing and auth files that fastlane might download *.cer *.mobileprovision +*.certSigningRequest +*.p12 # Detox e2e test artifacts artifacts/ diff --git a/fastlane/Fastfile b/fastlane/Fastfile index e090c3859..ded219db7 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -310,7 +310,8 @@ end lane :build do desc "Build release files for all platforms" Fastlane::LaneManager.cruise_lane "ios", "build" - Fastlane::LaneManager.cruise_lane "android", "build" + # commenting out temporarily to avoid building in Android + # Fastlane::LaneManager.cruise_lane "android", "build" end lane :clean do @@ -347,49 +348,51 @@ lane :release do build - apk_path = File.expand_path( get_apk_path( build_number ) ) - if File.exist?( apk_path ) - UI.success "Found APK at #{apk_path}" - else - UI.abort_with_message! "Failed to find APK at #{apk_path}" - end + # commenting out temporarily to avoid building in Android + # apk_path = File.expand_path( get_apk_path( build_number ) ) + # if File.exist?( apk_path ) + # UI.success "Found APK at #{apk_path}" + # else + # UI.abort_with_message! "Failed to find APK at #{apk_path}" + # end - github_release = get_github_release( - url: "inaturalist/iNaturalistReactNative", - version: last_tag, - api_token: ENV["GITHUB_TOKEN"] - ) +# github_release = get_github_release( +# url: "inaturalist/iNaturalistReactNative", +# version: last_tag, +# api_token: ENV["GITHUB_TOKEN"] +# ) - if github_release - UI.important "Release already exists at #{github_release['url']}. You need to manually upload any missing assets." - else - set_github_release( - repository_name: "inaturalist/iNaturalistReactNative", - api_token: ENV["GITHUB_TOKEN"], - name: last_tag, - tag_name: last_tag, - description: begin - File.read( changelog_path ) - rescue StandardError - nil - end, - # This is really just a fallback in case last_tag isn't really a tag - commitish: "main", - upload_assets: [apk_path] - ) - end - system "git checkout #{original_branch}", exception: true +# if github_release +# UI.important "Release already exists at #{github_release['url']}. You need to manually upload any missing assets." +# else +# set_github_release( +# repository_name: "inaturalist/iNaturalistReactNative", +# api_token: ENV["GITHUB_TOKEN"], +# name: last_tag, +# tag_name: last_tag, +# description: begin +# File.read( changelog_path ) +# rescue StandardError +# nil +# end, +# # This is really just a fallback in case last_tag isn't really a tag +# commitish: "main", +# upload_assets: [apk_path] +# ) +# end + system "git checkout #{original_branch}", exception: true end lane :internal do desc "Push builds for the latest tag for internal testing" + # commenting out temporarily to avoid building in Android # Ensure build files exist for the latest tag - aab_path = get_aab_path - unless File.exist?( aab_path ) - UI.abort_with_message! <<~MSG - AAB does not exist at #{aab_path}. You may need to run the release lane before doing this. - MSG - end + # aab_path = get_aab_path + # unless File.exist?( aab_path ) + # UI.abort_with_message! <<~MSG + # AAB does not exist at #{aab_path}. You may need to run the release lane before doing this. + # MSG + # end last_tag = last_git_tag if last_tag.nil? || last_tag.empty? UI.abort_with_message! "No tags have been added yet. Try starting with `fastlane tag`" @@ -401,11 +404,12 @@ lane :internal do created when you ran `fastlane tag`. MSG end - upload_to_play_store( - aab: aab_path, - track: "internal", - version_name: last_tag - ) + # commenting out temporarily to avoid building in Android + # upload_to_play_store( + # aab: aab_path, + # track: "internal", + # version_name: last_tag + # ) upload_to_testflight( ipa: get_ipa_path, diff --git a/ios/Gemfile.lock b/ios/Gemfile.lock index 344a01c13..cefa917fb 100644 --- a/ios/Gemfile.lock +++ b/ios/Gemfile.lock @@ -210,6 +210,7 @@ GEM PLATFORMS arm64-darwin-21 + ruby x86_64-darwin-21 DEPENDENCIES diff --git a/patches/react-native-draggable-flatlist+4.0.1.patch b/patches/react-native-draggable-flatlist+4.0.1.patch new file mode 100644 index 000000000..bc70ea669 --- /dev/null +++ b/patches/react-native-draggable-flatlist+4.0.1.patch @@ -0,0 +1,345 @@ +diff --git a/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js b/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js +index 19eec62..5a7aae2 100644 +--- a/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js ++++ b/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js +@@ -1,2 +1,288 @@ +-Object.defineProperty(exports,"__esModule",{value:true});exports.default=AnimatedValueProvider;exports.useAnimatedValues=useAnimatedValues;var _react=_interopRequireWildcard(require("react"));var _reactNativeReanimated=require("react-native-reanimated");var _reactNativeGestureHandler=require("react-native-gesture-handler");var _propsContext=require("./propsContext");var _jsxFileName="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var AnimatedValueContext=_react.default.createContext(undefined);function AnimatedValueProvider(_ref){var children=_ref.children;var value=useSetupAnimatedValues();return _react.default.createElement(AnimatedValueContext.Provider,{value:value,__self:this,__source:{fileName:_jsxFileName,lineNumber:21,columnNumber:5}},children);}function useAnimatedValues(){var value=(0,_react.useContext)(AnimatedValueContext);if(!value){throw new Error("useAnimatedValues must be called from within AnimatedValueProvider!");}return value;}function useSetupAnimatedValues(){var props=(0,_propsContext.useProps)();var DEFAULT_VAL=(0,_reactNativeReanimated.useSharedValue)(0);var containerSize=(0,_reactNativeReanimated.useSharedValue)(0);var scrollViewSize=(0,_reactNativeReanimated.useSharedValue)(0);var panGestureState=(0,_reactNativeReanimated.useSharedValue)(_reactNativeGestureHandler.State.UNDETERMINED);var touchTranslate=(0,_reactNativeReanimated.useSharedValue)(0);var isTouchActiveNative=(0,_reactNativeReanimated.useSharedValue)(false);var hasMoved=(0,_reactNativeReanimated.useSharedValue)(0);var disabled=(0,_reactNativeReanimated.useSharedValue)(false);var horizontalAnim=(0,_reactNativeReanimated.useSharedValue)(!!props.horizontal);var activeIndexAnim=(0,_reactNativeReanimated.useSharedValue)(-1);var spacerIndexAnim=(0,_reactNativeReanimated.useSharedValue)(-1);var activeCellSize=(0,_reactNativeReanimated.useSharedValue)(0);var activeCellOffset=(0,_reactNativeReanimated.useSharedValue)(0);var scrollOffset=(0,_reactNativeReanimated.useSharedValue)(0);var scrollInit=(0,_reactNativeReanimated.useSharedValue)(0);var viewableIndexMin=(0,_reactNativeReanimated.useSharedValue)(0);var viewableIndexMax=(0,_reactNativeReanimated.useSharedValue)(0);var outerScrollOffset=props.outerScrollOffset||DEFAULT_VAL;var outerScrollInit=(0,_reactNativeReanimated.useSharedValue)(0);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return activeIndexAnim.value;};_f._closure={activeIndexAnim:activeIndexAnim};_f.asString="function _f(){const{activeIndexAnim}=jsThis._closure;{return activeIndexAnim.value;}}";_f.__workletHash=1662895275731;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (74:4)";return _f;}(),function(){var _f=function _f(cur,prev){if(cur!==prev&&cur>=0){scrollInit.value=scrollOffset.value;outerScrollInit.value=outerScrollOffset.value;}};_f._closure={scrollInit:scrollInit,scrollOffset:scrollOffset,outerScrollInit:outerScrollInit,outerScrollOffset:outerScrollOffset};_f.asString="function _f(cur,prev){const{scrollInit,scrollOffset,outerScrollInit,outerScrollOffset}=jsThis._closure;{if(cur!==prev&&cur>=0){scrollInit.value=scrollOffset.value;outerScrollInit.value=outerScrollOffset.value;}}}";_f.__workletHash=14917928217945;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (77:4)";return _f;}(),[outerScrollOffset]);var placeholderOffset=(0,_reactNativeReanimated.useSharedValue)(0);var isDraggingCell=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){return isTouchActiveNative.value&&activeIndexAnim.value>=0;};_f._closure={isTouchActiveNative:isTouchActiveNative,activeIndexAnim:activeIndexAnim};_f.asString="function _f(){const{isTouchActiveNative,activeIndexAnim}=jsThis._closure;{return isTouchActiveNative.value&&activeIndexAnim.value>=0;}}";_f.__workletHash=15157110606697;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (88:41)";return _f;}(),[]);var autoScrollDistance=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){if(!isDraggingCell.value)return 0;var innerScrollDiff=scrollOffset.value-scrollInit.value;var outerScrollDiff=outerScrollOffset.value-outerScrollInit.value;var scrollDiff=innerScrollDiff+outerScrollDiff;return scrollDiff;};_f._closure={isDraggingCell:isDraggingCell,scrollOffset:scrollOffset,scrollInit:scrollInit,outerScrollOffset:outerScrollOffset,outerScrollInit:outerScrollInit};_f.asString="function _f(){const{isDraggingCell,scrollOffset,scrollInit,outerScrollOffset,outerScrollInit}=jsThis._closure;{if(!isDraggingCell.value)return 0;const innerScrollDiff=scrollOffset.value-scrollInit.value;const outerScrollDiff=outerScrollOffset.value-outerScrollInit.value;const scrollDiff=innerScrollDiff+outerScrollDiff;return scrollDiff;}}";_f.__workletHash=15552139107413;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (92:45)";return _f;}(),[]);var touchPositionDiff=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var extraTranslate=isTouchActiveNative.value?autoScrollDistance.value:0;return touchTranslate.value+extraTranslate;};_f._closure={isTouchActiveNative:isTouchActiveNative,autoScrollDistance:autoScrollDistance,touchTranslate:touchTranslate};_f.asString="function _f(){const{isTouchActiveNative,autoScrollDistance,touchTranslate}=jsThis._closure;{const extraTranslate=isTouchActiveNative.value?autoScrollDistance.value:0;return touchTranslate.value+extraTranslate;}}";_f.__workletHash=6038336113742;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (101:44)";return _f;}(),[]);var touchPositionDiffConstrained=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var containerMinusActiveCell=containerSize.value-activeCellSize.value+scrollOffset.value;var offsetRelativeToScrollTop=touchPositionDiff.value+activeCellOffset.value;var constrained=Math.min(containerMinusActiveCell,Math.max(scrollOffset.value,offsetRelativeToScrollTop));var maxTranslateNegative=-activeCellOffset.value;var maxTranslatePositive=scrollViewSize.value-(activeCellOffset.value+activeCellSize.value);var constrainedBase=isTouchActiveNative.value?constrained-activeCellOffset.value:touchPositionDiff.value;return Math.min(Math.max(constrainedBase,maxTranslateNegative),maxTranslatePositive);};_f._closure={containerSize:containerSize,activeCellSize:activeCellSize,scrollOffset:scrollOffset,touchPositionDiff:touchPositionDiff,activeCellOffset:activeCellOffset,scrollViewSize:scrollViewSize,isTouchActiveNative:isTouchActiveNative};_f.asString="function _f(){const{containerSize,activeCellSize,scrollOffset,touchPositionDiff,activeCellOffset,scrollViewSize,isTouchActiveNative}=jsThis._closure;{const containerMinusActiveCell=containerSize.value-activeCellSize.value+scrollOffset.value;const offsetRelativeToScrollTop=touchPositionDiff.value+activeCellOffset.value;const constrained=Math.min(containerMinusActiveCell,Math.max(scrollOffset.value,offsetRelativeToScrollTop));const maxTranslateNegative=-activeCellOffset.value;const maxTranslatePositive=scrollViewSize.value-(activeCellOffset.value+activeCellSize.value);const constrainedBase=isTouchActiveNative.value?constrained-activeCellOffset.value:touchPositionDiff.value;return Math.min(Math.max(constrainedBase,maxTranslateNegative),maxTranslatePositive);}}";_f.__workletHash=12403615032773;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (108:55)";return _f;}(),[]);var hoverAnim=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){if(activeIndexAnim.value<0)return 0;return props.dragItemOverflow?touchPositionDiff.value:touchPositionDiffConstrained.value;};_f._closure={activeIndexAnim:activeIndexAnim,props:{dragItemOverflow:props.dragItemOverflow},touchPositionDiff:touchPositionDiff,touchPositionDiffConstrained:touchPositionDiffConstrained};_f.asString="function _f(){const{activeIndexAnim,props,touchPositionDiff,touchPositionDiffConstrained}=jsThis._closure;{if(activeIndexAnim.value<0)return 0;return props.dragItemOverflow?touchPositionDiff.value:touchPositionDiffConstrained.value;}}";_f.__workletHash=4766979967758;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (136:36)";return _f;}(),[]);var hoverOffset=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){return hoverAnim.value+activeCellOffset.value;};_f._closure={hoverAnim:hoverAnim,activeCellOffset:activeCellOffset};_f.asString="function _f(){const{hoverAnim,activeCellOffset}=jsThis._closure;{return hoverAnim.value+activeCellOffset.value;}}";_f.__workletHash=13741556660209;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (143:38)";return _f;}(),[hoverAnim,activeCellOffset]);(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var isHovering=activeIndexAnim.value>=0;if(!isHovering&&spacerIndexAnim.value>=0){spacerIndexAnim.value=-1;}};_f._closure={activeIndexAnim:activeIndexAnim,spacerIndexAnim:spacerIndexAnim};_f.asString="function _f(){const{activeIndexAnim,spacerIndexAnim}=jsThis._closure;{const isHovering=activeIndexAnim.value>=0;if(!isHovering&&spacerIndexAnim.value>=0){spacerIndexAnim.value=-1;}}}";_f.__workletHash=11056248743165;_f.__location="/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (147:18)";return _f;}(),[]);var resetTouchedCell=(0,_react.useCallback)(function(){activeCellOffset.value=0;hasMoved.value=0;},[]);var value=(0,_react.useMemo)(function(){return{activeCellOffset:activeCellOffset,activeCellSize:activeCellSize,activeIndexAnim:activeIndexAnim,containerSize:containerSize,disabled:disabled,horizontalAnim:horizontalAnim,hoverAnim:hoverAnim,hoverOffset:hoverOffset,isDraggingCell:isDraggingCell,isTouchActiveNative:isTouchActiveNative,panGestureState:panGestureState,placeholderOffset:placeholderOffset,resetTouchedCell:resetTouchedCell,scrollOffset:scrollOffset,scrollViewSize:scrollViewSize,spacerIndexAnim:spacerIndexAnim,touchPositionDiff:touchPositionDiff,touchTranslate:touchTranslate,autoScrollDistance:autoScrollDistance,viewableIndexMin:viewableIndexMin,viewableIndexMax:viewableIndexMax};},[activeCellOffset,activeCellSize,activeIndexAnim,containerSize,disabled,horizontalAnim,hoverAnim,hoverOffset,isDraggingCell,isTouchActiveNative,panGestureState,placeholderOffset,resetTouchedCell,scrollOffset,scrollViewSize,spacerIndexAnim,touchPositionDiff,touchTranslate,autoScrollDistance,viewableIndexMin,viewableIndexMax]);(0,_react.useEffect)(function(){props.onAnimValInit==null?void 0:props.onAnimValInit(value);},[value]);return value;} ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.default = AnimatedValueProvider; ++exports.useAnimatedValues = useAnimatedValues; ++var _react = _interopRequireWildcard(require("react")); ++var _reactNativeReanimated = require("react-native-reanimated"); ++var _reactNativeGestureHandler = require("react-native-gesture-handler"); ++var _propsContext = require("./propsContext"); ++var _jsxFileName = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx"; ++function _getRequireWildcardCache(nodeInterop) { ++ if (typeof WeakMap !== "function") return null; ++ var cacheBabelInterop = new WeakMap(); ++ var cacheNodeInterop = new WeakMap(); ++ return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { ++ return nodeInterop ? cacheNodeInterop : cacheBabelInterop; ++ })(nodeInterop); ++} ++function _interopRequireWildcard(obj, nodeInterop) { ++ if (!nodeInterop && obj && obj.__esModule) { ++ return obj; ++ } ++ if (obj === null || (typeof obj !== "object" && typeof obj !== "function")) { ++ return { default: obj }; ++ } ++ var cache = _getRequireWildcardCache(nodeInterop); ++ if (cache && cache.has(obj)) { ++ return cache.get(obj); ++ } ++ var newObj = {}; ++ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; ++ for (var key in obj) { ++ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { ++ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; ++ if (desc && (desc.get || desc.set)) { ++ Object.defineProperty(newObj, key, desc); ++ } else { ++ newObj[key] = obj[key]; ++ } ++ } ++ } ++ newObj.default = obj; ++ if (cache) { ++ cache.set(obj, newObj); ++ } ++ return newObj; ++} ++var AnimatedValueContext = _react.default.createContext(undefined); ++function AnimatedValueProvider(_ref) { ++ var children = _ref.children; ++ var value = useSetupAnimatedValues(); ++ return _react.default.createElement(AnimatedValueContext.Provider, { value: value, __self: this, __source: { fileName: _jsxFileName, lineNumber: 21, columnNumber: 5 } }, children); ++} ++function useAnimatedValues() { ++ var value = (0, _react.useContext)(AnimatedValueContext); ++ if (!value) { ++ throw new Error("useAnimatedValues must be called from within AnimatedValueProvider!"); ++ } ++ return value; ++} ++function useSetupAnimatedValues() { ++ var props = (0, _propsContext.useProps)(); ++ var DEFAULT_VAL = (0, _reactNativeReanimated.useSharedValue)(0); ++ var containerSize = (0, _reactNativeReanimated.useSharedValue)(0); ++ var scrollViewSize = (0, _reactNativeReanimated.useSharedValue)(0); ++ var panGestureState = (0, _reactNativeReanimated.useSharedValue)(_reactNativeGestureHandler.State.UNDETERMINED); ++ var touchTranslate = (0, _reactNativeReanimated.useSharedValue)(0); ++ var isTouchActiveNative = (0, _reactNativeReanimated.useSharedValue)(false); ++ var hasMoved = (0, _reactNativeReanimated.useSharedValue)(0); ++ var disabled = (0, _reactNativeReanimated.useSharedValue)(false); ++ var horizontalAnim = (0, _reactNativeReanimated.useSharedValue)(!!props.horizontal); ++ var activeIndexAnim = (0, _reactNativeReanimated.useSharedValue)(-1); ++ var spacerIndexAnim = (0, _reactNativeReanimated.useSharedValue)(-1); ++ var activeCellSize = (0, _reactNativeReanimated.useSharedValue)(0); ++ var activeCellOffset = (0, _reactNativeReanimated.useSharedValue)(0); ++ var scrollOffset = (0, _reactNativeReanimated.useSharedValue)(0); ++ var scrollInit = (0, _reactNativeReanimated.useSharedValue)(0); ++ var viewableIndexMin = (0, _reactNativeReanimated.useSharedValue)(0); ++ var viewableIndexMax = (0, _reactNativeReanimated.useSharedValue)(0); ++ var outerScrollOffset = props.outerScrollOffset || DEFAULT_VAL; ++ var outerScrollInit = (0, _reactNativeReanimated.useSharedValue)(0); ++ (0, _reactNativeReanimated.useAnimatedReaction)( ++ (function () { ++ var _f = function _f() { ++ return activeIndexAnim.value; ++ }; ++ _f._closure = { activeIndexAnim: activeIndexAnim }; ++ _f.asString = "function _f(){const{activeIndexAnim}=jsThis._closure;{return activeIndexAnim.value;}}"; ++ _f.__workletHash = 1662895275731; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (74:4)"; ++ return _f; ++ })(), ++ (function () { ++ var _f = function _f(cur, prev) { ++ if (cur !== prev && cur >= 0) { ++ scrollInit.value = scrollOffset.value; ++ outerScrollInit.value = outerScrollOffset.value; ++ } ++ }; ++ _f._closure = { scrollInit: scrollInit, scrollOffset: scrollOffset, outerScrollInit: outerScrollInit, outerScrollOffset: outerScrollOffset }; ++ _f.asString = ++ "function _f(cur,prev){const{scrollInit,scrollOffset,outerScrollInit,outerScrollOffset}=jsThis._closure;{if(cur!==prev&&cur>=0){scrollInit.value=scrollOffset.value;outerScrollInit.value=outerScrollOffset.value;}}}"; ++ _f.__workletHash = 14917928217945; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (77:4)"; ++ return _f; ++ })(), ++ [outerScrollOffset] ++ ); ++ var placeholderOffset = (0, _reactNativeReanimated.useSharedValue)(0); ++ var isDraggingCell = (0, _reactNativeReanimated.useDerivedValue)( ++ (function () { ++ var _f = function _f() { ++ return isTouchActiveNative.value && activeIndexAnim.value >= 0; ++ }; ++ _f._closure = { isTouchActiveNative: isTouchActiveNative, activeIndexAnim: activeIndexAnim }; ++ _f.asString = "function _f(){const{isTouchActiveNative,activeIndexAnim}=jsThis._closure;{return isTouchActiveNative.value&&activeIndexAnim.value>=0;}}"; ++ _f.__workletHash = 15157110606697; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (88:41)"; ++ return _f; ++ })(), ++ [] ++ ); ++ var autoScrollDistance = (0, _reactNativeReanimated.useDerivedValue)( ++ (function () { ++ var _f = function _f() { ++ if (!isDraggingCell.value) return 0; ++ var innerScrollDiff = scrollOffset.value - scrollInit.value; ++ var outerScrollDiff = outerScrollOffset.value - outerScrollInit.value; ++ var scrollDiff = innerScrollDiff + outerScrollDiff; ++ return scrollDiff; ++ }; ++ _f._closure = { isDraggingCell: isDraggingCell, scrollOffset: scrollOffset, scrollInit: scrollInit, outerScrollOffset: outerScrollOffset, outerScrollInit: outerScrollInit }; ++ _f.asString = ++ "function _f(){const{isDraggingCell,scrollOffset,scrollInit,outerScrollOffset,outerScrollInit}=jsThis._closure;{if(!isDraggingCell.value)return 0;const innerScrollDiff=scrollOffset.value-scrollInit.value;const outerScrollDiff=outerScrollOffset.value-outerScrollInit.value;const scrollDiff=innerScrollDiff+outerScrollDiff;return scrollDiff;}}"; ++ _f.__workletHash = 15552139107413; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (92:45)"; ++ return _f; ++ })(), ++ [] ++ ); ++ var touchPositionDiff = (0, _reactNativeReanimated.useDerivedValue)( ++ (function () { ++ var _f = function _f() { ++ var extraTranslate = isTouchActiveNative.value ? autoScrollDistance.value : 0; ++ return touchTranslate.value + extraTranslate; ++ }; ++ _f._closure = { isTouchActiveNative: isTouchActiveNative, autoScrollDistance: autoScrollDistance, touchTranslate: touchTranslate }; ++ _f.asString = "function _f(){const{isTouchActiveNative,autoScrollDistance,touchTranslate}=jsThis._closure;{const extraTranslate=isTouchActiveNative.value?autoScrollDistance.value:0;return touchTranslate.value+extraTranslate;}}"; ++ _f.__workletHash = 6038336113742; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (101:44)"; ++ return _f; ++ })(), ++ [] ++ ); ++ var touchPositionDiffConstrained = (0, _reactNativeReanimated.useDerivedValue)( ++ (function () { ++ var _f = function _f() { ++ var containerMinusActiveCell = containerSize.value - activeCellSize.value + scrollOffset.value; ++ var offsetRelativeToScrollTop = touchPositionDiff.value + activeCellOffset.value; ++ var constrained = Math.min(containerMinusActiveCell, Math.max(scrollOffset.value, offsetRelativeToScrollTop)); ++ var maxTranslateNegative = -activeCellOffset.value; ++ var maxTranslatePositive = scrollViewSize.value - (activeCellOffset.value + activeCellSize.value); ++ var constrainedBase = isTouchActiveNative.value ? constrained - activeCellOffset.value : touchPositionDiff.value; ++ return Math.min(Math.max(constrainedBase, maxTranslateNegative), maxTranslatePositive); ++ }; ++ _f._closure = { ++ containerSize: containerSize, ++ activeCellSize: activeCellSize, ++ scrollOffset: scrollOffset, ++ touchPositionDiff: touchPositionDiff, ++ activeCellOffset: activeCellOffset, ++ scrollViewSize: scrollViewSize, ++ isTouchActiveNative: isTouchActiveNative, ++ }; ++ _f.asString = ++ "function _f(){const{containerSize,activeCellSize,scrollOffset,touchPositionDiff,activeCellOffset,scrollViewSize,isTouchActiveNative}=jsThis._closure;{const containerMinusActiveCell=containerSize.value-activeCellSize.value+scrollOffset.value;const offsetRelativeToScrollTop=touchPositionDiff.value+activeCellOffset.value;const constrained=Math.min(containerMinusActiveCell,Math.max(scrollOffset.value,offsetRelativeToScrollTop));const maxTranslateNegative=-activeCellOffset.value;const maxTranslatePositive=scrollViewSize.value-(activeCellOffset.value+activeCellSize.value);const constrainedBase=isTouchActiveNative.value?constrained-activeCellOffset.value:touchPositionDiff.value;return Math.min(Math.max(constrainedBase,maxTranslateNegative),maxTranslatePositive);}}"; ++ _f.__workletHash = 12403615032773; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (108:55)"; ++ return _f; ++ })(), ++ [] ++ ); ++ var dragItemOverflow = props.dragItemOverflow; ++ var hoverAnim = (0, _reactNativeReanimated.useDerivedValue)( ++ (function () { ++ var _f = function _f() { ++ if (activeIndexAnim.value < 0) return 0; ++ return dragItemOverflow ? touchPositionDiff.value : touchPositionDiffConstrained.value; ++ }; ++ _f._closure = { activeIndexAnim: activeIndexAnim, props: { dragItemOverflow }, touchPositionDiff: touchPositionDiff, touchPositionDiffConstrained: touchPositionDiffConstrained }; ++ _f.asString = ++ "function _f(){const{activeIndexAnim,props,touchPositionDiff,touchPositionDiffConstrained}=jsThis._closure;{if(activeIndexAnim.value<0)return 0;return dragItemOverflow?touchPositionDiff.value:touchPositionDiffConstrained.value;}}"; ++ _f.__workletHash = 4766979967758; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (136:36)"; ++ return _f; ++ })(), ++ [] ++ ); ++ var hoverOffset = (0, _reactNativeReanimated.useDerivedValue)( ++ (function () { ++ var _f = function _f() { ++ return hoverAnim.value + activeCellOffset.value; ++ }; ++ _f._closure = { hoverAnim: hoverAnim, activeCellOffset: activeCellOffset }; ++ _f.asString = "function _f(){const{hoverAnim,activeCellOffset}=jsThis._closure;{return hoverAnim.value+activeCellOffset.value;}}"; ++ _f.__workletHash = 13741556660209; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (143:38)"; ++ return _f; ++ })(), ++ [hoverAnim, activeCellOffset] ++ ); ++ (0, _reactNativeReanimated.useDerivedValue)( ++ (function () { ++ var _f = function _f() { ++ var isHovering = activeIndexAnim.value >= 0; ++ if (!isHovering && spacerIndexAnim.value >= 0) { ++ spacerIndexAnim.value = -1; ++ } ++ }; ++ _f._closure = { activeIndexAnim: activeIndexAnim, spacerIndexAnim: spacerIndexAnim }; ++ _f.asString = "function _f(){const{activeIndexAnim,spacerIndexAnim}=jsThis._closure;{const isHovering=activeIndexAnim.value>=0;if(!isHovering&&spacerIndexAnim.value>=0){spacerIndexAnim.value=-1;}}}"; ++ _f.__workletHash = 11056248743165; ++ _f.__location = "/Users/danielmerrill/dev/draggable/react-native-draggable-flatlist/src/context/animatedValueContext.tsx (147:18)"; ++ return _f; ++ })(), ++ [] ++ ); ++ var resetTouchedCell = (0, _react.useCallback)(function () { ++ activeCellOffset.value = 0; ++ hasMoved.value = 0; ++ }, []); ++ var value = (0, _react.useMemo)( ++ function () { ++ return { ++ activeCellOffset: activeCellOffset, ++ activeCellSize: activeCellSize, ++ activeIndexAnim: activeIndexAnim, ++ containerSize: containerSize, ++ disabled: disabled, ++ horizontalAnim: horizontalAnim, ++ hoverAnim: hoverAnim, ++ hoverOffset: hoverOffset, ++ isDraggingCell: isDraggingCell, ++ isTouchActiveNative: isTouchActiveNative, ++ panGestureState: panGestureState, ++ placeholderOffset: placeholderOffset, ++ resetTouchedCell: resetTouchedCell, ++ scrollOffset: scrollOffset, ++ scrollViewSize: scrollViewSize, ++ spacerIndexAnim: spacerIndexAnim, ++ touchPositionDiff: touchPositionDiff, ++ touchTranslate: touchTranslate, ++ autoScrollDistance: autoScrollDistance, ++ viewableIndexMin: viewableIndexMin, ++ viewableIndexMax: viewableIndexMax, ++ }; ++ }, ++ [ ++ activeCellOffset, ++ activeCellSize, ++ activeIndexAnim, ++ containerSize, ++ disabled, ++ horizontalAnim, ++ hoverAnim, ++ hoverOffset, ++ isDraggingCell, ++ isTouchActiveNative, ++ panGestureState, ++ placeholderOffset, ++ resetTouchedCell, ++ scrollOffset, ++ scrollViewSize, ++ spacerIndexAnim, ++ touchPositionDiff, ++ touchTranslate, ++ autoScrollDistance, ++ viewableIndexMin, ++ viewableIndexMax, ++ ] ++ ); ++ (0, _react.useEffect)( ++ function () { ++ props.onAnimValInit == null ? void 0 : props.onAnimValInit(value); ++ }, ++ [value] ++ ); ++ return value; ++} + //# sourceMappingURL=animatedValueContext.js.map +diff --git a/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js.map b/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js.map +index 57308fb..ae63cdb 100644 +--- a/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js.map ++++ b/node_modules/react-native-draggable-flatlist/lib/commonjs/context/animatedValueContext.js.map +@@ -1 +1 @@ +-{"version":3,"names":["AnimatedValueContext","React","createContext","undefined","AnimatedValueProvider","children","value","useSetupAnimatedValues","useAnimatedValues","useContext","Error","props","useProps","DEFAULT_VAL","useSharedValue","containerSize","scrollViewSize","panGestureState","GestureState","UNDETERMINED","touchTranslate","isTouchActiveNative","hasMoved","disabled","horizontalAnim","horizontal","activeIndexAnim","spacerIndexAnim","activeCellSize","activeCellOffset","scrollOffset","scrollInit","viewableIndexMin","viewableIndexMax","outerScrollOffset","outerScrollInit","useAnimatedReaction","cur","prev","placeholderOffset","isDraggingCell","useDerivedValue","autoScrollDistance","innerScrollDiff","outerScrollDiff","scrollDiff","touchPositionDiff","extraTranslate","touchPositionDiffConstrained","containerMinusActiveCell","offsetRelativeToScrollTop","constrained","Math","min","max","maxTranslateNegative","maxTranslatePositive","constrainedBase","hoverAnim","dragItemOverflow","hoverOffset","isHovering","resetTouchedCell","useCallback","useMemo","useEffect","onAnimValInit"],"sources":["animatedValueContext.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useCallback, useContext } from \"react\";\nimport {\n useAnimatedReaction,\n useDerivedValue,\n useSharedValue,\n} from \"react-native-reanimated\";\nimport { State as GestureState } from \"react-native-gesture-handler\";\nimport { useProps } from \"./propsContext\";\n\nconst AnimatedValueContext = React.createContext<\n ReturnType | undefined\n>(undefined);\n\nexport default function AnimatedValueProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const value = useSetupAnimatedValues();\n return (\n \n {children}\n \n );\n}\n\nexport function useAnimatedValues() {\n const value = useContext(AnimatedValueContext);\n if (!value) {\n throw new Error(\n \"useAnimatedValues must be called from within AnimatedValueProvider!\"\n );\n }\n return value;\n}\n\nfunction useSetupAnimatedValues() {\n const props = useProps();\n\n const DEFAULT_VAL = useSharedValue(0);\n\n const containerSize = useSharedValue(0);\n const scrollViewSize = useSharedValue(0);\n\n const panGestureState = useSharedValue(\n GestureState.UNDETERMINED\n );\n const touchTranslate = useSharedValue(0);\n\n const isTouchActiveNative = useSharedValue(false);\n\n const hasMoved = useSharedValue(0);\n const disabled = useSharedValue(false);\n\n const horizontalAnim = useSharedValue(!!props.horizontal);\n\n const activeIndexAnim = useSharedValue(-1); // Index of hovering cell\n const spacerIndexAnim = useSharedValue(-1); // Index of hovered-over cell\n\n const activeCellSize = useSharedValue(0); // Height or width of acctive cell\n const activeCellOffset = useSharedValue(0); // Distance between active cell and edge of container\n\n const scrollOffset = useSharedValue(0);\n const scrollInit = useSharedValue(0);\n\n const viewableIndexMin = useSharedValue(0);\n const viewableIndexMax = useSharedValue(0);\n\n // If list is nested there may be an outer scrollview\n const outerScrollOffset = props.outerScrollOffset || DEFAULT_VAL;\n const outerScrollInit = useSharedValue(0);\n\n useAnimatedReaction(\n () => {\n return activeIndexAnim.value;\n },\n (cur, prev) => {\n if (cur !== prev && cur >= 0) {\n scrollInit.value = scrollOffset.value;\n outerScrollInit.value = outerScrollOffset.value;\n }\n },\n [outerScrollOffset]\n );\n\n const placeholderOffset = useSharedValue(0);\n\n const isDraggingCell = useDerivedValue(() => {\n return isTouchActiveNative.value && activeIndexAnim.value >= 0;\n }, []);\n\n const autoScrollDistance = useDerivedValue(() => {\n if (!isDraggingCell.value) return 0;\n const innerScrollDiff = scrollOffset.value - scrollInit.value;\n // If list is nested there may be an outer scroll diff\n const outerScrollDiff = outerScrollOffset.value - outerScrollInit.value;\n const scrollDiff = innerScrollDiff + outerScrollDiff;\n return scrollDiff;\n }, []);\n\n const touchPositionDiff = useDerivedValue(() => {\n const extraTranslate = isTouchActiveNative.value\n ? autoScrollDistance.value\n : 0;\n return touchTranslate.value + extraTranslate;\n }, []);\n\n const touchPositionDiffConstrained = useDerivedValue(() => {\n const containerMinusActiveCell =\n containerSize.value - activeCellSize.value + scrollOffset.value;\n\n const offsetRelativeToScrollTop =\n touchPositionDiff.value + activeCellOffset.value;\n const constrained = Math.min(\n containerMinusActiveCell,\n Math.max(scrollOffset.value, offsetRelativeToScrollTop)\n );\n\n const maxTranslateNegative = -activeCellOffset.value;\n const maxTranslatePositive =\n scrollViewSize.value - (activeCellOffset.value + activeCellSize.value);\n\n // Only constrain the touch position while the finger is on the screen. This allows the active cell\n // to snap above/below the fold once let go, if the drag ends at the top/bottom of the screen.\n const constrainedBase = isTouchActiveNative.value\n ? constrained - activeCellOffset.value\n : touchPositionDiff.value;\n\n // Make sure item is constrained to the boundaries of the scrollview\n return Math.min(\n Math.max(constrainedBase, maxTranslateNegative),\n maxTranslatePositive\n );\n }, []);\n\n const hoverAnim = useDerivedValue(() => {\n if (activeIndexAnim.value < 0) return 0;\n return props.dragItemOverflow\n ? touchPositionDiff.value\n : touchPositionDiffConstrained.value;\n }, []);\n\n const hoverOffset = useDerivedValue(() => {\n return hoverAnim.value + activeCellOffset.value;\n }, [hoverAnim, activeCellOffset]);\n\n useDerivedValue(() => {\n // Reset spacer index when we stop hovering\n const isHovering = activeIndexAnim.value >= 0;\n if (!isHovering && spacerIndexAnim.value >= 0) {\n spacerIndexAnim.value = -1;\n }\n }, []);\n\n // Note: this could use a refactor as it combines touch state + cell animation\n const resetTouchedCell = useCallback(() => {\n activeCellOffset.value = 0;\n hasMoved.value = 0;\n }, []);\n\n const value = useMemo(\n () => ({\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n }),\n [\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n ]\n );\n\n useEffect(() => {\n props.onAnimValInit?.(value);\n }, [value]);\n\n return value;\n}\n"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["AnimatedValueContext","React","createContext","undefined","AnimatedValueProvider","children","value","useSetupAnimatedValues","useAnimatedValues","useContext","Error","props","useProps","DEFAULT_VAL","useSharedValue","containerSize","scrollViewSize","panGestureState","GestureState","UNDETERMINED","touchTranslate","isTouchActiveNative","hasMoved","disabled","horizontalAnim","horizontal","activeIndexAnim","spacerIndexAnim","activeCellSize","activeCellOffset","scrollOffset","scrollInit","viewableIndexMin","viewableIndexMax","outerScrollOffset","outerScrollInit","useAnimatedReaction","cur","prev","placeholderOffset","isDraggingCell","useDerivedValue","autoScrollDistance","innerScrollDiff","outerScrollDiff","scrollDiff","touchPositionDiff","extraTranslate","touchPositionDiffConstrained","containerMinusActiveCell","offsetRelativeToScrollTop","constrained","Math","min","max","maxTranslateNegative","maxTranslatePositive","constrainedBase","hoverAnim","dragItemOverflow","hoverOffset","isHovering","resetTouchedCell","useCallback","useMemo","useEffect","onAnimValInit"],"sources":["animatedValueContext.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useCallback, useContext } from \"react\";\nimport {\n useAnimatedReaction,\n useDerivedValue,\n useSharedValue,\n} from \"react-native-reanimated\";\nimport { State as GestureState } from \"react-native-gesture-handler\";\nimport { useProps } from \"./propsContext\";\n\nconst AnimatedValueContext = React.createContext<\n ReturnType | undefined\n>(undefined);\n\nexport default function AnimatedValueProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const value = useSetupAnimatedValues();\n return (\n \n {children}\n \n );\n}\n\nexport function useAnimatedValues() {\n const value = useContext(AnimatedValueContext);\n if (!value) {\n throw new Error(\n \"useAnimatedValues must be called from within AnimatedValueProvider!\"\n );\n }\n return value;\n}\n\nfunction useSetupAnimatedValues() {\n const props = useProps();\n\n const DEFAULT_VAL = useSharedValue(0);\n\n const containerSize = useSharedValue(0);\n const scrollViewSize = useSharedValue(0);\n\n const panGestureState = useSharedValue(\n GestureState.UNDETERMINED\n );\n const touchTranslate = useSharedValue(0);\n\n const isTouchActiveNative = useSharedValue(false);\n\n const hasMoved = useSharedValue(0);\n const disabled = useSharedValue(false);\n\n const horizontalAnim = useSharedValue(!!props.horizontal);\n\n const activeIndexAnim = useSharedValue(-1); // Index of hovering cell\n const spacerIndexAnim = useSharedValue(-1); // Index of hovered-over cell\n\n const activeCellSize = useSharedValue(0); // Height or width of acctive cell\n const activeCellOffset = useSharedValue(0); // Distance between active cell and edge of container\n\n const scrollOffset = useSharedValue(0);\n const scrollInit = useSharedValue(0);\n\n const viewableIndexMin = useSharedValue(0);\n const viewableIndexMax = useSharedValue(0);\n\n // If list is nested there may be an outer scrollview\n const outerScrollOffset = props.outerScrollOffset || DEFAULT_VAL;\n const outerScrollInit = useSharedValue(0);\n\n useAnimatedReaction(\n () => {\n return activeIndexAnim.value;\n },\n (cur, prev) => {\n if (cur !== prev && cur >= 0) {\n scrollInit.value = scrollOffset.value;\n outerScrollInit.value = outerScrollOffset.value;\n }\n },\n [outerScrollOffset]\n );\n\n const placeholderOffset = useSharedValue(0);\n\n const isDraggingCell = useDerivedValue(() => {\n return isTouchActiveNative.value && activeIndexAnim.value >= 0;\n }, []);\n\n const autoScrollDistance = useDerivedValue(() => {\n if (!isDraggingCell.value) return 0;\n const innerScrollDiff = scrollOffset.value - scrollInit.value;\n // If list is nested there may be an outer scroll diff\n const outerScrollDiff = outerScrollOffset.value - outerScrollInit.value;\n const scrollDiff = innerScrollDiff + outerScrollDiff;\n return scrollDiff;\n }, []);\n\n const touchPositionDiff = useDerivedValue(() => {\n const extraTranslate = isTouchActiveNative.value\n ? autoScrollDistance.value\n : 0;\n return touchTranslate.value + extraTranslate;\n }, []);\n\n const touchPositionDiffConstrained = useDerivedValue(() => {\n const containerMinusActiveCell =\n containerSize.value - activeCellSize.value + scrollOffset.value;\n\n const offsetRelativeToScrollTop =\n touchPositionDiff.value + activeCellOffset.value;\n const constrained = Math.min(\n containerMinusActiveCell,\n Math.max(scrollOffset.value, offsetRelativeToScrollTop)\n );\n\n const maxTranslateNegative = -activeCellOffset.value;\n const maxTranslatePositive =\n scrollViewSize.value - (activeCellOffset.value + activeCellSize.value);\n\n // Only constrain the touch position while the finger is on the screen. This allows the active cell\n // to snap above/below the fold once let go, if the drag ends at the top/bottom of the screen.\n const constrainedBase = isTouchActiveNative.value\n ? constrained - activeCellOffset.value\n : touchPositionDiff.value;\n\n // Make sure item is constrained to the boundaries of the scrollview\n return Math.min(\n Math.max(constrainedBase, maxTranslateNegative),\n maxTranslatePositive\n );\n }, []);\n\n const hoverAnim = useDerivedValue(() => {\n if (activeIndexAnim.value < 0) return 0;\n return dragItemOverflow\n ? touchPositionDiff.value\n : touchPositionDiffConstrained.value;\n }, []);\n\n const hoverOffset = useDerivedValue(() => {\n return hoverAnim.value + activeCellOffset.value;\n }, [hoverAnim, activeCellOffset]);\n\n useDerivedValue(() => {\n // Reset spacer index when we stop hovering\n const isHovering = activeIndexAnim.value >= 0;\n if (!isHovering && spacerIndexAnim.value >= 0) {\n spacerIndexAnim.value = -1;\n }\n }, []);\n\n // Note: this could use a refactor as it combines touch state + cell animation\n const resetTouchedCell = useCallback(() => {\n activeCellOffset.value = 0;\n hasMoved.value = 0;\n }, []);\n\n const value = useMemo(\n () => ({\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n }),\n [\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n ]\n );\n\n useEffect(() => {\n props.onAnimValInit?.(value);\n }, [value]);\n\n return value;\n}\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js b/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js +index e4e558f..06747c6 100644 +--- a/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js ++++ b/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js +@@ -84,9 +84,10 @@ function useSetupAnimatedValues() { + + return Math.min(Math.max(constrainedBase, maxTranslateNegative), maxTranslatePositive); + }, []); ++ const dragItemOverflow = props.dragItemOverflow; + const hoverAnim = useDerivedValue(() => { + if (activeIndexAnim.value < 0) return 0; +- return props.dragItemOverflow ? touchPositionDiff.value : touchPositionDiffConstrained.value; ++ return dragItemOverflow ? touchPositionDiff.value : touchPositionDiffConstrained.value; + }, []); + const hoverOffset = useDerivedValue(() => { + return hoverAnim.value + activeCellOffset.value; +diff --git a/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js.map b/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js.map +index ab6d37c..8b7a9e1 100644 +--- a/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js.map ++++ b/node_modules/react-native-draggable-flatlist/lib/module/context/animatedValueContext.js.map +@@ -1 +1 @@ +-{"version":3,"names":["React","useMemo","useEffect","useCallback","useContext","useAnimatedReaction","useDerivedValue","useSharedValue","State","GestureState","useProps","AnimatedValueContext","createContext","undefined","AnimatedValueProvider","children","value","useSetupAnimatedValues","useAnimatedValues","Error","props","DEFAULT_VAL","containerSize","scrollViewSize","panGestureState","UNDETERMINED","touchTranslate","isTouchActiveNative","hasMoved","disabled","horizontalAnim","horizontal","activeIndexAnim","spacerIndexAnim","activeCellSize","activeCellOffset","scrollOffset","scrollInit","viewableIndexMin","viewableIndexMax","outerScrollOffset","outerScrollInit","cur","prev","placeholderOffset","isDraggingCell","autoScrollDistance","innerScrollDiff","outerScrollDiff","scrollDiff","touchPositionDiff","extraTranslate","touchPositionDiffConstrained","containerMinusActiveCell","offsetRelativeToScrollTop","constrained","Math","min","max","maxTranslateNegative","maxTranslatePositive","constrainedBase","hoverAnim","dragItemOverflow","hoverOffset","isHovering","resetTouchedCell","onAnimValInit"],"sources":["animatedValueContext.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useCallback, useContext } from \"react\";\nimport {\n useAnimatedReaction,\n useDerivedValue,\n useSharedValue,\n} from \"react-native-reanimated\";\nimport { State as GestureState } from \"react-native-gesture-handler\";\nimport { useProps } from \"./propsContext\";\n\nconst AnimatedValueContext = React.createContext<\n ReturnType | undefined\n>(undefined);\n\nexport default function AnimatedValueProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const value = useSetupAnimatedValues();\n return (\n \n {children}\n \n );\n}\n\nexport function useAnimatedValues() {\n const value = useContext(AnimatedValueContext);\n if (!value) {\n throw new Error(\n \"useAnimatedValues must be called from within AnimatedValueProvider!\"\n );\n }\n return value;\n}\n\nfunction useSetupAnimatedValues() {\n const props = useProps();\n\n const DEFAULT_VAL = useSharedValue(0);\n\n const containerSize = useSharedValue(0);\n const scrollViewSize = useSharedValue(0);\n\n const panGestureState = useSharedValue(\n GestureState.UNDETERMINED\n );\n const touchTranslate = useSharedValue(0);\n\n const isTouchActiveNative = useSharedValue(false);\n\n const hasMoved = useSharedValue(0);\n const disabled = useSharedValue(false);\n\n const horizontalAnim = useSharedValue(!!props.horizontal);\n\n const activeIndexAnim = useSharedValue(-1); // Index of hovering cell\n const spacerIndexAnim = useSharedValue(-1); // Index of hovered-over cell\n\n const activeCellSize = useSharedValue(0); // Height or width of acctive cell\n const activeCellOffset = useSharedValue(0); // Distance between active cell and edge of container\n\n const scrollOffset = useSharedValue(0);\n const scrollInit = useSharedValue(0);\n\n const viewableIndexMin = useSharedValue(0);\n const viewableIndexMax = useSharedValue(0);\n\n // If list is nested there may be an outer scrollview\n const outerScrollOffset = props.outerScrollOffset || DEFAULT_VAL;\n const outerScrollInit = useSharedValue(0);\n\n useAnimatedReaction(\n () => {\n return activeIndexAnim.value;\n },\n (cur, prev) => {\n if (cur !== prev && cur >= 0) {\n scrollInit.value = scrollOffset.value;\n outerScrollInit.value = outerScrollOffset.value;\n }\n },\n [outerScrollOffset]\n );\n\n const placeholderOffset = useSharedValue(0);\n\n const isDraggingCell = useDerivedValue(() => {\n return isTouchActiveNative.value && activeIndexAnim.value >= 0;\n }, []);\n\n const autoScrollDistance = useDerivedValue(() => {\n if (!isDraggingCell.value) return 0;\n const innerScrollDiff = scrollOffset.value - scrollInit.value;\n // If list is nested there may be an outer scroll diff\n const outerScrollDiff = outerScrollOffset.value - outerScrollInit.value;\n const scrollDiff = innerScrollDiff + outerScrollDiff;\n return scrollDiff;\n }, []);\n\n const touchPositionDiff = useDerivedValue(() => {\n const extraTranslate = isTouchActiveNative.value\n ? autoScrollDistance.value\n : 0;\n return touchTranslate.value + extraTranslate;\n }, []);\n\n const touchPositionDiffConstrained = useDerivedValue(() => {\n const containerMinusActiveCell =\n containerSize.value - activeCellSize.value + scrollOffset.value;\n\n const offsetRelativeToScrollTop =\n touchPositionDiff.value + activeCellOffset.value;\n const constrained = Math.min(\n containerMinusActiveCell,\n Math.max(scrollOffset.value, offsetRelativeToScrollTop)\n );\n\n const maxTranslateNegative = -activeCellOffset.value;\n const maxTranslatePositive =\n scrollViewSize.value - (activeCellOffset.value + activeCellSize.value);\n\n // Only constrain the touch position while the finger is on the screen. This allows the active cell\n // to snap above/below the fold once let go, if the drag ends at the top/bottom of the screen.\n const constrainedBase = isTouchActiveNative.value\n ? constrained - activeCellOffset.value\n : touchPositionDiff.value;\n\n // Make sure item is constrained to the boundaries of the scrollview\n return Math.min(\n Math.max(constrainedBase, maxTranslateNegative),\n maxTranslatePositive\n );\n }, []);\n\n const hoverAnim = useDerivedValue(() => {\n if (activeIndexAnim.value < 0) return 0;\n return props.dragItemOverflow\n ? touchPositionDiff.value\n : touchPositionDiffConstrained.value;\n }, []);\n\n const hoverOffset = useDerivedValue(() => {\n return hoverAnim.value + activeCellOffset.value;\n }, [hoverAnim, activeCellOffset]);\n\n useDerivedValue(() => {\n // Reset spacer index when we stop hovering\n const isHovering = activeIndexAnim.value >= 0;\n if (!isHovering && spacerIndexAnim.value >= 0) {\n spacerIndexAnim.value = -1;\n }\n }, []);\n\n // Note: this could use a refactor as it combines touch state + cell animation\n const resetTouchedCell = useCallback(() => {\n activeCellOffset.value = 0;\n hasMoved.value = 0;\n }, []);\n\n const value = useMemo(\n () => ({\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n }),\n [\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n ]\n );\n\n useEffect(() => {\n props.onAnimValInit?.(value);\n }, [value]);\n\n return value;\n}\n"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["React","useMemo","useEffect","useCallback","useContext","useAnimatedReaction","useDerivedValue","useSharedValue","State","GestureState","useProps","AnimatedValueContext","createContext","undefined","AnimatedValueProvider","children","value","useSetupAnimatedValues","useAnimatedValues","Error","props","DEFAULT_VAL","containerSize","scrollViewSize","panGestureState","UNDETERMINED","touchTranslate","isTouchActiveNative","hasMoved","disabled","horizontalAnim","horizontal","activeIndexAnim","spacerIndexAnim","activeCellSize","activeCellOffset","scrollOffset","scrollInit","viewableIndexMin","viewableIndexMax","outerScrollOffset","outerScrollInit","cur","prev","placeholderOffset","isDraggingCell","autoScrollDistance","innerScrollDiff","outerScrollDiff","scrollDiff","touchPositionDiff","extraTranslate","touchPositionDiffConstrained","containerMinusActiveCell","offsetRelativeToScrollTop","constrained","Math","min","max","maxTranslateNegative","maxTranslatePositive","constrainedBase","hoverAnim","dragItemOverflow","hoverOffset","isHovering","resetTouchedCell","onAnimValInit"],"sources":["animatedValueContext.tsx"],"sourcesContent":["import React, { useMemo, useEffect, useCallback, useContext } from \"react\";\nimport {\n useAnimatedReaction,\n useDerivedValue,\n useSharedValue,\n} from \"react-native-reanimated\";\nimport { State as GestureState } from \"react-native-gesture-handler\";\nimport { useProps } from \"./propsContext\";\n\nconst AnimatedValueContext = React.createContext<\n ReturnType | undefined\n>(undefined);\n\nexport default function AnimatedValueProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const value = useSetupAnimatedValues();\n return (\n \n {children}\n \n );\n}\n\nexport function useAnimatedValues() {\n const value = useContext(AnimatedValueContext);\n if (!value) {\n throw new Error(\n \"useAnimatedValues must be called from within AnimatedValueProvider!\"\n );\n }\n return value;\n}\n\nfunction useSetupAnimatedValues() {\n const props = useProps();\n\n const DEFAULT_VAL = useSharedValue(0);\n\n const containerSize = useSharedValue(0);\n const scrollViewSize = useSharedValue(0);\n\n const panGestureState = useSharedValue(\n GestureState.UNDETERMINED\n );\n const touchTranslate = useSharedValue(0);\n\n const isTouchActiveNative = useSharedValue(false);\n\n const hasMoved = useSharedValue(0);\n const disabled = useSharedValue(false);\n\n const horizontalAnim = useSharedValue(!!props.horizontal);\n\n const activeIndexAnim = useSharedValue(-1); // Index of hovering cell\n const spacerIndexAnim = useSharedValue(-1); // Index of hovered-over cell\n\n const activeCellSize = useSharedValue(0); // Height or width of acctive cell\n const activeCellOffset = useSharedValue(0); // Distance between active cell and edge of container\n\n const scrollOffset = useSharedValue(0);\n const scrollInit = useSharedValue(0);\n\n const viewableIndexMin = useSharedValue(0);\n const viewableIndexMax = useSharedValue(0);\n\n // If list is nested there may be an outer scrollview\n const outerScrollOffset = props.outerScrollOffset || DEFAULT_VAL;\n const outerScrollInit = useSharedValue(0);\n\n useAnimatedReaction(\n () => {\n return activeIndexAnim.value;\n },\n (cur, prev) => {\n if (cur !== prev && cur >= 0) {\n scrollInit.value = scrollOffset.value;\n outerScrollInit.value = outerScrollOffset.value;\n }\n },\n [outerScrollOffset]\n );\n\n const placeholderOffset = useSharedValue(0);\n\n const isDraggingCell = useDerivedValue(() => {\n return isTouchActiveNative.value && activeIndexAnim.value >= 0;\n }, []);\n\n const autoScrollDistance = useDerivedValue(() => {\n if (!isDraggingCell.value) return 0;\n const innerScrollDiff = scrollOffset.value - scrollInit.value;\n // If list is nested there may be an outer scroll diff\n const outerScrollDiff = outerScrollOffset.value - outerScrollInit.value;\n const scrollDiff = innerScrollDiff + outerScrollDiff;\n return scrollDiff;\n }, []);\n\n const touchPositionDiff = useDerivedValue(() => {\n const extraTranslate = isTouchActiveNative.value\n ? autoScrollDistance.value\n : 0;\n return touchTranslate.value + extraTranslate;\n }, []);\n\n const touchPositionDiffConstrained = useDerivedValue(() => {\n const containerMinusActiveCell =\n containerSize.value - activeCellSize.value + scrollOffset.value;\n\n const offsetRelativeToScrollTop =\n touchPositionDiff.value + activeCellOffset.value;\n const constrained = Math.min(\n containerMinusActiveCell,\n Math.max(scrollOffset.value, offsetRelativeToScrollTop)\n );\n\n const maxTranslateNegative = -activeCellOffset.value;\n const maxTranslatePositive =\n scrollViewSize.value - (activeCellOffset.value + activeCellSize.value);\n\n // Only constrain the touch position while the finger is on the screen. This allows the active cell\n // to snap above/below the fold once let go, if the drag ends at the top/bottom of the screen.\n const constrainedBase = isTouchActiveNative.value\n ? constrained - activeCellOffset.value\n : touchPositionDiff.value;\n\n // Make sure item is constrained to the boundaries of the scrollview\n return Math.min(\n Math.max(constrainedBase, maxTranslateNegative),\n maxTranslatePositive\n );\n }, []);\n\n const hoverAnim = useDerivedValue(() => {\n if (activeIndexAnim.value < 0) return 0;\n return dragItemOverflow\n ? touchPositionDiff.value\n : touchPositionDiffConstrained.value;\n }, []);\n\n const hoverOffset = useDerivedValue(() => {\n return hoverAnim.value + activeCellOffset.value;\n }, [hoverAnim, activeCellOffset]);\n\n useDerivedValue(() => {\n // Reset spacer index when we stop hovering\n const isHovering = activeIndexAnim.value >= 0;\n if (!isHovering && spacerIndexAnim.value >= 0) {\n spacerIndexAnim.value = -1;\n }\n }, []);\n\n // Note: this could use a refactor as it combines touch state + cell animation\n const resetTouchedCell = useCallback(() => {\n activeCellOffset.value = 0;\n hasMoved.value = 0;\n }, []);\n\n const value = useMemo(\n () => ({\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n }),\n [\n activeCellOffset,\n activeCellSize,\n activeIndexAnim,\n containerSize,\n disabled,\n horizontalAnim,\n hoverAnim,\n hoverOffset,\n isDraggingCell,\n isTouchActiveNative,\n panGestureState,\n placeholderOffset,\n resetTouchedCell,\n scrollOffset,\n scrollViewSize,\n spacerIndexAnim,\n touchPositionDiff,\n touchTranslate,\n autoScrollDistance,\n viewableIndexMin,\n viewableIndexMax,\n ]\n );\n\n useEffect(() => {\n props.onAnimValInit?.(value);\n }, [value]);\n\n return value;\n}\n"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/react-native-draggable-flatlist/src/context/animatedValueContext.tsx b/node_modules/react-native-draggable-flatlist/src/context/animatedValueContext.tsx +index 6ff1ed5..5f7d9bc 100644 +--- a/node_modules/react-native-draggable-flatlist/src/context/animatedValueContext.tsx ++++ b/node_modules/react-native-draggable-flatlist/src/context/animatedValueContext.tsx +@@ -133,9 +133,11 @@ function useSetupAnimatedValues() { + ); + }, []); + ++ const dragItemOverflow = props.dragItemOverflow; ++ + const hoverAnim = useDerivedValue(() => { + if (activeIndexAnim.value < 0) return 0; +- return props.dragItemOverflow ++ return dragItemOverflow + ? touchPositionDiff.value + : touchPositionDiffConstrained.value; + }, []);