UNPKG

@attio/react-native-bottom-sheet-toolbox

Version:
90 lines (89 loc) 3.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InvertedBottomSheetFlatList = exports.BottomSheetFlatList = void 0; var React = _interopRequireWildcard(require("react")); var _reactMergeRefs = require("react-merge-refs"); var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated")); var _bottomSheetScrollGestureDetector = require("../bottom-sheet-scroll-gesture-detector"); var _bottomSheetListWrapper = require("./bottom-sheet-list-wrapper"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } function makeBottomSheetFlatList(inverted) { return function BottomSheetFlatList({ onScroll, onBeginDrag, onEndDrag, onMomentumBegin, onMomentumEnd, onContentSizeChange, ref, onLayout, ...rest }) { const { scrollHandler, scrollOffsetYSharedValue, scrollContentHeightSharedValue, scrollLayoutHeightSharedValue, scrollRef } = (0, _bottomSheetScrollGestureDetector.useBottomSheetScrollGestureDetectorConnector)({ ...(onScroll && { onScroll }), ...(onBeginDrag && { onBeginDrag }), ...(onEndDrag && { onEndDrag }), ...(onMomentumBegin && { onMomentumBegin }), ...(onMomentumEnd && { onMomentumEnd }) }); const refs = (0, _reactMergeRefs.useMergeRefs)([scrollRef, ref]); const innerOnContentSizeChange = React.useCallback((w, h) => { if (typeof onContentSizeChange === "function") { onContentSizeChange(w, h); } else if (onContentSizeChange?.value) { onContentSizeChange.value(w, h); } scrollContentHeightSharedValue.set(h); }, [onContentSizeChange, scrollContentHeightSharedValue]); const innerOnLayout = React.useCallback(evt => { if (typeof onLayout === "function") { onLayout(evt); } else if (onLayout?.value) { onLayout.value(evt); } scrollLayoutHeightSharedValue.set(evt.nativeEvent.layout.height); }, [onLayout, scrollLayoutHeightSharedValue]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_bottomSheetScrollGestureDetector.BottomSheetScrollGestureDetector, { scrollRef: scrollRef, scrollOffsetYSharedValue: scrollOffsetYSharedValue, scrollContentHeightSharedValue: scrollContentHeightSharedValue, scrollLayoutHeightSharedValue: scrollLayoutHeightSharedValue, inverted: inverted, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_bottomSheetListWrapper.BottomSheetListWrapper, { contentHeightSharedValue: scrollContentHeightSharedValue, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.FlatList, { ref: refs, bounces: false, scrollEventThrottle: 1, onScroll: scrollHandler, onContentSizeChange: innerOnContentSizeChange, onLayout: innerOnLayout, ...rest }) }) }); }; } const BottomSheetFlatList = exports.BottomSheetFlatList = makeBottomSheetFlatList(false); const InvertedBottomSheetFlatList = exports.InvertedBottomSheetFlatList = makeBottomSheetFlatList(true); //# sourceMappingURL=bottom-sheet-flat-list.js.map