@niibase/bottom-sheet-manager 1.2.0 → 1.4.0

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 (64) hide show
  1. package/README.md +414 -69
  2. package/lib/commonjs/events.js +100 -15
  3. package/lib/commonjs/events.js.map +1 -1
  4. package/lib/commonjs/index.js +14 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/manager.js +153 -35
  7. package/lib/commonjs/manager.js.map +1 -1
  8. package/lib/commonjs/provider.js +92 -54
  9. package/lib/commonjs/provider.js.map +1 -1
  10. package/lib/commonjs/router/index.js +80 -21
  11. package/lib/commonjs/router/index.js.map +1 -1
  12. package/lib/commonjs/router/router.js +137 -12
  13. package/lib/commonjs/router/router.js.map +1 -1
  14. package/lib/commonjs/router/view.js +93 -126
  15. package/lib/commonjs/router/view.js.map +1 -1
  16. package/lib/commonjs/sheet.js +122 -98
  17. package/lib/commonjs/sheet.js.map +1 -1
  18. package/lib/module/events.js +100 -15
  19. package/lib/module/events.js.map +1 -1
  20. package/lib/module/index.js +2 -2
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/manager.js +154 -35
  23. package/lib/module/manager.js.map +1 -1
  24. package/lib/module/provider.js +87 -50
  25. package/lib/module/provider.js.map +1 -1
  26. package/lib/module/router/index.js +66 -19
  27. package/lib/module/router/index.js.map +1 -1
  28. package/lib/module/router/router.js +135 -11
  29. package/lib/module/router/router.js.map +1 -1
  30. package/lib/module/router/view.js +92 -126
  31. package/lib/module/router/view.js.map +1 -1
  32. package/lib/module/sheet.js +124 -100
  33. package/lib/module/sheet.js.map +1 -1
  34. package/lib/typescript/events.d.ts +46 -12
  35. package/lib/typescript/events.d.ts.map +1 -1
  36. package/lib/typescript/index.d.ts +2 -2
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/manager.d.ts +73 -7
  39. package/lib/typescript/manager.d.ts.map +1 -1
  40. package/lib/typescript/provider.d.ts +22 -16
  41. package/lib/typescript/provider.d.ts.map +1 -1
  42. package/lib/typescript/router/index.d.ts +47 -17
  43. package/lib/typescript/router/index.d.ts.map +1 -1
  44. package/lib/typescript/router/router.d.ts +44 -5
  45. package/lib/typescript/router/router.d.ts.map +1 -1
  46. package/lib/typescript/router/types.d.ts +142 -32
  47. package/lib/typescript/router/types.d.ts.map +1 -1
  48. package/lib/typescript/router/view.d.ts +3 -3
  49. package/lib/typescript/router/view.d.ts.map +1 -1
  50. package/lib/typescript/sheet.d.ts +1 -1
  51. package/lib/typescript/sheet.d.ts.map +1 -1
  52. package/lib/typescript/types.d.ts +52 -21
  53. package/lib/typescript/types.d.ts.map +1 -1
  54. package/package.json +14 -15
  55. package/src/events.ts +118 -27
  56. package/src/index.ts +2 -1
  57. package/src/manager.ts +209 -42
  58. package/src/provider.tsx +144 -71
  59. package/src/router/index.tsx +77 -33
  60. package/src/router/router.ts +188 -15
  61. package/src/router/types.ts +172 -57
  62. package/src/router/view.tsx +111 -213
  63. package/src/sheet.tsx +192 -124
  64. package/src/types.ts +51 -24
@@ -3,28 +3,67 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.BottomSheetActions = void 0;
7
- exports.BottomSheetRouter = BottomSheetRouter;
6
+ exports.useBottomSheetNavigation = exports.BottomSheetRouter = exports.BottomSheetActions = void 0;
8
7
  var _native = require("@react-navigation/native");
9
8
  var _nonSecure = require("nanoid/non-secure");
10
9
  const BottomSheetActions = exports.BottomSheetActions = {
11
10
  ..._native.StackActions,
12
- snapTo(index) {
11
+ /**
12
+ * Snap the bottom sheet to a specific index.
13
+ */
14
+ snapTo: index => ({
15
+ type: "SNAP_TO",
16
+ index
17
+ }),
18
+ /**
19
+ * Dismiss the current bottom sheet.
20
+ */
21
+ dismiss: () => ({
22
+ type: "DISMISS"
23
+ }),
24
+ /**
25
+ * Remove the sheet from navigation state after dismiss animation completes.
26
+ */
27
+ remove: () => ({
28
+ type: "REMOVE"
29
+ })
30
+ };
31
+
32
+ /**
33
+ * Ensures the base route (first screen) exists in the navigation state.
34
+ * This is important because the first screen is the main content,
35
+ * and subsequent screens are rendered as bottom sheets.
36
+ */
37
+ const ensureBaseRoute = (state, baseRouteName, routeParamList) => {
38
+ if (!baseRouteName) {
39
+ return state;
40
+ }
41
+ const hasBaseRoute = state.routes.some(r => r.name === baseRouteName);
42
+ if (!hasBaseRoute) {
43
+ const baseRoute = {
44
+ key: `${baseRouteName}-${(0, _nonSecure.nanoid)()}`,
45
+ name: baseRouteName,
46
+ params: routeParamList?.[baseRouteName]
47
+ };
13
48
  return {
14
- type: "SNAP_TO",
15
- index
49
+ ...state,
50
+ index: state.routes.length,
51
+ routes: [baseRoute, ...state.routes]
16
52
  };
17
53
  }
54
+ return state;
18
55
  };
19
- function BottomSheetRouter(routerOptions) {
56
+ const BottomSheetRouter = routerOptions => {
20
57
  const baseRouter = (0, _native.StackRouter)(routerOptions);
21
58
  return {
22
59
  ...baseRouter,
23
60
  type: "bottom-sheet",
24
61
  getInitialState(options) {
25
62
  const state = baseRouter.getInitialState(options);
63
+ const baseRouteName = routerOptions.initialRouteName ?? options.routeNames[0];
64
+ const stateWithBaseRoute = ensureBaseRoute(state, baseRouteName, options.routeParamList);
26
65
  return {
27
- ...state,
66
+ ...stateWithBaseRoute,
28
67
  stale: false,
29
68
  type: "bottom-sheet",
30
69
  key: `bottom-sheet-${(0, _nonSecure.nanoid)()}`
@@ -34,15 +73,76 @@ function BottomSheetRouter(routerOptions) {
34
73
  switch (action.type) {
35
74
  case "SNAP_TO":
36
75
  {
37
- const index = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
76
+ const routeIndex = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
38
77
  return {
39
78
  ...state,
40
- routes: state.routes.map((route, i) => i === index ? {
79
+ routes: state.routes.map((route, i) => i === routeIndex ? {
41
80
  ...route,
42
- snapToIndex: action.index
81
+ snapToIndex: action.index,
82
+ snapToKey: (route.snapToKey ?? 0) + 1
43
83
  } : route)
44
84
  };
45
85
  }
86
+ case "GO_BACK":
87
+ case "DISMISS":
88
+ {
89
+ return this.getStateForAction(state, _native.StackActions.pop(1), options);
90
+ }
91
+ case "POP":
92
+ {
93
+ // Only base screen remains - let parent navigator handle it
94
+ if (state.routes.length <= 1) {
95
+ return null;
96
+ }
97
+ const count = "payload" in action && typeof action.payload?.count === "number" ? action.payload.count : 1;
98
+
99
+ // Calculate how many routes we can actually pop (don't pop base screen)
100
+ const maxPopCount = state.routes.length - 1;
101
+ const actualCount = Math.min(count, maxPopCount);
102
+
103
+ // Base screen - let parent navigator handle it
104
+ if (actualCount <= 0) {
105
+ return null;
106
+ }
107
+
108
+ // Target index is the route we want to stay on (land on after pop)
109
+ // closingIndex is the first route to be dismissed (the one after target)
110
+ const targetIndex = state.routes.length - 1 - actualCount;
111
+ const closingIndex = targetIndex + 1;
112
+
113
+ // Mark only the bottom-most route to pop as closing
114
+ // The sheet's dismiss() will handle dismissing sheets above it first
115
+ return {
116
+ ...state,
117
+ index: closingIndex,
118
+ routes: state.routes.map((route, i) => i === closingIndex ? {
119
+ ...route,
120
+ closing: true
121
+ } : route)
122
+ };
123
+ }
124
+ case "POP_TO_TOP":
125
+ {
126
+ const popCount = state.routes.length - 1;
127
+ return this.getStateForAction(state, _native.StackActions.pop(popCount), options);
128
+ }
129
+ case "REMOVE":
130
+ {
131
+ // Actually remove the closing route and all routes above it
132
+ const routeKey = action.source;
133
+ const routeIndex = routeKey ? state.routes.findIndex(r => r.key === routeKey) : state.routes.findIndex(r => r.closing);
134
+ if (routeIndex === -1) {
135
+ return state;
136
+ }
137
+
138
+ // Remove the route and all routes above it (they were dismissed together)
139
+ const routes = state.routes.filter((_, i) => i < routeIndex);
140
+ return {
141
+ ...state,
142
+ index: Math.min(state.index, routes.length - 1),
143
+ routes
144
+ };
145
+ }
46
146
  default:
47
147
  return baseRouter.getStateForAction(state, action, options);
48
148
  }
@@ -60,13 +160,38 @@ function BottomSheetRouter(routerOptions) {
60
160
  routeParamList,
61
161
  routeGetIdList
62
162
  });
163
+ const baseRouteName = routerOptions.initialRouteName ?? routeNames[0];
164
+ const stateWithBaseRoute = ensureBaseRoute(state, baseRouteName, routeParamList);
63
165
  return {
64
- ...state,
166
+ ...stateWithBaseRoute,
65
167
  type: "bottom-sheet",
66
168
  key: `bottom-sheet-${(0, _nonSecure.nanoid)()}`
67
169
  };
68
170
  },
69
171
  actionCreators: BottomSheetActions
70
172
  };
71
- }
173
+ };
174
+
175
+ /**
176
+ * Hook to access BottomSheet navigation with the snapTo helper.
177
+ *
178
+ * @example
179
+ * ```tsx
180
+ * function MySheet() {
181
+ * const navigation = useBottomSheetNavigation();
182
+ *
183
+ * // Snap to a specific index
184
+ * const handleExpand = () => {
185
+ * navigation.snapTo(1); // Snap to second index
186
+ * };
187
+ *
188
+ * return (
189
+ * <Button title="Expand" onPress={handleExpand} />
190
+ * );
191
+ * }
192
+ * ```
193
+ */
194
+ exports.BottomSheetRouter = BottomSheetRouter;
195
+ const useBottomSheetNavigation = () => (0, _native.useNavigation)();
196
+ exports.useBottomSheetNavigation = useBottomSheetNavigation;
72
197
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_native","require","_nonSecure","BottomSheetActions","exports","StackActions","snapTo","index","type","BottomSheetRouter","routerOptions","baseRouter","StackRouter","getInitialState","options","state","stale","key","nanoid","getStateForAction","action","target","source","routes","findIndex","r","map","route","i","snapToIndex","getRehydratedState","partialState","routeNames","routeParamList","routeGetIdList","actionCreators"],"sourceRoot":"../../../src","sources":["router/router.ts"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAQA,IAAAC,UAAA,GAAAD,OAAA;AAeO,MAAME,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAC9B,GAAGE,oBAAY;EACfC,MAAMA,CAACC,KAAa,EAAyB;IACzC,OAAO;MAAEC,IAAI,EAAE,SAAS;MAAED;IAAM,CAAC;EACrC;AACJ,CAAC;AAEM,SAASE,iBAAiBA,CAC7BC,aAAiC,EACuC;EACxE,MAAMC,UAAU,GAAG,IAAAC,mBAAW,EAACF,aAAa,CAG3C;EACD,OAAO;IACH,GAAGC,UAAU;IACbH,IAAI,EAAE,cAAc;IACpBK,eAAeA,CAACC,OAAO,EAAE;MACrB,MAAMC,KAAK,GAAGJ,UAAU,CAACE,eAAe,CAACC,OAAO,CAAC;MAEjD,OAAO;QACH,GAAGC,KAAK;QACRC,KAAK,EAAE,KAAK;QACZR,IAAI,EAAE,cAAc;QACpBS,GAAG,EAAE,gBAAgB,IAAAC,iBAAM,EAAC,CAAC;MACjC,CAAC;IACL,CAAC;IACDC,iBAAiBA,CAACJ,KAAK,EAAEK,MAAM,EAAEN,OAAO,EAAE;MACtC,QAAQM,MAAM,CAACZ,IAAI;QACf,KAAK,SAAS;UAAE;YACZ,MAAMD,KAAK,GACPa,MAAM,CAACC,MAAM,KAAKN,KAAK,CAACE,GAAG,IAAIG,MAAM,CAACE,MAAM,GACtCP,KAAK,CAACQ,MAAM,CAACC,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACR,GAAG,KAAKG,MAAM,CAACE,MAAM,CAAC,GACtDP,KAAK,CAACR,KAAK;YAErB,OAAO;cACH,GAAGQ,KAAK;cACRQ,MAAM,EAAER,KAAK,CAACQ,MAAM,CAACG,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,KAC9BA,CAAC,KAAKrB,KAAK,GACL;gBACI,GAAGoB,KAAK;gBACRE,WAAW,EAAET,MAAM,CAACb;cACxB,CAAC,GACDoB,KACV;YACJ,CAAC;UACL;QACA;UACI,OAAOhB,UAAU,CAACQ,iBAAiB,CAACJ,KAAK,EAAEK,MAAM,EAAEN,OAAO,CAAC;MACnE;IACJ,CAAC;IACDgB,kBAAkBA,CAACC,YAAY,EAAE;MAAEC,UAAU;MAAEC,cAAc;MAAEC;IAAe,CAAC,EAAE;MAC7E,IAAIH,YAAY,CAACf,KAAK,KAAK,KAAK,EAAE;QAC9B,OAAOe,YAAY;MACvB;MAEA,MAAMhB,KAAK,GAAGJ,UAAU,CAACmB,kBAAkB,CAACC,YAAY,EAAE;QACtDC,UAAU;QACVC,cAAc;QACdC;MACJ,CAAC,CAAC;MAEF,OAAO;QACH,GAAGnB,KAAK;QACRP,IAAI,EAAE,cAAc;QACpBS,GAAG,EAAE,gBAAgB,IAAAC,iBAAM,EAAC,CAAC;MACjC,CAAC;IACL,CAAC;IACDiB,cAAc,EAAEhC;EACpB,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["_native","require","_nonSecure","BottomSheetActions","exports","StackActions","snapTo","index","type","dismiss","remove","ensureBaseRoute","state","baseRouteName","routeParamList","hasBaseRoute","routes","some","r","name","baseRoute","key","nanoid","params","length","BottomSheetRouter","routerOptions","baseRouter","StackRouter","getInitialState","options","initialRouteName","routeNames","stateWithBaseRoute","stale","getStateForAction","action","routeIndex","target","source","findIndex","map","route","i","snapToIndex","snapToKey","pop","count","payload","maxPopCount","actualCount","Math","min","targetIndex","closingIndex","closing","popCount","routeKey","filter","_","getRehydratedState","partialState","routeGetIdList","actionCreators","useBottomSheetNavigation","useNavigation"],"sourceRoot":"../../../src","sources":["router/router.ts"],"mappings":"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","ignoreList":[]}
@@ -4,177 +4,144 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BottomSheetView = BottomSheetView;
7
- var _bottomSheet = require("@gorhom/bottom-sheet");
7
+ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
8
8
  var _native = require("@react-navigation/native");
9
9
  var React = _interopRequireWildcard(require("react"));
10
- var _reactNative = require("react-native");
11
- var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
12
- var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
10
+ var _router = require("./router");
11
+ var _sheet = _interopRequireDefault(require("../sheet"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
14
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
15
- function BottomSheetModalScreen({
16
- index,
17
- navigation,
18
- clickThrough,
19
- iosModalSheetTypeOfAnimation,
20
- opacity,
15
+ function BottomSheetScreen({
21
16
  children,
17
+ navigation,
18
+ route,
22
19
  ...props
23
20
  }) {
24
21
  const ref = React.useRef(null);
25
- const lastIndexRef = React.useRef(index);
22
+ const lastSnapIndexRef = React.useRef(route.snapToIndex ?? props.index ?? 0);
26
23
 
27
- // Present on mount.
28
- React.useEffect(() => {
29
- ref.current?.present();
30
- }, []);
31
- const isMounted = React.useRef(true);
24
+ // Handle route closing state
32
25
  React.useEffect(() => {
33
- return () => {
34
- isMounted.current = false;
35
- };
36
- }, []);
26
+ if (route.closing) {
27
+ ref.current?.close();
28
+ }
29
+ }, [route.closing]);
30
+
31
+ // Handle snap point changes from navigation actions
37
32
  React.useEffect(() => {
38
- if (index != null && lastIndexRef.current !== index) {
39
- ref.current?.snapToIndex(index);
33
+ if (route.snapToIndex != null && route.snapToIndex !== lastSnapIndexRef.current) {
34
+ ref.current?.snapToIndex(route.snapToIndex);
35
+ lastSnapIndexRef.current = route.snapToIndex;
40
36
  }
41
- }, [index]);
42
- const onChange = React.useCallback(newIndex => {
43
- const currentIndex = lastIndexRef.current;
44
- lastIndexRef.current = newIndex;
37
+ }, [route.snapToIndex, route.snapToKey]);
38
+ const handleChange = React.useCallback((newIndex, position, type) => {
39
+ navigation.emit({
40
+ type: "sheetOnChange",
41
+ target: route.key,
42
+ data: {
43
+ index: newIndex,
44
+ position,
45
+ type
46
+ }
47
+ });
48
+ const currentIndex = lastSnapIndexRef.current;
49
+ lastSnapIndexRef.current = newIndex;
45
50
  if (newIndex >= 0 && newIndex !== currentIndex) {
46
- navigation.snapTo(newIndex);
47
- }
48
- }, [navigation]);
49
- const onDismiss = React.useCallback(() => {
50
- // BottomSheetModal will call onDismiss on unmount, be we do not want that since
51
- // we already popped the screen.
52
- if (isMounted.current) {
53
- navigation.goBack();
51
+ navigation.dispatch(_router.BottomSheetActions.snapTo(newIndex));
54
52
  }
55
53
  }, [navigation]);
56
- return /*#__PURE__*/React.createElement(_bottomSheet.BottomSheetModal, _extends({
54
+ return /*#__PURE__*/React.createElement(_sheet.default, _extends({
57
55
  ref: ref,
58
- onDismiss: onDismiss,
59
- onChange: onChange,
60
- index: index,
61
- backdropComponent: props => /*#__PURE__*/React.createElement(_bottomSheet.BottomSheetBackdrop, _extends({}, props, {
62
- appearsOnIndex: 0,
63
- disappearsOnIndex: -1,
64
- enableTouchThrough: !!clickThrough,
65
- opacity: opacity || 0.45
66
- }))
56
+ onChange: handleChange
67
57
  }, props), children);
68
58
  }
69
- const DEFAULT_SNAP_POINTS = ["66%"];
70
59
  function BottomSheetView({
71
60
  state,
61
+ navigation,
72
62
  descriptors
73
63
  }) {
74
64
  const {
75
65
  colors
76
66
  } = (0, _native.useTheme)();
77
67
  const {
78
- top
68
+ bottom,
69
+ left,
70
+ right
79
71
  } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
80
72
  const themeBackgroundStyle = React.useMemo(() => ({
73
+ borderCurve: "continuous",
81
74
  backgroundColor: colors.card
82
75
  }), [colors.card]);
83
76
  const themeHandleIndicatorStyle = React.useMemo(() => ({
84
- backgroundColor: colors.border,
85
- height: 5,
86
- width: 50
77
+ borderCurve: "continuous",
78
+ backgroundColor: colors.border
87
79
  }), [colors.border]);
88
-
89
- // IOS modal sheet type of animation
90
- const isFullScreen = (0, _reactNativeReanimated.useSharedValue)(0);
91
- const colorStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
92
- flex: 1,
93
- backgroundColor: (0, _reactNativeReanimated.interpolateColor)(isFullScreen.value, [0, 1], ["transparent", "#000"])
94
- }));
95
- const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
96
- flex: 1,
97
- transform: [{
98
- scaleX: (0, _reactNativeReanimated.withSpring)((0, _reactNativeReanimated.interpolate)(isFullScreen.value, [0, 1], [1, 0.92]), {
99
- damping: 15,
100
- stiffness: 100
101
- })
102
- }, {
103
- translateY: (0, _reactNativeReanimated.withSpring)((0, _reactNativeReanimated.interpolate)(isFullScreen.value, [0, 1], [0, top + 5]), {
104
- damping: 15,
105
- stiffness: 100
106
- })
107
- }]
108
- }));
109
-
110
- // Since background color is white, we need to set status bar to light
111
- const setStatusBar = _reactNative.StatusBar.setBarStyle;
112
- (0, _reactNativeReanimated.useAnimatedReaction)(() => isFullScreen.value, currentValue => {
113
- "worklet";
114
-
115
- if (currentValue > -1) {
116
- (0, _reactNativeReanimated.runOnJS)(setStatusBar)(currentValue >= 0.5 ? "light-content" : "default");
117
- }
118
- }, []);
119
-
120
- // Avoid rendering provider if we only have one screen.
121
- const shouldRenderProvider = React.useRef(false);
122
- shouldRenderProvider.current = shouldRenderProvider.current || state.routes.length > 1;
123
- const firstRoute = state.routes[0];
124
- if (!firstRoute) {
125
- // no routes at all, probably shouldn't happen, but let's be defensive
126
- return null;
127
- }
128
- const firstDescriptor = descriptors[firstRoute.key];
129
- if (!firstDescriptor) {
130
- // if we don't have a descriptor for the first route, bail out
131
- return null;
132
- }
133
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
134
- style: colorStyle
135
- }, /*#__PURE__*/React.createElement(_reactNativeReanimated.default.View, {
136
- style: animatedStyle
137
- }, firstDescriptor.render?.())), shouldRenderProvider.current && /*#__PURE__*/React.createElement(_bottomSheet.BottomSheetModalProvider, null, state.routes.slice(1).map(route => {
80
+ const defaultStyle = React.useMemo(() => ({
81
+ paddingBottom: bottom,
82
+ paddingLeft: left,
83
+ paddingRight: right
84
+ }), [bottom, left, right]);
85
+ const [baseRoute, ...sheetRoutes] = state.routes;
86
+ const baseDescriptor = baseRoute ? descriptors[baseRoute.key] : null;
87
+ return /*#__PURE__*/React.createElement(React.Fragment, null, baseDescriptor?.render(), sheetRoutes.map(route => {
138
88
  const descriptor = descriptors[route.key];
139
89
  if (!descriptor) return null;
140
90
  const {
141
91
  options,
142
- navigation,
143
92
  render
144
93
  } = descriptor;
145
94
  const {
146
- index,
147
- snapPoints,
148
- handleStyle,
95
+ index = 0,
96
+ style,
149
97
  backgroundStyle,
150
98
  handleIndicatorStyle,
151
- enableDynamicSizing,
152
- ...sheetProps
99
+ handleStyle,
100
+ ...props
153
101
  } = options;
154
- return /*#__PURE__*/React.createElement(BottomSheetModalScreen, _extends({
155
- key: route.key
156
- // Make sure index is in range, it could be out if snapToIndex is persisted
157
- // and snapPoints is changed.
158
- ,
159
- index: Math.min(route.snapToIndex ?? index ?? 0, !!snapPoints ? snapPoints.length - 1 : 0),
160
- snapPoints: !snapPoints && !enableDynamicSizing ? DEFAULT_SNAP_POINTS : snapPoints,
161
- onAnimate: (_, to) => {
162
- // @ts-ignore TODO: Fix types
163
- isFullScreen.value = ["%100", "100%"].includes(snapPoints?.[to]) ? 1 : 0;
164
- },
165
- animationConfigs: {
166
- duration: 300,
167
- easing: _reactNativeReanimated.Easing.bezier(0.25, 0.1, 0.25, 1)
168
- },
169
- topInset: top + 18,
102
+ return /*#__PURE__*/React.createElement(BottomSheetScreen, _extends({
103
+ key: route.key,
104
+ id: route.key,
105
+ route: route,
106
+ index: index,
170
107
  navigation: navigation,
171
- enableDynamicSizing: enableDynamicSizing,
108
+ style: [defaultStyle, style],
172
109
  backgroundStyle: [themeBackgroundStyle, backgroundStyle],
173
110
  handleIndicatorStyle: [themeHandleIndicatorStyle, handleIndicatorStyle],
174
111
  handleStyle: [themeBackgroundStyle, {
175
- borderRadius: 20
176
- }, handleStyle]
177
- }, sheetProps), render?.());
178
- })));
112
+ borderRadius: 24
113
+ }, handleStyle],
114
+ onClose: data => {
115
+ navigation.dispatch({
116
+ ..._router.BottomSheetActions.remove(),
117
+ source: route.key
118
+ });
119
+ navigation.emit({
120
+ type: "sheetDismiss",
121
+ target: route.key,
122
+ data
123
+ });
124
+ },
125
+ onBeforeShow: data => {
126
+ navigation.emit({
127
+ type: "sheetPresent",
128
+ target: route.key,
129
+ data
130
+ });
131
+ },
132
+ onAnimate: (fromIndex, toIndex, fromPosition, toPosition) => {
133
+ navigation.emit({
134
+ type: "sheetOnAnimate",
135
+ target: route.key,
136
+ data: {
137
+ fromIndex,
138
+ toIndex,
139
+ fromPosition,
140
+ toPosition
141
+ }
142
+ });
143
+ }
144
+ }, props), render());
145
+ }));
179
146
  }
180
147
  //# sourceMappingURL=view.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_bottomSheet","require","_native","React","_interopRequireWildcard","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","BottomSheetModalScreen","index","navigation","clickThrough","iosModalSheetTypeOfAnimation","opacity","children","props","ref","useRef","lastIndexRef","useEffect","current","present","isMounted","snapToIndex","onChange","useCallback","newIndex","currentIndex","snapTo","onDismiss","goBack","createElement","BottomSheetModal","backdropComponent","BottomSheetBackdrop","appearsOnIndex","disappearsOnIndex","enableTouchThrough","DEFAULT_SNAP_POINTS","BottomSheetView","state","descriptors","colors","useTheme","top","useSafeAreaInsets","themeBackgroundStyle","useMemo","backgroundColor","card","themeHandleIndicatorStyle","border","height","width","isFullScreen","useSharedValue","colorStyle","useAnimatedStyle","flex","interpolateColor","value","animatedStyle","transform","scaleX","withSpring","interpolate","damping","stiffness","translateY","setStatusBar","StatusBar","setBarStyle","useAnimatedReaction","currentValue","runOnJS","shouldRenderProvider","routes","firstRoute","firstDescriptor","key","Fragment","View","style","render","BottomSheetModalProvider","slice","map","route","descriptor","options","snapPoints","handleStyle","backgroundStyle","handleIndicatorStyle","enableDynamicSizing","sheetProps","Math","min","onAnimate","_","to","includes","animationConfigs","duration","easing","Easing","bezier","topInset","borderRadius"],"sourceRoot":"../../../src","sources":["router/view.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSafeAreaContext","require","_native","React","_interopRequireWildcard","_router","_sheet","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","BottomSheetScreen","children","navigation","route","props","ref","useRef","lastSnapIndexRef","snapToIndex","index","useEffect","closing","current","close","snapToKey","handleChange","useCallback","newIndex","position","type","emit","target","key","data","currentIndex","dispatch","BottomSheetActions","snapTo","createElement","onChange","BottomSheetView","state","descriptors","colors","useTheme","bottom","left","right","useSafeAreaInsets","themeBackgroundStyle","useMemo","borderCurve","backgroundColor","card","themeHandleIndicatorStyle","border","defaultStyle","paddingBottom","paddingLeft","paddingRight","baseRoute","sheetRoutes","routes","baseDescriptor","Fragment","render","map","descriptor","options","style","backgroundStyle","handleIndicatorStyle","handleStyle","id","borderRadius","onClose","remove","source","onBeforeShow","onAnimate","fromIndex","toIndex","fromPosition","toPosition"],"sourceRoot":"../../../src","sources":["router/view.tsx"],"mappings":";;;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAC,uBAAA,CAAAH,OAAA;AASA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAC,sBAAA,CAAAN,OAAA;AAAmC,SAAAM,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAI,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAAA,SAAAgB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAf,CAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAK,CAAA,IAAAF,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAa,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAQnC,SAASG,iBAAiBA,CAAC;EACzBC,QAAQ;EACRC,UAAU;EACVC,KAAK;EACL,GAAGC;AAIL,CAAC,EAAE;EACD,MAAMC,GAAG,GAAGnC,KAAK,CAACoC,MAAM,CAAsB,IAAI,CAAC;EACnD,MAAMC,gBAAgB,GAAGrC,KAAK,CAACoC,MAAM,CAACH,KAAK,CAACK,WAAW,IAAIJ,KAAK,CAACK,KAAK,IAAI,CAAC,CAAC;;EAE5E;EACAvC,KAAK,CAACwC,SAAS,CAAC,MAAM;IACpB,IAAIP,KAAK,CAACQ,OAAO,EAAE;MACjBN,GAAG,CAACO,OAAO,EAAEC,KAAK,CAAC,CAAC;IACtB;EACF,CAAC,EAAE,CAACV,KAAK,CAACQ,OAAO,CAAC,CAAC;;EAEnB;EACAzC,KAAK,CAACwC,SAAS,CAAC,MAAM;IACpB,IAAIP,KAAK,CAACK,WAAW,IAAI,IAAI,IAAIL,KAAK,CAACK,WAAW,KAAKD,gBAAgB,CAACK,OAAO,EAAE;MAC/EP,GAAG,CAACO,OAAO,EAAEJ,WAAW,CAACL,KAAK,CAACK,WAAW,CAAC;MAC3CD,gBAAgB,CAACK,OAAO,GAAGT,KAAK,CAACK,WAAW;IAC9C;EACF,CAAC,EAAE,CAACL,KAAK,CAACK,WAAW,EAAEL,KAAK,CAACW,SAAS,CAAC,CAAC;EAExC,MAAMC,YAAY,GAAG7C,KAAK,CAAC8C,WAAW,CACpC,CAACC,QAAgB,EAAEC,QAAgB,EAAEC,IAAqB,KAAK;IAC7DjB,UAAU,CAACkB,IAAI,CAAC;MACdD,IAAI,EAAE,eAAe;MACrBE,MAAM,EAAElB,KAAK,CAACmB,GAAG;MACjBC,IAAI,EAAE;QAAEd,KAAK,EAAEQ,QAAQ;QAAEC,QAAQ;QAAEC;MAAK;IAC1C,CAAC,CAAC;IAEF,MAAMK,YAAY,GAAGjB,gBAAgB,CAACK,OAAO;IAC7CL,gBAAgB,CAACK,OAAO,GAAGK,QAAQ;IAEnC,IAAIA,QAAQ,IAAI,CAAC,IAAIA,QAAQ,KAAKO,YAAY,EAAE;MAC9CtB,UAAU,CAACuB,QAAQ,CAACC,0BAAkB,CAACC,MAAM,CAACV,QAAQ,CAAC,CAAC;IAC1D;EACF,CAAC,EACD,CAACf,UAAU,CACb,CAAC;EAED,oBACEhC,KAAA,CAAA0D,aAAA,CAACvD,MAAA,CAAAI,OAAW,EAAAiB,QAAA;IAACW,GAAG,EAAEA,GAAI;IAACwB,QAAQ,EAAEd;EAAa,GAAKX,KAAK,GACrDH,QACU,CAAC;AAElB;AAEO,SAAS6B,eAAeA,CAAC;EAAEC,KAAK;EAAE7B,UAAU;EAAE8B;AAAmB,CAAC,EAAE;EACzE,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,gBAAQ,EAAC,CAAC;EAC7B,MAAM;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,6CAAiB,EAAC,CAAC;EAEnD,MAAMC,oBAAoB,GAAGrE,KAAK,CAACsE,OAAO,CACxC,OAAO;IACLC,WAAW,EAAE,YAAoC;IACjDC,eAAe,EAAET,MAAM,CAACU;EAC1B,CAAC,CAAC,EACF,CAACV,MAAM,CAACU,IAAI,CACd,CAAC;EAED,MAAMC,yBAAyB,GAAG1E,KAAK,CAACsE,OAAO,CAC7C,OAAO;IACLC,WAAW,EAAE,YAAoC;IACjDC,eAAe,EAAET,MAAM,CAACY;EAC1B,CAAC,CAAC,EACF,CAACZ,MAAM,CAACY,MAAM,CAChB,CAAC;EAED,MAAMC,YAAY,GAAG5E,KAAK,CAACsE,OAAO,CAChC,OAAO;IAAEO,aAAa,EAAEZ,MAAM;IAAEa,WAAW,EAAEZ,IAAI;IAAEa,YAAY,EAAEZ;EAAM,CAAC,CAAC,EACzE,CAACF,MAAM,EAAEC,IAAI,EAAEC,KAAK,CACtB,CAAC;EAED,MAAM,CAACa,SAAS,EAAE,GAAGC,WAAW,CAAC,GAAGpB,KAAK,CAACqB,MAAM;EAChD,MAAMC,cAAc,GAAGH,SAAS,GAAGlB,WAAW,CAACkB,SAAS,CAAC5B,GAAG,CAAC,GAAG,IAAI;EAEpE,oBACEpD,KAAA,CAAA0D,aAAA,CAAA1D,KAAA,CAAAoF,QAAA,QACGD,cAAc,EAAEE,MAAM,CAAC,CAAC,EACxBJ,WAAW,CAACK,GAAG,CAAErD,KAAK,IAAK;IAC1B,MAAMsD,UAAU,GAAGzB,WAAW,CAAC7B,KAAK,CAACmB,GAAG,CAAC;IACzC,IAAI,CAACmC,UAAU,EAAE,OAAO,IAAI;IAE5B,MAAM;MAAEC,OAAO;MAAEH;IAAO,CAAC,GAAGE,UAAU;IACtC,MAAM;MACJhD,KAAK,GAAG,CAAC;MACTkD,KAAK;MACLC,eAAe;MACfC,oBAAoB;MACpBC,WAAW;MACX,GAAG1D;IACL,CAAC,GAAGsD,OAAO;IAEX,oBACExF,KAAA,CAAA0D,aAAA,CAAC5B,iBAAiB,EAAAN,QAAA;MAChB4B,GAAG,EAAEnB,KAAK,CAACmB,GAAI;MACfyC,EAAE,EAAE5D,KAAK,CAACmB,GAAI;MACdnB,KAAK,EAAEA,KAAM;MACbM,KAAK,EAAEA,KAAM;MACbP,UAAU,EAAEA,UAAW;MACvByD,KAAK,EAAE,CAACb,YAAY,EAAEa,KAAK,CAAE;MAC7BC,eAAe,EAAE,CAACrB,oBAAoB,EAAEqB,eAAe,CAAE;MACzDC,oBAAoB,EAAE,CAACjB,yBAAyB,EAAEiB,oBAAoB,CAAE;MACxEC,WAAW,EAAE,CAACvB,oBAAoB,EAAE;QAAEyB,YAAY,EAAE;MAAG,CAAC,EAAEF,WAAW,CAAE;MACvEG,OAAO,EAAG1C,IAAI,IAAK;QACjBrB,UAAU,CAACuB,QAAQ,CAAC;UAClB,GAAGC,0BAAkB,CAACwC,MAAM,CAAC,CAAC;UAC9BC,MAAM,EAAEhE,KAAK,CAACmB;QAChB,CAAC,CAAC;QACFpB,UAAU,CAACkB,IAAI,CAAC;UACdD,IAAI,EAAE,cAAc;UACpBE,MAAM,EAAElB,KAAK,CAACmB,GAAG;UACjBC;QACF,CAAC,CAAC;MACJ,CAAE;MACF6C,YAAY,EAAG7C,IAAI,IAAK;QACtBrB,UAAU,CAACkB,IAAI,CAAC;UACdD,IAAI,EAAE,cAAc;UACpBE,MAAM,EAAElB,KAAK,CAACmB,GAAG;UACjBC;QACF,CAAC,CAAC;MACJ,CAAE;MACF8C,SAAS,EAAEA,CAACC,SAAS,EAAEC,OAAO,EAAEC,YAAY,EAAEC,UAAU,KAAK;QAC3DvE,UAAU,CAACkB,IAAI,CAAC;UACdD,IAAI,EAAE,gBAAgB;UACtBE,MAAM,EAAElB,KAAK,CAACmB,GAAG;UACjBC,IAAI,EAAE;YAAE+C,SAAS;YAAEC,OAAO;YAAEC,YAAY;YAAEC;UAAW;QACvD,CAAC,CAAC;MACJ;IAAE,GACErE,KAAK,GAERmD,MAAM,CAAC,CACS,CAAC;EAExB,CAAC,CACD,CAAC;AAEP","ignoreList":[]}