@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
@@ -8,7 +8,6 @@ var _bottomSheet = _interopRequireWildcard(require("@gorhom/bottom-sheet"));
8
8
  var _reactNative = require("react-native");
9
9
  var _reactNativeReanimated = require("react-native-reanimated");
10
10
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
11
- var _native = require("@react-navigation/native");
12
11
  var _react = _interopRequireDefault(require("react"));
13
12
  var _provider = require("./provider");
14
13
  var _manager = require("./manager");
@@ -16,81 +15,98 @@ var _events = require("./events");
16
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
16
  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); }
18
17
  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); }
18
+ const FULL_SCREEN_POINTS = _reactNative.Platform.OS === "ios" ? ["%90", "90%"] : ["%93", "93%"];
19
19
  const useSheetManager = ({
20
20
  id,
21
21
  onHide,
22
22
  onBeforeShow,
23
23
  onContextUpdate
24
24
  }) => {
25
- const [visible, setVisible] = _react.default.useState(false);
26
25
  const currentContext = (0, _provider.useProviderContext)();
26
+ const hasShownRef = _react.default.useRef(false);
27
27
  _react.default.useEffect(() => {
28
28
  if (!id) return undefined;
29
- const subscriptions = [_events.eventManager.subscribe(`show_${id}`, (data, context) => {
30
- if (currentContext !== context || visible) return;
31
- onContextUpdate?.();
32
- onBeforeShow?.(data);
33
- setVisible(true);
34
- }), _events.eventManager.subscribe(`hide_${id}`, (data, context, dismiss) => {
29
+ const subscriptions = [_events.eventManager.subscribe(`show_${id}`, (data, context, behavior) => {
30
+ if (currentContext !== context) return;
31
+ if (!hasShownRef.current) {
32
+ hasShownRef.current = true;
33
+ onContextUpdate?.();
34
+ onBeforeShow?.(data, behavior);
35
+ }
36
+ }), _events.eventManager.subscribe(`hide_${id}`, (data, context, dismiss, behavior) => {
35
37
  if (currentContext !== context) return;
36
- onHide?.(data, dismiss);
38
+ hasShownRef.current = false;
39
+ onHide?.(data, dismiss, behavior);
37
40
  })];
38
41
  return () => {
42
+ hasShownRef.current = false;
39
43
  subscriptions.forEach(s => s?.unsubscribe?.());
40
44
  };
41
45
  }, [id, onHide, onBeforeShow, onContextUpdate, currentContext]);
42
- return {
43
- visible,
44
- setVisible
45
- };
46
46
  };
47
47
  const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
48
48
  children,
49
- snapPoints,
50
49
  onClose,
51
50
  onBeforeShow,
52
51
  stackBehavior = "switch",
53
52
  hardwareBackPressToClose = true,
54
53
  enableDynamicSizing = false,
55
54
  handleIndicatorStyle,
56
- iosModalSheetTypeOfAnimation: pageAnimation,
55
+ iosModalSheetTypeOfAnimation,
56
+ snapPoints: defaultSnapPoints,
57
+ animatedIndex: defaultAnimatedIndex,
57
58
  backgroundStyle,
59
+ onAnimate,
58
60
  handleStyle,
59
- clickThrough,
60
- fullScreen,
61
+ style,
62
+ passThrough,
61
63
  opacity,
62
64
  ...props
63
65
  }, ref) => {
64
66
  const currentSheetRef = (0, _provider.useSheetRef)();
65
67
  const currentCtx = (0, _provider.useProviderContext)();
66
- const {
67
- isFullScreen,
68
- iosModalSheetTypeOfAnimation
69
- } = (0, _provider.useSheetAnimationContext)();
68
+ const stackContext = (0, _provider.useStackBehaviorContext)();
70
69
  const animatedIndex = (0, _reactNativeReanimated.useSharedValue)(0);
70
+ const [currentStackBehavior, setCurrentStackBehavior] = _react.default.useState(stackBehavior);
71
+ const isPushed = currentStackBehavior === "push";
71
72
  const {
72
- colors
73
- } = (0, _native.useTheme)();
74
- const {
75
- top
73
+ bottom,
74
+ left,
75
+ right
76
76
  } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
77
- const themeBackgroundStyle = _react.default.useMemo(() => ({
78
- backgroundColor: colors.card
79
- }), [colors.card]);
80
- const themeHandleIndicatorStyle = _react.default.useMemo(() => ({
81
- backgroundColor: colors.border,
82
- height: 5,
83
- width: 50
84
- }), [colors.border]);
77
+ const defaultStyle = _react.default.useMemo(() => ({
78
+ paddingBottom: bottom,
79
+ paddingLeft: left,
80
+ paddingRight: right
81
+ }), [bottom, left, right]);
82
+ const {
83
+ isFullScreen
84
+ } = (0, _provider.useSheetSharedContext)();
85
+ const [snapPoints, fullScreenIndex] = _react.default.useMemo(() => {
86
+ let resolved = defaultSnapPoints;
87
+ if (_reactNative.Platform.OS === "android" && iosModalSheetTypeOfAnimation && Array.isArray(resolved)) {
88
+ resolved = resolved.map(p => p === "90%" || p === "%90" ? "93%" : p);
89
+ }
90
+ const fullScreenIndex = resolved instanceof Array ? resolved.findIndex(p => FULL_SCREEN_POINTS.includes(p)) : resolved?.value?.findIndex(p => FULL_SCREEN_POINTS.includes(p)) || -1;
91
+ return [resolved, fullScreenIndex];
92
+ }, [defaultSnapPoints, iosModalSheetTypeOfAnimation]);
85
93
  const valueRef = _react.default.useRef(null);
86
94
  const bottomSheetRef = _react.default.useRef(null);
87
95
  const hardwareBackPressEvent = _react.default.useRef(null);
88
96
  const id = (0, _provider.useSheetIDContext)();
89
97
  const sheetId = props.id || id;
98
+ const hideSheetRef = _react.default.useRef(null);
90
99
  useSheetManager({
91
100
  id: sheetId,
92
- onHide: (data, dismiss) => hideSheet(data, true, dismiss),
93
- onBeforeShow: data => {
101
+ onHide: (data, dismiss, behavior) => {
102
+ // Update state for future renders, but also pass behavior directly
103
+ // so hideSheet doesn't read a stale closure value (React state update
104
+ // is async — hideSheet runs before the re-render).
105
+ if (behavior) setCurrentStackBehavior(behavior);
106
+ hideSheetRef.current(data, true, dismiss, behavior);
107
+ },
108
+ onBeforeShow: (data, behavior) => {
109
+ if (behavior) setCurrentStackBehavior(behavior);
94
110
  onBeforeShow?.(data);
95
111
  valueRef.current = undefined;
96
112
  currentSheetRef.current = getInstance();
@@ -104,49 +120,63 @@ const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
104
120
  }
105
121
  }
106
122
  });
107
- (0, _reactNativeReanimated.useAnimatedReaction)(() => {
108
- if (!!iosModalSheetTypeOfAnimation || !!pageAnimation) {
109
- isFullScreen.value = 0;
110
- }
111
- return animatedIndex.value;
112
- }, index => {
123
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => animatedIndex.value, index => {
113
124
  "worklet";
114
125
 
115
- const points = ["%100", "100%"];
116
- const checkFullScreen = fullScreen ? -1 : snapPoints instanceof Array ? snapPoints.findIndex(p => points.includes(p)) : snapPoints?.value?.findIndex(p => points.includes(p)) || -1;
117
- if (-1 !== checkFullScreen && (!!iosModalSheetTypeOfAnimation || !!pageAnimation)) {
118
- isFullScreen.value = (0, _reactNativeReanimated.interpolate)(index, [checkFullScreen - 1, checkFullScreen], [0, 1]);
126
+ if (defaultAnimatedIndex) {
127
+ defaultAnimatedIndex.set(index);
128
+ }
129
+ if (iosModalSheetTypeOfAnimation) {
130
+ isFullScreen.set((0, _reactNativeReanimated.interpolate)(index, [fullScreenIndex - 1, fullScreenIndex, fullScreenIndex + 1], [0, 1, 0]));
119
131
  }
120
- }, [snapPoints]);
121
- const hideSheet = _react.default.useCallback((data, isSheetManagerOrRef, dismiss) => {
132
+ }, [iosModalSheetTypeOfAnimation]);
133
+ const hideSheet = _react.default.useCallback((data, fromManager, dismiss, incomingBehavior) => {
134
+ // Use the freshly-delivered behavior from the event when available.
135
+ // currentStackBehavior comes from React state which may not have flushed
136
+ // yet when this callback fires synchronously from the manager.
137
+ const activeBehavior = incomingBehavior ?? currentStackBehavior;
122
138
  let value = data ?? valueRef.current;
123
- if (!dismiss || stackBehavior !== "push") {
124
- hardwareBackPressEvent.current?.remove();
139
+ hardwareBackPressEvent.current?.remove();
140
+ const closeValue = onClose?.(value);
141
+ if (closeValue !== undefined) value = closeValue;
142
+ if (dismiss && activeBehavior === "push") {
143
+ // For push behavior, a "dismiss" event means another sheet wants to
144
+ // appear on top — do not close this sheet.
145
+ if (fromManager) valueRef.current = data;
146
+ return;
147
+ }
148
+ if (activeBehavior !== "replace" || !dismiss) {
125
149
  bottomSheetRef.current?.close();
126
- const closeValue = onClose?.(value);
127
- if (undefined !== closeValue) value = closeValue;
128
150
  }
129
151
  if (sheetId) {
130
- _manager.PrivateManager.remove(sheetId, currentCtx);
131
- if (dismiss && stackBehavior === "push") return;
132
- const history = _manager.PrivateManager.history.length >= 1;
133
- _events.eventManager.publish(`onclose_${sheetId}`, value, currentCtx, history || dismiss);
134
- if (stackBehavior === "replace") return;
135
- if (dismiss) {
136
- _manager.PrivateManager.history.push({
137
- id: sheetId,
138
- context: currentCtx
139
- });
140
- } else if (history) {
141
- const {
142
- id,
143
- context
144
- } = _manager.PrivateManager.history.pop();
145
- _events.eventManager.publish(`show_wrap_${id}`, undefined, context, true);
152
+ const hasHistory = _manager.PrivateManager.history.length > 0;
153
+ const shouldRestorePrevious = activeBehavior !== "replace";
154
+ _events.eventManager.publish(`onclose_${sheetId}`, value, currentCtx, hasHistory || !!dismiss, activeBehavior);
155
+ if (shouldRestorePrevious) {
156
+ if (dismiss) {
157
+ // it will surface naturally when the push sheet is closed.
158
+ if (activeBehavior !== "push") {
159
+ _manager.PrivateManager.history.push({
160
+ id: sheetId,
161
+ context: currentCtx,
162
+ behavior: activeBehavior
163
+ });
164
+ }
165
+ } else if (hasHistory) {
166
+ const otherSheetsStillOpen = _manager.PrivateManager.stack().some(s => !(s.id === sheetId && s.context === currentCtx));
167
+ if (!otherSheetsStillOpen) {
168
+ const prev = _manager.PrivateManager.history.pop();
169
+ _events.eventManager.publish(`show_wrap_${prev.id}`, undefined, prev.context, true, prev.behavior);
170
+ }
171
+ }
146
172
  }
173
+ _manager.PrivateManager.remove(sheetId, currentCtx);
147
174
  }
148
- if (isSheetManagerOrRef) valueRef.current = data;
149
- }, [sheetId, currentCtx, onClose]);
175
+ if (fromManager) valueRef.current = data;
176
+ }, [sheetId, currentCtx, onClose, currentStackBehavior]);
177
+ _react.default.useEffect(() => {
178
+ hideSheetRef.current = hideSheet;
179
+ }, [hideSheet]);
150
180
  const getInstance = _react.default.useCallback(() => ({
151
181
  close(options = {}) {
152
182
  valueRef.current = options.value;
@@ -176,39 +206,47 @@ const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
176
206
  _react.default.useEffect(() => {
177
207
  if (_reactNative.Platform.OS === "android" && hardwareBackPressToClose) {
178
208
  hardwareBackPressEvent.current = _reactNative.BackHandler.addEventListener("hardwareBackPress", () => {
179
- bottomSheetRef.current?.close();
209
+ // Go through hideSheet so internal state (PrivateManager, events,
210
+ // history) is updated correctly — not just the visual sheet.
211
+ hideSheetRef.current(undefined, true, false);
180
212
  return true;
181
213
  });
182
214
  }
183
215
  return () => hardwareBackPressEvent.current?.remove();
184
216
  }, [hardwareBackPressToClose]);
185
217
  _react.default.useImperativeHandle(ref, getInstance, [getInstance]);
218
+ const zIndex = _react.default.useMemo(() => isPushed && sheetId ? _manager.PrivateManager.zIndex(sheetId, currentCtx) : 0, [sheetId, isPushed, currentCtx]);
219
+ const backdropOpacity = _react.default.useMemo(() => {
220
+ if (isPushed && stackContext.previousSheetId) {
221
+ return (opacity || 0.45) * 0.6;
222
+ }
223
+ return opacity || 0.45;
224
+ }, [isPushed, stackContext.previousSheetId, opacity]);
186
225
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
187
226
  pointerEvents: "box-none",
188
227
  style: [_reactNative.StyleSheet.absoluteFill, {
189
- zIndex: sheetId && stackBehavior === "push" ? _manager.PrivateManager.zIndex(sheetId, currentCtx) : 0
228
+ zIndex
190
229
  }]
191
230
  }, /*#__PURE__*/_react.default.createElement(_bottomSheet.default, _extends({
192
231
  enableDynamicSizing: enableDynamicSizing,
193
- animationConfigs: {
194
- duration: 400,
195
- easing: _reactNativeReanimated.Easing.bezier(0.25, 0.1, 0.25, 1)
196
- },
197
- backdropComponent: props => /*#__PURE__*/_react.default.createElement(_bottomSheet.BottomSheetBackdrop, _extends({
198
- enableTouchThrough: !!clickThrough,
199
- opacity: opacity || 0.45,
232
+ backdropComponent: backdropProps => /*#__PURE__*/_react.default.createElement(_bottomSheet.BottomSheetBackdrop, _extends({
233
+ enableTouchThrough: !!passThrough,
234
+ opacity: backdropOpacity,
200
235
  disappearsOnIndex: -1,
201
236
  appearsOnIndex: 0
202
- }, props))
237
+ }, backdropProps)),
238
+ topInset: 0,
239
+ bottomInset: 0
203
240
  }, props, {
204
241
  ref: bottomSheetRef,
205
242
  onClose: hideSheet,
243
+ onAnimate: onAnimate,
206
244
  animatedIndex: animatedIndex,
207
- topInset: fullScreen ? 0 : top + (iosModalSheetTypeOfAnimation || pageAnimation ? 20 : 5),
208
- snapPoints: enableDynamicSizing ? undefined : snapPoints ?? ["66%"],
209
- handleIndicatorStyle: [themeHandleIndicatorStyle, handleIndicatorStyle],
210
- backgroundStyle: [themeBackgroundStyle, backgroundStyle],
211
- handleStyle: [themeBackgroundStyle, handleStyle]
245
+ style: [defaultStyle, style],
246
+ snapPoints: enableDynamicSizing ? undefined : snapPoints,
247
+ handleIndicatorStyle: handleIndicatorStyle,
248
+ backgroundStyle: backgroundStyle,
249
+ handleStyle: handleStyle
212
250
  }), children));
213
251
  });
214
252
  const BottomSheet = /*#__PURE__*/_react.default.memo(BottomSheetComponent);
@@ -223,19 +261,5 @@ BottomSheet.Footer = _bottomSheet.BottomSheetFooter;
223
261
  BottomSheet.FooterContainer = _bottomSheet.BottomSheetFooterContainer;
224
262
  BottomSheet.Backdrop = _bottomSheet.BottomSheetBackdrop;
225
263
  BottomSheet.TextInput = _bottomSheet.BottomSheetTextInput;
226
- try {
227
- const {
228
- cssInterop
229
- } = require("nativewind");
230
- cssInterop(BottomSheet, {
231
- handleIndicatorClassName: "handleIndicatorStyle",
232
- backgroundClassName: "backgroundStyle",
233
- containerClassName: "containerStyle",
234
- handleClassName: "handleStyle",
235
- className: "style"
236
- });
237
- } catch (e) {
238
- // Ignore error
239
- }
240
264
  var _default = exports.default = BottomSheet;
241
265
  //# sourceMappingURL=sheet.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_bottomSheet","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_native","_react","_interopRequireDefault","_provider","_manager","_events","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","useSheetManager","id","onHide","onBeforeShow","onContextUpdate","visible","setVisible","React","useState","currentContext","useProviderContext","useEffect","undefined","subscriptions","eventManager","subscribe","data","context","dismiss","forEach","s","unsubscribe","BottomSheetComponent","forwardRef","children","snapPoints","onClose","stackBehavior","hardwareBackPressToClose","enableDynamicSizing","handleIndicatorStyle","iosModalSheetTypeOfAnimation","pageAnimation","backgroundStyle","handleStyle","clickThrough","fullScreen","opacity","props","ref","currentSheetRef","useSheetRef","currentCtx","isFullScreen","useSheetAnimationContext","animatedIndex","useSharedValue","colors","useTheme","top","useSafeAreaInsets","themeBackgroundStyle","useMemo","backgroundColor","card","themeHandleIndicatorStyle","border","height","width","valueRef","useRef","bottomSheetRef","hardwareBackPressEvent","useSheetIDContext","sheetId","hideSheet","current","getInstance","PrivateManager","add","registerRef","useAnimatedReaction","value","index","points","checkFullScreen","Array","findIndex","p","includes","interpolate","useCallback","isSheetManagerOrRef","remove","close","closeValue","history","publish","push","pop","options","animationConfigs","expand","collapse","snapToIndex","snapToPosition","position","Platform","OS","BackHandler","addEventListener","useImperativeHandle","createElement","View","pointerEvents","style","StyleSheet","absoluteFill","zIndex","duration","easing","Easing","bezier","backdropComponent","BottomSheetBackdrop","enableTouchThrough","disappearsOnIndex","appearsOnIndex","topInset","BottomSheet","memo","displayName","BottomSheetView","ScrollView","BottomSheetScrollView","FlatList","BottomSheetFlatList","SectionList","BottomSheetSectionList","VirtualizedList","BottomSheetVirtualizedList","Handle","BottomSheetHandle","Footer","BottomSheetFooter","FooterContainer","BottomSheetFooterContainer","Backdrop","TextInput","BottomSheetTextInput","cssInterop","handleIndicatorClassName","backgroundClassName","containerClassName","handleClassName","className","_default","exports"],"sourceRoot":"../../src","sources":["sheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bottomSheet","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_reactNativeSafeAreaContext","_react","_interopRequireDefault","_provider","_manager","_events","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","FULL_SCREEN_POINTS","Platform","OS","useSheetManager","id","onHide","onBeforeShow","onContextUpdate","currentContext","useProviderContext","hasShownRef","React","useRef","useEffect","undefined","subscriptions","eventManager","subscribe","data","context","behavior","current","dismiss","forEach","s","unsubscribe","BottomSheetComponent","forwardRef","children","onClose","stackBehavior","hardwareBackPressToClose","enableDynamicSizing","handleIndicatorStyle","iosModalSheetTypeOfAnimation","snapPoints","defaultSnapPoints","animatedIndex","defaultAnimatedIndex","backgroundStyle","onAnimate","handleStyle","style","passThrough","opacity","props","ref","currentSheetRef","useSheetRef","currentCtx","stackContext","useStackBehaviorContext","useSharedValue","currentStackBehavior","setCurrentStackBehavior","useState","isPushed","bottom","left","right","useSafeAreaInsets","defaultStyle","useMemo","paddingBottom","paddingLeft","paddingRight","isFullScreen","useSheetSharedContext","fullScreenIndex","resolved","Array","isArray","map","p","findIndex","includes","value","valueRef","bottomSheetRef","hardwareBackPressEvent","useSheetIDContext","sheetId","hideSheetRef","getInstance","PrivateManager","add","registerRef","useAnimatedReaction","index","interpolate","hideSheet","useCallback","fromManager","incomingBehavior","activeBehavior","remove","closeValue","close","hasHistory","history","shouldRestorePrevious","publish","push","otherSheetsStillOpen","stack","some","prev","pop","options","animationConfigs","expand","collapse","snapToIndex","snapToPosition","position","BackHandler","addEventListener","useImperativeHandle","zIndex","backdropOpacity","previousSheetId","createElement","View","pointerEvents","StyleSheet","absoluteFill","backdropComponent","backdropProps","BottomSheetBackdrop","enableTouchThrough","disappearsOnIndex","appearsOnIndex","topInset","bottomInset","BottomSheet","memo","displayName","BottomSheetView","ScrollView","BottomSheetScrollView","FlatList","BottomSheetFlatList","SectionList","BottomSheetSectionList","VirtualizedList","BottomSheetVirtualizedList","Handle","BottomSheetHandle","Footer","BottomSheetFooter","FooterContainer","BottomSheetFooterContainer","Backdrop","TextInput","BottomSheetTextInput","_default","exports"],"sourceRoot":"../../src","sources":["sheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,29 +1,114 @@
1
- import { DeviceEventEmitter, NativeAppEventEmitter, Platform } from "react-native";
1
+ /**
2
+ * High-performance event manager using Maps for O(1) lookups.
3
+ * Replaces React Native's EventEmitter which has significant overhead.
4
+ */
2
5
 
3
- /* eslint-disable curly */
6
+ class EventManager {
7
+ _handlers = new Map();
8
+ _nextId = 0;
4
9
 
5
- export default class EventManager {
6
- constructor() {
7
- this._registry = Platform.select({
8
- ios: NativeAppEventEmitter,
9
- android: DeviceEventEmitter
10
- });
11
- }
10
+ /**
11
+ * Subscribe to an event with a handler function.
12
+ * Returns a subscription object with an unsubscribe method.
13
+ */
12
14
  subscribe(name, handler) {
13
- if (!name || !handler) throw new Error("name and handler are required.");
14
- const event = this._registry?.addListener(name, handler);
15
+ if (!name || typeof handler !== "function") {
16
+ throw new Error("Event name and handler function are required.");
17
+ }
18
+ const id = this._nextId++;
19
+ const entry = {
20
+ handler: handler,
21
+ id
22
+ };
23
+ const handlers = this._handlers.get(name);
24
+ if (handlers) {
25
+ handlers.push(entry);
26
+ } else {
27
+ this._handlers.set(name, [entry]);
28
+ }
15
29
  return {
16
- unsubscribe: () => event?.remove()
30
+ unsubscribe: () => {
31
+ const currentHandlers = this._handlers.get(name);
32
+ if (currentHandlers) {
33
+ const index = currentHandlers.findIndex(h => h.id === id);
34
+ if (index !== -1) {
35
+ currentHandlers.splice(index, 1);
36
+ if (currentHandlers.length === 0) {
37
+ this._handlers.delete(name);
38
+ }
39
+ }
40
+ }
41
+ }
17
42
  };
18
43
  }
44
+
45
+ /**
46
+ * Publish an event with optional arguments.
47
+ * All subscribed handlers will be called synchronously.
48
+ */
19
49
  publish(name, ...args) {
20
- this._registry?.emit(name, ...args);
50
+ const handlers = this._handlers.get(name);
51
+ if (!handlers || handlers.length === 0) return;
52
+
53
+ // Create a copy to avoid issues if handlers modify the list during iteration
54
+ const handlersSnapshot = handlers.slice();
55
+ for (let i = 0; i < handlersSnapshot.length; i++) {
56
+ handlersSnapshot[i].handler(...args);
57
+ }
21
58
  }
59
+
60
+ /**
61
+ * Publish an event asynchronously using microtasks for better performance.
62
+ * Useful when you don't need immediate execution.
63
+ */
64
+ publishAsync(name, ...args) {
65
+ queueMicrotask(() => this.publish(name, ...args));
66
+ }
67
+
68
+ /**
69
+ * Check if an event has any subscribers.
70
+ */
71
+ hasSubscribers(name) {
72
+ const handlers = this._handlers.get(name);
73
+ return !!handlers && handlers.length > 0;
74
+ }
75
+
76
+ /**
77
+ * Get the number of subscribers for an event.
78
+ */
79
+ subscriberCount(name) {
80
+ return this._handlers.get(name)?.length ?? 0;
81
+ }
82
+
83
+ /**
84
+ * Remove all listeners for the specified event names.
85
+ */
22
86
  remove(...names) {
23
- for (const eventType of names) {
24
- this._registry?.removeAllListeners(eventType);
87
+ for (const name of names) {
88
+ this._handlers.delete(name);
25
89
  }
26
90
  }
91
+
92
+ /**
93
+ * Remove all event listeners.
94
+ */
95
+ clear() {
96
+ this._handlers.clear();
97
+ }
98
+
99
+ /**
100
+ * Subscribe to an event that will only fire once.
101
+ */
102
+ once(name, handler) {
103
+ const subscription = this.subscribe(name, (...args) => {
104
+ subscription.unsubscribe();
105
+ handler(...args);
106
+ });
107
+ return subscription;
108
+ }
27
109
  }
110
+
111
+ // Singleton instance for global event management
28
112
  export const eventManager = new EventManager();
113
+ export default EventManager;
29
114
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DeviceEventEmitter","NativeAppEventEmitter","Platform","EventManager","constructor","_registry","select","ios","android","subscribe","name","handler","Error","event","addListener","unsubscribe","remove","publish","args","emit","names","eventType","removeAllListeners","eventManager"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":"AAAA,SACIA,kBAAkB,EAClBC,qBAAqB,EAErBC,QAAQ,QACL,cAAc;;AAErB;;AAMA,eAAe,MAAMC,YAAY,CAAC;EAE9BC,WAAWA,CAAA,EAAG;IACV,IAAI,CAACC,SAAS,GAAGH,QAAQ,CAACI,MAAM,CAAC;MAC7BC,GAAG,EAAEN,qBAAqB;MAC1BO,OAAO,EAAER;IACb,CAAC,CAAC;EACN;EAEAS,SAASA,CAACC,IAAY,EAAEC,OAAqB,EAAE;IAC3C,IAAI,CAACD,IAAI,IAAI,CAACC,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,gCAAgC,CAAC;IACxE,MAAMC,KAAK,GAAG,IAAI,CAACR,SAAS,EAAES,WAAW,CAACJ,IAAI,EAAEC,OAAO,CAAC;IACxD,OAAO;MAAEI,WAAW,EAAEA,CAAA,KAAMF,KAAK,EAAEG,MAAM,CAAC;IAAE,CAAC;EACjD;EAEAC,OAAOA,CAACP,IAAY,EAAE,GAAGQ,IAAW,EAAE;IAClC,IAAI,CAACb,SAAS,EAAEc,IAAI,CAACT,IAAI,EAAE,GAAGQ,IAAI,CAAC;EACvC;EAEAF,MAAMA,CAAC,GAAGI,KAAe,EAAE;IACvB,KAAK,MAAMC,SAAS,IAAID,KAAK,EAAE;MAC3B,IAAI,CAACf,SAAS,EAAEiB,kBAAkB,CAACD,SAAS,CAAC;IACjD;EACJ;AACJ;AAEA,OAAO,MAAME,YAAY,GAAG,IAAIpB,YAAY,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["EventManager","_handlers","Map","_nextId","subscribe","name","handler","Error","id","entry","handlers","get","push","set","unsubscribe","currentHandlers","index","findIndex","h","splice","length","delete","publish","args","handlersSnapshot","slice","i","publishAsync","queueMicrotask","hasSubscribers","subscriberCount","remove","names","clear","once","subscription","eventManager"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  export { default as BottomSheet } from "./sheet";
2
- export { SheetManager } from "./manager";
2
+ export { SheetManager, PrivateManager } from "./manager";
3
3
  export * from "./router";
4
4
  export * from "./types";
5
- export { SheetProvider, useSheetPayload, useSheetRef, useOnSheet, registerSheet } from "./provider";
5
+ export { SheetProvider, useSheetPayload, useSheetRef, useOnSheet, useStackBehaviorContext as useSheetStackBehavior, registerSheet } from "./provider";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","BottomSheet","SheetManager","SheetProvider","useSheetPayload","useSheetRef","useOnSheet","registerSheet"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,SAAS;AAChD,SAASC,YAAY,QAAQ,WAAW;AACxC,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,SACIC,aAAa,EACbC,eAAe,EACfC,WAAW,EACXC,UAAU,EACVC,aAAa,QACV,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["default","BottomSheet","SheetManager","PrivateManager","SheetProvider","useSheetPayload","useSheetRef","useOnSheet","useStackBehaviorContext","useSheetStackBehavior","registerSheet"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,SAAS;AAChD,SAASC,YAAY,EAAEC,cAAc,QAAQ,WAAW;AACxD,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,SACIC,aAAa,EACbC,eAAe,EACfC,WAAW,EACXC,UAAU,EACVC,uBAAuB,IAAIC,qBAAqB,EAChDC,aAAa,QACV,YAAY","ignoreList":[]}