@tamagui/sheet 1.130.2 → 1.130.4
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/SheetImplementationCustom.cjs +8 -11
- package/dist/cjs/SheetImplementationCustom.js +50 -59
- package/dist/cjs/SheetImplementationCustom.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.native.js +10 -11
- package/dist/cjs/SheetImplementationCustom.native.js.map +2 -2
- package/dist/cjs/SheetScrollView.cjs +45 -11
- package/dist/cjs/SheetScrollView.js +54 -12
- package/dist/cjs/SheetScrollView.js.map +1 -1
- package/dist/cjs/SheetScrollView.native.js +132 -86
- package/dist/cjs/SheetScrollView.native.js.map +2 -2
- package/dist/cjs/nativeSheet.cjs +0 -1
- package/dist/cjs/nativeSheet.js +14 -23
- package/dist/cjs/nativeSheet.js.map +1 -1
- package/dist/cjs/nativeSheet.native.js +0 -1
- package/dist/cjs/nativeSheet.native.js.map +2 -2
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/useSheetOpenState.cjs +2 -2
- package/dist/cjs/useSheetOpenState.js +2 -2
- package/dist/cjs/useSheetOpenState.js.map +1 -1
- package/dist/cjs/useSheetOpenState.native.js +2 -2
- package/dist/cjs/useSheetOpenState.native.js.map +2 -2
- package/dist/cjs/useSheetProviderProps.cjs +22 -11
- package/dist/cjs/useSheetProviderProps.js +23 -13
- package/dist/cjs/useSheetProviderProps.js.map +1 -1
- package/dist/cjs/useSheetProviderProps.native.js +15 -3
- package/dist/cjs/useSheetProviderProps.native.js.map +2 -2
- package/dist/esm/SheetImplementationCustom.js +51 -60
- package/dist/esm/SheetImplementationCustom.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +9 -12
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +11 -13
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.js +57 -15
- package/dist/esm/SheetScrollView.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +48 -14
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +57 -16
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/nativeSheet.js +14 -23
- package/dist/esm/nativeSheet.js.map +1 -1
- package/dist/esm/nativeSheet.mjs +0 -1
- package/dist/esm/nativeSheet.mjs.map +1 -1
- package/dist/esm/nativeSheet.native.js +0 -1
- package/dist/esm/nativeSheet.native.js.map +1 -1
- package/dist/esm/useSheetOpenState.js +2 -2
- package/dist/esm/useSheetOpenState.js.map +1 -1
- package/dist/esm/useSheetOpenState.mjs +2 -2
- package/dist/esm/useSheetOpenState.mjs.map +1 -1
- package/dist/esm/useSheetOpenState.native.js +3 -2
- package/dist/esm/useSheetOpenState.native.js.map +1 -1
- package/dist/esm/useSheetProviderProps.js +23 -13
- package/dist/esm/useSheetProviderProps.js.map +1 -1
- package/dist/esm/useSheetProviderProps.mjs +22 -11
- package/dist/esm/useSheetProviderProps.mjs.map +1 -1
- package/dist/esm/useSheetProviderProps.native.js +24 -11
- package/dist/esm/useSheetProviderProps.native.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.js +51 -60
- package/dist/jsx/SheetImplementationCustom.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +9 -12
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +11 -12
- package/dist/jsx/SheetImplementationCustom.native.js.map +2 -2
- package/dist/jsx/SheetScrollView.js +57 -15
- package/dist/jsx/SheetScrollView.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +48 -14
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +135 -89
- package/dist/jsx/SheetScrollView.native.js.map +2 -2
- package/dist/jsx/nativeSheet.js +14 -23
- package/dist/jsx/nativeSheet.js.map +1 -1
- package/dist/jsx/nativeSheet.mjs +0 -1
- package/dist/jsx/nativeSheet.mjs.map +1 -1
- package/dist/jsx/nativeSheet.native.js +0 -1
- package/dist/jsx/nativeSheet.native.js.map +2 -2
- package/dist/jsx/useSheetOpenState.js +2 -2
- package/dist/jsx/useSheetOpenState.js.map +1 -1
- package/dist/jsx/useSheetOpenState.mjs +2 -2
- package/dist/jsx/useSheetOpenState.mjs.map +1 -1
- package/dist/jsx/useSheetOpenState.native.js +2 -2
- package/dist/jsx/useSheetOpenState.native.js.map +2 -2
- package/dist/jsx/useSheetProviderProps.js +23 -13
- package/dist/jsx/useSheetProviderProps.js.map +1 -1
- package/dist/jsx/useSheetProviderProps.mjs +22 -11
- package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
- package/dist/jsx/useSheetProviderProps.native.js +15 -3
- package/dist/jsx/useSheetProviderProps.native.js.map +2 -2
- package/package.json +19 -19
- package/src/SheetImplementationCustom.tsx +22 -20
- package/src/SheetScrollView.tsx +87 -19
- package/src/nativeSheet.tsx +1 -6
- package/src/types.tsx +25 -0
- package/src/useSheetOpenState.tsx +5 -2
- package/src/useSheetProviderProps.tsx +30 -12
- package/types/Sheet.d.ts +11 -10
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetContext.d.ts +0 -1
- package/types/SheetContext.d.ts.map +1 -1
- package/types/SheetImplementationCustom.d.ts +1 -0
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/createSheet.d.ts +1 -0
- package/types/createSheet.d.ts.map +1 -1
- package/types/nativeSheet.d.ts.map +1 -1
- package/types/types.d.ts +20 -0
- package/types/types.d.ts.map +1 -1
- package/types/useSheetOpenState.d.ts.map +1 -1
- package/types/useSheetProviderProps.d.ts +0 -1
- package/types/useSheetProviderProps.d.ts.map +1 -1
|
@@ -34,7 +34,7 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
|
|
|
34
34
|
scrollEnabled: scrollEnabledProp,
|
|
35
35
|
...props
|
|
36
36
|
}, ref) => {
|
|
37
|
-
const context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge,
|
|
37
|
+
const context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge, setHasScrollView } = context, [scrollEnabled, setScrollEnabled_] = (0, import_use_controllable_state.useControllableState)({
|
|
38
38
|
prop: scrollEnabledProp,
|
|
39
39
|
defaultProp: !0
|
|
40
40
|
}), scrollRef = import_react.default.useRef(null), setScrollEnabled = (next) => {
|
|
@@ -47,15 +47,15 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
|
|
|
47
47
|
dys: [],
|
|
48
48
|
// store a few recent dys to get velocity on release
|
|
49
49
|
isScrolling: !1,
|
|
50
|
-
|
|
50
|
+
isDraggingScrollArea: !1
|
|
51
51
|
});
|
|
52
52
|
(0, import_react.useEffect)(() => (setHasScrollView(!0), () => {
|
|
53
53
|
setHasScrollView(!1);
|
|
54
54
|
}), []);
|
|
55
55
|
const release = () => {
|
|
56
|
-
if (!state.current.
|
|
56
|
+
if (!state.current.isDraggingScrollArea)
|
|
57
57
|
return;
|
|
58
|
-
state.current.
|
|
58
|
+
state.current.isDraggingScrollArea = !1, scrollBridge.scrollStartY = -1, scrollBridge.scrollLock = !1, state.current.isScrolling = !1, setScrollEnabled(!0);
|
|
59
59
|
let vy = 0;
|
|
60
60
|
if (state.current.dys.length) {
|
|
61
61
|
const recentDys = state.current.dys.slice(-10);
|
|
@@ -65,10 +65,38 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
|
|
|
65
65
|
dragAt: state.current.dragAt,
|
|
66
66
|
vy
|
|
67
67
|
});
|
|
68
|
-
}, scrollable = scrollEnabled
|
|
69
|
-
|
|
68
|
+
}, scrollable = scrollEnabled;
|
|
69
|
+
(0, import_react.useEffect)(() => {
|
|
70
|
+
if (!import_core.isClient || !scrollRef.current) return;
|
|
71
|
+
const controller = new AbortController(), node = scrollRef.current.getScrollableNode();
|
|
72
|
+
node.addEventListener(
|
|
73
|
+
"touchmove",
|
|
74
|
+
(e) => {
|
|
75
|
+
scrollBridge.isParentDragging && node.scrollTo({
|
|
76
|
+
top: scrollBridge.y,
|
|
77
|
+
behavior: "instant"
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
signal: controller.signal,
|
|
82
|
+
passive: !1
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
const disposeBridgeListen = scrollBridge.onParentDragging((val) => {
|
|
86
|
+
});
|
|
87
|
+
return () => {
|
|
88
|
+
disposeBridgeListen(), controller.abort();
|
|
89
|
+
};
|
|
90
|
+
}, []);
|
|
91
|
+
const [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(!0), parentHeight = (0, import_react.useRef)(0), contentHeight = (0, import_react.useRef)(0), setIsScrollable = () => {
|
|
92
|
+
parentHeight.current && contentHeight.current && setHasScrollableContent(contentHeight.current > parentHeight.current);
|
|
93
|
+
};
|
|
94
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
70
95
|
import_scroll_view.ScrollView,
|
|
71
96
|
{
|
|
97
|
+
onLayout: (e) => {
|
|
98
|
+
parentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
|
|
99
|
+
},
|
|
72
100
|
ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
|
|
73
101
|
flex: 1,
|
|
74
102
|
scrollEventThrottle: 8,
|
|
@@ -79,7 +107,7 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
|
|
|
79
107
|
const { y } = e.nativeEvent.contentOffset;
|
|
80
108
|
scrollBridge.y = y, import_core.isWeb && (scrollBridge.scrollLock = y > 0), y > 0 && (scrollBridge.scrollStartY = -1), onScroll?.(e);
|
|
81
109
|
},
|
|
82
|
-
onStartShouldSetResponder: () => (scrollBridge.scrollStartY = -1, state.current.
|
|
110
|
+
onStartShouldSetResponder: () => (scrollBridge.scrollStartY = -1, state.current.isDraggingScrollArea = !0, scrollable),
|
|
83
111
|
onMoveShouldSetResponder: (e) => scrollable,
|
|
84
112
|
contentContainerStyle: {
|
|
85
113
|
minHeight: "100%"
|
|
@@ -87,21 +115,35 @@ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = import_react
|
|
|
87
115
|
onResponderMove: (e) => {
|
|
88
116
|
if (import_core.isWeb) {
|
|
89
117
|
const { pageY } = e.nativeEvent;
|
|
90
|
-
|
|
91
|
-
return;
|
|
92
|
-
scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
|
|
118
|
+
state.current.isScrolling || scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
|
|
93
119
|
const dragAt = pageY - scrollBridge.scrollStartY, dy = pageY - state.current.lastPageY;
|
|
94
120
|
state.current.lastPageY = pageY;
|
|
95
121
|
const isDraggingUp = dy < 0, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY;
|
|
96
|
-
if ((dy === 0 || isDraggingUp) && isPaneAtTop) {
|
|
122
|
+
if (hasScrollableContent && (dy === 0 || isDraggingUp) && isPaneAtTop && !state.current.isScrolling) {
|
|
97
123
|
state.current.isScrolling = !0, scrollBridge.scrollLock = !0, setScrollEnabled(!0);
|
|
98
124
|
return;
|
|
99
125
|
}
|
|
126
|
+
if (scrollBridge.y >= 0)
|
|
127
|
+
return;
|
|
100
128
|
setScrollEnabled(!1), scrollBridge.drag(dragAt), state.current.dragAt = dragAt, state.current.dys.push(dy), state.current.dys.length > 100 && (state.current.dys = state.current.dys.slice(-10));
|
|
101
129
|
}
|
|
102
130
|
},
|
|
103
131
|
...props,
|
|
104
|
-
children
|
|
132
|
+
children: [
|
|
133
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
134
|
+
import_core.View,
|
|
135
|
+
{
|
|
136
|
+
position: "absolute",
|
|
137
|
+
inset: 0,
|
|
138
|
+
pointerEvents: "none",
|
|
139
|
+
zIndex: -1,
|
|
140
|
+
onLayout: (e) => {
|
|
141
|
+
contentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
),
|
|
145
|
+
children
|
|
146
|
+
]
|
|
105
147
|
}
|
|
106
148
|
);
|
|
107
149
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SheetScrollView.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA4B,kCAC5B,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["React"]
|
|
6
6
|
}
|
|
@@ -26,94 +26,140 @@ __export(SheetScrollView_exports, {
|
|
|
26
26
|
SheetScrollView: () => SheetScrollView
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(SheetScrollView_exports);
|
|
29
|
-
var import_jsx_runtime = require("react/jsx-runtime"), import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_scroll_view = require("@tamagui/scroll-view"), import_use_controllable_state = require("@tamagui/use-controllable-state"), import_react = __toESM(require("react")), import_SheetContext = require("./SheetContext"), SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = /* @__PURE__ */ import_react.default.forwardRef(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (state.current.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
vy
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}, scrollable = scrollEnabled ?? scrollEnabled_;
|
|
67
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
|
|
68
|
-
ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
|
|
69
|
-
flex: 1,
|
|
70
|
-
scrollEventThrottle: 8,
|
|
71
|
-
onResponderRelease: release,
|
|
72
|
-
className: "_ovs-contain",
|
|
73
|
-
scrollEnabled: scrollable,
|
|
74
|
-
// {...(Platform.OS === 'android' && {
|
|
75
|
-
// pointerEvents: scrollable ? undefined : 'none',
|
|
76
|
-
// })}
|
|
77
|
-
onScroll: function(e) {
|
|
78
|
-
var { y } = e.nativeEvent.contentOffset;
|
|
79
|
-
scrollBridge.y = y, import_core.isWeb && (scrollBridge.scrollLock = y > 0), y > 0 && (scrollBridge.scrollStartY = -1), onScroll == null || onScroll(e);
|
|
80
|
-
},
|
|
81
|
-
// This assures that we do not skip the "scrollBridge" values processing
|
|
82
|
-
// when passing this prop into a <Sheet.ScrollView /> overriding it here
|
|
83
|
-
// Useful when using this ScrollView with lists such as "FlashList", i.e.
|
|
84
|
-
// ```
|
|
85
|
-
// renderScrollComponent={Sheet.ScrollView}
|
|
86
|
-
// ```
|
|
87
|
-
onStartShouldSetResponder: function() {
|
|
88
|
-
return scrollBridge.scrollStartY = -1, state.current.isDragging = !0, scrollable;
|
|
89
|
-
},
|
|
90
|
-
// setting to false while onResponderMove is disabled
|
|
91
|
-
onMoveShouldSetResponder: function(e) {
|
|
92
|
-
return scrollable;
|
|
93
|
-
},
|
|
94
|
-
contentContainerStyle: {
|
|
95
|
-
minHeight: "100%"
|
|
96
|
-
},
|
|
97
|
-
onResponderMove: function(e) {
|
|
98
|
-
if (import_core.isWeb) {
|
|
99
|
-
var { pageY } = e.nativeEvent;
|
|
100
|
-
if (state.current.isScrolling)
|
|
101
|
-
return;
|
|
102
|
-
scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
|
|
103
|
-
var dragAt = pageY - scrollBridge.scrollStartY, dy = pageY - state.current.lastPageY;
|
|
104
|
-
state.current.lastPageY = pageY;
|
|
105
|
-
var isDraggingUp = dy < 0, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY, shouldScrollLock = (dy === 0 || isDraggingUp) && isPaneAtTop;
|
|
106
|
-
if (shouldScrollLock) {
|
|
107
|
-
state.current.isScrolling = !0, scrollBridge.scrollLock = !0, setScrollEnabled(!0);
|
|
108
|
-
return;
|
|
29
|
+
var import_jsx_runtime = require("react/jsx-runtime"), import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_scroll_view = require("@tamagui/scroll-view"), import_use_controllable_state = require("@tamagui/use-controllable-state"), import_react = __toESM(require("react")), import_SheetContext = require("./SheetContext"), SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = /* @__PURE__ */ import_react.default.forwardRef(
|
|
30
|
+
// we disallow customizing it because we want to let people know it doens't work well with out measuring of inner content
|
|
31
|
+
// height using a view
|
|
32
|
+
function(param, ref) {
|
|
33
|
+
var { __scopeSheet, children, onScroll, scrollEnabled: scrollEnabledProp, ...props } = param, context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge, setHasScrollView } = context, [scrollEnabled, setScrollEnabled_] = (0, import_use_controllable_state.useControllableState)({
|
|
34
|
+
prop: scrollEnabledProp,
|
|
35
|
+
defaultProp: !0
|
|
36
|
+
}), scrollRef = import_react.default.useRef(null), setScrollEnabled = function(next) {
|
|
37
|
+
var _scrollRef_current_setNativeProps, _scrollRef_current;
|
|
38
|
+
(_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 || (_scrollRef_current_setNativeProps = _scrollRef_current.setNativeProps) === null || _scrollRef_current_setNativeProps === void 0 || _scrollRef_current_setNativeProps.call(_scrollRef_current, {
|
|
39
|
+
scrollEnabled: next
|
|
40
|
+
}), setScrollEnabled_(next);
|
|
41
|
+
}, state = import_react.default.useRef({
|
|
42
|
+
lastPageY: 0,
|
|
43
|
+
dragAt: 0,
|
|
44
|
+
dys: [],
|
|
45
|
+
// store a few recent dys to get velocity on release
|
|
46
|
+
isScrolling: !1,
|
|
47
|
+
isDraggingScrollArea: !1
|
|
48
|
+
});
|
|
49
|
+
(0, import_react.useEffect)(function() {
|
|
50
|
+
return setHasScrollView(!0), function() {
|
|
51
|
+
setHasScrollView(!1);
|
|
52
|
+
};
|
|
53
|
+
}, []);
|
|
54
|
+
var release = function() {
|
|
55
|
+
if (state.current.isDraggingScrollArea) {
|
|
56
|
+
state.current.isDraggingScrollArea = !1, scrollBridge.scrollStartY = -1, scrollBridge.scrollLock = !1, state.current.isScrolling = !1, setScrollEnabled(!0);
|
|
57
|
+
var vy = 0;
|
|
58
|
+
if (state.current.dys.length) {
|
|
59
|
+
var recentDys = state.current.dys.slice(-10), dist = recentDys.length ? recentDys.reduce(function(a, b) {
|
|
60
|
+
return a + b;
|
|
61
|
+
}, 0) : 0, avgDy = dist / recentDys.length;
|
|
62
|
+
vy = avgDy * 0.04;
|
|
109
63
|
}
|
|
110
|
-
|
|
64
|
+
state.current.dys = [], scrollBridge.release({
|
|
65
|
+
dragAt: state.current.dragAt,
|
|
66
|
+
vy
|
|
67
|
+
});
|
|
111
68
|
}
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
69
|
+
}, scrollable = scrollEnabled;
|
|
70
|
+
(0, import_react.useEffect)(function() {
|
|
71
|
+
if (import_core.isClient && scrollRef.current) {
|
|
72
|
+
var controller = new AbortController(), node = scrollRef.current.getScrollableNode();
|
|
73
|
+
node.addEventListener(
|
|
74
|
+
"touchmove",
|
|
75
|
+
function(e) {
|
|
76
|
+
scrollBridge.isParentDragging && node.scrollTo({
|
|
77
|
+
top: scrollBridge.y,
|
|
78
|
+
behavior: "instant"
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
// can't preventdefault its not cancellable
|
|
82
|
+
{
|
|
83
|
+
signal: controller.signal,
|
|
84
|
+
passive: !1
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
var disposeBridgeListen = scrollBridge.onParentDragging(function(val) {
|
|
88
|
+
});
|
|
89
|
+
return function() {
|
|
90
|
+
disposeBridgeListen(), controller.abort();
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}, []);
|
|
94
|
+
var [hasScrollableContent, setHasScrollableContent] = (0, import_react.useState)(!0), parentHeight = (0, import_react.useRef)(0), contentHeight = (0, import_react.useRef)(0), setIsScrollable = function() {
|
|
95
|
+
parentHeight.current && contentHeight.current && setHasScrollableContent(contentHeight.current > parentHeight.current);
|
|
96
|
+
};
|
|
97
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_scroll_view.ScrollView, {
|
|
98
|
+
onLayout: function(e) {
|
|
99
|
+
parentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
|
|
100
|
+
},
|
|
101
|
+
ref: (0, import_compose_refs.composeRefs)(scrollRef, ref),
|
|
102
|
+
flex: 1,
|
|
103
|
+
scrollEventThrottle: 8,
|
|
104
|
+
onResponderRelease: release,
|
|
105
|
+
className: "_ovs-contain",
|
|
106
|
+
scrollEnabled: scrollable,
|
|
107
|
+
// {...(Platform.OS === 'android' && {
|
|
108
|
+
// pointerEvents: scrollable ? undefined : 'none',
|
|
109
|
+
// })}
|
|
110
|
+
onScroll: function(e) {
|
|
111
|
+
var { y } = e.nativeEvent.contentOffset;
|
|
112
|
+
scrollBridge.y = y, import_core.isWeb && (scrollBridge.scrollLock = y > 0), y > 0 && (scrollBridge.scrollStartY = -1), onScroll == null || onScroll(e);
|
|
113
|
+
},
|
|
114
|
+
// This assures that we do not skip the "scrollBridge" values processing
|
|
115
|
+
// when passing this prop into a <Sheet.ScrollView /> overriding it here
|
|
116
|
+
// Useful when using this ScrollView with lists such as "FlashList", i.e.
|
|
117
|
+
// ```
|
|
118
|
+
// renderScrollComponent={Sheet.ScrollView}
|
|
119
|
+
// ```
|
|
120
|
+
onStartShouldSetResponder: function() {
|
|
121
|
+
return scrollBridge.scrollStartY = -1, state.current.isDraggingScrollArea = !0, scrollable;
|
|
122
|
+
},
|
|
123
|
+
// setting to false while onResponderMove is disabled
|
|
124
|
+
onMoveShouldSetResponder: function(e) {
|
|
125
|
+
return scrollable;
|
|
126
|
+
},
|
|
127
|
+
contentContainerStyle: {
|
|
128
|
+
minHeight: "100%"
|
|
129
|
+
},
|
|
130
|
+
onResponderMove: function(e) {
|
|
131
|
+
if (import_core.isWeb) {
|
|
132
|
+
var { pageY } = e.nativeEvent;
|
|
133
|
+
state.current.isScrolling || scrollBridge.scrollStartY === -1 && (scrollBridge.scrollStartY = pageY, state.current.lastPageY = pageY);
|
|
134
|
+
var dragAt = pageY - scrollBridge.scrollStartY, dy = pageY - state.current.lastPageY;
|
|
135
|
+
state.current.lastPageY = pageY;
|
|
136
|
+
var isDraggingUp = dy < 0, isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY, shouldScrollLock = hasScrollableContent && (dy === 0 || isDraggingUp) && isPaneAtTop;
|
|
137
|
+
if (shouldScrollLock && !state.current.isScrolling) {
|
|
138
|
+
state.current.isScrolling = !0, scrollBridge.scrollLock = !0, setScrollEnabled(!0);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (scrollBridge.y >= 0)
|
|
142
|
+
return;
|
|
143
|
+
setScrollEnabled(!1), scrollBridge.drag(dragAt), state.current.dragAt = dragAt, state.current.dys.push(dy), state.current.dys.length > 100 && (state.current.dys = state.current.dys.slice(-10));
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
...props,
|
|
147
|
+
children: [
|
|
148
|
+
/* content height measurer */
|
|
149
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {
|
|
150
|
+
position: "absolute",
|
|
151
|
+
inset: 0,
|
|
152
|
+
pointerEvents: "none",
|
|
153
|
+
zIndex: -1,
|
|
154
|
+
onLayout: function(e) {
|
|
155
|
+
contentHeight.current = e.nativeEvent.layout.height, setIsScrollable();
|
|
156
|
+
}
|
|
157
|
+
}),
|
|
158
|
+
children
|
|
159
|
+
]
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
);
|
|
117
163
|
// Annotate the CommonJS export names for ESM import in node:
|
|
118
164
|
0 && (module.exports = {
|
|
119
165
|
SheetScrollView
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SheetScrollView.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,sBAA4B,kCAC5B,
|
|
5
|
-
"names": ["SHEET_SCROLL_VIEW_NAME", "SheetScrollView", "React", "forwardRef", "ref", "__scopeSheet", "children", "onScroll", "scrollEnabled", "scrollEnabledProp", "props", "context", "useSheetContext", "scrollBridge", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["SHEET_SCROLL_VIEW_NAME", "SheetScrollView", "React", "forwardRef", "ref", "__scopeSheet", "children", "onScroll", "scrollEnabled", "scrollEnabledProp", "props", "context", "useSheetContext", "scrollBridge", "setHasScrollView", "setScrollEnabled_", "useControllableState", "prop", "defaultProp", "scrollRef", "useRef", "setScrollEnabled", "next", "current", "setNativeProps", "state", "lastPageY", "dragAt", "dys", "isScrolling", "isDraggingScrollArea", "useEffect", "release", "scrollStartY", "scrollLock", "vy", "length", "recentDys", "slice", "dist", "reduce", "a", "b", "avgDy", "scrollable", "isClient", "controller", "AbortController", "node", "getScrollableNode", "addEventListener", "e", "isParentDragging", "scrollTo", "top", "y", "behavior", "signal", "passive", "disposeBridgeListen", "onParentDragging", "val", "abort", "hasScrollableContent", "setHasScrollableContent", "useState", "parentHeight", "contentHeight", "setIsScrollable", "_jsxs", "ScrollView", "onLayout", "nativeEvent", "layout", "height", "composeRefs", "flex", "scrollEventThrottle", "onResponderRelease", "className", "contentOffset", "isWeb", "onStartShouldSetResponder", "onMoveShouldSetResponder", "contentContainerStyle", "minHeight", "onResponderMove", "pageY", "dy", "isDraggingUp", "isPaneAtTop", "paneY", "paneMinY", "shouldScrollLock", "drag", "push", "_jsx", "View", "position", "inset", "pointerEvents", "zIndex"]
|
|
6
6
|
}
|
package/dist/cjs/nativeSheet.cjs
CHANGED
|
@@ -58,7 +58,6 @@ function setupNativeSheet(platform, RNIOSModal) {
|
|
|
58
58
|
}
|
|
59
59
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
60
60
|
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
|
|
61
|
-
scrollEnabled: !0,
|
|
62
61
|
setHasScrollView: emptyFn,
|
|
63
62
|
...providerProps,
|
|
64
63
|
onlyShowFrame: !0,
|
package/dist/cjs/nativeSheet.js
CHANGED
|
@@ -35,29 +35,20 @@ function setupNativeSheet(platform, RNIOSModal) {
|
|
|
35
35
|
function setOpenInternal(next) {
|
|
36
36
|
props.onOpenChange?.(open), setOpen(next);
|
|
37
37
|
}
|
|
38
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
pointerEvents: "none",
|
|
53
|
-
width: 0,
|
|
54
|
-
height: 0,
|
|
55
|
-
children: props.children
|
|
56
|
-
}
|
|
57
|
-
)
|
|
58
|
-
]
|
|
59
|
-
}
|
|
60
|
-
) });
|
|
38
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, { setHasScrollView: emptyFn, ...providerProps, onlyShowFrame: !0, children: [
|
|
39
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetView, { ref, onModalDidDismiss: () => setOpenInternal(!1), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModalSheetViewMainContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, { style: { flex: 1 }, children: props.children }) }) }),
|
|
40
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
41
|
+
import_stacks.YStack,
|
|
42
|
+
{
|
|
43
|
+
position: "absolute",
|
|
44
|
+
opacity: 0,
|
|
45
|
+
pointerEvents: "none",
|
|
46
|
+
width: 0,
|
|
47
|
+
height: 0,
|
|
48
|
+
children: props.children
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
] }) });
|
|
61
52
|
});
|
|
62
53
|
}
|
|
63
54
|
const emptyFn = () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/nativeSheet.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAqD9B;AA/CR,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBACd,UACA,YACA;AACA,QAAM,EAAE,gBAAgB,0BAA0B,IAAI;AAEtD,EAAI,aAAa,UACf,aAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,UAAM,YAAQ,4CAAkB,KAAK,GAC/B,oBAAgB,oDAAsB,OAAO,KAAK,GAIlD,EAAE,MAAM,QAAQ,IAAI,OACpB,UAAM,qBAGT,MAAS;AAEZ,gCAAU,MAAM;AACd,MAAI,OACF,IAAI,SAAS,aAAa,IAE1B,IAAI,SAAS,aAAa;AAAA,IAE9B,GAAG,CAAC,IAAI,CAAC;AAET,aAAS,gBAAgB,MAAe;AACtC,YAAM,eAAe,IAAI,GACzB,QAAQ,IAAI;AAAA,IACd;AAQA,WACE,2EACE
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAqD9B;AA/CR,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBACd,UACA,YACA;AACA,QAAM,EAAE,gBAAgB,0BAA0B,IAAI;AAEtD,EAAI,aAAa,UACf,aAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,UAAM,YAAQ,4CAAkB,KAAK,GAC/B,oBAAgB,oDAAsB,OAAO,KAAK,GAIlD,EAAE,MAAM,QAAQ,IAAI,OACpB,UAAM,qBAGT,MAAS;AAEZ,gCAAU,MAAM;AACd,MAAI,OACF,IAAI,SAAS,aAAa,IAE1B,IAAI,SAAS,aAAa;AAAA,IAE9B,GAAG,CAAC,IAAI,CAAC;AAET,aAAS,gBAAgB,MAAe;AACtC,YAAM,eAAe,IAAI,GACzB,QAAQ,IAAI;AAAA,IACd;AAQA,WACE,2EACE,uDAAC,qCAAc,kBAAkB,SAAU,GAAG,eAAe,eAAa,IACxE;AAAA,kDAAC,kBAAe,KAAU,mBAAmB,MAAM,gBAAgB,EAAK,GACtE,sDAAC,6BACC,sDAAC,4BAAK,OAAO,EAAE,MAAM,EAAE,GAAI,gBAAM,UAAS,GAC5C,GACF;AAAA,MAIA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,SAAS;AAAA,UACT,eAAc;AAAA,UACd,OAAO;AAAA,UACP,QAAQ;AAAA,UAEP,gBAAM;AAAA;AAAA,MACT;AAAA,OACF,GACF;AAAA,EAEJ;AAEJ;AAEA,MAAM,UAAU,MAAM;AAEtB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -46,7 +46,6 @@ function setupNativeSheet(platform, RNIOSModal) {
|
|
|
46
46
|
}
|
|
47
47
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
48
48
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, {
|
|
49
|
-
scrollEnabled: !0,
|
|
50
49
|
setHasScrollView: emptyFn,
|
|
51
50
|
...providerProps,
|
|
52
51
|
onlyShowFrame: !0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/nativeSheet.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;uDAAA,gBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAMhCA,eAAmF;EACvFC,KAAK;AACP;AAEO,SAASC,eAAeC,UAA8B;AAC3D,SAAOH,aAAaG,QAAAA;AACtB;AAEO,SAASC,iBACdD,UACAE,YAAmE;AAEnE,MAAM,EAAEC,gBAAgBC,0BAAyB,IAAKF;AAEtD,EAAIF,aAAa,UACfH,aAAaG,QAAAA,IAAY,SAACK,OAAAA;AACxB,QAAMC,YAAQC,4CAAkBF,KAAAA,GAC1BG,oBAAgBC,oDAAsBJ,OAAOC,KAAAA,GAI7C,EAAEI,MAAMC,QAAO,IAAKL,OACpBM,UAAMC,qBAGTC,MAAAA;AAEHC,gCAAU,WAAA;AACR,UAAIL,MAAM;YACRE;SAAAA,eAAAA,IAAII,aAAO,QAAXJ,iBAAAA,UAAAA,aAAaK,aAAY;MAC3B,OAAO;YACLL;SAAAA,gBAAAA,IAAII,aAAO,QAAXJ,kBAAAA,UAAAA,cAAaM,aAAY;MAC3B;IACF,GAAG;MAACR;KAAK;AAET,aAASS,gBAAgBC,MAAa;UACpCf;OAAAA,sBAAAA,MAAMgB,kBAAY,QAAlBhB,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,IAAAA,GACrBC,QAAQS,IAAAA;IACV;AAQA,WACE,uCAAAE,KAAA,mBAAAC,UAAA;gBACE,uCAAAC,MAACC,mCAAAA;
|
|
5
|
-
"names": ["nativeSheets", "ios", "getNativeSheet", "platform", "setupNativeSheet", "RNIOSModal", "ModalSheetView", "ModalSheetViewMainContent", "props", "state", "useSheetOpenState", "providerProps", "useSheetProviderProps", "open", "setOpen", "ref", "useRef", "undefined", "useEffect", "current", "presentModal", "dismissModal", "setOpenInternal", "next", "onOpenChange", "_jsx", "_Fragment", "_jsxs", "SheetProvider", "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;uDAAA,gBAAuB,4BAEvB,eAAkC,kBAClC,sBAAqB,yBACrB,sBAA8B,2BAE9B,2BAAkC,gCAClC,+BAAsC,oCAMhCA,eAAmF;EACvFC,KAAK;AACP;AAEO,SAASC,eAAeC,UAA8B;AAC3D,SAAOH,aAAaG,QAAAA;AACtB;AAEO,SAASC,iBACdD,UACAE,YAAmE;AAEnE,MAAM,EAAEC,gBAAgBC,0BAAyB,IAAKF;AAEtD,EAAIF,aAAa,UACfH,aAAaG,QAAAA,IAAY,SAACK,OAAAA;AACxB,QAAMC,YAAQC,4CAAkBF,KAAAA,GAC1BG,oBAAgBC,oDAAsBJ,OAAOC,KAAAA,GAI7C,EAAEI,MAAMC,QAAO,IAAKL,OACpBM,UAAMC,qBAGTC,MAAAA;AAEHC,gCAAU,WAAA;AACR,UAAIL,MAAM;YACRE;SAAAA,eAAAA,IAAII,aAAO,QAAXJ,iBAAAA,UAAAA,aAAaK,aAAY;MAC3B,OAAO;YACLL;SAAAA,gBAAAA,IAAII,aAAO,QAAXJ,kBAAAA,UAAAA,cAAaM,aAAY;MAC3B;IACF,GAAG;MAACR;KAAK;AAET,aAASS,gBAAgBC,MAAa;UACpCf;OAAAA,sBAAAA,MAAMgB,kBAAY,QAAlBhB,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,IAAAA,GACrBC,QAAQS,IAAAA;IACV;AAQA,WACE,uCAAAE,KAAA,mBAAAC,UAAA;gBACE,uCAAAC,MAACC,mCAAAA;QAAcC,kBAAkBC;QAAU,GAAGnB;QAAeoB,eAAa;;UACxE,uCAAAN,KAACnB,gBAAAA;YAAeS;YAAUiB,mBAAmB,WAAA;qBAAMV,gBAAgB,EAAA;;sBACjE,uCAAAG,KAAClB,2BAAAA;wBACC,uCAAAkB,KAACQ,0BAAAA;gBAAKC,OAAO;kBAAEC,MAAM;gBAAE;0BAAI3B,MAAM4B;;;;;;UAMrC,uCAAAX,KAACY,sBAAAA;YACCC,UAAS;YACTC,SAAS;YACTC,eAAc;YACdC,OAAO;YACPC,QAAQ;sBAEPlC,MAAM4B;;;;;EAKjB;AAEJ;AAEA,IAAMN,UAAU,WAAA;AAEhB;",
|
|
5
|
+
"names": ["nativeSheets", "ios", "getNativeSheet", "platform", "setupNativeSheet", "RNIOSModal", "ModalSheetView", "ModalSheetViewMainContent", "props", "state", "useSheetOpenState", "providerProps", "useSheetProviderProps", "open", "setOpen", "ref", "useRef", "undefined", "useEffect", "current", "presentModal", "dismissModal", "setOpenInternal", "next", "onOpenChange", "_jsx", "_Fragment", "_jsxs", "SheetProvider", "setHasScrollView", "emptyFn", "onlyShowFrame", "onModalDidDismiss", "View", "style", "flex", "children", "YStack", "position", "opacity", "pointerEvents", "width", "height"]
|
|
6
6
|
}
|
|
@@ -33,12 +33,12 @@ const useSheetOpenState = props => {
|
|
|
33
33
|
onOpenChangeInternal = val => {
|
|
34
34
|
controller?.onOpenChange?.(val), props.onOpenChange?.(val);
|
|
35
35
|
},
|
|
36
|
-
propVal = controller?.open ?? props.open,
|
|
36
|
+
propVal = props.preferAdaptParentOpenState ? controller?.open ?? props.open : props.open ?? controller?.open,
|
|
37
37
|
[open, setOpen] = (0, import_use_controllable_state.useControllableState)({
|
|
38
38
|
prop: propVal,
|
|
39
39
|
defaultProp: props.defaultOpen ?? !1,
|
|
40
40
|
onChange: onOpenChangeInternal,
|
|
41
|
-
strategy: "
|
|
41
|
+
strategy: "most-recent-wins"
|
|
42
42
|
});
|
|
43
43
|
return {
|
|
44
44
|
open,
|
|
@@ -21,11 +21,11 @@ var import_use_controllable_state = require("@tamagui/use-controllable-state"),
|
|
|
21
21
|
const useSheetOpenState = (props) => {
|
|
22
22
|
const { isHidden, controller } = (0, import_useSheetController.useSheetController)(), onOpenChangeInternal = (val) => {
|
|
23
23
|
controller?.onOpenChange?.(val), props.onOpenChange?.(val);
|
|
24
|
-
}, propVal = controller?.open ?? props.open, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
|
|
24
|
+
}, propVal = props.preferAdaptParentOpenState ? controller?.open ?? props.open : props.open ?? controller?.open, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
|
|
25
25
|
prop: propVal,
|
|
26
26
|
defaultProp: props.defaultOpen ?? !1,
|
|
27
27
|
onChange: onOpenChangeInternal,
|
|
28
|
-
strategy: "
|
|
28
|
+
strategy: "most-recent-wins"
|
|
29
29
|
});
|
|
30
30
|
return {
|
|
31
31
|
open,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useSheetOpenState.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAqC,4CAGrC,4BAAmC;AAE5B,MAAM,oBAAoB,CAAC,UAAsB;AACtD,QAAM,EAAE,UAAU,WAAW,QAAI,8CAAmB,GAE9C,uBAAuB,CAAC,QAAiB;AAC7C,gBAAY,eAAe,GAAG,GAC9B,MAAM,eAAe,GAAG;AAAA,EAC1B,GAEM,UAAU,YAAY,QAAQ,MAAM,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAqC,4CAGrC,4BAAmC;AAE5B,MAAM,oBAAoB,CAAC,UAAsB;AACtD,QAAM,EAAE,UAAU,WAAW,QAAI,8CAAmB,GAE9C,uBAAuB,CAAC,QAAiB;AAC7C,gBAAY,eAAe,GAAG,GAC9B,MAAM,eAAe,GAAG;AAAA,EAC1B,GAEM,UAAU,MAAM,6BACjB,YAAY,QAAQ,MAAM,OAC1B,MAAM,QAAQ,YAAY,MAEzB,CAAC,MAAM,OAAO,QAAI,oDAAqB;AAAA,IAC3C,MAAM;AAAA,IACN,aAAa,MAAM,eAAe;AAAA,IAClC,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -22,11 +22,11 @@ var import_use_controllable_state = require("@tamagui/use-controllable-state"),
|
|
|
22
22
|
var { isHidden, controller } = (0, import_useSheetController.useSheetController)(), onOpenChangeInternal = function(val) {
|
|
23
23
|
var _controller_onOpenChange, _props_onOpenChange;
|
|
24
24
|
controller == null || (_controller_onOpenChange = controller.onOpenChange) === null || _controller_onOpenChange === void 0 || _controller_onOpenChange.call(controller, val), (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 || _props_onOpenChange.call(props, val);
|
|
25
|
-
}, _controller_open, propVal = (_controller_open = controller == null ? void 0 : controller.open) !== null && _controller_open !== void 0 ? _controller_open : props.open, _props_defaultOpen, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
|
|
25
|
+
}, _controller_open, _props_open, propVal = props.preferAdaptParentOpenState ? (_controller_open = controller == null ? void 0 : controller.open) !== null && _controller_open !== void 0 ? _controller_open : props.open : (_props_open = props.open) !== null && _props_open !== void 0 ? _props_open : controller == null ? void 0 : controller.open, _props_defaultOpen, [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
|
|
26
26
|
prop: propVal,
|
|
27
27
|
defaultProp: (_props_defaultOpen = props.defaultOpen) !== null && _props_defaultOpen !== void 0 ? _props_defaultOpen : !1,
|
|
28
28
|
onChange: onOpenChangeInternal,
|
|
29
|
-
strategy: "
|
|
29
|
+
strategy: "most-recent-wins"
|
|
30
30
|
});
|
|
31
31
|
return {
|
|
32
32
|
open,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useSheetOpenState.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;;;;;oCAAqC,4CAGrC,4BAAmC,iCAEtBA,oBAAoB,SAACC,OAAAA;AAChC,MAAM,EAAEC,UAAUC,WAAU,QAAKC,8CAAAA,GAE3BC,uBAAuB,SAACC,KAAAA;QAC5BH,0BACAF;AADAE,kBAAAA,SAAAA,2BAAAA,WAAYI,kBAAY,QAAxBJ,6BAAAA,UAAAA,yBAAAA,KAAAA,YAA2BG,GAAAA,IAC3BL,sBAAAA,MAAMM,kBAAY,QAAlBN,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,GAAAA;EACvB,
|
|
5
|
-
"names": ["useSheetOpenState", "props", "isHidden", "controller", "useSheetController", "onOpenChangeInternal", "val", "onOpenChange", "propVal", "open", "setOpen", "useControllableState", "prop", "defaultProp", "defaultOpen", "onChange", "strategy"]
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;;;;;oCAAqC,4CAGrC,4BAAmC,iCAEtBA,oBAAoB,SAACC,OAAAA;AAChC,MAAM,EAAEC,UAAUC,WAAU,QAAKC,8CAAAA,GAE3BC,uBAAuB,SAACC,KAAAA;QAC5BH,0BACAF;AADAE,kBAAAA,SAAAA,2BAAAA,WAAYI,kBAAY,QAAxBJ,6BAAAA,UAAAA,yBAAAA,KAAAA,YAA2BG,GAAAA,IAC3BL,sBAAAA,MAAMM,kBAAY,QAAlBN,wBAAAA,UAAAA,oBAAAA,KAAAA,OAAqBK,GAAAA;EACvB,GAGKH,kBACAF,aAFCO,UAAUP,MAAMQ,8BACjBN,mBAAAA,cAAAA,OAAAA,SAAAA,WAAYO,UAAI,QAAhBP,qBAAAA,SAAAA,mBAAoBF,MAAMS,QAC1BT,cAAAA,MAAMS,UAAI,QAAVT,gBAAAA,SAAAA,cAAcE,cAAAA,OAAAA,SAAAA,WAAYO,MAIhBT,oBAFT,CAACS,MAAMC,OAAAA,QAAWC,oDAAqB;IAC3CC,MAAML;IACNM,cAAab,qBAAAA,MAAMc,iBAAW,QAAjBd,uBAAAA,SAAAA,qBAAqB;IAClCe,UAAUX;IACVY,UAAU;EACZ,CAAA;AAEA,SAAO;IACLP;IACAC;IACAT;IACAC;EACF;AACF;",
|
|
5
|
+
"names": ["useSheetOpenState", "props", "isHidden", "controller", "useSheetController", "onOpenChangeInternal", "val", "onOpenChange", "propVal", "preferAdaptParentOpenState", "open", "setOpen", "useControllableState", "prop", "defaultProp", "defaultOpen", "onChange", "strategy"]
|
|
6
6
|
}
|
|
@@ -51,7 +51,7 @@ function useSheetProviderProps(props, state, options = {}) {
|
|
|
51
51
|
prop: props.position,
|
|
52
52
|
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
53
53
|
onChange: props.onPositionChange,
|
|
54
|
-
strategy: "
|
|
54
|
+
strategy: "most-recent-wins"
|
|
55
55
|
}),
|
|
56
56
|
position = state.open === !1 ? -1 : position_,
|
|
57
57
|
{
|
|
@@ -79,16 +79,27 @@ function useSheetProviderProps(props, state, options = {}) {
|
|
|
79
79
|
animationDriver
|
|
80
80
|
} = (0, import_core.useConfiguration)();
|
|
81
81
|
if (!animationDriver) throw new Error(process.env.NODE_ENV === "production" ? "\u274C 008" : "Must set animations in tamagui.config.ts");
|
|
82
|
-
const scrollBridge = (0, import_use_constant.useConstant)(() =>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
82
|
+
const scrollBridge = (0, import_use_constant.useConstant)(() => {
|
|
83
|
+
const parentDragListeners = /* @__PURE__ */new Set(),
|
|
84
|
+
bridge = {
|
|
85
|
+
enabled: !1,
|
|
86
|
+
y: 0,
|
|
87
|
+
paneY: 0,
|
|
88
|
+
paneMinY: 0,
|
|
89
|
+
scrollStartY: -1,
|
|
90
|
+
drag: () => {},
|
|
91
|
+
release: () => {},
|
|
92
|
+
scrollLock: !1,
|
|
93
|
+
isParentDragging: !1,
|
|
94
|
+
onParentDragging: cb => (parentDragListeners.add(cb), () => {
|
|
95
|
+
parentDragListeners.delete(cb);
|
|
96
|
+
}),
|
|
97
|
+
setParentDragging: val => {
|
|
98
|
+
val !== bridge.isParentDragging && (bridge.isParentDragging = val, parentDragListeners.forEach(cb => cb(val)));
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
return bridge;
|
|
102
|
+
}),
|
|
92
103
|
removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal),
|
|
93
104
|
maxSnapPoint = snapPoints[0];
|
|
94
105
|
return {
|