@tamagui/sheet 1.27.1 → 1.27.2

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 (110) hide show
  1. package/dist/cjs/Sheet.js +1 -2
  2. package/dist/cjs/Sheet.js.map +1 -1
  3. package/dist/cjs/SheetContext.js.map +1 -1
  4. package/dist/cjs/SheetImplementationCustom.js +340 -0
  5. package/dist/cjs/SheetImplementationCustom.js.map +6 -0
  6. package/dist/cjs/constants.js +10 -0
  7. package/dist/cjs/constants.js.map +1 -1
  8. package/dist/cjs/contexts.js +35 -0
  9. package/dist/cjs/contexts.js.map +6 -0
  10. package/dist/cjs/createSheet.js +68 -349
  11. package/dist/cjs/createSheet.js.map +2 -2
  12. package/dist/cjs/helpers.js +38 -0
  13. package/dist/cjs/helpers.js.map +6 -0
  14. package/dist/cjs/nativeSheet.js +3 -5
  15. package/dist/cjs/nativeSheet.js.map +1 -1
  16. package/dist/cjs/useSheetController.js +2 -1
  17. package/dist/cjs/useSheetController.js.map +1 -1
  18. package/dist/cjs/useSheetProviderProps.js +30 -3
  19. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  20. package/dist/esm/Sheet.js +1 -2
  21. package/dist/esm/Sheet.js.map +1 -1
  22. package/dist/esm/SheetContext.js.map +1 -1
  23. package/dist/esm/SheetImplementationCustom.js +336 -0
  24. package/dist/esm/SheetImplementationCustom.js.map +6 -0
  25. package/dist/esm/constants.js +8 -0
  26. package/dist/esm/constants.js.map +1 -1
  27. package/dist/esm/contexts.js +10 -0
  28. package/dist/esm/contexts.js.map +6 -0
  29. package/dist/esm/createSheet.js +72 -371
  30. package/dist/esm/createSheet.js.map +2 -2
  31. package/dist/esm/helpers.js +14 -0
  32. package/dist/esm/helpers.js.map +6 -0
  33. package/dist/esm/nativeSheet.js +3 -5
  34. package/dist/esm/nativeSheet.js.map +1 -1
  35. package/dist/esm/useSheetController.js +2 -1
  36. package/dist/esm/useSheetController.js.map +1 -1
  37. package/dist/esm/useSheetProviderProps.js +31 -4
  38. package/dist/esm/useSheetProviderProps.js.map +1 -1
  39. package/dist/jsx/Sheet.js +1 -2
  40. package/dist/jsx/Sheet.js.map +1 -1
  41. package/dist/jsx/Sheet.mjs +1 -2
  42. package/dist/jsx/Sheet.mjs.map +1 -1
  43. package/dist/jsx/SheetContext.js.map +1 -1
  44. package/dist/jsx/SheetContext.mjs.map +1 -1
  45. package/dist/jsx/SheetImplementationCustom.js +330 -0
  46. package/dist/jsx/SheetImplementationCustom.js.map +6 -0
  47. package/dist/jsx/SheetImplementationCustom.mjs +330 -0
  48. package/dist/jsx/SheetImplementationCustom.mjs.map +6 -0
  49. package/dist/jsx/constants.js +8 -0
  50. package/dist/jsx/constants.js.map +1 -1
  51. package/dist/jsx/constants.mjs +8 -0
  52. package/dist/jsx/constants.mjs.map +1 -1
  53. package/dist/jsx/contexts.js +10 -0
  54. package/dist/jsx/contexts.js.map +6 -0
  55. package/dist/jsx/contexts.mjs +10 -0
  56. package/dist/jsx/contexts.mjs.map +6 -0
  57. package/dist/jsx/createSheet.js +63 -364
  58. package/dist/jsx/createSheet.js.map +2 -2
  59. package/dist/jsx/createSheet.mjs +63 -364
  60. package/dist/jsx/createSheet.mjs.map +2 -2
  61. package/dist/jsx/helpers.js +14 -0
  62. package/dist/jsx/helpers.js.map +6 -0
  63. package/dist/jsx/helpers.mjs +14 -0
  64. package/dist/jsx/helpers.mjs.map +6 -0
  65. package/dist/jsx/nativeSheet.js +3 -5
  66. package/dist/jsx/nativeSheet.js.map +1 -1
  67. package/dist/jsx/nativeSheet.mjs +3 -5
  68. package/dist/jsx/nativeSheet.mjs.map +1 -1
  69. package/dist/jsx/useSheetController.js +2 -1
  70. package/dist/jsx/useSheetController.js.map +1 -1
  71. package/dist/jsx/useSheetController.mjs +2 -1
  72. package/dist/jsx/useSheetController.mjs.map +1 -1
  73. package/dist/jsx/useSheetProviderProps.js +31 -4
  74. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  75. package/dist/jsx/useSheetProviderProps.mjs +31 -4
  76. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  77. package/package.json +13 -13
  78. package/src/Sheet.tsx +0 -1
  79. package/src/SheetContext.tsx +1 -16
  80. package/src/SheetImplementationCustom.tsx +404 -0
  81. package/src/constants.tsx +10 -0
  82. package/src/contexts.ts +9 -0
  83. package/src/createSheet.tsx +88 -449
  84. package/src/helpers.tsx +10 -0
  85. package/src/nativeSheet.tsx +3 -5
  86. package/src/useSheetController.tsx +1 -0
  87. package/src/useSheetProviderProps.tsx +48 -7
  88. package/types/Sheet.d.ts +10 -6
  89. package/types/Sheet.d.ts.map +1 -1
  90. package/types/SheetContext.d.ts +100 -27
  91. package/types/SheetContext.d.ts.map +1 -1
  92. package/types/SheetImplementationCustom.d.ts +27 -0
  93. package/types/SheetImplementationCustom.d.ts.map +1 -0
  94. package/types/constants.d.ts +2 -0
  95. package/types/constants.d.ts.map +1 -1
  96. package/types/contexts.d.ts +6 -0
  97. package/types/contexts.d.ts.map +1 -0
  98. package/types/createSheet.d.ts +8 -4
  99. package/types/createSheet.d.ts.map +1 -1
  100. package/types/helpers.d.ts +2 -0
  101. package/types/helpers.d.ts.map +1 -0
  102. package/types/nativeSheet.d.ts.map +1 -1
  103. package/types/useSheet.d.ts +16 -6
  104. package/types/useSheet.d.ts.map +1 -1
  105. package/types/useSheetController.d.ts +1 -0
  106. package/types/useSheetController.d.ts.map +1 -1
  107. package/types/useSheetProviderProps.d.ts +8 -3
  108. package/types/useSheetProviderProps.d.ts.map +1 -1
  109. package/src/useSheetChildren.tsx +0 -49
  110. package/src/useSheetSnapPoints.tsx +0 -60
@@ -1,7 +1,8 @@
1
+ import { useAnimationDriver } from "@tamagui/core";
1
2
  import { useConstant } from "@tamagui/use-constant";
2
3
  import { useControllableState } from "@tamagui/use-controllable-state";
3
- import React, { useCallback, useMemo, useState } from "react";
4
- function useSheetProviderProps(props, state) {
4
+ import React, { useCallback, useEffect, useMemo, useState } from "react";
5
+ function useSheetProviderProps(props, state, options = {}) {
5
6
  const contentRef = React.useRef(null);
6
7
  const [frameSize, setFrameSize] = useState(0);
7
8
  const snapPointsProp = props.snapPoints || [80];
@@ -18,6 +19,7 @@ function useSheetProviderProps(props, state) {
18
19
  transition: true
19
20
  });
20
21
  const position = state.open === false ? -1 : position_;
22
+ const { open } = state;
21
23
  const setPosition = useCallback(
22
24
  (next) => {
23
25
  if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
@@ -28,6 +30,26 @@ function useSheetProviderProps(props, state) {
28
30
  },
29
31
  [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]
30
32
  );
33
+ if (process.env.NODE_ENV === "development") {
34
+ if (snapPoints.some((p) => p < 0 || p > 100)) {
35
+ console.warn(
36
+ "\u26A0\uFE0F Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame"
37
+ );
38
+ }
39
+ }
40
+ if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
41
+ setPositionImmediate(0);
42
+ }
43
+ const shouldSetPositionOpen = open && position < 0;
44
+ useEffect(() => {
45
+ if (shouldSetPositionOpen) {
46
+ setPosition(0);
47
+ }
48
+ }, [setPosition, shouldSetPositionOpen]);
49
+ const driver = useAnimationDriver();
50
+ if (!driver) {
51
+ throw new Error("Must set animations in tamagui.config.ts");
52
+ }
31
53
  const scrollBridge = useConstant(() => ({
32
54
  enabled: false,
33
55
  y: 0,
@@ -40,7 +62,10 @@ function useSheetProviderProps(props, state) {
40
62
  },
41
63
  scrollLock: false
42
64
  }));
43
- return {
65
+ const removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal);
66
+ const providerProps = {
67
+ removeScrollEnabled,
68
+ scrollBridge,
44
69
  modal: !!props.modal,
45
70
  open: state.open,
46
71
  setOpen: state.setOpen,
@@ -50,13 +75,15 @@ function useSheetProviderProps(props, state) {
50
75
  setFrameSize,
51
76
  dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
52
77
  dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
78
+ onOverlayComponent: options.onOverlayComponent,
53
79
  scope: props.__scopeSheet,
54
80
  position,
55
81
  snapPoints,
56
82
  setPosition,
57
83
  setPositionImmediate,
58
- scrollBridge
84
+ onlyShowFrame: false
59
85
  };
86
+ return providerProps;
60
87
  }
61
88
  export {
62
89
  useSheetProviderProps
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSheetProviderProps.tsx"],
4
- "mappings": "AACA,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,OAAO,SAAS,aAAa,SAAS,gBAAgB;AAK/C,SAAS,sBAAsB,OAAmB,OAAuB;AAC9E,QAAM,aAAa,MAAM,OAAuB,IAAI;AACpD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAiB,CAAC;AACpD,QAAM,iBAAiB,MAAM,cAAc,CAAC,EAAE;AAE9C,QAAM,aAAa;AAAA,IACjB,MAAO,MAAM,wBAAwB,CAAC,GAAG,gBAAgB,CAAC,IAAI;AAAA;AAAA,IAE9D,CAAC,KAAK,UAAU,cAAc,GAAG,MAAM,qBAAqB;AAAA,EAC9D;AAGA,QAAM,CAAC,WAAW,oBAAoB,IAAI,qBAAqB;AAAA,IAC7D,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM,oBAAoB,MAAM,OAAO,IAAI;AAAA,IACxD,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAED,QAAM,WAAW,MAAM,SAAS,QAAQ,KAAK;AAE7C,QAAM,cAAc;AAAA,IAClB,CAAC,SAAiB;AAEhB,UAAI,MAAM,yBAAyB,SAAS,WAAW,SAAS,GAAG;AACjE,cAAM,QAAQ,KAAK;AAAA,MACrB,OAAO;AACL,6BAAqB,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,CAAC,MAAM,uBAAuB,WAAW,QAAQ,sBAAsB,MAAM,OAAO;AAAA,EACtF;AAEA,QAAM,eAAe,YAA0B,OAAO;AAAA,IACpD,SAAS;AAAA,IACT,GAAG;AAAA,IACH,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,SAAS,MAAM;AAAA,IAAC;AAAA,IAChB,YAAY;AAAA,EACd,EAAE;AAEF,SAAO;AAAA,IACL,OAAO,CAAC,CAAC,MAAM;AAAA,IACf,MAAM,MAAM;AAAA,IACZ,SAAS,MAAM;AAAA,IACf,QAAQ,CAAC,CAAC,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAyB,0BAA0B;AACnD,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,OAAO,SAAS,aAAa,WAAW,SAAS,gBAAgB;AAO1D,SAAS,sBACd,OACA,OACA,UAEI,CAAC,GACL;AACA,QAAM,aAAa,MAAM,OAAuB,IAAI;AACpD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAiB,CAAC;AACpD,QAAM,iBAAiB,MAAM,cAAc,CAAC,EAAE;AAE9C,QAAM,aAAa;AAAA,IACjB,MAAO,MAAM,wBAAwB,CAAC,GAAG,gBAAgB,CAAC,IAAI;AAAA;AAAA,IAE9D,CAAC,KAAK,UAAU,cAAc,GAAG,MAAM,qBAAqB;AAAA,EAC9D;AAGA,QAAM,CAAC,WAAW,oBAAoB,IAAI,qBAAqB;AAAA,IAC7D,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM,oBAAoB,MAAM,OAAO,IAAI;AAAA,IACxD,UAAU,MAAM;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAED,QAAM,WAAW,MAAM,SAAS,QAAQ,KAAK;AAE7C,QAAM,EAAE,KAAK,IAAI;AAEjB,QAAM,cAAc;AAAA,IAClB,CAAC,SAAiB;AAEhB,UAAI,MAAM,yBAAyB,SAAS,WAAW,SAAS,GAAG;AACjE,cAAM,QAAQ,KAAK;AAAA,MACrB,OAAO;AACL,6BAAqB,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,CAAC,MAAM,uBAAuB,WAAW,QAAQ,sBAAsB,MAAM,OAAO;AAAA,EACtF;AAEA,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,MAAM,yBAAyB,aAAa,WAAW,SAAS,GAAG;AAC7E,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,SAAS,mBAAmB;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAEA,QAAM,eAAe,YAA0B,OAAO;AAAA,IACpD,SAAS;AAAA,IACT,GAAG;AAAA,IACH,OAAO;AAAA,IACP,UAAU;AAAA,IACV,cAAc;AAAA,IACd,MAAM,MAAM;AAAA,IAAC;AAAA,IACb,SAAS,MAAM;AAAA,IAAC;AAAA,IAChB,YAAY;AAAA,EACd,EAAE;AAEF,QAAM,sBAAsB,MAAM,6BAA6B,QAAQ,MAAM;AAE7E,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACA,OAAO,CAAC,CAAC,MAAM;AAAA,IACf,MAAM,MAAM;AAAA,IACZ,SAAS,MAAM;AAAA,IACf,QAAQ,CAAC,CAAC,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,uBAAuB,MAAM,yBAAyB;AAAA,IACtD,oBAAoB,QAAQ;AAAA,IAC5B,OAAO,MAAM;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,EACjB;AAEA,SAAO;AACT;",
5
5
  "names": []
6
6
  }
package/dist/jsx/Sheet.js CHANGED
@@ -72,8 +72,7 @@ const Frame = styled(YStack, {
72
72
  borderTopRightRadius: "$true",
73
73
  width: "100%",
74
74
  maxHeight: "100%",
75
- overflow: "hidden",
76
- pointerEvents: "auto"
75
+ overflow: "hidden"
77
76
  }
78
77
  }
79
78
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;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;",
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,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
5
  "names": []
6
6
  }
@@ -72,8 +72,7 @@ const Frame = styled(YStack, {
72
72
  borderTopRightRadius: "$true",
73
73
  width: "100%",
74
74
  maxHeight: "100%",
75
- overflow: "hidden",
76
- pointerEvents: "auto"
75
+ overflow: "hidden"
77
76
  }
78
77
  }
79
78
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;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;",
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,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
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetContext.tsx"],
4
- "mappings": "AACA,SAAS,0BAA0B;AAGnC,SAAS,kBAAkB;AAgBpB,MAAM,CAAC,oBAAoB,gBAAgB,IAAI,mBAAmB,UAAU;AAE5E,MAAM,CAAC,eAAe,eAAe,IAAI;AAAA,EAC9C;AAAA,EACA,CAAC;AACH;",
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
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetContext.tsx"],
4
- "mappings": "AACA,SAAS,0BAA0B;AAGnC,SAAS,kBAAkB;AAgBpB,MAAM,CAAC,oBAAoB,gBAAgB,IAAI,mBAAmB,UAAU;AAE5E,MAAM,CAAC,eAAe,eAAe,IAAI;AAAA,EAC9C;AAAA,EACA,CAAC;AACH;",
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
5
  "names": []
6
6
  }
@@ -0,0 +1,330 @@
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
+ portalProps
43
+ } = props;
44
+ const keyboardIsVisible = useKeyboardVisible();
45
+ const state = useSheetOpenState(props);
46
+ const [overlayComponent, setOverlayComponent] = useState(null);
47
+ const providerProps = useSheetProviderProps(props, state, {
48
+ onOverlayComponent: setOverlayComponent
49
+ });
50
+ const { frameSize, setFrameSize, snapPoints, position, setPosition, scrollBridge } = providerProps;
51
+ const { open, controller, isHidden } = state;
52
+ const sheetRef = useRef(null);
53
+ const ref = useComposedRefs(forwardedRef, sheetRef);
54
+ const [isShowingInnerSheet, setIsShowingInnerSheet] = useState(false);
55
+ const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet;
56
+ const parentSheetContext = useContext(SheetInsideSheetContext);
57
+ const onInnerSheet = useCallback((hasChild) => {
58
+ setIsShowingInnerSheet(hasChild);
59
+ }, []);
60
+ const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
61
+ const screenSize = frameSize / (maxSnapPoint / 100);
62
+ const positions = useMemo(
63
+ () => snapPoints.map((point) => getPercentSize(point, screenSize)),
64
+ [frameSize, snapPoints]
65
+ );
66
+ const driver = useAnimationDriver();
67
+ const { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = driver;
68
+ const AnimatedView = driver["NumberView"] ?? driver.View;
69
+ useIsomorphicLayoutEffect(() => {
70
+ if (!(parentSheetContext && open))
71
+ return;
72
+ parentSheetContext(true);
73
+ return () => {
74
+ parentSheetContext(false);
75
+ };
76
+ }, [parentSheetContext, open]);
77
+ const nextParentContext = useMemo(
78
+ () => ({
79
+ zIndex
80
+ }),
81
+ [zIndex]
82
+ );
83
+ const animatedNumber = useAnimatedNumber(HIDDEN_SIZE);
84
+ const at = useRef(0);
85
+ useAnimatedNumberReaction(
86
+ {
87
+ value: animatedNumber,
88
+ hostRef: sheetRef
89
+ },
90
+ (value) => {
91
+ if (!driver.isReactNative)
92
+ return;
93
+ at.current = value;
94
+ scrollBridge.paneY = value;
95
+ }
96
+ );
97
+ function stopSpring() {
98
+ animatedNumber.stop();
99
+ if (scrollBridge.onFinishAnimate) {
100
+ scrollBridge.onFinishAnimate();
101
+ scrollBridge.onFinishAnimate = void 0;
102
+ }
103
+ }
104
+ const animateTo = useEvent((position2) => {
105
+ const current = animatedNumber.getValue();
106
+ if (isHidden && open)
107
+ return;
108
+ if (!current)
109
+ return;
110
+ if (frameSize === 0)
111
+ return;
112
+ const hiddenValue = frameSize === 0 ? HIDDEN_SIZE : screenSize;
113
+ const toValue = isHidden || position2 === -1 ? hiddenValue : positions[position2];
114
+ if (at.current === toValue)
115
+ return;
116
+ stopSpring();
117
+ if (isHidden) {
118
+ animatedNumber.setValue(toValue, {
119
+ type: "timing",
120
+ duration: 0
121
+ });
122
+ at.current = toValue;
123
+ return;
124
+ }
125
+ const overshootClamping = at.current === HIDDEN_SIZE;
126
+ animatedNumber.setValue(toValue, {
127
+ ...animationConfig,
128
+ type: "spring",
129
+ overshootClamping
130
+ });
131
+ });
132
+ useIsomorphicLayoutEffect(() => {
133
+ animateTo(position);
134
+ }, [isHidden, frameSize, position, animateTo]);
135
+ const disableDrag = props.disableDrag ?? controller?.disableDrag;
136
+ const themeName = useThemeName();
137
+ const panResponder = useMemo(
138
+ () => {
139
+ if (disableDrag)
140
+ return;
141
+ if (!frameSize)
142
+ return;
143
+ if (isShowingInnerSheet)
144
+ return;
145
+ const minY = positions[0];
146
+ scrollBridge.paneMinY = minY;
147
+ let startY = at.current;
148
+ function makeUnselectable(val) {
149
+ if (!SHEET_HIDDEN_STYLESHEET)
150
+ return;
151
+ if (!val) {
152
+ SHEET_HIDDEN_STYLESHEET.innerText = "";
153
+ } else {
154
+ SHEET_HIDDEN_STYLESHEET.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
155
+ }
156
+ }
157
+ const release = ({ vy, dragAt }) => {
158
+ isExternalDrag = false;
159
+ previouslyScrolling = false;
160
+ makeUnselectable(false);
161
+ const at2 = dragAt + startY;
162
+ const end = at2 + frameSize * vy * 0.2;
163
+ let closestPoint = 0;
164
+ let dist = Infinity;
165
+ for (let i = 0; i < positions.length; i++) {
166
+ const position2 = positions[i];
167
+ const curDist = end > position2 ? end - position2 : position2 - end;
168
+ if (curDist < dist) {
169
+ dist = curDist;
170
+ closestPoint = i;
171
+ }
172
+ }
173
+ setPosition(closestPoint);
174
+ animateTo(closestPoint);
175
+ };
176
+ const finish = (_e, state2) => {
177
+ release({
178
+ vy: state2.vy,
179
+ dragAt: state2.dy
180
+ });
181
+ };
182
+ let previouslyScrolling = false;
183
+ const onMoveShouldSet = (_e, { dy }) => {
184
+ const isScrolled = scrollBridge.y !== 0;
185
+ const isDraggingUp = dy < 0;
186
+ const isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
187
+ if (isScrolled) {
188
+ previouslyScrolling = true;
189
+ return false;
190
+ }
191
+ if (isNearTop) {
192
+ if (!isScrolled && isDraggingUp) {
193
+ return false;
194
+ }
195
+ }
196
+ return Math.abs(dy) > 5;
197
+ };
198
+ const grant = () => {
199
+ makeUnselectable(true);
200
+ stopSpring();
201
+ startY = at.current;
202
+ };
203
+ let isExternalDrag = false;
204
+ scrollBridge.drag = (dy) => {
205
+ if (!isExternalDrag) {
206
+ isExternalDrag = true;
207
+ grant();
208
+ }
209
+ const to = dy + startY;
210
+ animatedNumber.setValue(resisted(to, minY), { type: "direct" });
211
+ };
212
+ scrollBridge.release = release;
213
+ return PanResponder.create({
214
+ onMoveShouldSetPanResponder: onMoveShouldSet,
215
+ onPanResponderGrant: grant,
216
+ onPanResponderMove: (_e, { dy }) => {
217
+ const toFull = dy + startY;
218
+ const to = resisted(toFull, minY);
219
+ animatedNumber.setValue(to, { type: "direct" });
220
+ },
221
+ onPanResponderEnd: finish,
222
+ onPanResponderTerminate: finish,
223
+ onPanResponderRelease: finish
224
+ });
225
+ },
226
+ // eslint-disable-next-line react-hooks/exhaustive-deps
227
+ [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]
228
+ );
229
+ const handleAnimationViewLayout = useCallback(
230
+ (e) => {
231
+ let next = e.nativeEvent?.layout.height;
232
+ if (isWeb && isTouchable && !open) {
233
+ next += 100;
234
+ }
235
+ if (!next)
236
+ return;
237
+ setFrameSize(next);
238
+ },
239
+ [keyboardIsVisible]
240
+ );
241
+ const animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
242
+ "worklet";
243
+ const translateY = frameSize === 0 ? HIDDEN_SIZE : val;
244
+ return {
245
+ transform: [{ translateY }]
246
+ };
247
+ });
248
+ const sizeBeforeKeyboard = useRef(null);
249
+ useEffect(() => {
250
+ if (isWeb || !moveOnKeyboardChange)
251
+ return;
252
+ const keyboardDidShowListener = Keyboard.addListener("keyboardDidShow", (e) => {
253
+ if (sizeBeforeKeyboard.current !== null)
254
+ return;
255
+ sizeBeforeKeyboard.current = animatedNumber.getValue();
256
+ animatedNumber.setValue(
257
+ Math.max(animatedNumber.getValue() - e.endCoordinates.height, 0)
258
+ );
259
+ });
260
+ const keyboardDidHideListener = Keyboard.addListener("keyboardDidHide", () => {
261
+ if (sizeBeforeKeyboard.current === null)
262
+ return;
263
+ animatedNumber.setValue(sizeBeforeKeyboard.current);
264
+ sizeBeforeKeyboard.current = null;
265
+ });
266
+ return () => {
267
+ keyboardDidHideListener.remove();
268
+ keyboardDidShowListener.remove();
269
+ };
270
+ }, [moveOnKeyboardChange]);
271
+ const [opacity, setOpacity] = useState(open ? 1 : 0);
272
+ if (open && opacity === 0) {
273
+ setOpacity(1);
274
+ }
275
+ useEffect(() => {
276
+ if (!open) {
277
+ const tm = setTimeout(() => {
278
+ setOpacity(0);
279
+ }, 400);
280
+ return () => {
281
+ clearTimeout(tm);
282
+ };
283
+ }
284
+ }, [open]);
285
+ const contents = <ParentSheetContext.Provider value={nextParentContext}><SheetProvider {...providerProps}>
286
+ {shouldHideParentSheet ? null : overlayComponent}
287
+ <AnimatedView
288
+ ref={ref}
289
+ {...panResponder?.panHandlers}
290
+ onLayout={handleAnimationViewLayout}
291
+ pointerEvents={open && !shouldHideParentSheet ? "auto" : "none"}
292
+ animation={props.animation}
293
+ style={[
294
+ {
295
+ position: "absolute",
296
+ zIndex,
297
+ width: "100%",
298
+ height: `${maxSnapPoint}%`,
299
+ opacity
300
+ },
301
+ animatedStyle
302
+ ]}
303
+ >{props.children}</AnimatedView>
304
+ </SheetProvider></ParentSheetContext.Provider>;
305
+ const adaptContext = useContext(AdaptParentContext);
306
+ if (modal) {
307
+ const modalContents = <Portal zIndex={zIndex} {...portalProps}><Theme forceClassName name={themeName}><AdaptParentContext.Provider value={adaptContext}>{contents}</AdaptParentContext.Provider></Theme></Portal>;
308
+ if (isWeb) {
309
+ return modalContents;
310
+ }
311
+ return <SheetInsideSheetContext.Provider value={onInnerSheet}>{modalContents}</SheetInsideSheetContext.Provider>;
312
+ }
313
+ return contents;
314
+ })
315
+ );
316
+ function getPercentSize(point, screenSize) {
317
+ if (!screenSize)
318
+ return 0;
319
+ if (point === void 0) {
320
+ console.warn("No snapPoint");
321
+ return 0;
322
+ }
323
+ const pct = point / 100;
324
+ const next = Math.round(screenSize - pct * screenSize);
325
+ return next;
326
+ }
327
+ export {
328
+ SheetImplementationCustom
329
+ };
330
+ //# sourceMappingURL=SheetImplementationCustom.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SheetImplementationCustom.tsx"],
4
+ "mappings": "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",
5
+ "names": ["SheetImplementationCustom", "position", "at", "state"]
6
+ }