@tamagui/sheet 1.72.3 → 1.73.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 (111) hide show
  1. package/dist/cjs/SheetImplementationCustom.js +7 -4
  2. package/dist/cjs/SheetImplementationCustom.js.map +1 -1
  3. package/dist/cjs/SheetImplementationCustom.native.js +7 -4
  4. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  5. package/dist/cjs/useSheetProviderProps.js +4 -2
  6. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  7. package/dist/cjs/useSheetProviderProps.native.js +4 -2
  8. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  9. package/dist/esm/SheetImplementationCustom.js +8 -5
  10. package/dist/esm/SheetImplementationCustom.js.map +1 -1
  11. package/dist/esm/useSheetProviderProps.js +5 -3
  12. package/dist/esm/useSheetProviderProps.js.map +1 -1
  13. package/dist/jsx/SheetImplementationCustom.js +8 -5
  14. package/dist/jsx/SheetImplementationCustom.js.map +1 -1
  15. package/dist/jsx/SheetImplementationCustom.native.js +8 -5
  16. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  17. package/dist/jsx/useSheetProviderProps.js +5 -3
  18. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  19. package/dist/jsx/useSheetProviderProps.native.js +5 -3
  20. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  21. package/package.json +14 -14
  22. package/src/SheetImplementationCustom.tsx +12 -11
  23. package/src/useSheetProviderProps.tsx +3 -3
  24. package/types/Sheet.d.ts +1288 -88
  25. package/types/Sheet.d.ts.map +1 -1
  26. package/types/SheetImplementationCustom.d.ts.map +1 -1
  27. package/types/useSheetProviderProps.d.ts.map +1 -1
  28. package/dist/cjs/useSheetChildren.js +0 -80
  29. package/dist/cjs/useSheetChildren.js.map +0 -6
  30. package/dist/cjs/useSheetSnapPoints.js +0 -77
  31. package/dist/cjs/useSheetSnapPoints.js.map +0 -6
  32. package/dist/esm/Sheet.mjs +0 -95
  33. package/dist/esm/Sheet.mjs.map +0 -6
  34. package/dist/esm/SheetContext.mjs +0 -13
  35. package/dist/esm/SheetContext.mjs.map +0 -6
  36. package/dist/esm/SheetController.mjs +0 -24
  37. package/dist/esm/SheetController.mjs.map +0 -6
  38. package/dist/esm/SheetImplementationCustom.mjs +0 -296
  39. package/dist/esm/SheetImplementationCustom.mjs.map +0 -6
  40. package/dist/esm/SheetScrollView.mjs +0 -52
  41. package/dist/esm/SheetScrollView.mjs.map +0 -6
  42. package/dist/esm/constants.mjs +0 -11
  43. package/dist/esm/constants.mjs.map +0 -6
  44. package/dist/esm/contexts.mjs +0 -9
  45. package/dist/esm/contexts.mjs.map +0 -6
  46. package/dist/esm/createSheet.mjs +0 -139
  47. package/dist/esm/createSheet.mjs.map +0 -6
  48. package/dist/esm/helpers.mjs +0 -11
  49. package/dist/esm/helpers.mjs.map +0 -6
  50. package/dist/esm/index.mjs +0 -10
  51. package/dist/esm/index.mjs.map +0 -6
  52. package/dist/esm/nativeSheet.mjs +0 -39
  53. package/dist/esm/nativeSheet.mjs.map +0 -6
  54. package/dist/esm/types.mjs +0 -1
  55. package/dist/esm/types.mjs.map +0 -6
  56. package/dist/esm/useSheet.mjs +0 -6
  57. package/dist/esm/useSheet.mjs.map +0 -6
  58. package/dist/esm/useSheetChildren.js +0 -46
  59. package/dist/esm/useSheetChildren.js.map +0 -6
  60. package/dist/esm/useSheetController.mjs +0 -17
  61. package/dist/esm/useSheetController.mjs.map +0 -6
  62. package/dist/esm/useSheetOffscreenSize.mjs +0 -27
  63. package/dist/esm/useSheetOffscreenSize.mjs.map +0 -6
  64. package/dist/esm/useSheetOpenState.mjs +0 -23
  65. package/dist/esm/useSheetOpenState.mjs.map +0 -6
  66. package/dist/esm/useSheetProviderProps.mjs +0 -90
  67. package/dist/esm/useSheetProviderProps.mjs.map +0 -6
  68. package/dist/esm/useSheetSnapPoints.js +0 -53
  69. package/dist/esm/useSheetSnapPoints.js.map +0 -6
  70. package/dist/jsx/Sheet.mjs +0 -99
  71. package/dist/jsx/Sheet.mjs.map +0 -6
  72. package/dist/jsx/SheetContext.mjs +0 -14
  73. package/dist/jsx/SheetContext.mjs.map +0 -6
  74. package/dist/jsx/SheetController.mjs +0 -24
  75. package/dist/jsx/SheetController.mjs.map +0 -6
  76. package/dist/jsx/SheetImplementationCustom.mjs +0 -351
  77. package/dist/jsx/SheetImplementationCustom.mjs.map +0 -6
  78. package/dist/jsx/SheetScrollView.mjs +0 -65
  79. package/dist/jsx/SheetScrollView.mjs.map +0 -6
  80. package/dist/jsx/constants.mjs +0 -21
  81. package/dist/jsx/constants.mjs.map +0 -6
  82. package/dist/jsx/contexts.mjs +0 -10
  83. package/dist/jsx/contexts.mjs.map +0 -6
  84. package/dist/jsx/createSheet.mjs +0 -151
  85. package/dist/jsx/createSheet.mjs.map +0 -6
  86. package/dist/jsx/helpers.mjs +0 -14
  87. package/dist/jsx/helpers.mjs.map +0 -6
  88. package/dist/jsx/index.mjs +0 -10
  89. package/dist/jsx/index.mjs.map +0 -6
  90. package/dist/jsx/nativeSheet.mjs +0 -46
  91. package/dist/jsx/nativeSheet.mjs.map +0 -6
  92. package/dist/jsx/types.mjs +0 -1
  93. package/dist/jsx/types.mjs.map +0 -6
  94. package/dist/jsx/useSheet.mjs +0 -6
  95. package/dist/jsx/useSheet.mjs.map +0 -6
  96. package/dist/jsx/useSheetChildren.js +0 -45
  97. package/dist/jsx/useSheetChildren.js.map +0 -6
  98. package/dist/jsx/useSheetChildren.mjs +0 -45
  99. package/dist/jsx/useSheetChildren.mjs.map +0 -6
  100. package/dist/jsx/useSheetController.mjs +0 -20
  101. package/dist/jsx/useSheetController.mjs.map +0 -6
  102. package/dist/jsx/useSheetOffscreenSize.mjs +0 -15
  103. package/dist/jsx/useSheetOffscreenSize.mjs.map +0 -6
  104. package/dist/jsx/useSheetOpenState.mjs +0 -26
  105. package/dist/jsx/useSheetOpenState.mjs.map +0 -6
  106. package/dist/jsx/useSheetProviderProps.mjs +0 -95
  107. package/dist/jsx/useSheetProviderProps.mjs.map +0 -6
  108. package/dist/jsx/useSheetSnapPoints.js +0 -53
  109. package/dist/jsx/useSheetSnapPoints.js.map +0 -6
  110. package/dist/jsx/useSheetSnapPoints.mjs +0 -53
  111. package/dist/jsx/useSheetSnapPoints.mjs.map +0 -6
@@ -1,53 +0,0 @@
1
- import { useEffect, useMemo } from "react";
2
- const useSheetSnapPoints = ({
3
- position,
4
- setPosition,
5
- dismissOnSnapToBottom,
6
- snapPoints,
7
- setPositionImmediate,
8
- open,
9
- frameSize
10
- }) => {
11
- if (process.env.NODE_ENV === "development") {
12
- if (snapPoints.some((p) => p < 0 || p > 100)) {
13
- console.warn(
14
- "\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
15
- );
16
- }
17
- }
18
- if (open && dismissOnSnapToBottom && position === snapPoints.length - 1) {
19
- setPositionImmediate(0);
20
- }
21
- const shouldSetPositionOpen = open && position < 0;
22
- useEffect(() => {
23
- if (shouldSetPositionOpen) {
24
- setPosition(0);
25
- }
26
- }, [setPosition, shouldSetPositionOpen]);
27
- const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
28
- const screenSize = frameSize / (maxSnapPoint / 100);
29
- const positions = useMemo(
30
- () => snapPoints.map((point) => getPercentSize(point, screenSize)),
31
- [frameSize, snapPoints]
32
- );
33
- return {
34
- positions,
35
- maxSnapPoint,
36
- screenSize
37
- };
38
- };
39
- function getPercentSize(point, screenSize) {
40
- if (!screenSize)
41
- return 0;
42
- if (point === void 0) {
43
- console.warn("No snapPoint");
44
- return 0;
45
- }
46
- const pct = point / 100;
47
- const next = Math.round(screenSize - pct * screenSize);
48
- return next;
49
- }
50
- export {
51
- useSheetSnapPoints
52
- };
53
- //# sourceMappingURL=useSheetSnapPoints.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/useSheetSnapPoints.tsx"],
4
- "mappings": "AAAA,SAAS,WAAW,eAAe;AAI5B,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAyB;AACvB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,WAAW,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,GAAG;AAC5C,cAAQ;AAAA,QACN;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,QAAQ,yBAAyB,aAAa,WAAW,SAAS,GAAG;AACvE,yBAAqB,CAAC;AAAA,EACxB;AAGA,QAAM,wBAAwB,QAAQ,WAAW;AACjD,YAAU,MAAM;AACd,QAAI,uBAAuB;AACzB,kBAAY,CAAC;AAAA,IACf;AAAA,EACF,GAAG,CAAC,aAAa,qBAAqB,CAAC;AAEvC,QAAM,eAAe,WAAW,OAAO,CAAC,MAAM,QAAQ,KAAK,IAAI,MAAM,GAAG,CAAC;AACzE,QAAM,aAAa,aAAa,eAAe;AAE/C,QAAM,YAAY;AAAA,IAChB,MAAM,WAAW,IAAI,CAAC,UAAU,eAAe,OAAO,UAAU,CAAC;AAAA,IACjE,CAAC,WAAW,UAAU;AAAA,EACxB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,eAAe,OAAgB,YAAqB;AAC3D,MAAI,CAAC;AAAY,WAAO;AACxB,MAAI,UAAU,QAAW;AACvB,YAAQ,KAAK,cAAc;AAC3B,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ;AACpB,QAAM,OAAO,KAAK,MAAM,aAAa,MAAM,UAAU;AAErD,SAAO;AACT;",
5
- "names": []
6
- }
@@ -1,99 +0,0 @@
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 - 1
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
- }
77
- }
78
- },
79
- defaultVariants: {
80
- unstyled: false
81
- }
82
- });
83
- const Sheet = createSheet({
84
- Frame,
85
- Handle,
86
- Overlay
87
- });
88
- const SheetOverlayFrame = Overlay;
89
- const SheetHandleFrame = Handle;
90
- export {
91
- Frame,
92
- Handle,
93
- Overlay,
94
- Sheet,
95
- SheetHandleFrame,
96
- SheetOverlayFrame,
97
- createSheetScope
98
- };
99
- //# sourceMappingURL=Sheet.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/Sheet.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,MAAU;AAAA,MACpB;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,MACZ;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,14 +0,0 @@
1
- import { createContextScope } from "@tamagui/create-context";
2
- import { SHEET_NAME } from "./constants";
3
- const [createSheetContext, createSheetScope] = createContextScope(SHEET_NAME);
4
- const [SheetProvider, useSheetContext] = createSheetContext(
5
- SHEET_NAME,
6
- {}
7
- );
8
- export {
9
- SheetProvider,
10
- createSheetContext,
11
- createSheetScope,
12
- useSheetContext
13
- };
14
- //# sourceMappingURL=SheetContext.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SheetContext.tsx"],
4
- "mappings": "AAAA,SAAS,0BAA0B;AAEnC,SAAS,kBAAkB;AAGpB,MAAM,CAAC,oBAAoB,gBAAgB,IAAI,mBAAmB,UAAU;AAE5E,MAAM,CAAC,eAAe,eAAe,IAAI;AAAA,EAC9C;AAAA,EACA,CAAC;AACH;",
5
- "names": []
6
- }
@@ -1,24 +0,0 @@
1
- import { useEvent } from "@tamagui/core";
2
- import { useMemo } from "react";
3
- import { SheetControllerContext } from "./useSheetController";
4
- const SheetController = ({
5
- children,
6
- onOpenChange: onOpenChangeProp,
7
- ...value
8
- }) => {
9
- const onOpenChange = useEvent(onOpenChangeProp);
10
- const memoValue = useMemo(
11
- () => ({
12
- open: value.open,
13
- hidden: value.hidden,
14
- disableDrag: value.disableDrag,
15
- onOpenChange
16
- }),
17
- [onOpenChange, value.open, value.hidden, value.disableDrag]
18
- );
19
- return <SheetControllerContext.Provider value={memoValue}>{children}</SheetControllerContext.Provider>;
20
- };
21
- export {
22
- SheetController
23
- };
24
- //# sourceMappingURL=SheetController.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SheetController.tsx"],
4
- "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAgB,eAAe;AAE/B,SAAS,8BAA2D;AAE7D,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,MAA6E;AAC3E,QAAM,eAAe,SAAS,gBAAgB;AAE9C,QAAM,YAAY;AAAA,IAChB,OAAO;AAAA,MACL,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,aAAa,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,cAAc,MAAM,MAAM,MAAM,QAAQ,MAAM,WAAW;AAAA,EAC5D;AAEA,SACE,CAAC,uBAAuB,SAAS,OAAO,YACrC,SACH,EAFC,uBAAuB;AAI5B;",
5
- "names": []
6
- }
@@ -1,351 +0,0 @@
1
- import { AdaptParentContext } from "@tamagui/adapt";
2
- import { useComposedRefs } from "@tamagui/compose-refs";
3
- import {
4
- Theme,
5
- isTouchable,
6
- isWeb,
7
- themeable,
8
- useAnimationDriver,
9
- useEvent,
10
- useIsomorphicLayoutEffect,
11
- useThemeName
12
- } from "@tamagui/core";
13
- import { Portal } from "@tamagui/portal";
14
- import { useKeyboardVisible } from "@tamagui/use-keyboard-visible";
15
- import {
16
- forwardRef,
17
- useCallback,
18
- useContext,
19
- useEffect,
20
- useMemo,
21
- useRef,
22
- useState
23
- } from "react";
24
- import {
25
- Keyboard,
26
- PanResponder
27
- } from "react-native";
28
- import { HIDDEN_SIZE, SHEET_HIDDEN_STYLESHEET } from "./constants";
29
- import { ParentSheetContext, SheetInsideSheetContext } from "./contexts";
30
- import { resisted } from "./helpers";
31
- import { SheetProvider } from "./SheetContext";
32
- import { useSheetOpenState } from "./useSheetOpenState";
33
- import { useSheetProviderProps } from "./useSheetProviderProps";
34
- const SheetImplementationCustom = themeable(
35
- forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
36
- const parentSheet = useContext(ParentSheetContext);
37
- const {
38
- animationConfig,
39
- modal = false,
40
- zIndex = parentSheet.zIndex + 1,
41
- moveOnKeyboardChange = false,
42
- unmountChildrenWhenHidden = false,
43
- portalProps
44
- } = props;
45
- const keyboardIsVisible = useKeyboardVisible();
46
- const state = useSheetOpenState(props);
47
- const [overlayComponent, setOverlayComponent] = useState(null);
48
- const providerProps = useSheetProviderProps(props, state, {
49
- onOverlayComponent: setOverlayComponent
50
- });
51
- const {
52
- frameSize,
53
- setFrameSize,
54
- snapPoints,
55
- position,
56
- setPosition,
57
- scrollBridge,
58
- screenSize,
59
- maxSnapPoint
60
- } = providerProps;
61
- const { open, controller, isHidden } = state;
62
- const sheetRef = useRef(null);
63
- const ref = useComposedRefs(forwardedRef, sheetRef);
64
- const [isShowingInnerSheet, setIsShowingInnerSheet] = useState(false);
65
- const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet;
66
- const parentSheetContext = useContext(SheetInsideSheetContext);
67
- const onInnerSheet = useCallback((hasChild) => {
68
- setIsShowingInnerSheet(hasChild);
69
- }, []);
70
- const positions = useMemo(
71
- () => snapPoints.map((point) => getPercentSize(point, screenSize)),
72
- [frameSize, snapPoints]
73
- );
74
- const driver = useAnimationDriver();
75
- const { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = driver;
76
- const AnimatedView = driver["NumberView"] ?? driver.View;
77
- useIsomorphicLayoutEffect(() => {
78
- if (!(parentSheetContext && open))
79
- return;
80
- parentSheetContext(true);
81
- return () => {
82
- parentSheetContext(false);
83
- };
84
- }, [parentSheetContext, open]);
85
- const nextParentContext = useMemo(
86
- () => ({
87
- zIndex
88
- }),
89
- [zIndex]
90
- );
91
- const animatedNumber = useAnimatedNumber(HIDDEN_SIZE);
92
- const at = useRef(HIDDEN_SIZE);
93
- useAnimatedNumberReaction(
94
- {
95
- value: animatedNumber,
96
- hostRef: sheetRef
97
- },
98
- useCallback((value) => {
99
- if (!driver.isReactNative)
100
- return;
101
- at.current = value;
102
- scrollBridge.paneY = value;
103
- }, [])
104
- );
105
- function stopSpring() {
106
- animatedNumber.stop();
107
- if (scrollBridge.onFinishAnimate) {
108
- scrollBridge.onFinishAnimate();
109
- scrollBridge.onFinishAnimate = void 0;
110
- }
111
- }
112
- const hasntMeasured = at.current === HIDDEN_SIZE;
113
- const animateTo = useEvent((position2) => {
114
- if (frameSize === 0)
115
- return;
116
- let toValue = isHidden || position2 === -1 ? screenSize : positions[position2];
117
- if (at.current === toValue)
118
- return;
119
- at.current = toValue;
120
- stopSpring();
121
- if (hasntMeasured || isHidden) {
122
- animatedNumber.setValue(screenSize, {
123
- type: "timing",
124
- duration: 0
125
- });
126
- if (isHidden) {
127
- return;
128
- }
129
- toValue = positions[position2];
130
- at.current = toValue;
131
- }
132
- animatedNumber.setValue(toValue, {
133
- ...animationConfig,
134
- type: "spring"
135
- });
136
- });
137
- useIsomorphicLayoutEffect(() => {
138
- if (screenSize && hasntMeasured) {
139
- animatedNumber.setValue(screenSize, {
140
- type: "timing",
141
- duration: 0
142
- });
143
- }
144
- }, [hasntMeasured, screenSize]);
145
- useIsomorphicLayoutEffect(() => {
146
- if (!frameSize || isHidden || hasntMeasured && !open) {
147
- return;
148
- }
149
- animateTo(position);
150
- }, [isHidden, frameSize, open, position]);
151
- const disableDrag = props.disableDrag ?? controller?.disableDrag;
152
- const themeName = useThemeName();
153
- const panResponder = useMemo(
154
- () => {
155
- if (disableDrag)
156
- return;
157
- if (!frameSize)
158
- return;
159
- if (isShowingInnerSheet)
160
- return;
161
- const minY = positions[0];
162
- scrollBridge.paneMinY = minY;
163
- let startY = at.current;
164
- function makeUnselectable(val) {
165
- if (!SHEET_HIDDEN_STYLESHEET)
166
- return;
167
- if (!val) {
168
- SHEET_HIDDEN_STYLESHEET.innerText = "";
169
- } else {
170
- SHEET_HIDDEN_STYLESHEET.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
171
- }
172
- }
173
- const release = ({ vy, dragAt }) => {
174
- isExternalDrag = false;
175
- previouslyScrolling = false;
176
- makeUnselectable(false);
177
- const at2 = dragAt + startY;
178
- const end = at2 + frameSize * vy * 0.2;
179
- let closestPoint = 0;
180
- let dist = Infinity;
181
- for (let i = 0; i < positions.length; i++) {
182
- const position2 = positions[i];
183
- const curDist = end > position2 ? end - position2 : position2 - end;
184
- if (curDist < dist) {
185
- dist = curDist;
186
- closestPoint = i;
187
- }
188
- }
189
- setPosition(closestPoint);
190
- animateTo(closestPoint);
191
- };
192
- const finish = (_e, state2) => {
193
- release({
194
- vy: state2.vy,
195
- dragAt: state2.dy
196
- });
197
- };
198
- let previouslyScrolling = false;
199
- const onMoveShouldSet = (_e, { dy }) => {
200
- const isScrolled = scrollBridge.y !== 0;
201
- const isDraggingUp = dy < 0;
202
- const isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
203
- if (isScrolled) {
204
- previouslyScrolling = true;
205
- return false;
206
- }
207
- if (isNearTop) {
208
- if (!isScrolled && isDraggingUp) {
209
- return false;
210
- }
211
- }
212
- return Math.abs(dy) > 5;
213
- };
214
- const grant = () => {
215
- makeUnselectable(true);
216
- stopSpring();
217
- startY = at.current;
218
- };
219
- let isExternalDrag = false;
220
- scrollBridge.drag = (dy) => {
221
- if (!isExternalDrag) {
222
- isExternalDrag = true;
223
- grant();
224
- }
225
- const to = dy + startY;
226
- animatedNumber.setValue(resisted(to, minY), { type: "direct" });
227
- };
228
- scrollBridge.release = release;
229
- return PanResponder.create({
230
- onMoveShouldSetPanResponder: onMoveShouldSet,
231
- onPanResponderGrant: grant,
232
- onPanResponderMove: (_e, { dy }) => {
233
- const toFull = dy + startY;
234
- const to = resisted(toFull, minY);
235
- animatedNumber.setValue(to, { type: "direct" });
236
- },
237
- onPanResponderEnd: finish,
238
- onPanResponderTerminate: finish,
239
- onPanResponderRelease: finish
240
- });
241
- },
242
- // eslint-disable-next-line react-hooks/exhaustive-deps
243
- [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]
244
- );
245
- const handleAnimationViewLayout = useCallback(
246
- (e) => {
247
- const next = (() => {
248
- let _ = e.nativeEvent?.layout.height;
249
- if (isWeb && isTouchable && !open) {
250
- _ += 100;
251
- }
252
- return _;
253
- })();
254
- if (!next)
255
- return;
256
- setFrameSize(next);
257
- },
258
- [keyboardIsVisible]
259
- );
260
- const animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
261
- "worklet";
262
- const translateY = frameSize === 0 ? HIDDEN_SIZE : val;
263
- return {
264
- transform: [{ translateY }]
265
- };
266
- });
267
- const sizeBeforeKeyboard = useRef(null);
268
- useEffect(() => {
269
- if (isWeb || !moveOnKeyboardChange)
270
- return;
271
- const keyboardDidShowListener = Keyboard.addListener("keyboardDidShow", (e) => {
272
- if (sizeBeforeKeyboard.current !== null)
273
- return;
274
- sizeBeforeKeyboard.current = animatedNumber.getValue();
275
- animatedNumber.setValue(
276
- Math.max(animatedNumber.getValue() - e.endCoordinates.height, 0)
277
- );
278
- });
279
- const keyboardDidHideListener = Keyboard.addListener("keyboardDidHide", () => {
280
- if (sizeBeforeKeyboard.current === null)
281
- return;
282
- animatedNumber.setValue(sizeBeforeKeyboard.current);
283
- sizeBeforeKeyboard.current = null;
284
- });
285
- return () => {
286
- keyboardDidHideListener.remove();
287
- keyboardDidShowListener.remove();
288
- };
289
- }, [moveOnKeyboardChange]);
290
- const [opacity, setOpacity] = useState(open ? 1 : 0);
291
- if (open && opacity === 0) {
292
- setOpacity(1);
293
- }
294
- useEffect(() => {
295
- if (!open) {
296
- const tm = setTimeout(() => {
297
- setOpacity(0);
298
- }, 400);
299
- return () => {
300
- clearTimeout(tm);
301
- };
302
- }
303
- }, [open]);
304
- const contents = <ParentSheetContext.Provider value={nextParentContext}><SheetProvider {...providerProps}>
305
- {shouldHideParentSheet ? null : overlayComponent}
306
- <AnimatedView
307
- ref={ref}
308
- {...panResponder?.panHandlers}
309
- onLayout={handleAnimationViewLayout}
310
- pointerEvents={open && !shouldHideParentSheet ? "auto" : "none"}
311
- animation={props.animation}
312
- style={[
313
- {
314
- position: "absolute",
315
- zIndex,
316
- width: "100%",
317
- height: `${maxSnapPoint}%`,
318
- minHeight: `${maxSnapPoint}%`,
319
- opacity
320
- },
321
- animatedStyle
322
- ]}
323
- >{props.children}</AnimatedView>
324
- </SheetProvider></ParentSheetContext.Provider>;
325
- const adaptContext = useContext(AdaptParentContext);
326
- const shouldMountChildren = Boolean(opacity || !unmountChildrenWhenHidden);
327
- if (modal) {
328
- const modalContents = <Portal zIndex={zIndex} {...portalProps}>{shouldMountChildren && <Theme forceClassName name={themeName}><AdaptParentContext.Provider value={adaptContext}>{contents}</AdaptParentContext.Provider></Theme>}</Portal>;
329
- if (isWeb) {
330
- return modalContents;
331
- }
332
- return <SheetInsideSheetContext.Provider value={onInnerSheet}>{modalContents}</SheetInsideSheetContext.Provider>;
333
- }
334
- return contents;
335
- })
336
- );
337
- function getPercentSize(point, screenSize) {
338
- if (!screenSize)
339
- return 0;
340
- if (point === void 0) {
341
- console.warn("No snapPoint");
342
- return 0;
343
- }
344
- const pct = point / 100;
345
- const next = Math.round(screenSize - pct * screenSize);
346
- return next;
347
- }
348
- export {
349
- SheetImplementationCustom
350
- };
351
- //# sourceMappingURL=SheetImplementationCustom.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SheetImplementationCustom.tsx"],
4
- "mappings": "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",
5
- "names": ["SheetImplementationCustom", "position", "at", "state"]
6
- }
@@ -1,65 +0,0 @@
1
- import { composeRefs } from "@tamagui/core";
2
- import { ScrollView } from "@tamagui/scroll-view";
3
- import { forwardRef, useMemo, useRef } from "react";
4
- import { useSheetContext } from "./SheetContext";
5
- const SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
6
- const SheetScrollView = forwardRef(
7
- ({ __scopeSheet, children, ...props }, ref) => {
8
- const context = useSheetContext(SHEET_SCROLL_VIEW_NAME, __scopeSheet);
9
- const { scrollBridge } = context;
10
- const scrollRef = useRef(null);
11
- const state = useRef({
12
- lastPageY: 0,
13
- dragAt: 0,
14
- dys: [],
15
- // store a few recent dys to get velocity on release
16
- isScrolling: false,
17
- isDragging: false
18
- });
19
- const release = () => {
20
- if (!state.current.isDragging) {
21
- return;
22
- }
23
- state.current.isDragging = false;
24
- scrollBridge.scrollStartY = -1;
25
- state.current.isScrolling = false;
26
- let vy = 0;
27
- if (state.current.dys.length) {
28
- const recentDys = state.current.dys.slice(-10);
29
- const dist = recentDys.length ? recentDys.reduce((a, b) => a + b, 0) : 0;
30
- const avgDy = dist / recentDys.length;
31
- vy = avgDy * 0.04;
32
- }
33
- state.current.dys = [];
34
- scrollBridge.release({
35
- dragAt: state.current.dragAt,
36
- vy
37
- });
38
- };
39
- return <ScrollView
40
- ref={composeRefs(scrollRef, ref)}
41
- flex={1}
42
- scrollEventThrottle={8}
43
- onScroll={(e) => {
44
- const { y } = e.nativeEvent.contentOffset;
45
- scrollBridge.y = y;
46
- if (y > 0) {
47
- scrollBridge.scrollStartY = -1;
48
- }
49
- }}
50
- onStartShouldSetResponder={() => {
51
- scrollBridge.scrollStartY = -1;
52
- state.current.isDragging = true;
53
- return true;
54
- }}
55
- onMoveShouldSetResponder={() => false}
56
- onResponderRelease={release}
57
- className="_ovs-contain"
58
- {...props}
59
- >{useMemo(() => children, [children])}</ScrollView>;
60
- }
61
- );
62
- export {
63
- SheetScrollView
64
- };
65
- //# sourceMappingURL=SheetScrollView.mjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/SheetScrollView.tsx"],
4
- "mappings": "AAAA,SAAiB,mBAAmB;AACpC,SAAS,kBAAmC;AAC5C,SAAS,YAAY,SAAS,cAAc;AAG5C,SAAS,uBAAuB;AAShC,MAAM,yBAAyB;AAExB,MAAM,kBAAkB;AAAA,EAC7B,CAAC,EAAE,cAAc,UAAU,GAAG,MAAM,GAAsC,QAAQ;AAChF,UAAM,UAAU,gBAAgB,wBAAwB,YAAY;AACpE,UAAM,EAAE,aAAa,IAAI;AAEzB,UAAM,YAAY,OAA4B,IAAI;AAclD,UAAM,QAAQ,OAAO;AAAA,MACnB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,KAAK,CAAC;AAAA;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,IACd,CAAC;AAED,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,MAAM,QAAQ,YAAY;AAC7B;AAAA,MACF;AACA,YAAM,QAAQ,aAAa;AAC3B,mBAAa,eAAe;AAC5B,YAAM,QAAQ,cAAc;AAE5B,UAAI,KAAK;AACT,UAAI,MAAM,QAAQ,IAAI,QAAQ;AAC5B,cAAM,YAAY,MAAM,QAAQ,IAAI,MAAM,GAAG;AAC7C,cAAM,OAAO,UAAU,SAAS,UAAU,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI;AACvE,cAAM,QAAQ,OAAO,UAAU;AAC/B,aAAK,QAAQ;AAAA,MACf;AACA,YAAM,QAAQ,MAAM,CAAC;AACrB,mBAAa,QAAQ;AAAA,QACnB,QAAQ,MAAM,QAAQ;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WACE,CAAC;AAAA,MACC,KAAK,YAAY,WAAkB,GAAG;AAAA,MACtC,MAAM;AAAA,MACN,qBAAqB;AAAA,MAErB,UAAU,CAAC,MAAM;AACf,cAAM,EAAE,EAAE,IAAI,EAAE,YAAY;AAC5B,qBAAa,IAAI;AACjB,YAAI,IAAI,GAAG;AACT,uBAAa,eAAe;AAAA,QAC9B;AAAA,MACF;AAAA,MACA,2BAA2B,MAAM;AAC/B,qBAAa,eAAe;AAC5B,cAAM,QAAQ,aAAa;AAC3B,eAAO;AAAA,MACT;AAAA,MAEA,0BAA0B,MAAM;AAAA,MAmChC,oBAAoB;AAAA,MACpB,UAAU;AAAA,UACN;AAAA,MAEH,QAAQ,MAAM,UAAU,CAAC,QAAQ,CAAC,EACrC,EA1DC;AAAA,EA4DL;AACF;",
5
- "names": []
6
- }