@tamagui/sheet 1.26.1 → 1.27.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.
Files changed (75) hide show
  1. package/dist/cjs/Sheet.js +23 -425
  2. package/dist/cjs/Sheet.js.map +2 -2
  3. package/dist/cjs/StyledSheet.js +132 -0
  4. package/dist/cjs/StyledSheet.js.map +6 -0
  5. package/dist/cjs/constants.js +3 -0
  6. package/dist/cjs/constants.js.map +1 -1
  7. package/dist/cjs/createSheet.js +446 -0
  8. package/dist/cjs/createSheet.js.map +6 -0
  9. package/dist/cjs/index.js +4 -0
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/useSheet.js +30 -0
  12. package/dist/cjs/useSheet.js.map +6 -0
  13. package/dist/cjs/useSheetChildren.js +4 -2
  14. package/dist/cjs/useSheetChildren.js.map +1 -1
  15. package/dist/esm/Sheet.js +20 -447
  16. package/dist/esm/Sheet.js.map +2 -2
  17. package/dist/esm/StyledSheet.js +100 -0
  18. package/dist/esm/StyledSheet.js.map +6 -0
  19. package/dist/esm/constants.js +2 -0
  20. package/dist/esm/constants.js.map +1 -1
  21. package/dist/esm/createSheet.js +448 -0
  22. package/dist/esm/createSheet.js.map +6 -0
  23. package/dist/esm/index.js +2 -0
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/useSheet.js +6 -0
  26. package/dist/esm/useSheet.js.map +6 -0
  27. package/dist/esm/useSheetChildren.js +4 -2
  28. package/dist/esm/useSheetChildren.js.map +1 -1
  29. package/dist/jsx/Sheet.js +20 -434
  30. package/dist/jsx/Sheet.js.map +2 -2
  31. package/dist/jsx/Sheet.mjs +20 -434
  32. package/dist/jsx/Sheet.mjs.map +2 -2
  33. package/dist/jsx/StyledSheet.js +100 -0
  34. package/dist/jsx/StyledSheet.js.map +6 -0
  35. package/dist/jsx/StyledSheet.mjs +100 -0
  36. package/dist/jsx/StyledSheet.mjs.map +6 -0
  37. package/dist/jsx/constants.js +2 -0
  38. package/dist/jsx/constants.js.map +1 -1
  39. package/dist/jsx/constants.mjs +2 -0
  40. package/dist/jsx/constants.mjs.map +1 -1
  41. package/dist/jsx/createSheet.js +438 -0
  42. package/dist/jsx/createSheet.js.map +6 -0
  43. package/dist/jsx/createSheet.mjs +438 -0
  44. package/dist/jsx/createSheet.mjs.map +6 -0
  45. package/dist/jsx/index.js +2 -0
  46. package/dist/jsx/index.js.map +1 -1
  47. package/dist/jsx/index.mjs +2 -0
  48. package/dist/jsx/index.mjs.map +1 -1
  49. package/dist/jsx/useSheet.js +6 -0
  50. package/dist/jsx/useSheet.js.map +6 -0
  51. package/dist/jsx/useSheet.mjs +6 -0
  52. package/dist/jsx/useSheet.mjs.map +6 -0
  53. package/dist/jsx/useSheetChildren.js +4 -2
  54. package/dist/jsx/useSheetChildren.js.map +1 -1
  55. package/dist/jsx/useSheetChildren.mjs +4 -2
  56. package/dist/jsx/useSheetChildren.mjs.map +1 -1
  57. package/package.json +13 -13
  58. package/src/Sheet.tsx +20 -543
  59. package/src/constants.tsx +1 -0
  60. package/src/createSheet.tsx +573 -0
  61. package/src/index.ts +2 -0
  62. package/src/useSheet.tsx +3 -0
  63. package/src/useSheetChildren.tsx +3 -1
  64. package/types/Sheet.d.ts +159 -80
  65. package/types/Sheet.d.ts.map +1 -1
  66. package/types/constants.d.ts +1 -0
  67. package/types/constants.d.ts.map +1 -1
  68. package/types/createSheet.d.ts +66 -0
  69. package/types/createSheet.d.ts.map +1 -0
  70. package/types/index.d.ts +2 -0
  71. package/types/index.d.ts.map +1 -1
  72. package/types/useSheet.d.ts +12 -0
  73. package/types/useSheet.d.ts.map +1 -0
  74. package/types/useSheetChildren.d.ts +1 -0
  75. package/types/useSheetChildren.d.ts.map +1 -1
@@ -0,0 +1,100 @@
1
+ import { styled } from "@tamagui/core";
2
+ import { ThemeableStack, XStack, YStack } from "@tamagui/stacks";
3
+ import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from "./constants";
4
+ import { createSheet } from "./createSheet";
5
+ import { createSheetScope } from "./SheetContext";
6
+ export * from "./types";
7
+ const Handle = styled(XStack, {
8
+ name: SHEET_HANDLE_NAME,
9
+ variants: {
10
+ open: {
11
+ true: {
12
+ pointerEvents: "auto"
13
+ },
14
+ false: {
15
+ opacity: 0,
16
+ pointerEvents: "none"
17
+ }
18
+ },
19
+ unstyled: {
20
+ false: {
21
+ height: 10,
22
+ borderRadius: 100,
23
+ backgroundColor: "$background",
24
+ zIndex: 10,
25
+ marginHorizontal: "35%",
26
+ marginBottom: "$2",
27
+ opacity: 0.5,
28
+ hoverStyle: {
29
+ opacity: 0.7
30
+ }
31
+ }
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ unstyled: false
36
+ }
37
+ });
38
+ const Overlay = styled(ThemeableStack, {
39
+ name: SHEET_OVERLAY_NAME,
40
+ variants: {
41
+ open: {
42
+ true: {
43
+ opacity: 1,
44
+ pointerEvents: "auto"
45
+ },
46
+ false: {
47
+ opacity: 0,
48
+ pointerEvents: "none"
49
+ }
50
+ },
51
+ unstyled: {
52
+ false: {
53
+ fullscreen: true,
54
+ position: "absolute",
55
+ backgrounded: true,
56
+ zIndex: 1e5
57
+ }
58
+ }
59
+ },
60
+ defaultVariants: {
61
+ unstyled: false
62
+ }
63
+ });
64
+ const Frame = styled(YStack, {
65
+ name: SHEET_NAME,
66
+ variants: {
67
+ unstyled: {
68
+ false: {
69
+ flex: 1,
70
+ backgroundColor: "$background",
71
+ borderTopLeftRadius: "$true",
72
+ borderTopRightRadius: "$true",
73
+ width: "100%",
74
+ maxHeight: "100%",
75
+ overflow: "hidden",
76
+ pointerEvents: "auto"
77
+ }
78
+ }
79
+ },
80
+ defaultVariants: {
81
+ unstyled: false
82
+ }
83
+ });
84
+ const Sheet = createSheet({
85
+ Frame,
86
+ Handle,
87
+ Overlay
88
+ });
89
+ const SheetOverlayFrame = Overlay;
90
+ const SheetHandleFrame = Handle;
91
+ export {
92
+ Frame,
93
+ Handle,
94
+ Overlay,
95
+ Sheet,
96
+ SheetHandleFrame,
97
+ SheetOverlayFrame,
98
+ createSheetScope
99
+ };
100
+ //# sourceMappingURL=StyledSheet.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/StyledSheet.tsx"],
4
+ "mappings": "AAAA,SAAS,cAAc;AACvB,SAAS,gBAAgB,QAAQ,cAAc;AAE/C,SAAS,mBAAmB,YAAY,0BAA0B;AAClE,SAAS,mBAAmB;AAE5B,SAAS,wBAAwB;AACjC,cAAc;AAMP,MAAM,SAAS,OAAO,QAAQ;AAAA,EACnC,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,eAAe;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,cAAc;AAAA,QACd,SAAS;AAAA,QAET,YAAY;AAAA,UACV,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAMM,MAAM,UAAU,OAAO,gBAAgB;AAAA,EAC5C,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,cAAc;AAAA,QACd,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAMM,MAAM,QAAQ,OAAO,QAAQ;AAAA,EAClC,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,qBAAqB;AAAA,QACrB,sBAAsB;AAAA,QACtB,OAAO;AAAA,QACP,WAAW;AAAA,QACX,UAAU;AAAA,QACV,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAEM,MAAM,QAAQ,YAAY;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,oBAAoB;AAG1B,MAAM,mBAAmB;",
5
+ "names": []
6
+ }
@@ -1,9 +1,11 @@
1
1
  const constants = {};
2
2
  const SHEET_NAME = "Sheet";
3
3
  const SHEET_HANDLE_NAME = "SheetHandle";
4
+ const SHEET_OVERLAY_NAME = "SheetOverlay";
4
5
  export {
5
6
  SHEET_HANDLE_NAME,
6
7
  SHEET_NAME,
8
+ SHEET_OVERLAY_NAME,
7
9
  constants
8
10
  };
9
11
  //# sourceMappingURL=constants.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.tsx"],
4
- "mappings": "AAAO,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;",
4
+ "mappings": "AAAO,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;",
5
5
  "names": []
6
6
  }
@@ -1,9 +1,11 @@
1
1
  const constants = {};
2
2
  const SHEET_NAME = "Sheet";
3
3
  const SHEET_HANDLE_NAME = "SheetHandle";
4
+ const SHEET_OVERLAY_NAME = "SheetOverlay";
4
5
  export {
5
6
  SHEET_HANDLE_NAME,
6
7
  SHEET_NAME,
8
+ SHEET_OVERLAY_NAME,
7
9
  constants
8
10
  };
9
11
  //# sourceMappingURL=constants.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.tsx"],
4
- "mappings": "AAAO,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;",
4
+ "mappings": "AAAO,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,438 @@
1
+ import { AdaptParentContext } from "@tamagui/adapt";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import {
4
+ Theme,
5
+ isClient,
6
+ isTouchable,
7
+ isWeb,
8
+ mergeEvent,
9
+ themeable,
10
+ useAnimationDriver,
11
+ useDidFinishSSR,
12
+ useEvent,
13
+ useIsomorphicLayoutEffect,
14
+ useThemeName,
15
+ withStaticProperties
16
+ } from "@tamagui/core";
17
+ import { Portal } from "@tamagui/portal";
18
+ import { RemoveScroll } from "@tamagui/remove-scroll";
19
+ import { useKeyboardVisible } from "@tamagui/use-keyboard-visible";
20
+ import {
21
+ createContext,
22
+ forwardRef,
23
+ useCallback,
24
+ useContext,
25
+ useEffect,
26
+ useMemo,
27
+ useRef,
28
+ useState
29
+ } from "react";
30
+ import {
31
+ Keyboard,
32
+ PanResponder,
33
+ Platform
34
+ } from "react-native";
35
+ import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from "./constants";
36
+ import { getNativeSheet } from "./nativeSheet";
37
+ import { SheetProvider, useSheetContext } from "./SheetContext";
38
+ import { SheetScrollView } from "./SheetScrollView";
39
+ import { useSheetChildren } from "./useSheetChildren";
40
+ import { useSheetController } from "./useSheetController";
41
+ import { useSheetOpenState } from "./useSheetOpenState";
42
+ import { useSheetProviderProps } from "./useSheetProviderProps";
43
+ import { useSheetSnapPoints } from "./useSheetSnapPoints";
44
+ const selectionStyleSheet = isClient ? document.createElement("style") : null;
45
+ if (selectionStyleSheet) {
46
+ document.head.appendChild(selectionStyleSheet);
47
+ }
48
+ function createSheet({ Handle, Frame, Overlay }) {
49
+ const SheetHandle = Handle.extractable(
50
+ ({ __scopeSheet, ...props }) => {
51
+ const context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet);
52
+ return <Handle
53
+ onPress={() => {
54
+ const max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);
55
+ const nextPos = (context.position + 1) % max;
56
+ context.setPosition(nextPos);
57
+ }}
58
+ open={context.open}
59
+ {...props}
60
+ />;
61
+ }
62
+ );
63
+ const SheetOverlay = Overlay.extractable(
64
+ ({ __scopeSheet, ...props }) => {
65
+ const context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);
66
+ return <Overlay
67
+ open={context.open && !context.hidden}
68
+ {...props}
69
+ onPress={mergeEvent(
70
+ props.onPress,
71
+ context.dismissOnOverlayPress ? () => {
72
+ context.setOpen(false);
73
+ } : void 0
74
+ )}
75
+ />;
76
+ }
77
+ );
78
+ const SheetFrame = Frame.extractable(
79
+ forwardRef(
80
+ ({ __scopeSheet, ...props }, forwardedRef) => {
81
+ const context = useSheetContext(SHEET_NAME, __scopeSheet);
82
+ const composedContentRef = useComposedRefs(forwardedRef, context.contentRef);
83
+ return <Frame ref={composedContentRef} {...props} />;
84
+ }
85
+ )
86
+ );
87
+ const Sheet = forwardRef(function Sheet2(props, ref) {
88
+ const hydrated = useDidFinishSSR();
89
+ const { isShowingNonSheet } = useSheetController();
90
+ let SheetImplementation = SheetImplementationCustom;
91
+ if (props.native && Platform.OS === "ios") {
92
+ if (process.env.TAMAGUI_TARGET === "native") {
93
+ const impl = getNativeSheet("ios");
94
+ if (impl) {
95
+ SheetImplementation = impl;
96
+ }
97
+ }
98
+ }
99
+ if (isShowingNonSheet || !hydrated) {
100
+ return null;
101
+ }
102
+ return <SheetImplementation ref={ref} {...props} />;
103
+ });
104
+ const components = {
105
+ Frame: SheetFrame,
106
+ Overlay: SheetOverlay,
107
+ Handle: SheetHandle,
108
+ ScrollView: SheetScrollView
109
+ };
110
+ const Controlled = withStaticProperties(Sheet, components);
111
+ return withStaticProperties(Sheet, {
112
+ ...components,
113
+ Controlled
114
+ });
115
+ }
116
+ const HIDDEN_SIZE = 1e4;
117
+ const ParentSheetContext = createContext({
118
+ zIndex: 1e5
119
+ });
120
+ const SheetImplementationCustom = themeable(
121
+ forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
122
+ const parentSheet = useContext(ParentSheetContext);
123
+ const {
124
+ animationConfig,
125
+ forceRemoveScrollEnabled = null,
126
+ disableDrag: disableDragProp,
127
+ modal = false,
128
+ zIndex = parentSheet.zIndex + 1,
129
+ moveOnKeyboardChange = false,
130
+ portalProps
131
+ } = props;
132
+ const state = useSheetOpenState(props);
133
+ const providerProps = useSheetProviderProps(props, state);
134
+ const { positions, maxSnapPoint, screenSize } = useSheetSnapPoints(providerProps);
135
+ const { position, contentRef, setPosition, scrollBridge, frameSize, setFrameSize } = providerProps;
136
+ const { open, isHidden, controller } = state;
137
+ const {
138
+ frameComponent,
139
+ handleComponent,
140
+ bottomCoverComponent,
141
+ overlayComponent,
142
+ rest
143
+ } = useSheetChildren(props.children);
144
+ const sheetRef = useRef(null);
145
+ const ref = useComposedRefs(forwardedRef, sheetRef);
146
+ const driver = useAnimationDriver();
147
+ if (!driver) {
148
+ throw new Error("Must set animations in tamagui.config.ts");
149
+ }
150
+ const disableDrag = disableDragProp ?? controller?.disableDrag;
151
+ const keyboardIsVisible = useKeyboardVisible();
152
+ const themeName = useThemeName();
153
+ const { useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle } = driver;
154
+ const animatedNumber = useAnimatedNumber(HIDDEN_SIZE);
155
+ const at = useRef(0);
156
+ useAnimatedNumberReaction(
157
+ {
158
+ value: animatedNumber,
159
+ hostRef: sheetRef
160
+ },
161
+ (value) => {
162
+ if (!driver.isReactNative)
163
+ return;
164
+ at.current = value;
165
+ scrollBridge.paneY = value;
166
+ }
167
+ );
168
+ function stopSpring() {
169
+ animatedNumber.stop();
170
+ if (scrollBridge.onFinishAnimate) {
171
+ scrollBridge.onFinishAnimate();
172
+ scrollBridge.onFinishAnimate = void 0;
173
+ }
174
+ }
175
+ const [opacity, setOpacity] = useState(open ? 1 : 0);
176
+ if (open && opacity === 0) {
177
+ setOpacity(1);
178
+ }
179
+ useEffect(() => {
180
+ if (!open) {
181
+ const tm = setTimeout(() => {
182
+ setOpacity(0);
183
+ }, 400);
184
+ return () => {
185
+ clearTimeout(tm);
186
+ };
187
+ }
188
+ }, [open]);
189
+ const animateTo = useEvent((position2) => {
190
+ const current = animatedNumber.getValue();
191
+ if (isHidden && open)
192
+ return;
193
+ if (!current)
194
+ return;
195
+ if (frameSize === 0)
196
+ return;
197
+ const hiddenValue = frameSize === 0 ? HIDDEN_SIZE : screenSize;
198
+ const toValue = isHidden || position2 === -1 ? hiddenValue : positions[position2];
199
+ if (at.current === toValue)
200
+ return;
201
+ stopSpring();
202
+ if (isHidden) {
203
+ animatedNumber.setValue(toValue, {
204
+ type: "timing",
205
+ duration: 0
206
+ });
207
+ at.current = toValue;
208
+ return;
209
+ }
210
+ const overshootClamping = at.current === HIDDEN_SIZE;
211
+ animatedNumber.setValue(toValue, {
212
+ ...animationConfig,
213
+ type: "spring",
214
+ overshootClamping
215
+ });
216
+ });
217
+ useIsomorphicLayoutEffect(() => {
218
+ animateTo(position);
219
+ }, [isHidden, frameSize, position, animateTo]);
220
+ const [isShowingInnerSheet, setIsShowingInnerSheet] = useState(false);
221
+ const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet;
222
+ const parentSheetContext = useContext(SheetInsideSheetContext);
223
+ const onInnerSheet = useCallback((hasChild) => {
224
+ setIsShowingInnerSheet(hasChild);
225
+ }, []);
226
+ const panResponder = useMemo(
227
+ () => {
228
+ if (disableDrag)
229
+ return;
230
+ if (!frameSize)
231
+ return;
232
+ if (isShowingInnerSheet)
233
+ return;
234
+ const minY = positions[0];
235
+ scrollBridge.paneMinY = minY;
236
+ let startY = at.current;
237
+ function makeUnselectable(val) {
238
+ if (!selectionStyleSheet)
239
+ return;
240
+ if (!val) {
241
+ selectionStyleSheet.innerText = "";
242
+ } else {
243
+ selectionStyleSheet.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
244
+ }
245
+ }
246
+ const release = ({ vy, dragAt }) => {
247
+ isExternalDrag = false;
248
+ previouslyScrolling = false;
249
+ makeUnselectable(false);
250
+ const at2 = dragAt + startY;
251
+ const end = at2 + frameSize * vy * 0.2;
252
+ let closestPoint = 0;
253
+ let dist = Infinity;
254
+ for (let i = 0; i < positions.length; i++) {
255
+ const position2 = positions[i];
256
+ const curDist = end > position2 ? end - position2 : position2 - end;
257
+ if (curDist < dist) {
258
+ dist = curDist;
259
+ closestPoint = i;
260
+ }
261
+ }
262
+ setPosition(closestPoint);
263
+ animateTo(closestPoint);
264
+ };
265
+ const finish = (_e, state2) => {
266
+ release({
267
+ vy: state2.vy,
268
+ dragAt: state2.dy
269
+ });
270
+ };
271
+ let previouslyScrolling = false;
272
+ const onMoveShouldSet = (_e, { dy }) => {
273
+ const isScrolled = scrollBridge.y !== 0;
274
+ const isDraggingUp = dy < 0;
275
+ const isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
276
+ if (isScrolled) {
277
+ previouslyScrolling = true;
278
+ return false;
279
+ }
280
+ if (isNearTop) {
281
+ if (!isScrolled && isDraggingUp) {
282
+ return false;
283
+ }
284
+ }
285
+ return Math.abs(dy) > 5;
286
+ };
287
+ const grant = () => {
288
+ makeUnselectable(true);
289
+ stopSpring();
290
+ startY = at.current;
291
+ };
292
+ let isExternalDrag = false;
293
+ scrollBridge.drag = (dy) => {
294
+ if (!isExternalDrag) {
295
+ isExternalDrag = true;
296
+ grant();
297
+ }
298
+ const to = dy + startY;
299
+ animatedNumber.setValue(resisted(to, minY), { type: "direct" });
300
+ };
301
+ scrollBridge.release = release;
302
+ return PanResponder.create({
303
+ onMoveShouldSetPanResponder: onMoveShouldSet,
304
+ onPanResponderGrant: grant,
305
+ onPanResponderMove: (_e, { dy }) => {
306
+ const toFull = dy + startY;
307
+ const to = resisted(toFull, minY);
308
+ animatedNumber.setValue(to, { type: "direct" });
309
+ },
310
+ onPanResponderEnd: finish,
311
+ onPanResponderTerminate: finish,
312
+ onPanResponderRelease: finish
313
+ });
314
+ },
315
+ // eslint-disable-next-line react-hooks/exhaustive-deps
316
+ [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]
317
+ );
318
+ const animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
319
+ "worklet";
320
+ const translateY = frameSize === 0 ? HIDDEN_SIZE : val;
321
+ return {
322
+ transform: [{ translateY }]
323
+ };
324
+ });
325
+ const sizeBeforeKeyboard = useRef(null);
326
+ useEffect(() => {
327
+ if (isWeb || !moveOnKeyboardChange)
328
+ return;
329
+ const keyboardDidShowListener = Keyboard.addListener("keyboardDidShow", (e) => {
330
+ if (sizeBeforeKeyboard.current !== null)
331
+ return;
332
+ sizeBeforeKeyboard.current = animatedNumber.getValue();
333
+ animatedNumber.setValue(
334
+ Math.max(animatedNumber.getValue() - e.endCoordinates.height, 0)
335
+ );
336
+ });
337
+ const keyboardDidHideListener = Keyboard.addListener("keyboardDidHide", () => {
338
+ if (sizeBeforeKeyboard.current === null)
339
+ return;
340
+ animatedNumber.setValue(sizeBeforeKeyboard.current);
341
+ sizeBeforeKeyboard.current = null;
342
+ });
343
+ return () => {
344
+ keyboardDidHideListener.remove();
345
+ keyboardDidShowListener.remove();
346
+ };
347
+ }, []);
348
+ const AnimatedView = driver["NumberView"] ?? driver.View;
349
+ useIsomorphicLayoutEffect(() => {
350
+ if (!(parentSheetContext && open))
351
+ return;
352
+ parentSheetContext(true);
353
+ return () => {
354
+ parentSheetContext(false);
355
+ };
356
+ }, [parentSheetContext, open]);
357
+ const nextParentContext = useMemo(
358
+ () => ({
359
+ zIndex
360
+ }),
361
+ [zIndex]
362
+ );
363
+ const handleLayout = useCallback(
364
+ (e) => {
365
+ let next = e.nativeEvent?.layout.height;
366
+ if (isWeb && isTouchable && !open) {
367
+ next += 100;
368
+ }
369
+ if (!next)
370
+ return;
371
+ setFrameSize(() => next);
372
+ },
373
+ [keyboardIsVisible]
374
+ );
375
+ const removeScrollEnabled = forceRemoveScrollEnabled ?? (open && modal);
376
+ const contents = <ParentSheetContext.Provider value={nextParentContext}><SheetProvider {...providerProps}>
377
+ {shouldHideParentSheet ? null : overlayComponent}
378
+ <AnimatedView
379
+ ref={ref}
380
+ {...panResponder?.panHandlers}
381
+ onLayout={handleLayout}
382
+ pointerEvents={open && !shouldHideParentSheet ? "auto" : "none"}
383
+ animation={props.animation}
384
+ style={[
385
+ {
386
+ position: "absolute",
387
+ zIndex,
388
+ width: "100%",
389
+ height: `${maxSnapPoint}%`,
390
+ opacity
391
+ },
392
+ animatedStyle
393
+ ]}
394
+ >
395
+ {handleComponent}
396
+ {bottomCoverComponent}
397
+ {
398
+ /* somewhat temporary we need to move to properly support children */
399
+ }
400
+ {rest}
401
+ {
402
+ /* @ts-ignore */
403
+ }
404
+ <RemoveScroll
405
+ forwardProps
406
+ enabled={removeScrollEnabled}
407
+ allowPinchZoom
408
+ shards={[contentRef]}
409
+ removeScrollBar={false}
410
+ >{frameComponent}</RemoveScroll>
411
+ </AnimatedView>
412
+ </SheetProvider></ParentSheetContext.Provider>;
413
+ const adaptContext = useContext(AdaptParentContext);
414
+ if (modal) {
415
+ const modalContents = <Portal zIndex={zIndex} {...portalProps}><Theme forceClassName name={themeName}><AdaptParentContext.Provider value={adaptContext}>{contents}</AdaptParentContext.Provider></Theme></Portal>;
416
+ if (isWeb) {
417
+ return modalContents;
418
+ }
419
+ return <SheetInsideSheetContext.Provider value={onInnerSheet}>{modalContents}</SheetInsideSheetContext.Provider>;
420
+ }
421
+ return contents;
422
+ })
423
+ );
424
+ const SheetInsideSheetContext = createContext(null);
425
+ function resisted(y, minY, maxOverflow = 25) {
426
+ if (y < minY) {
427
+ const past = minY - y;
428
+ const pctPast = Math.min(maxOverflow, past) / maxOverflow;
429
+ const diminishBy = 1.1 - Math.pow(0.1, pctPast);
430
+ const extra = -diminishBy * maxOverflow;
431
+ return minY + extra;
432
+ }
433
+ return y;
434
+ }
435
+ export {
436
+ createSheet
437
+ };
438
+ //# sourceMappingURL=createSheet.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createSheet.tsx"],
4
+ "mappings": "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",
5
+ "names": ["Sheet", "SheetImplementationCustom", "position", "at", "state"]
6
+ }