@tamagui/sheet 3.0.0-beta.831.1 → 3.0.0-beta.889.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/cjs/SheetScrollView.cjs +7 -9
- package/dist/cjs/SheetScrollView.native.cjs +7 -9
- package/dist/cjs/SheetScrollView.native.js +7 -9
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/useKeyboardControllerSheet.native.cjs +1 -27
- package/dist/cjs/useKeyboardControllerSheet.native.js +1 -27
- package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +8 -10
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +8 -10
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/useKeyboardControllerSheet.native.js +1 -27
- package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +8 -10
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.cjs +7 -9
- package/dist/jsx/SheetScrollView.native.js +7 -9
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/useKeyboardControllerSheet.native.cjs +1 -27
- package/dist/jsx/useKeyboardControllerSheet.native.js +1 -27
- package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -1
- package/package.json +18 -18
- package/src/SheetScrollView.tsx +6 -5
- package/src/useKeyboardControllerSheet.native.ts +10 -44
- package/types/Sheet.d.ts +58 -211
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts +3 -54
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/useKeyboardControllerSheet.native.d.ts +6 -6
- package/types/useKeyboardControllerSheet.native.d.ts.map +1 -1
|
@@ -39,7 +39,8 @@ var import_useSheetScrollViewGestures = require("./useSheetScrollViewGestures.cj
|
|
|
39
39
|
var import_webViewport = require("./webViewport.cjs");
|
|
40
40
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
41
41
|
const SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
|
|
42
|
-
const
|
|
42
|
+
const sheetContentStyle = (0, import_core.style)({ minHeight: "100%" });
|
|
43
|
+
const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, ({ scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: style2, ...props }, ref) => {
|
|
43
44
|
const context = (0, import_SheetContext.useSheetContext)(scope);
|
|
44
45
|
const gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();
|
|
45
46
|
const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
|
|
@@ -54,21 +55,17 @@ const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scro
|
|
|
54
55
|
const parentHeight = (0, import_react.useRef)(0);
|
|
55
56
|
const contentHeight = (0, import_react.useRef)(0);
|
|
56
57
|
const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
|
|
57
|
-
const
|
|
58
|
+
const fitSizingProps = hasFit ? {
|
|
58
59
|
flex: void 0,
|
|
59
60
|
height: void 0,
|
|
60
61
|
maxHeight: screenSize || void 0
|
|
61
62
|
} : { flex: 1 };
|
|
62
|
-
const contentContainerStyle = hasFit ? void 0 :
|
|
63
|
+
const contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
|
|
63
64
|
const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
|
|
64
65
|
height: frozenFrameHeight,
|
|
65
66
|
maxHeight: frozenFrameHeight
|
|
66
67
|
} : null;
|
|
67
|
-
const scrollViewStyle = [
|
|
68
|
-
fitSizingStyle,
|
|
69
|
-
...Array.isArray(style) ? style : [style],
|
|
70
|
-
keyboardFrozenOverride
|
|
71
|
-
];
|
|
68
|
+
const scrollViewStyle = [...Array.isArray(style2) ? style2 : [style2], keyboardFrozenOverride];
|
|
72
69
|
const panGestureRef = gestureContext?.panGestureRef;
|
|
73
70
|
const { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();
|
|
74
71
|
const useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;
|
|
@@ -240,7 +237,7 @@ const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scro
|
|
|
240
237
|
const RNGHComponent = RNGHScrollView;
|
|
241
238
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {
|
|
242
239
|
ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
|
|
243
|
-
style: scrollViewStyle,
|
|
240
|
+
style: [fitSizingProps, ...scrollViewStyle],
|
|
244
241
|
scrollEventThrottle: 1,
|
|
245
242
|
scrollEnabled,
|
|
246
243
|
simultaneousHandlers: [panGestureRef],
|
|
@@ -290,6 +287,7 @@ const SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scro
|
|
|
290
287
|
});
|
|
291
288
|
}
|
|
292
289
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
|
|
290
|
+
...fitSizingProps,
|
|
293
291
|
onLayout: (e) => {
|
|
294
292
|
recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
|
|
295
293
|
updateScrollable();
|
|
@@ -41,8 +41,9 @@ var import_SheetContext = require("./SheetContext.native.js");
|
|
|
41
41
|
var import_useSheetScrollViewGestures = require("./useSheetScrollViewGestures.native.js");
|
|
42
42
|
var import_webViewport = require("./webViewport.native.js");
|
|
43
43
|
var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
|
|
44
|
+
var sheetContentStyle = (0, import_core.style)({ minHeight: "100%" });
|
|
44
45
|
var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {
|
|
45
|
-
var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;
|
|
46
|
+
var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;
|
|
46
47
|
var context = (0, import_SheetContext.useSheetContext)(scope);
|
|
47
48
|
var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();
|
|
48
49
|
var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
|
|
@@ -57,21 +58,17 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
|
|
|
57
58
|
var parentHeight = (0, import_react.useRef)(0);
|
|
58
59
|
var contentHeight = (0, import_react.useRef)(0);
|
|
59
60
|
var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
|
|
60
|
-
var
|
|
61
|
+
var fitSizingProps = hasFit ? {
|
|
61
62
|
flex: void 0,
|
|
62
63
|
height: void 0,
|
|
63
64
|
maxHeight: screenSize || void 0
|
|
64
65
|
} : { flex: 1 };
|
|
65
|
-
var contentContainerStyle = hasFit ? void 0 :
|
|
66
|
+
var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
|
|
66
67
|
var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
|
|
67
68
|
height: frozenFrameHeight,
|
|
68
69
|
maxHeight: frozenFrameHeight
|
|
69
70
|
} : null;
|
|
70
|
-
var scrollViewStyle = [
|
|
71
|
-
fitSizingStyle,
|
|
72
|
-
...Array.isArray(style) ? style : [style],
|
|
73
|
-
keyboardFrozenOverride
|
|
74
|
-
];
|
|
71
|
+
var scrollViewStyle = [...Array.isArray(_$style) ? _$style : [_$style], keyboardFrozenOverride];
|
|
75
72
|
var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;
|
|
76
73
|
var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();
|
|
77
74
|
var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;
|
|
@@ -249,7 +246,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
|
|
|
249
246
|
var RNGHComponent = RNGHScrollView;
|
|
250
247
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {
|
|
251
248
|
ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
|
|
252
|
-
style: scrollViewStyle,
|
|
249
|
+
style: [fitSizingProps, ...scrollViewStyle],
|
|
253
250
|
scrollEventThrottle: 1,
|
|
254
251
|
scrollEnabled,
|
|
255
252
|
simultaneousHandlers: [panGestureRef],
|
|
@@ -300,6 +297,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
|
|
|
300
297
|
});
|
|
301
298
|
}
|
|
302
299
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
|
|
300
|
+
...fitSizingProps,
|
|
303
301
|
onLayout: function(e) {
|
|
304
302
|
recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
|
|
305
303
|
updateScrollable();
|
|
@@ -41,8 +41,9 @@ var import_SheetContext = require("./SheetContext.native.js");
|
|
|
41
41
|
var import_useSheetScrollViewGestures = require("./useSheetScrollViewGestures.native.js");
|
|
42
42
|
var import_webViewport = require("./webViewport.native.js");
|
|
43
43
|
var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
|
|
44
|
+
var sheetContentStyle = (0, import_core.style)({ minHeight: "100%" });
|
|
44
45
|
var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {
|
|
45
|
-
var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;
|
|
46
|
+
var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;
|
|
46
47
|
var context = (0, import_SheetContext.useSheetContext)(scope);
|
|
47
48
|
var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();
|
|
48
49
|
var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
|
|
@@ -57,21 +58,17 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
|
|
|
57
58
|
var parentHeight = (0, import_react.useRef)(0);
|
|
58
59
|
var contentHeight = (0, import_react.useRef)(0);
|
|
59
60
|
var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
|
|
60
|
-
var
|
|
61
|
+
var fitSizingProps = hasFit ? {
|
|
61
62
|
flex: void 0,
|
|
62
63
|
height: void 0,
|
|
63
64
|
maxHeight: screenSize || void 0
|
|
64
65
|
} : { flex: 1 };
|
|
65
|
-
var contentContainerStyle = hasFit ? void 0 :
|
|
66
|
+
var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
|
|
66
67
|
var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
|
|
67
68
|
height: frozenFrameHeight,
|
|
68
69
|
maxHeight: frozenFrameHeight
|
|
69
70
|
} : null;
|
|
70
|
-
var scrollViewStyle = [
|
|
71
|
-
fitSizingStyle,
|
|
72
|
-
...Array.isArray(style) ? style : [style],
|
|
73
|
-
keyboardFrozenOverride
|
|
74
|
-
];
|
|
71
|
+
var scrollViewStyle = [...Array.isArray(_$style) ? _$style : [_$style], keyboardFrozenOverride];
|
|
75
72
|
var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;
|
|
76
73
|
var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();
|
|
77
74
|
var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;
|
|
@@ -249,7 +246,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
|
|
|
249
246
|
var RNGHComponent = RNGHScrollView;
|
|
250
247
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {
|
|
251
248
|
ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
|
|
252
|
-
style: scrollViewStyle,
|
|
249
|
+
style: [fitSizingProps, ...scrollViewStyle],
|
|
253
250
|
scrollEventThrottle: 1,
|
|
254
251
|
scrollEnabled,
|
|
255
252
|
simultaneousHandlers: [panGestureRef],
|
|
@@ -300,6 +297,7 @@ var SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.Scroll
|
|
|
300
297
|
});
|
|
301
298
|
}
|
|
302
299
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
|
|
300
|
+
...fitSizingProps,
|
|
303
301
|
onLayout: function(e) {
|
|
304
302
|
recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
|
|
305
303
|
updateScrollable();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetScrollView.native.js","names":[],"sources":["cjs/SheetScrollView.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SheetScrollView_exports = {};\n__export(SheetScrollView_exports, {\n SheetScrollView: () => SheetScrollView\n});\nmodule.exports = __toCommonJS(SheetScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_core = require(\"@tamagui/core\");\nvar import_scroll_view = require(\"@tamagui/scroll-view\");\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_GestureSheetContext = require(\"./GestureSheetContext\");\nvar import_gestureState = require(\"./gestureState\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetScrollViewGestures = require(\"./useSheetScrollViewGestures\");\nvar import_webViewport = require(\"./webViewport\");\nvar SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nvar SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {\n var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;\n var context = (0, import_SheetContext.useSheetContext)(scope);\n var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();\n var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n var keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n var isKeyboardVisible = context.isKeyboardVisible === true || import_core.isWeb && (0, import_webViewport.getWebKeyboardResizeHeight)() >= import_webViewport.MIN_KEYBOARD_HEIGHT;\n var [scrollEnabled] = (0, import_use_controllable_state.useControllableState)({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n var scrollRef = import_react.default.useRef(null);\n var [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(true);\n var parentHeight = (0, import_react.useRef)(0);\n var contentHeight = (0, import_react.useRef)(0);\n var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n var fitSizingStyle = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : {\n flex: 1\n };\n var contentContainerStyle = hasFit ? void 0 : {\n minHeight: \"100%\"\n };\n var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {\n height: frozenFrameHeight,\n maxHeight: frozenFrameHeight\n } : null;\n var scrollViewStyle = [\n fitSizingStyle,\n ...Array.isArray(style) ? style : [\n style\n ],\n keyboardFrozenOverride\n ];\n var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;\n var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();\n var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;\n var currentScrollOffset = (0, import_react.useRef)(0);\n var lastEmittedScrollOffset = (0, import_react.useRef)(0);\n var lockedScrollY = (0, import_react.useRef)(0);\n var focusedInputScrollFrame = (0, import_react.useRef)(0);\n var setScrollEnabled = function(next, lockTo) {\n if (!next) {\n var _ref;\n var lockY = (_ref = lockTo !== null && lockTo !== void 0 ? lockTo : scrollBridge.scrollLockY) !== null && _ref !== void 0 ? _ref : currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: lockY,\n animated: false\n });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n var forceScrollTo = function(y) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y,\n animated: false\n });\n currentScrollOffset.current = y;\n };\n var emitManualScroll = import_react.default.useCallback(function(node, y) {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n }, [\n onScroll,\n scrollBridge\n ]);\n var scrollFocusedInputClearOfKeyboard = import_react.default.useCallback(function() {\n var _scrollRef_current;\n if (!import_core.isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n var node = (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : _scrollRef_current.getScrollableNode();\n var active = document.activeElement;\n if (!node || !active || !(0, import_webViewport.isEditableElement)(active) || !node.contains(active)) {\n return;\n }\n var keyboardHeight = Math.max(keyboardOccludedHeight, (0, import_webViewport.getWebKeyboardBottomInset)());\n if (keyboardHeight <= 0) return;\n var activeRect = active.getBoundingClientRect();\n var nodeRect = node.getBoundingClientRect();\n var margin = 12;\n var keyboardTop = (0, import_webViewport.getStableLayoutViewportHeight)() - keyboardHeight;\n var visibleTop = nodeRect.top + margin;\n var visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n var nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n var maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [\n hasFit,\n isKeyboardVisible,\n keyboardOccludedHeight,\n scrollBridge\n ]);\n var scheduleFocusedInputScroll = import_react.default.useCallback(function() {\n if (!import_core.isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(function() {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(scrollFocusedInputClearOfKeyboard);\n });\n }, [\n hasFit,\n scrollFocusedInputClearOfKeyboard\n ]);\n (0, import_react.useEffect)(function() {\n var _window_visualViewport;\n if (!import_core.isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return function() {\n var _window_visualViewport2;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport2 = window.visualViewport) === null || _window_visualViewport2 === void 0 ? void 0 : _window_visualViewport2.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [\n hasFit,\n scheduleFocusedInputScroll\n ]);\n (0, import_react.useEffect)(function() {\n setHasScrollView(true);\n if ((0, import_gestureState.isGestureHandlerEnabled)()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return function() {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n var updateScrollable = function() {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n var recordFitHeight = function(height) {\n parentHeight.current = height;\n };\n (0, import_react.useEffect)(function() {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [\n hasScrollableContent\n ]);\n var gestureProps = (0, import_useSheetScrollViewGestures.useSheetScrollViewGestures)({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n var contentWrapper = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.View, {\n onLayout: function(e) {\n var height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n })\n ]\n });\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n var RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n style: scrollViewStyle,\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [\n panGestureRef\n ],\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n });\n}, {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n});\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SheetScrollView.native.js","names":[],"sources":["cjs/SheetScrollView.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SheetScrollView_exports = {};\n__export(SheetScrollView_exports, {\n SheetScrollView: () => SheetScrollView\n});\nmodule.exports = __toCommonJS(SheetScrollView_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_core = require(\"@tamagui/core\");\nvar import_scroll_view = require(\"@tamagui/scroll-view\");\nvar import_use_controllable_state = require(\"@tamagui/use-controllable-state\");\nvar import_react = __toESM(require(\"react\"), 1);\nvar import_GestureSheetContext = require(\"./GestureSheetContext\");\nvar import_gestureState = require(\"./gestureState\");\nvar import_SheetContext = require(\"./SheetContext\");\nvar import_useSheetScrollViewGestures = require(\"./useSheetScrollViewGestures\");\nvar import_webViewport = require(\"./webViewport\");\nvar SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nvar sheetContentStyle = (0, import_core.style)({\n minHeight: \"100%\"\n});\nvar SheetScrollView = (0, import_core.createStyledHOC)(import_scroll_view.ScrollView, function(param, ref) {\n var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;\n var context = (0, import_SheetContext.useSheetContext)(scope);\n var gestureContext = (0, import_GestureSheetContext.useGestureSheetContext)();\n var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n var keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n var isKeyboardVisible = context.isKeyboardVisible === true || import_core.isWeb && (0, import_webViewport.getWebKeyboardResizeHeight)() >= import_webViewport.MIN_KEYBOARD_HEIGHT;\n var [scrollEnabled] = (0, import_use_controllable_state.useControllableState)({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n var scrollRef = import_react.default.useRef(null);\n var [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(true);\n var parentHeight = (0, import_react.useRef)(0);\n var contentHeight = (0, import_react.useRef)(0);\n var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n var fitSizingProps = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : {\n flex: 1\n };\n var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;\n var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {\n height: frozenFrameHeight,\n maxHeight: frozenFrameHeight\n } : null;\n var scrollViewStyle = [\n ...Array.isArray(_$style) ? _$style : [\n _$style\n ],\n keyboardFrozenOverride\n ];\n var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;\n var { ScrollView: RNGHScrollView } = (0, import_gestureState.getGestureHandlerState)();\n var useRNGHScrollView = (0, import_gestureState.isGestureHandlerEnabled)() && RNGHScrollView && panGestureRef;\n var currentScrollOffset = (0, import_react.useRef)(0);\n var lastEmittedScrollOffset = (0, import_react.useRef)(0);\n var lockedScrollY = (0, import_react.useRef)(0);\n var focusedInputScrollFrame = (0, import_react.useRef)(0);\n var setScrollEnabled = function(next, lockTo) {\n if (!next) {\n var _ref;\n var lockY = (_ref = lockTo !== null && lockTo !== void 0 ? lockTo : scrollBridge.scrollLockY) !== null && _ref !== void 0 ? _ref : currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: lockY,\n animated: false\n });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n var forceScrollTo = function(y) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y,\n animated: false\n });\n currentScrollOffset.current = y;\n };\n var emitManualScroll = import_react.default.useCallback(function(node, y) {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n }, [\n onScroll,\n scrollBridge\n ]);\n var scrollFocusedInputClearOfKeyboard = import_react.default.useCallback(function() {\n var _scrollRef_current;\n if (!import_core.isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n var node = (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : _scrollRef_current.getScrollableNode();\n var active = document.activeElement;\n if (!node || !active || !(0, import_webViewport.isEditableElement)(active) || !node.contains(active)) {\n return;\n }\n var keyboardHeight = Math.max(keyboardOccludedHeight, (0, import_webViewport.getWebKeyboardBottomInset)());\n if (keyboardHeight <= 0) return;\n var activeRect = active.getBoundingClientRect();\n var nodeRect = node.getBoundingClientRect();\n var margin = 12;\n var keyboardTop = (0, import_webViewport.getStableLayoutViewportHeight)() - keyboardHeight;\n var visibleTop = nodeRect.top + margin;\n var visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n var nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n var maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [\n hasFit,\n isKeyboardVisible,\n keyboardOccludedHeight,\n scrollBridge\n ]);\n var scheduleFocusedInputScroll = import_react.default.useCallback(function() {\n if (!import_core.isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(function() {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(scrollFocusedInputClearOfKeyboard);\n });\n }, [\n hasFit,\n scrollFocusedInputClearOfKeyboard\n ]);\n (0, import_react.useEffect)(function() {\n var _window_visualViewport;\n if (!import_core.isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return function() {\n var _window_visualViewport2;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n (_window_visualViewport2 = window.visualViewport) === null || _window_visualViewport2 === void 0 ? void 0 : _window_visualViewport2.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [\n hasFit,\n scheduleFocusedInputScroll\n ]);\n (0, import_react.useEffect)(function() {\n setHasScrollView(true);\n if ((0, import_gestureState.isGestureHandlerEnabled)()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return function() {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n var updateScrollable = function() {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n var recordFitHeight = function(height) {\n parentHeight.current = height;\n };\n (0, import_react.useEffect)(function() {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [\n hasScrollableContent\n ]);\n var gestureProps = (0, import_useSheetScrollViewGestures.useSheetScrollViewGestures)({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n var contentWrapper = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.View, {\n onLayout: function(e) {\n var height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n })\n ]\n });\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n var RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RNGHComponent, {\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n style: [\n fitSizingProps,\n ...scrollViewStyle\n ],\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [\n panGestureRef\n ],\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n var _scrollRef_current_scrollTo, _scrollRef_current;\n (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {\n ...fitSizingProps,\n onLayout: function(e) {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: function(e) {\n var { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n });\n}, {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n});\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":";;;AACA,IAAI,WAAW,OAAO;AACtB,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO;AAC1B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,WAAW,KAAK,YAAY,YAAY,SAAS,OAAO,OAAO,SAAS,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,YAKnG,cAAc,CAAC,OAAO,CAAC,IAAI,aAAa,UAAU,QAAQ,WAAW;CAAE,OAAO;CAAK,YAAY;AAAK,CAAC,IAAI,QACzG,GACF;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,0BAA0B,CAAC;AAC/B,SAAS,yBAAyB,EAChC,uBAAuB,gBACzB,CAAC;AACD,OAAO,UAAU,aAAa,uBAAuB;AACrD,IAAI,qBAAqB,QAAQ,mBAAmB;AACpD,IAAI,sBAAsB,QAAQ,uBAAuB;AACzD,IAAI,cAAc,QAAQ,eAAe;AACzC,IAAI,qBAAqB,QAAQ,sBAAsB;AACvD,IAAI,gCAAgC,QAAQ,iCAAiC;AAC7E,IAAI,eAAe,QAAQ,QAAQ,OAAO,GAAG,CAAC;AAC9C,IAAI,6BAA6B,QAAQ,iCAAuB;AAChE,IAAI,sBAAsB,QAAQ,0BAAgB;AAClD,IAAI,sBAAsB,QAAQ,0BAAgB;AAClD,IAAI,oCAAoC,QAAQ,wCAA8B;AAC9E,IAAI,qBAAqB,QAAQ,yBAAe;AAChD,IAAI,yBAAyB;AAC7B,IAAI,qBAAqB,GAAG,YAAY,MAAK,CAAE,EAC7C,WAAW,OACb,CAAC;AACD,IAAI,mBAAmB,GAAG,YAAY,gBAAe,CAAE,mBAAmB,YAAY,SAAS,OAAO,KAAK;CACzG,IAAI,EAAE,OAAO,UAAU,UAAU,eAAe,mBAAmB,OAAO,SAAS,GAAG,UAAU;CAChG,IAAI,WAAW,GAAG,oBAAoB,gBAAe,CAAE,KAAK;CAC5D,IAAI,kBAAkB,GAAG,2BAA2B,uBAAsB,CAAE;CAC5E,IAAI,EAAE,cAAc,kBAAkB,QAAQ,eAAe;CAC7D,IAAI,yBAAyB,KAAK,IAAI,GAAG,QAAQ,0BAA0B,CAAC;CAC5E,IAAI,oBAAoB,QAAQ,sBAAsB,QAAQ,YAAY,UAAU,GAAG,mBAAmB,2BAA0B,CAAE,KAAK,mBAAmB;CAC9J,IAAI,CAAC,kBAAkB,GAAG,8BAA8B,qBAAoB,CAAE;EAC5E,MAAM;EACN,aAAa;CACf,CAAC;CACD,IAAI,YAAY,aAAa,QAAQ,OAAO,IAAI;CAChD,IAAI,CAAC,sBAAsB,4BAA4B,GAAG,aAAa,SAAQ,CAAE,IAAI;CACrF,IAAI,gBAAgB,GAAG,aAAa,OAAM,CAAE,CAAC;CAC7C,IAAI,iBAAiB,GAAG,aAAa,OAAM,CAAE,CAAC;CAC9C,IAAI,oBAAoB,KAAK,IAAI,GAAG,QAAQ,6BAA6B,CAAC;CAC1E,IAAI,iBAAiB,SAAS;EAC5B,MAAM,KAAK;EACX,QAAQ,KAAK;EACb,WAAW,cAAc,KAAK;CAChC,IAAI,EACF,MAAM,EACR;CACA,IAAI,wBAAwB,SAAS,KAAK,IAAI;CAC9C,IAAI,yBAAyB,UAAU,qBAAqB,oBAAoB,IAAI;EAClF,QAAQ;EACR,WAAW;CACb,IAAI;CACJ,IAAI,kBAAkB,CACpB,GAAG,MAAM,QAAQ,OAAO,IAAI,UAAU,CACpC,OACF,GACA,sBACF;CACA,IAAI,gBAAgB,mBAAmB,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe;CACnG,IAAI,EAAE,YAAY,oBAAoB,GAAG,oBAAoB,uBAAsB,CAAE;CACrF,IAAI,qBAAqB,GAAG,oBAAoB,wBAAuB,CAAE,KAAK,kBAAkB;CAChG,IAAI,uBAAuB,GAAG,aAAa,OAAM,CAAE,CAAC;CACpD,IAAI,2BAA2B,GAAG,aAAa,OAAM,CAAE,CAAC;CACxD,IAAI,iBAAiB,GAAG,aAAa,OAAM,CAAE,CAAC;CAC9C,IAAI,2BAA2B,GAAG,aAAa,OAAM,CAAE,CAAC;CACxD,IAAI,mBAAmB,SAAS,MAAM,QAAQ;EAC5C,IAAI,CAAC,MAAM;GACT,IAAI;GACJ,IAAI,SAAS,OAAO,WAAW,QAAQ,WAAW,KAAK,IAAI,SAAS,aAAa,iBAAiB,QAAQ,SAAS,KAAK,IAAI,OAAO,oBAAoB;GACvJ,IAAI,aAAa,YAAY,SAAS,aAAa,gBAAgB,OAAO;IACxE;GACF;GACA,aAAa,UAAU;GACvB,cAAc,UAAU;GACxB,aAAa,cAAc;GAC3B,IAAI,oBAAoB,YAAY,OAAO;IACzC,IAAI,6BAA6B;IACjC,CAAC,qBAAqB,UAAU,aAAa,QAAQ,uBAAuB,KAAK,IAAI,KAAK,KAAK,8BAA8B,mBAAmB,cAAc,QAAQ,gCAAgC,KAAK,IAAI,KAAK,IAAI,4BAA4B,KAAK,oBAAoB;KAC3Q,GAAG;KACH,GAAG;KACH,UAAU;IACZ,CAAC;IACD,oBAAoB,UAAU;GAChC;EACF,OAAO;GACL,IAAI,aAAa,YAAY,QAAQ,aAAa,gBAAgB,KAAK,GAAG;IACxE;GACF;GACA,aAAa,UAAU;GACvB,cAAc,UAAU,oBAAoB;GAC5C,aAAa,cAAc,KAAK;EAClC;CACF;CACA,IAAI,gBAAgB,SAAS,GAAG;EAC9B,IAAI,6BAA6B;EACjC,CAAC,qBAAqB,UAAU,aAAa,QAAQ,uBAAuB,KAAK,IAAI,KAAK,KAAK,8BAA8B,mBAAmB,cAAc,QAAQ,gCAAgC,KAAK,IAAI,KAAK,IAAI,4BAA4B,KAAK,oBAAoB;GAC3Q,GAAG;GACH;GACA,UAAU;EACZ,CAAC;EACD,oBAAoB,UAAU;CAChC;CACA,IAAI,mBAAmB,aAAa,QAAQ,YAAY,SAAS,MAAM,GAAG;EACxE,oBAAoB,UAAU;EAC9B,aAAa,IAAI;EACjB,IAAI,IAAI,GAAG,aAAa,eAAe,CAAC;EACxC,wBAAwB,UAAU;EAClC,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;GAC3D,aAAa;IACX,eAAe;KACb,GAAG,KAAK;KACR;IACF;IACA,aAAa;KACX,QAAQ,KAAK;KACb,OAAO,KAAK;IACd;IACA,mBAAmB;KACjB,QAAQ,KAAK;KACb,OAAO,KAAK;IACd;GACF;GACA,WAAW,KAAK,IAAI;EACtB,CAAC;CACH,GAAG,CACD,UACA,YACF,CAAC;CACD,IAAI,oCAAoC,aAAa,QAAQ,YAAY,WAAW;EAClF,IAAI;EACJ,IAAI,CAAC,YAAY,SAAS,CAAC,UAAU,CAAC,qBAAqB,0BAA0B,GAAG;GACtF;EACF;EACA,IAAI,QAAQ,qBAAqB,UAAU,aAAa,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,kBAAkB;EAC9I,IAAI,SAAS,SAAS;EACtB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,mBAAmB,kBAAiB,CAAE,MAAM,KAAK,CAAC,KAAK,SAAS,MAAM,GAAG;GACpG;EACF;EACA,IAAI,iBAAiB,KAAK,IAAI,yBAAyB,GAAG,mBAAmB,0BAAyB,CAAE,CAAC;EACzG,IAAI,kBAAkB,GAAG;EACzB,IAAI,aAAa,OAAO,sBAAsB;EAC9C,IAAI,WAAW,KAAK,sBAAsB;EAC1C,IAAI,SAAS;EACb,IAAI,eAAe,GAAG,mBAAmB,8BAA6B,CAAE,IAAI;EAC5E,IAAI,aAAa,SAAS,MAAM;EAChC,IAAI,gBAAgB,KAAK,IAAI,SAAS,QAAQ,WAAW,IAAI;EAC7D,IAAI,gBAAgB,KAAK;EACzB,IAAI,WAAW,SAAS,eAAe;GACrC,iBAAiB,KAAK,KAAK,WAAW,SAAS,aAAa;EAC9D,OAAO,IAAI,WAAW,MAAM,YAAY;GACtC,iBAAiB,KAAK,KAAK,aAAa,WAAW,GAAG;EACxD;EACA,IAAI,eAAe,KAAK,IAAI,GAAG,KAAK,eAAe,KAAK,YAAY;EACpE,gBAAgB,KAAK,IAAI,GAAG,KAAK,IAAI,cAAc,aAAa,CAAC;EACjE,IAAI,kBAAkB,KAAK,WAAW;EACtC,KAAK,YAAY;EACjB,oBAAoB,UAAU;EAC9B,aAAa,IAAI;EACjB,IAAI,gBAAgB,GAAG,aAAa,eAAe,CAAC;CACtD,GAAG;EACD;EACA;EACA;EACA;CACF,CAAC;CACD,IAAI,6BAA6B,aAAa,QAAQ,YAAY,WAAW;EAC3E,IAAI,CAAC,YAAY,SAAS,CAAC,QAAQ;EACnC,qBAAqB,wBAAwB,OAAO;EACpD,wBAAwB,UAAU,sBAAsB,WAAW;GACjE,kCAAkC;GAClC,wBAAwB,UAAU,sBAAsB,iCAAiC;EAC3F,CAAC;CACH,GAAG,CACD,QACA,iCACF,CAAC;CACD,CAAC,GAAG,aAAa,UAAS,CAAE,WAAW;EACrC,IAAI;EACJ,IAAI,CAAC,YAAY,SAAS,CAAC,QAAQ;EACnC,2BAA2B;EAC3B,OAAO,iBAAiB,WAAW,0BAA0B;EAC7D,CAAC,yBAAyB,OAAO,oBAAoB,QAAQ,2BAA2B,KAAK,IAAI,KAAK,IAAI,uBAAuB,iBAAiB,UAAU,0BAA0B;EACtL,OAAO,WAAW;GAChB,IAAI;GACJ,qBAAqB,wBAAwB,OAAO;GACpD,OAAO,oBAAoB,WAAW,0BAA0B;GAChE,CAAC,0BAA0B,OAAO,oBAAoB,QAAQ,4BAA4B,KAAK,IAAI,KAAK,IAAI,wBAAwB,oBAAoB,UAAU,0BAA0B;EAC9L;CACF,GAAG,CACD,QACA,0BACF,CAAC;CACD,CAAC,GAAG,aAAa,UAAS,CAAE,WAAW;EACrC,iBAAiB,IAAI;EACrB,KAAK,GAAG,oBAAoB,wBAAuB,CAAE,GAAG;GACtD,aAAa,mBAAmB;GAChC,aAAa,gBAAgB;EAC/B;EACA,OAAO,WAAW;GAChB,iBAAiB,KAAK;GACtB,aAAa,mBAAmB,KAAK;GACrC,aAAa,gBAAgB,KAAK;EACpC;CACF,GAAG,CAAC,CAAC;CACL,IAAI,mBAAmB,WAAW;EAChC,IAAI,aAAa,WAAW,cAAc,SAAS;GACjD,wBAAwB,cAAc,UAAU,aAAa,OAAO;EACtE;CACF;CACA,IAAI,kBAAkB,SAAS,QAAQ;EACrC,aAAa,UAAU;CACzB;CACA,CAAC,GAAG,aAAa,UAAS,CAAE,WAAW;EACrC,aAAa,uBAAuB;CACtC,GAAG,CACD,oBACF,CAAC;CACD,IAAI,gBAAgB,GAAG,kCAAkC,2BAA0B,CAAE;EACnF;EACA;EACA;EACA;EACA;EACA,gBAAgB;CAClB,CAAC;CACD,IAAI,iBAAiC,iBAAC,GAAG,mBAAmB,KAAI,CAAE,YAAY,MAAM;EAClF,UAAU,SAAS,GAAG;GACpB,IAAI,SAAS,KAAK,MAAM,EAAE,YAAY,OAAO,MAAM;GACnD,IAAI,WAAW,cAAc,SAAS;IACpC,cAAc,UAAU;IACxB,iBAAiB;IACjB,IAAI,yBAAyB,GAAG;KAC9B,2BAA2B;IAC7B;GACF;EACF;EACA,UAAU,CACR,UACA,yBAAyB,KAAqB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,YAAY,MAAM;GAC1F,kCAAkC;GAClC,QAAQ;GACR,OAAO;EACT,CAAC,CACH;CACF,CAAC;CACD,IAAI,qBAAqB,kBAAkB,eAAe;EACxD,IAAI,gBAAgB;EACpB,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,eAAe;GAChE,MAAM,GAAG,oBAAoB,YAAW,CAAE,WAAW,GAAG;GACxD,OAAO,CACL,gBACA,GAAG,eACL;GACA,qBAAqB;GACrB;GACA,sBAAsB,CACpB,aACF;GACA,UAAU,SAAS,GAAG;IACpB,gBAAgB,KAAK,KAAK,EAAE,YAAY,OAAO,MAAM,CAAC;IACtD,iBAAiB;GACnB;GACA,UAAU,SAAS,GAAG;IACpB,IAAI,EAAE,MAAM,EAAE,YAAY;IAC1B,oBAAoB,UAAU;IAC9B,IAAI,aAAa,gBAAgB,KAAK,GAAG;KACvC,IAAI,MAAM,aAAa,aAAa;MAClC,IAAI,6BAA6B;MACjC,CAAC,qBAAqB,UAAU,aAAa,QAAQ,uBAAuB,KAAK,IAAI,KAAK,KAAK,8BAA8B,mBAAmB,cAAc,QAAQ,gCAAgC,KAAK,IAAI,KAAK,IAAI,4BAA4B,KAAK,oBAAoB;OAC3Q,GAAG;OACH,GAAG,aAAa;OAChB,UAAU;MACZ,CAAC;KACH;KACA,oBAAoB,UAAU,aAAa;KAC3C,aAAa,IAAI,aAAa;KAC9B,IAAI,wBAAwB,YAAY,aAAa,aAAa;MAChE,wBAAwB,UAAU,aAAa;MAC/C,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS;OAC3D,GAAG;OACH,aAAa;QACX,GAAG,EAAE;QACL,eAAe;SACb,GAAG,EAAE,YAAY;SACjB,GAAG,aAAa;QAClB;OACF;MACF,CAAC;KACH;KACA;IACF;IACA,aAAa,IAAI;IACjB,IAAI,IAAI,GAAG,aAAa,eAAe,CAAC;IACxC,wBAAwB,UAAU;IAClC,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC;GAChE;GACA;GACA,SAAS;GACT,2BAA2B;GAC3B,qBAAqB;GACrB,GAAG;GACH,UAAU;EACZ,CAAC;CACH;CACA,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,mBAAmB,YAAY;EAChF,GAAG;EACH,UAAU,SAAS,GAAG;GACpB,gBAAgB,KAAK,KAAK,EAAE,YAAY,OAAO,MAAM,CAAC;GACtD,iBAAiB;EACnB;EACA,MAAM,GAAG,oBAAoB,YAAW,CAAE,WAAW,GAAG;EACxD,qBAAqB;EACrB,WAAW;EACX;EACA,UAAU,SAAS,GAAG;GACpB,IAAI,EAAE,MAAM,EAAE,YAAY;GAC1B,oBAAoB,UAAU;GAC9B,aAAa,IAAI;GACjB,IAAI,IAAI,GAAG,aAAa,eAAe,CAAC;GACxC,wBAAwB,UAAU;GAClC,aAAa,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC;EAChE;EACA;EACA,GAAG;EACH,GAAG;EACH,OAAO;EACP,UAAU;CACZ,CAAC;AACH,GAAG;CACD,cAAc;CACd,aAAa;AACf,CAAC"}
|
|
@@ -60,32 +60,6 @@ function useKeyboardControllerSheet(options) {
|
|
|
60
60
|
setKeyboardHeight(0);
|
|
61
61
|
}
|
|
62
62
|
}, []);
|
|
63
|
-
(0, import_react.useEffect)(function() {
|
|
64
|
-
if (!enabled || !keyboardControllerEnabled) return;
|
|
65
|
-
var { KeyboardEvents } = getKeyboardControllerState();
|
|
66
|
-
if (!(KeyboardEvents === null || KeyboardEvents === void 0 ? void 0 : KeyboardEvents.addListener)) return;
|
|
67
|
-
var showSub = KeyboardEvents.addListener("keyboardWillShow", function(e) {
|
|
68
|
-
var _e_height;
|
|
69
|
-
var height = (_e_height = e === null || e === void 0 ? void 0 : e.height) !== null && _e_height !== void 0 ? _e_height : 0;
|
|
70
|
-
if (height > 0) {
|
|
71
|
-
setKeyboardHeight(height);
|
|
72
|
-
}
|
|
73
|
-
setIsKeyboardVisible(true);
|
|
74
|
-
});
|
|
75
|
-
var hideSub = KeyboardEvents.addListener("keyboardWillHide", function() {
|
|
76
|
-
if (pauseKeyboardHandler.current) {
|
|
77
|
-
pendingHide.current = true;
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
setIsKeyboardVisible(false);
|
|
81
|
-
setKeyboardHeight(0);
|
|
82
|
-
});
|
|
83
|
-
return function() {
|
|
84
|
-
var _showSub_remove, _hideSub_remove;
|
|
85
|
-
showSub === null || showSub === void 0 ? void 0 : (_showSub_remove = showSub.remove) === null || _showSub_remove === void 0 ? void 0 : _showSub_remove.call(showSub);
|
|
86
|
-
hideSub === null || hideSub === void 0 ? void 0 : (_hideSub_remove = hideSub.remove) === null || _hideSub_remove === void 0 ? void 0 : _hideSub_remove.call(hideSub);
|
|
87
|
-
};
|
|
88
|
-
}, [enabled, keyboardControllerEnabled]);
|
|
89
63
|
(0, import_react.useEffect)(function() {
|
|
90
64
|
if (!enabled) return;
|
|
91
65
|
var showEvent = import_react_native.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
|
|
@@ -106,7 +80,7 @@ function useKeyboardControllerSheet(options) {
|
|
|
106
80
|
showListener.remove();
|
|
107
81
|
hideListener.remove();
|
|
108
82
|
};
|
|
109
|
-
}, [enabled
|
|
83
|
+
}, [enabled]);
|
|
110
84
|
return {
|
|
111
85
|
keyboardControllerEnabled,
|
|
112
86
|
keyboardHeight,
|
|
@@ -60,32 +60,6 @@ function useKeyboardControllerSheet(options) {
|
|
|
60
60
|
setKeyboardHeight(0);
|
|
61
61
|
}
|
|
62
62
|
}, []);
|
|
63
|
-
(0, import_react.useEffect)(function() {
|
|
64
|
-
if (!enabled || !keyboardControllerEnabled) return;
|
|
65
|
-
var { KeyboardEvents } = getKeyboardControllerState();
|
|
66
|
-
if (!(KeyboardEvents === null || KeyboardEvents === void 0 ? void 0 : KeyboardEvents.addListener)) return;
|
|
67
|
-
var showSub = KeyboardEvents.addListener("keyboardWillShow", function(e) {
|
|
68
|
-
var _e_height;
|
|
69
|
-
var height = (_e_height = e === null || e === void 0 ? void 0 : e.height) !== null && _e_height !== void 0 ? _e_height : 0;
|
|
70
|
-
if (height > 0) {
|
|
71
|
-
setKeyboardHeight(height);
|
|
72
|
-
}
|
|
73
|
-
setIsKeyboardVisible(true);
|
|
74
|
-
});
|
|
75
|
-
var hideSub = KeyboardEvents.addListener("keyboardWillHide", function() {
|
|
76
|
-
if (pauseKeyboardHandler.current) {
|
|
77
|
-
pendingHide.current = true;
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
setIsKeyboardVisible(false);
|
|
81
|
-
setKeyboardHeight(0);
|
|
82
|
-
});
|
|
83
|
-
return function() {
|
|
84
|
-
var _showSub_remove, _hideSub_remove;
|
|
85
|
-
showSub === null || showSub === void 0 ? void 0 : (_showSub_remove = showSub.remove) === null || _showSub_remove === void 0 ? void 0 : _showSub_remove.call(showSub);
|
|
86
|
-
hideSub === null || hideSub === void 0 ? void 0 : (_hideSub_remove = hideSub.remove) === null || _hideSub_remove === void 0 ? void 0 : _hideSub_remove.call(hideSub);
|
|
87
|
-
};
|
|
88
|
-
}, [enabled, keyboardControllerEnabled]);
|
|
89
63
|
(0, import_react.useEffect)(function() {
|
|
90
64
|
if (!enabled) return;
|
|
91
65
|
var showEvent = import_react_native.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
|
|
@@ -106,7 +80,7 @@ function useKeyboardControllerSheet(options) {
|
|
|
106
80
|
showListener.remove();
|
|
107
81
|
hideListener.remove();
|
|
108
82
|
};
|
|
109
|
-
}, [enabled
|
|
83
|
+
}, [enabled]);
|
|
110
84
|
return {
|
|
111
85
|
keyboardControllerEnabled,
|
|
112
86
|
keyboardHeight,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardControllerSheet.native.js","names":[],"sources":["cjs/useKeyboardControllerSheet.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useKeyboardControllerSheet_native_exports = {};\n__export(useKeyboardControllerSheet_native_exports, {\n useKeyboardControllerSheet: () => useKeyboardControllerSheet\n});\nmodule.exports = __toCommonJS(useKeyboardControllerSheet_native_exports);\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar isKeyboardControllerEnabled = function() {\n return false;\n};\nvar getKeyboardControllerState = function() {\n return {};\n};\ntry {\n var nativeModule = require(\"@tamagui/native\");\n isKeyboardControllerEnabled = nativeModule.isKeyboardControllerEnabled;\n getKeyboardControllerState = nativeModule.getKeyboardControllerState;\n} catch (e) {\n}\nfunction useKeyboardControllerSheet(options) {\n var { enabled } = options;\n var [keyboardHeight, setKeyboardHeight] = (0, import_react.useState)(0);\n var [isKeyboardVisible, setIsKeyboardVisible] = (0, import_react.useState)(false);\n var keyboardControllerEnabled = isKeyboardControllerEnabled();\n var pauseKeyboardHandler = (0, import_react.useRef)(false);\n var pendingHide = (0, import_react.useRef)(false);\n var dismissKeyboard = (0, import_react.useCallback)(\n function() {\n import_react_native.Keyboard.dismiss();\n if (keyboardControllerEnabled) {\n try {\n var _KeyboardController_dismiss;\n var { KeyboardController } = getKeyboardControllerState();\n KeyboardController === null || KeyboardController === void 0 ? void 0 : (_KeyboardController_dismiss = KeyboardController.dismiss) === null || _KeyboardController_dismiss === void 0 ? void 0 : _KeyboardController_dismiss.call(KeyboardController);\n } catch (e) {\n }\n }\n },\n // ignore errors from keyboard-controller\n [\n keyboardControllerEnabled\n ]\n );\n var flushPendingHide = (0, import_react.useCallback)(function() {\n if (pendingHide.current) {\n pendingHide.current = false;\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n }\n }, []);\n (0, import_react.useEffect)(function() {\n if (!enabled
|
|
1
|
+
{"version":3,"file":"useKeyboardControllerSheet.native.js","names":[],"sources":["cjs/useKeyboardControllerSheet.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useKeyboardControllerSheet_native_exports = {};\n__export(useKeyboardControllerSheet_native_exports, {\n useKeyboardControllerSheet: () => useKeyboardControllerSheet\n});\nmodule.exports = __toCommonJS(useKeyboardControllerSheet_native_exports);\nvar import_react = require(\"react\");\nvar import_react_native = require(\"react-native\");\nvar isKeyboardControllerEnabled = function() {\n return false;\n};\nvar getKeyboardControllerState = function() {\n return {};\n};\ntry {\n var nativeModule = require(\"@tamagui/native\");\n isKeyboardControllerEnabled = nativeModule.isKeyboardControllerEnabled;\n getKeyboardControllerState = nativeModule.getKeyboardControllerState;\n} catch (e) {\n}\nfunction useKeyboardControllerSheet(options) {\n var { enabled } = options;\n var [keyboardHeight, setKeyboardHeight] = (0, import_react.useState)(0);\n var [isKeyboardVisible, setIsKeyboardVisible] = (0, import_react.useState)(false);\n var keyboardControllerEnabled = isKeyboardControllerEnabled();\n var pauseKeyboardHandler = (0, import_react.useRef)(false);\n var pendingHide = (0, import_react.useRef)(false);\n var dismissKeyboard = (0, import_react.useCallback)(\n function() {\n import_react_native.Keyboard.dismiss();\n if (keyboardControllerEnabled) {\n try {\n var _KeyboardController_dismiss;\n var { KeyboardController } = getKeyboardControllerState();\n KeyboardController === null || KeyboardController === void 0 ? void 0 : (_KeyboardController_dismiss = KeyboardController.dismiss) === null || _KeyboardController_dismiss === void 0 ? void 0 : _KeyboardController_dismiss.call(KeyboardController);\n } catch (e) {\n }\n }\n },\n // ignore errors from keyboard-controller\n [\n keyboardControllerEnabled\n ]\n );\n var flushPendingHide = (0, import_react.useCallback)(function() {\n if (pendingHide.current) {\n pendingHide.current = false;\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n }\n }, []);\n (0, import_react.useEffect)(function() {\n if (!enabled) return;\n var showEvent = import_react_native.Platform.OS === \"ios\" ? \"keyboardWillShow\" : \"keyboardDidShow\";\n var hideEvent = import_react_native.Platform.OS === \"ios\" ? \"keyboardWillHide\" : \"keyboardDidHide\";\n var showListener = import_react_native.Keyboard.addListener(showEvent, function(e) {\n setKeyboardHeight(e.endCoordinates.height);\n setIsKeyboardVisible(true);\n });\n var hideListener = import_react_native.Keyboard.addListener(hideEvent, function() {\n if (pauseKeyboardHandler.current) {\n pendingHide.current = true;\n return;\n }\n setIsKeyboardVisible(false);\n setKeyboardHeight(0);\n });\n return function() {\n showListener.remove();\n hideListener.remove();\n };\n }, [\n enabled\n ]);\n return {\n keyboardControllerEnabled,\n keyboardHeight,\n isKeyboardVisible,\n dismissKeyboard,\n pauseKeyboardHandler,\n flushPendingHide\n };\n}\n//# sourceMappingURL=useKeyboardControllerSheet.native.js.map\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { composeRefs } from "@tamagui/compose-refs";
|
|
2
|
-
import { View, createStyledHOC, isWeb } from "@tamagui/core";
|
|
2
|
+
import { View, createStyledHOC, isWeb, style } from "@tamagui/core";
|
|
3
3
|
import { ScrollView } from "@tamagui/scroll-view";
|
|
4
4
|
import { useControllableState } from "@tamagui/use-controllable-state";
|
|
5
5
|
import React, { useEffect, useRef, useState } from "react";
|
|
@@ -11,7 +11,8 @@ import { MIN_KEYBOARD_HEIGHT, getStableLayoutViewportHeight, getWebKeyboardBotto
|
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
|
|
13
13
|
const SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
|
|
14
|
-
const
|
|
14
|
+
const sheetContentStyle = style({ minHeight: "100%" });
|
|
15
|
+
const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: style2, ...props }, ref) => {
|
|
15
16
|
const context = useSheetContext(scope);
|
|
16
17
|
const gestureContext = useGestureSheetContext();
|
|
17
18
|
const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
|
|
@@ -26,21 +27,17 @@ const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll
|
|
|
26
27
|
const parentHeight = useRef(0);
|
|
27
28
|
const contentHeight = useRef(0);
|
|
28
29
|
const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
|
|
29
|
-
const
|
|
30
|
+
const fitSizingProps = hasFit ? {
|
|
30
31
|
flex: void 0,
|
|
31
32
|
height: void 0,
|
|
32
33
|
maxHeight: screenSize || void 0
|
|
33
34
|
} : { flex: 1 };
|
|
34
|
-
const contentContainerStyle = hasFit ? void 0 :
|
|
35
|
+
const contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
|
|
35
36
|
const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
|
|
36
37
|
height: frozenFrameHeight,
|
|
37
38
|
maxHeight: frozenFrameHeight
|
|
38
39
|
} : null;
|
|
39
|
-
const scrollViewStyle = [
|
|
40
|
-
fitSizingStyle,
|
|
41
|
-
...Array.isArray(style) ? style : [style],
|
|
42
|
-
keyboardFrozenOverride
|
|
43
|
-
];
|
|
40
|
+
const scrollViewStyle = [...Array.isArray(style2) ? style2 : [style2], keyboardFrozenOverride];
|
|
44
41
|
const panGestureRef = gestureContext?.panGestureRef;
|
|
45
42
|
const { ScrollView: RNGHScrollView } = getGestureHandlerState();
|
|
46
43
|
const useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;
|
|
@@ -212,7 +209,7 @@ const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll
|
|
|
212
209
|
const RNGHComponent = RNGHScrollView;
|
|
213
210
|
return /* @__PURE__ */ jsx(RNGHComponent, {
|
|
214
211
|
ref: composeRefs(scrollRef, ref),
|
|
215
|
-
style: scrollViewStyle,
|
|
212
|
+
style: [fitSizingProps, ...scrollViewStyle],
|
|
216
213
|
scrollEventThrottle: 1,
|
|
217
214
|
scrollEnabled,
|
|
218
215
|
simultaneousHandlers: [panGestureRef],
|
|
@@ -262,6 +259,7 @@ const SheetScrollView = createStyledHOC(ScrollView, ({ scope, children, onScroll
|
|
|
262
259
|
});
|
|
263
260
|
}
|
|
264
261
|
return /* @__PURE__ */ jsx(ScrollView, {
|
|
262
|
+
...fitSizingProps,
|
|
265
263
|
onLayout: (e) => {
|
|
266
264
|
recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
|
|
267
265
|
updateScrollable();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetScrollView.js","names":[],"sources":["esm/SheetScrollView.js"],"sourcesContent":["import { composeRefs } from \"@tamagui/compose-refs\";\nimport { createStyledHOC, isWeb, View } from \"@tamagui/core\";\nimport { ScrollView } from \"@tamagui/scroll-view\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useGestureSheetContext } from \"./GestureSheetContext\";\nimport { getGestureHandlerState, isGestureHandlerEnabled } from \"./gestureState\";\nimport { useSheetContext } from \"./SheetContext\";\nimport { useSheetScrollViewGestures } from \"./useSheetScrollViewGestures\";\nimport {\n getStableLayoutViewportHeight,\n getWebKeyboardBottomInset,\n getWebKeyboardResizeHeight,\n isEditableElement,\n MIN_KEYBOARD_HEIGHT\n} from \"./webViewport\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nconst SheetScrollView = createStyledHOC(\n ScrollView,\n ({\n scope,\n children,\n onScroll,\n scrollEnabled: scrollEnabledProp,\n style,\n ...props\n }, ref) => {\n const context = useSheetContext(scope);\n const gestureContext = useGestureSheetContext();\n const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n const keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n const isKeyboardVisible = context.isKeyboardVisible === true || isWeb && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT;\n const [scrollEnabled] = useControllableState({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n const scrollRef = React.useRef(null);\n const [hasScrollableContent, setHasScrollableContent] = useState(true);\n const parentHeight = useRef(0);\n const contentHeight = useRef(0);\n const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n const fitSizingStyle = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : { flex: 1 };\n const contentContainerStyle = hasFit ? void 0 : { minHeight: \"100%\" };\n const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? { height: frozenFrameHeight, maxHeight: frozenFrameHeight } : null;\n const scrollViewStyle = [\n fitSizingStyle,\n ...Array.isArray(style) ? style : [style],\n keyboardFrozenOverride\n ];\n const panGestureRef = gestureContext?.panGestureRef;\n const { ScrollView: RNGHScrollView } = getGestureHandlerState();\n const useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;\n const currentScrollOffset = useRef(0);\n const lastEmittedScrollOffset = useRef(0);\n const lockedScrollY = useRef(0);\n const focusedInputScrollFrame = useRef(0);\n const setScrollEnabled = (next, lockTo) => {\n if (!next) {\n const lockY = lockTo ?? scrollBridge.scrollLockY ?? currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n scrollRef.current?.scrollTo?.({ x: 0, y: lockY, animated: false });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n const forceScrollTo = (y) => {\n scrollRef.current?.scrollTo?.({ x: 0, y, animated: false });\n currentScrollOffset.current = y;\n };\n const emitManualScroll = React.useCallback(\n (node, y) => {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n },\n [onScroll, scrollBridge]\n );\n const scrollFocusedInputClearOfKeyboard = React.useCallback(() => {\n if (!isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n const node = scrollRef.current?.getScrollableNode();\n const active = document.activeElement;\n if (!node || !active || !isEditableElement(active) || !node.contains(active)) {\n return;\n }\n const keyboardHeight = Math.max(keyboardOccludedHeight, getWebKeyboardBottomInset());\n if (keyboardHeight <= 0) return;\n const activeRect = active.getBoundingClientRect();\n const nodeRect = node.getBoundingClientRect();\n const margin = 12;\n const keyboardTop = getStableLayoutViewportHeight() - keyboardHeight;\n const visibleTop = nodeRect.top + margin;\n const visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n let nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n const maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [hasFit, isKeyboardVisible, keyboardOccludedHeight, scrollBridge]);\n const scheduleFocusedInputScroll = React.useCallback(() => {\n if (!isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(() => {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(\n scrollFocusedInputClearOfKeyboard\n );\n });\n }, [hasFit, scrollFocusedInputClearOfKeyboard]);\n useEffect(() => {\n if (!isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return () => {\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [hasFit, scheduleFocusedInputScroll]);\n useEffect(() => {\n setHasScrollView(true);\n if (isGestureHandlerEnabled()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return () => {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n const updateScrollable = () => {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n const recordFitHeight = (height) => {\n parentHeight.current = height;\n };\n useEffect(() => {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [hasScrollableContent]);\n const gestureProps = useSheetScrollViewGestures({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n const contentWrapper = /* @__PURE__ */ jsxs(\n View,\n {\n onLayout: (e) => {\n const height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ jsx(\n View,\n {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n }\n )\n ]\n }\n );\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n const RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ jsx(\n RNGHComponent,\n {\n ref: composeRefs(scrollRef, ref),\n style: scrollViewStyle,\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [panGestureRef],\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n scrollRef.current?.scrollTo?.({\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll?.({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n }\n );\n }\n return /* @__PURE__ */ jsx(\n ScrollView,\n {\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: composeRefs(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n }\n );\n },\n {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n }\n);\nexport {\n SheetScrollView\n};\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SheetScrollView.js","names":[],"sources":["esm/SheetScrollView.js"],"sourcesContent":["import { composeRefs } from \"@tamagui/compose-refs\";\nimport { createStyledHOC, isWeb, style, View } from \"@tamagui/core\";\nimport { ScrollView } from \"@tamagui/scroll-view\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useGestureSheetContext } from \"./GestureSheetContext\";\nimport { getGestureHandlerState, isGestureHandlerEnabled } from \"./gestureState\";\nimport { useSheetContext } from \"./SheetContext\";\nimport { useSheetScrollViewGestures } from \"./useSheetScrollViewGestures\";\nimport {\n getStableLayoutViewportHeight,\n getWebKeyboardBottomInset,\n getWebKeyboardResizeHeight,\n isEditableElement,\n MIN_KEYBOARD_HEIGHT\n} from \"./webViewport\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst SHEET_SCROLL_VIEW_NAME = \"SheetScrollView\";\nconst sheetContentStyle = style({ minHeight: \"100%\" });\nconst SheetScrollView = createStyledHOC(\n ScrollView,\n ({\n scope,\n children,\n onScroll,\n scrollEnabled: scrollEnabledProp,\n style: style2,\n ...props\n }, ref) => {\n const context = useSheetContext(scope);\n const gestureContext = useGestureSheetContext();\n const { scrollBridge, setHasScrollView, hasFit, screenSize } = context;\n const keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);\n const isKeyboardVisible = context.isKeyboardVisible === true || isWeb && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT;\n const [scrollEnabled] = useControllableState({\n prop: scrollEnabledProp,\n defaultProp: true\n });\n const scrollRef = React.useRef(null);\n const [hasScrollableContent, setHasScrollableContent] = useState(true);\n const parentHeight = useRef(0);\n const contentHeight = useRef(0);\n const frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);\n const fitSizingProps = hasFit ? {\n flex: void 0,\n height: void 0,\n maxHeight: screenSize || void 0\n } : { flex: 1 };\n const contentContainerStyle = hasFit ? void 0 : sheetContentStyle;\n const keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? { height: frozenFrameHeight, maxHeight: frozenFrameHeight } : null;\n const scrollViewStyle = [\n ...Array.isArray(style2) ? style2 : [style2],\n keyboardFrozenOverride\n ];\n const panGestureRef = gestureContext?.panGestureRef;\n const { ScrollView: RNGHScrollView } = getGestureHandlerState();\n const useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;\n const currentScrollOffset = useRef(0);\n const lastEmittedScrollOffset = useRef(0);\n const lockedScrollY = useRef(0);\n const focusedInputScrollFrame = useRef(0);\n const setScrollEnabled = (next, lockTo) => {\n if (!next) {\n const lockY = lockTo ?? scrollBridge.scrollLockY ?? currentScrollOffset.current;\n if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {\n return;\n }\n scrollBridge.enabled = false;\n lockedScrollY.current = lockY;\n scrollBridge.scrollLockY = lockY;\n if (currentScrollOffset.current !== lockY) {\n scrollRef.current?.scrollTo?.({ x: 0, y: lockY, animated: false });\n currentScrollOffset.current = lockY;\n }\n } else {\n if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {\n return;\n }\n scrollBridge.enabled = true;\n lockedScrollY.current = currentScrollOffset.current;\n scrollBridge.scrollLockY = void 0;\n }\n };\n const forceScrollTo = (y) => {\n scrollRef.current?.scrollTo?.({ x: 0, y, animated: false });\n currentScrollOffset.current = y;\n };\n const emitManualScroll = React.useCallback(\n (node, y) => {\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.({\n nativeEvent: {\n contentOffset: {\n x: node.scrollLeft,\n y\n },\n contentSize: {\n height: node.scrollHeight,\n width: node.scrollWidth\n },\n layoutMeasurement: {\n height: node.offsetHeight,\n width: node.offsetWidth\n }\n },\n timeStamp: Date.now()\n });\n },\n [onScroll, scrollBridge]\n );\n const scrollFocusedInputClearOfKeyboard = React.useCallback(() => {\n if (!isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {\n return;\n }\n const node = scrollRef.current?.getScrollableNode();\n const active = document.activeElement;\n if (!node || !active || !isEditableElement(active) || !node.contains(active)) {\n return;\n }\n const keyboardHeight = Math.max(keyboardOccludedHeight, getWebKeyboardBottomInset());\n if (keyboardHeight <= 0) return;\n const activeRect = active.getBoundingClientRect();\n const nodeRect = node.getBoundingClientRect();\n const margin = 12;\n const keyboardTop = getStableLayoutViewportHeight() - keyboardHeight;\n const visibleTop = nodeRect.top + margin;\n const visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;\n let nextScrollTop = node.scrollTop;\n if (activeRect.bottom > visibleBottom) {\n nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);\n } else if (activeRect.top < visibleTop) {\n nextScrollTop -= Math.ceil(visibleTop - activeRect.top);\n }\n const maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);\n nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));\n if (nextScrollTop === node.scrollTop) return;\n node.scrollTop = nextScrollTop;\n currentScrollOffset.current = nextScrollTop;\n scrollBridge.y = nextScrollTop;\n if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;\n }, [hasFit, isKeyboardVisible, keyboardOccludedHeight, scrollBridge]);\n const scheduleFocusedInputScroll = React.useCallback(() => {\n if (!isWeb || !hasFit) return;\n cancelAnimationFrame(focusedInputScrollFrame.current);\n focusedInputScrollFrame.current = requestAnimationFrame(() => {\n scrollFocusedInputClearOfKeyboard();\n focusedInputScrollFrame.current = requestAnimationFrame(\n scrollFocusedInputClearOfKeyboard\n );\n });\n }, [hasFit, scrollFocusedInputClearOfKeyboard]);\n useEffect(() => {\n if (!isWeb || !hasFit) return;\n scheduleFocusedInputScroll();\n window.addEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.addEventListener(\"resize\", scheduleFocusedInputScroll);\n return () => {\n cancelAnimationFrame(focusedInputScrollFrame.current);\n window.removeEventListener(\"focusin\", scheduleFocusedInputScroll);\n window.visualViewport?.removeEventListener(\"resize\", scheduleFocusedInputScroll);\n };\n }, [hasFit, scheduleFocusedInputScroll]);\n useEffect(() => {\n setHasScrollView(true);\n if (isGestureHandlerEnabled()) {\n scrollBridge.setScrollEnabled = setScrollEnabled;\n scrollBridge.forceScrollTo = forceScrollTo;\n }\n return () => {\n setHasScrollView(false);\n scrollBridge.setScrollEnabled = void 0;\n scrollBridge.forceScrollTo = void 0;\n };\n }, []);\n const updateScrollable = () => {\n if (parentHeight.current && contentHeight.current) {\n setHasScrollableContent(contentHeight.current > parentHeight.current);\n }\n };\n const recordFitHeight = (height) => {\n parentHeight.current = height;\n };\n useEffect(() => {\n scrollBridge.hasScrollableContent = hasScrollableContent;\n }, [hasScrollableContent]);\n const gestureProps = useSheetScrollViewGestures({\n scrollRef,\n scrollBridge,\n hasScrollableContent,\n scrollEnabled,\n setScrollEnabled,\n onManualScroll: emitManualScroll\n });\n const contentWrapper = /* @__PURE__ */ jsxs(\n View,\n {\n onLayout: (e) => {\n const height = Math.floor(e.nativeEvent.layout.height);\n if (height !== contentHeight.current) {\n contentHeight.current = height;\n updateScrollable();\n if (keyboardOccludedHeight > 0) {\n scheduleFocusedInputScroll();\n }\n }\n },\n children: [\n children,\n keyboardOccludedHeight > 0 && /* @__PURE__ */ jsx(\n View,\n {\n \"data-sheet-keyboard-scroll-pad\": true,\n height: keyboardOccludedHeight,\n width: \"100%\"\n }\n )\n ]\n }\n );\n if (useRNGHScrollView && RNGHScrollView && panGestureRef) {\n const RNGHComponent = RNGHScrollView;\n return /* @__PURE__ */ jsx(\n RNGHComponent,\n {\n ref: composeRefs(scrollRef, ref),\n style: [fitSizingProps, ...scrollViewStyle],\n scrollEventThrottle: 1,\n scrollEnabled,\n simultaneousHandlers: [panGestureRef],\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n if (scrollBridge.scrollLockY !== void 0) {\n if (y !== scrollBridge.scrollLockY) {\n scrollRef.current?.scrollTo?.({\n x: 0,\n y: scrollBridge.scrollLockY,\n animated: false\n });\n }\n currentScrollOffset.current = scrollBridge.scrollLockY;\n scrollBridge.y = scrollBridge.scrollLockY;\n if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {\n lastEmittedScrollOffset.current = scrollBridge.scrollLockY;\n onScroll?.({\n ...e,\n nativeEvent: {\n ...e.nativeEvent,\n contentOffset: {\n ...e.nativeEvent.contentOffset,\n y: scrollBridge.scrollLockY\n }\n }\n });\n }\n return;\n }\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n bounces: false,\n keyboardShouldPersistTaps: \"always\",\n keyboardDismissMode: \"none\",\n ...props,\n children: contentWrapper\n }\n );\n }\n return /* @__PURE__ */ jsx(\n ScrollView,\n {\n ...fitSizingProps,\n onLayout: (e) => {\n recordFitHeight(Math.ceil(e.nativeEvent.layout.height));\n updateScrollable();\n },\n ref: composeRefs(scrollRef, ref),\n scrollEventThrottle: 1,\n className: \"_ovs-contain\",\n scrollEnabled,\n onScroll: (e) => {\n const { y } = e.nativeEvent.contentOffset;\n currentScrollOffset.current = y;\n scrollBridge.y = y;\n if (y > 0) scrollBridge.scrollStartY = -1;\n lastEmittedScrollOffset.current = y;\n onScroll?.(e);\n },\n contentContainerStyle,\n ...gestureProps,\n ...props,\n style: scrollViewStyle,\n children: contentWrapper\n }\n );\n },\n {\n disableTheme: true,\n displayName: SHEET_SCROLL_VIEW_NAME\n }\n);\nexport {\n SheetScrollView\n};\n//# sourceMappingURL=SheetScrollView.js.map\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,yBAAyB;AAC/B,MAAM,oBAAoB,MAAM,EAAE,WAAW,OAAO,CAAC;AACrD,MAAM,kBAAkB,gBACtB,aACC,EACC,OACA,UACA,UACA,eAAe,mBACf,OAAO,QACP,GAAG,SACF,QAAQ;CACT,MAAM,UAAU,gBAAgB,KAAK;CACrC,MAAM,iBAAiB,uBAAuB;CAC9C,MAAM,EAAE,cAAc,kBAAkB,QAAQ,eAAe;CAC/D,MAAM,yBAAyB,KAAK,IAAI,GAAG,QAAQ,0BAA0B,CAAC;CAC9E,MAAM,oBAAoB,QAAQ,sBAAsB,QAAQ,SAAS,2BAA2B,KAAK;CACzG,MAAM,CAAC,iBAAiB,qBAAqB;EAC3C,MAAM;EACN,aAAa;CACf,CAAC;CACD,MAAM,YAAY,MAAM,OAAO,IAAI;CACnC,MAAM,CAAC,sBAAsB,2BAA2B,SAAS,IAAI;CACrE,MAAM,eAAe,OAAO,CAAC;CAC7B,MAAM,gBAAgB,OAAO,CAAC;CAC9B,MAAM,oBAAoB,KAAK,IAAI,GAAG,QAAQ,6BAA6B,CAAC;CAC5E,MAAM,iBAAiB,SAAS;EAC9B,MAAM,KAAK;EACX,QAAQ,KAAK;EACb,WAAW,cAAc,KAAK;CAChC,IAAI,EAAE,MAAM,EAAE;CACd,MAAM,wBAAwB,SAAS,KAAK,IAAI;CAChD,MAAM,yBAAyB,UAAU,qBAAqB,oBAAoB,IAAI;EAAE,QAAQ;EAAmB,WAAW;CAAkB,IAAI;CACpJ,MAAM,kBAAkB,CACtB,GAAG,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM,GAC3C,sBACF;CACA,MAAM,gBAAgB,gBAAgB;CACtC,MAAM,EAAE,YAAY,mBAAmB,uBAAuB;CAC9D,MAAM,oBAAoB,wBAAwB,KAAK,kBAAkB;CACzE,MAAM,sBAAsB,OAAO,CAAC;CACpC,MAAM,0BAA0B,OAAO,CAAC;CACxC,MAAM,gBAAgB,OAAO,CAAC;CAC9B,MAAM,0BAA0B,OAAO,CAAC;CACxC,MAAM,oBAAoB,MAAM,WAAW;EACzC,IAAI,CAAC,MAAM;GACT,MAAM,QAAQ,UAAU,aAAa,eAAe,oBAAoB;GACxE,IAAI,aAAa,YAAY,SAAS,aAAa,gBAAgB,OAAO;IACxE;GACF;GACA,aAAa,UAAU;GACvB,cAAc,UAAU;GACxB,aAAa,cAAc;GAC3B,IAAI,oBAAoB,YAAY,OAAO;IACzC,UAAU,SAAS,WAAW;KAAE,GAAG;KAAG,GAAG;KAAO,UAAU;IAAM,CAAC;IACjE,oBAAoB,UAAU;GAChC;EACF,OAAO;GACL,IAAI,aAAa,YAAY,QAAQ,aAAa,gBAAgB,KAAK,GAAG;IACxE;GACF;GACA,aAAa,UAAU;GACvB,cAAc,UAAU,oBAAoB;GAC5C,aAAa,cAAc,KAAK;EAClC;CACF;CACA,MAAM,iBAAiB,MAAM;EAC3B,UAAU,SAAS,WAAW;GAAE,GAAG;GAAG;GAAG,UAAU;EAAM,CAAC;EAC1D,oBAAoB,UAAU;CAChC;CACA,MAAM,mBAAmB,MAAM,aAC5B,MAAM,MAAM;EACX,oBAAoB,UAAU;EAC9B,aAAa,IAAI;EACjB,IAAI,IAAI,GAAG,aAAa,eAAe,CAAC;EACxC,wBAAwB,UAAU;EAClC,WAAW;GACT,aAAa;IACX,eAAe;KACb,GAAG,KAAK;KACR;IACF;IACA,aAAa;KACX,QAAQ,KAAK;KACb,OAAO,KAAK;IACd;IACA,mBAAmB;KACjB,QAAQ,KAAK;KACb,OAAO,KAAK;IACd;GACF;GACA,WAAW,KAAK,IAAI;EACtB,CAAC;CACH,GACA,CAAC,UAAU,YAAY,CACzB;CACA,MAAM,oCAAoC,MAAM,kBAAkB;EAChE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,qBAAqB,0BAA0B,GAAG;GAC1E;EACF;EACA,MAAM,OAAO,UAAU,SAAS,kBAAkB;EAClD,MAAM,SAAS,SAAS;EACxB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,MAAM,KAAK,CAAC,KAAK,SAAS,MAAM,GAAG;GAC5E;EACF;EACA,MAAM,iBAAiB,KAAK,IAAI,wBAAwB,0BAA0B,CAAC;EACnF,IAAI,kBAAkB,GAAG;EACzB,MAAM,aAAa,OAAO,sBAAsB;EAChD,MAAM,WAAW,KAAK,sBAAsB;EAC5C,MAAM,SAAS;EACf,MAAM,cAAc,8BAA8B,IAAI;EACtD,MAAM,aAAa,SAAS,MAAM;EAClC,MAAM,gBAAgB,KAAK,IAAI,SAAS,QAAQ,WAAW,IAAI;EAC/D,IAAI,gBAAgB,KAAK;EACzB,IAAI,WAAW,SAAS,eAAe;GACrC,iBAAiB,KAAK,KAAK,WAAW,SAAS,aAAa;EAC9D,OAAO,IAAI,WAAW,MAAM,YAAY;GACtC,iBAAiB,KAAK,KAAK,aAAa,WAAW,GAAG;EACxD;EACA,MAAM,eAAe,KAAK,IAAI,GAAG,KAAK,eAAe,KAAK,YAAY;EACtE,gBAAgB,KAAK,IAAI,GAAG,KAAK,IAAI,cAAc,aAAa,CAAC;EACjE,IAAI,kBAAkB,KAAK,WAAW;EACtC,KAAK,YAAY;EACjB,oBAAoB,UAAU;EAC9B,aAAa,IAAI;EACjB,IAAI,gBAAgB,GAAG,aAAa,eAAe,CAAC;CACtD,GAAG;EAAC;EAAQ;EAAmB;EAAwB;CAAY,CAAC;CACpE,MAAM,6BAA6B,MAAM,kBAAkB;EACzD,IAAI,CAAC,SAAS,CAAC,QAAQ;EACvB,qBAAqB,wBAAwB,OAAO;EACpD,wBAAwB,UAAU,4BAA4B;GAC5D,kCAAkC;GAClC,wBAAwB,UAAU,sBAChC,iCACF;EACF,CAAC;CACH,GAAG,CAAC,QAAQ,iCAAiC,CAAC;CAC9C,gBAAgB;EACd,IAAI,CAAC,SAAS,CAAC,QAAQ;EACvB,2BAA2B;EAC3B,OAAO,iBAAiB,WAAW,0BAA0B;EAC7D,OAAO,gBAAgB,iBAAiB,UAAU,0BAA0B;EAC5E,aAAa;GACX,qBAAqB,wBAAwB,OAAO;GACpD,OAAO,oBAAoB,WAAW,0BAA0B;GAChE,OAAO,gBAAgB,oBAAoB,UAAU,0BAA0B;EACjF;CACF,GAAG,CAAC,QAAQ,0BAA0B,CAAC;CACvC,gBAAgB;EACd,iBAAiB,IAAI;EACrB,IAAI,wBAAwB,GAAG;GAC7B,aAAa,mBAAmB;GAChC,aAAa,gBAAgB;EAC/B;EACA,aAAa;GACX,iBAAiB,KAAK;GACtB,aAAa,mBAAmB,KAAK;GACrC,aAAa,gBAAgB,KAAK;EACpC;CACF,GAAG,CAAC,CAAC;CACL,MAAM,yBAAyB;EAC7B,IAAI,aAAa,WAAW,cAAc,SAAS;GACjD,wBAAwB,cAAc,UAAU,aAAa,OAAO;EACtE;CACF;CACA,MAAM,mBAAmB,WAAW;EAClC,aAAa,UAAU;CACzB;CACA,gBAAgB;EACd,aAAa,uBAAuB;CACtC,GAAG,CAAC,oBAAoB,CAAC;CACzB,MAAM,eAAe,2BAA2B;EAC9C;EACA;EACA;EACA;EACA;EACA,gBAAgB;CAClB,CAAC;CACD,MAAM,iBAAiC,qBACrC,MACA;EACE,WAAW,MAAM;GACf,MAAM,SAAS,KAAK,MAAM,EAAE,YAAY,OAAO,MAAM;GACrD,IAAI,WAAW,cAAc,SAAS;IACpC,cAAc,UAAU;IACxB,iBAAiB;IACjB,IAAI,yBAAyB,GAAG;KAC9B,2BAA2B;IAC7B;GACF;EACF;EACA,UAAU,CACR,UACA,yBAAyB,KAAqB,oBAC5C,MACA;GACE,kCAAkC;GAClC,QAAQ;GACR,OAAO;EACT,CACF,CACF;CACF,CACF;CACA,IAAI,qBAAqB,kBAAkB,eAAe;EACxD,MAAM,gBAAgB;EACtB,OAAuB,oBACrB,eACA;GACE,KAAK,YAAY,WAAW,GAAG;GAC/B,OAAO,CAAC,gBAAgB,GAAG,eAAe;GAC1C,qBAAqB;GACrB;GACA,sBAAsB,CAAC,aAAa;GACpC,WAAW,MAAM;IACf,gBAAgB,KAAK,KAAK,EAAE,YAAY,OAAO,MAAM,CAAC;IACtD,iBAAiB;GACnB;GACA,WAAW,MAAM;IACf,MAAM,EAAE,MAAM,EAAE,YAAY;IAC5B,oBAAoB,UAAU;IAC9B,IAAI,aAAa,gBAAgB,KAAK,GAAG;KACvC,IAAI,MAAM,aAAa,aAAa;MAClC,UAAU,SAAS,WAAW;OAC5B,GAAG;OACH,GAAG,aAAa;OAChB,UAAU;MACZ,CAAC;KACH;KACA,oBAAoB,UAAU,aAAa;KAC3C,aAAa,IAAI,aAAa;KAC9B,IAAI,wBAAwB,YAAY,aAAa,aAAa;MAChE,wBAAwB,UAAU,aAAa;MAC/C,WAAW;OACT,GAAG;OACH,aAAa;QACX,GAAG,EAAE;QACL,eAAe;SACb,GAAG,EAAE,YAAY;SACjB,GAAG,aAAa;QAClB;OACF;MACF,CAAC;KACH;KACA;IACF;IACA,aAAa,IAAI;IACjB,IAAI,IAAI,GAAG,aAAa,eAAe,CAAC;IACxC,wBAAwB,UAAU;IAClC,WAAW,CAAC;GACd;GACA;GACA,SAAS;GACT,2BAA2B;GAC3B,qBAAqB;GACrB,GAAG;GACH,UAAU;EACZ,CACF;CACF;CACA,OAAuB,oBACrB,YACA;EACE,GAAG;EACH,WAAW,MAAM;GACf,gBAAgB,KAAK,KAAK,EAAE,YAAY,OAAO,MAAM,CAAC;GACtD,iBAAiB;EACnB;EACA,KAAK,YAAY,WAAW,GAAG;EAC/B,qBAAqB;EACrB,WAAW;EACX;EACA,WAAW,MAAM;GACf,MAAM,EAAE,MAAM,EAAE,YAAY;GAC5B,oBAAoB,UAAU;GAC9B,aAAa,IAAI;GACjB,IAAI,IAAI,GAAG,aAAa,eAAe,CAAC;GACxC,wBAAwB,UAAU;GAClC,WAAW,CAAC;EACd;EACA;EACA,GAAG;EACH,GAAG;EACH,OAAO;EACP,UAAU;CACZ,CACF;AACF,GACA;CACE,cAAc;CACd,aAAa;AACf,CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { composeRefs } from "@tamagui/compose-refs";
|
|
3
|
-
import { View, createStyledHOC, isWeb } from "@tamagui/core";
|
|
3
|
+
import { View, createStyledHOC, isWeb, style } from "@tamagui/core";
|
|
4
4
|
import { ScrollView } from "@tamagui/scroll-view";
|
|
5
5
|
import { useControllableState } from "@tamagui/use-controllable-state";
|
|
6
6
|
import React, { useEffect, useRef, useState } from "react";
|
|
@@ -11,8 +11,9 @@ import { useSheetScrollViewGestures } from "./useSheetScrollViewGestures.native.
|
|
|
11
11
|
import { MIN_KEYBOARD_HEIGHT, getStableLayoutViewportHeight, getWebKeyboardBottomInset, getWebKeyboardResizeHeight, isEditableElement } from "./webViewport.native.js";
|
|
12
12
|
|
|
13
13
|
var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
|
|
14
|
+
var sheetContentStyle = style({ minHeight: "100%" });
|
|
14
15
|
var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
|
|
15
|
-
var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style, ...props } = param;
|
|
16
|
+
var { scope, children, onScroll, scrollEnabled: scrollEnabledProp, style: _$style, ...props } = param;
|
|
16
17
|
var context = useSheetContext(scope);
|
|
17
18
|
var gestureContext = useGestureSheetContext();
|
|
18
19
|
var { scrollBridge, setHasScrollView, hasFit, screenSize } = context;
|
|
@@ -27,21 +28,17 @@ var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
|
|
|
27
28
|
var parentHeight = useRef(0);
|
|
28
29
|
var contentHeight = useRef(0);
|
|
29
30
|
var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
|
|
30
|
-
var
|
|
31
|
+
var fitSizingProps = hasFit ? {
|
|
31
32
|
flex: void 0,
|
|
32
33
|
height: void 0,
|
|
33
34
|
maxHeight: screenSize || void 0
|
|
34
35
|
} : { flex: 1 };
|
|
35
|
-
var contentContainerStyle = hasFit ? void 0 :
|
|
36
|
+
var contentContainerStyle = hasFit ? void 0 : sheetContentStyle;
|
|
36
37
|
var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
|
|
37
38
|
height: frozenFrameHeight,
|
|
38
39
|
maxHeight: frozenFrameHeight
|
|
39
40
|
} : null;
|
|
40
|
-
var scrollViewStyle = [
|
|
41
|
-
fitSizingStyle,
|
|
42
|
-
...Array.isArray(style) ? style : [style],
|
|
43
|
-
keyboardFrozenOverride
|
|
44
|
-
];
|
|
41
|
+
var scrollViewStyle = [...Array.isArray(_$style) ? _$style : [_$style], keyboardFrozenOverride];
|
|
45
42
|
var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;
|
|
46
43
|
var { ScrollView: RNGHScrollView } = getGestureHandlerState();
|
|
47
44
|
var useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;
|
|
@@ -219,7 +216,7 @@ var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
|
|
|
219
216
|
var RNGHComponent = RNGHScrollView;
|
|
220
217
|
return /* @__PURE__ */ jsx(RNGHComponent, {
|
|
221
218
|
ref: composeRefs(scrollRef, ref),
|
|
222
|
-
style: scrollViewStyle,
|
|
219
|
+
style: [fitSizingProps, ...scrollViewStyle],
|
|
223
220
|
scrollEventThrottle: 1,
|
|
224
221
|
scrollEnabled,
|
|
225
222
|
simultaneousHandlers: [panGestureRef],
|
|
@@ -270,6 +267,7 @@ var SheetScrollView = createStyledHOC(ScrollView, function(param, ref) {
|
|
|
270
267
|
});
|
|
271
268
|
}
|
|
272
269
|
return /* @__PURE__ */ jsx(ScrollView, {
|
|
270
|
+
...fitSizingProps,
|
|
273
271
|
onLayout: function(e) {
|
|
274
272
|
recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
|
|
275
273
|
updateScrollable();
|