@niibase/bottom-sheet-manager 1.2.0 → 1.3.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 (63) hide show
  1. package/README.md +371 -37
  2. package/lib/commonjs/events.js +100 -15
  3. package/lib/commonjs/events.js.map +1 -1
  4. package/lib/commonjs/index.js +7 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/manager.js +107 -29
  7. package/lib/commonjs/manager.js.map +1 -1
  8. package/lib/commonjs/provider.js +69 -28
  9. package/lib/commonjs/provider.js.map +1 -1
  10. package/lib/commonjs/router/index.js +50 -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 +194 -84
  15. package/lib/commonjs/router/view.js.map +1 -1
  16. package/lib/commonjs/sheet.js +124 -76
  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 +1 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/manager.js +108 -29
  23. package/lib/module/manager.js.map +1 -1
  24. package/lib/module/provider.js +65 -25
  25. package/lib/module/provider.js.map +1 -1
  26. package/lib/module/router/index.js +34 -18
  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 +194 -84
  31. package/lib/module/router/view.js.map +1 -1
  32. package/lib/module/sheet.js +126 -78
  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 +1 -1
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/manager.d.ts +57 -7
  39. package/lib/typescript/manager.d.ts.map +1 -1
  40. package/lib/typescript/provider.d.ts +22 -3
  41. package/lib/typescript/provider.d.ts.map +1 -1
  42. package/lib/typescript/router/index.d.ts +33 -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 +113 -17
  47. package/lib/typescript/router/types.d.ts.map +1 -1
  48. package/lib/typescript/router/view.d.ts +1 -1
  49. package/lib/typescript/router/view.d.ts.map +1 -1
  50. package/lib/typescript/sheet.d.ts.map +1 -1
  51. package/lib/typescript/types.d.ts +25 -11
  52. package/lib/typescript/types.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/src/events.ts +118 -27
  55. package/src/index.ts +6 -5
  56. package/src/manager.ts +156 -33
  57. package/src/provider.tsx +98 -44
  58. package/src/router/index.tsx +38 -31
  59. package/src/router/router.ts +184 -15
  60. package/src/router/types.ts +119 -22
  61. package/src/router/view.tsx +252 -132
  62. package/src/sheet.tsx +175 -95
  63. package/src/types.ts +144 -130
@@ -22,27 +22,27 @@ const useSheetManager = ({
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,
@@ -54,34 +54,51 @@ const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
54
54
  enableDynamicSizing = false,
55
55
  handleIndicatorStyle,
56
56
  iosModalSheetTypeOfAnimation: pageAnimation,
57
+ animatedIndex: defaultAnimatedIndex,
57
58
  backgroundStyle,
59
+ onAnimate,
58
60
  handleStyle,
61
+ style,
59
62
  clickThrough,
60
- fullScreen,
61
63
  opacity,
62
64
  ...props
63
65
  }, ref) => {
64
66
  const currentSheetRef = (0, _provider.useSheetRef)();
65
67
  const currentCtx = (0, _provider.useProviderContext)();
68
+ const stackContext = (0, _provider.useStackBehaviorContext)();
66
69
  const {
67
70
  isFullScreen,
68
- iosModalSheetTypeOfAnimation
71
+ iosModalSheetTypeOfAnimation,
72
+ duration
69
73
  } = (0, _provider.useSheetAnimationContext)();
70
74
  const animatedIndex = (0, _reactNativeReanimated.useSharedValue)(0);
75
+ const previousIndex = (0, _reactNativeReanimated.useSharedValue)(-1);
76
+ const [currentStackBehavior, setCurrentStackBehavior] = _react.default.useState(stackBehavior);
77
+ const isPushed = currentStackBehavior === "push";
71
78
  const {
72
79
  colors
73
80
  } = (0, _native.useTheme)();
74
81
  const {
75
- top
82
+ bottom,
83
+ left,
84
+ right
76
85
  } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
77
86
  const themeBackgroundStyle = _react.default.useMemo(() => ({
78
- backgroundColor: colors.card
87
+ borderCurve: "continuous",
88
+ backgroundColor: colors.card,
89
+ borderTopLeftRadius: 20,
90
+ borderTopRightRadius: 20
79
91
  }), [colors.card]);
80
92
  const themeHandleIndicatorStyle = _react.default.useMemo(() => ({
81
93
  backgroundColor: colors.border,
82
94
  height: 5,
83
95
  width: 50
84
96
  }), [colors.border]);
97
+ const defaultStyle = _react.default.useMemo(() => ({
98
+ paddingBottom: bottom,
99
+ paddingLeft: left,
100
+ paddingRight: right
101
+ }), [bottom, left, right]);
85
102
  const valueRef = _react.default.useRef(null);
86
103
  const bottomSheetRef = _react.default.useRef(null);
87
104
  const hardwareBackPressEvent = _react.default.useRef(null);
@@ -89,8 +106,12 @@ const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
89
106
  const sheetId = props.id || id;
90
107
  useSheetManager({
91
108
  id: sheetId,
92
- onHide: (data, dismiss) => hideSheet(data, true, dismiss),
93
- onBeforeShow: data => {
109
+ onHide: (data, dismiss, behavior) => {
110
+ if (behavior) setCurrentStackBehavior(behavior);
111
+ hideSheet(data, true, dismiss);
112
+ },
113
+ onBeforeShow: (data, behavior) => {
114
+ if (behavior) setCurrentStackBehavior(behavior);
94
115
  onBeforeShow?.(data);
95
116
  valueRef.current = undefined;
96
117
  currentSheetRef.current = getInstance();
@@ -104,49 +125,70 @@ const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
104
125
  }
105
126
  }
106
127
  });
107
- (0, _reactNativeReanimated.useAnimatedReaction)(() => {
108
- if (!!iosModalSheetTypeOfAnimation || !!pageAnimation) {
109
- isFullScreen.value = 0;
110
- }
111
- return animatedIndex.value;
112
- }, index => {
128
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => animatedIndex.value, index => {
113
129
  "worklet";
114
-
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]);
130
+ if (defaultAnimatedIndex) {
131
+ defaultAnimatedIndex.set(index);
132
+ }
133
+ if (!iosModalSheetTypeOfAnimation && !pageAnimation) {
134
+ if (isFullScreen.value > 0) isFullScreen.set(0);
135
+ previousIndex.set(index);
136
+ return;
137
+ }
138
+ if (isFullScreen.value < 0) {
139
+ isFullScreen.set(0);
140
+ }
141
+ const isClosing = index < 0 || previousIndex.value >= 0 && index < previousIndex.value - 0.05;
142
+ previousIndex.set(index);
143
+ if (isClosing) {
144
+ if (isFullScreen.value > 0.01) {
145
+ isFullScreen.set((0, _reactNativeReanimated.withTiming)(0, {
146
+ duration: duration * 0.85,
147
+ easing: _reactNativeReanimated.Easing.bezier(0.25, 0.1, 0.25, 1)
148
+ }));
149
+ }
150
+ return;
151
+ }
152
+ const points = ["%90", "90%"];
153
+ const fullScreenIndex = snapPoints instanceof Array ? snapPoints.findIndex(p => points.includes(p)) : snapPoints?.value?.findIndex(p => points.includes(p)) || -1;
154
+ if (index >= fullScreenIndex - 0.5 && index <= fullScreenIndex + 0.5) {
155
+ isFullScreen.set(1);
156
+ } else if (index >= 0) {
157
+ isFullScreen.set(0);
119
158
  }
120
- }, [snapPoints]);
121
- const hideSheet = _react.default.useCallback((data, isSheetManagerOrRef, dismiss) => {
159
+ }, [snapPoints, iosModalSheetTypeOfAnimation, pageAnimation, duration]);
160
+ const hideSheet = _react.default.useCallback((data, fromManager, dismiss) => {
122
161
  let value = data ?? valueRef.current;
123
- if (!dismiss || stackBehavior !== "push") {
124
- hardwareBackPressEvent.current?.remove();
162
+ hardwareBackPressEvent.current?.remove();
163
+ const closeValue = onClose?.(value);
164
+ if (closeValue !== undefined) value = closeValue;
165
+ if (dismiss && currentStackBehavior === "push") {
166
+ if (fromManager) valueRef.current = data;
167
+ return;
168
+ }
169
+ if (currentStackBehavior !== "replace" || !dismiss) {
125
170
  bottomSheetRef.current?.close();
126
- const closeValue = onClose?.(value);
127
- if (undefined !== closeValue) value = closeValue;
128
171
  }
129
172
  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);
173
+ const hasHistory = _manager.PrivateManager.history.length > 0;
174
+ const shouldRestorePrevious = currentStackBehavior !== "replace";
175
+ _events.eventManager.publish(`onclose_${sheetId}`, value, currentCtx, hasHistory || !!dismiss, currentStackBehavior);
176
+ if (shouldRestorePrevious) {
177
+ if (dismiss) {
178
+ _manager.PrivateManager.history.push({
179
+ id: sheetId,
180
+ context: currentCtx,
181
+ behavior: currentStackBehavior
182
+ });
183
+ } else if (hasHistory) {
184
+ const prev = _manager.PrivateManager.history.pop();
185
+ _events.eventManager.publish(`show_wrap_${prev.id}`, undefined, prev.context, true, prev.behavior);
186
+ }
146
187
  }
188
+ _manager.PrivateManager.remove(sheetId, currentCtx);
147
189
  }
148
- if (isSheetManagerOrRef) valueRef.current = data;
149
- }, [sheetId, currentCtx, onClose]);
190
+ if (fromManager) valueRef.current = data;
191
+ }, [sheetId, currentCtx, onClose, currentStackBehavior]);
150
192
  const getInstance = _react.default.useCallback(() => ({
151
193
  close(options = {}) {
152
194
  valueRef.current = options.value;
@@ -183,28 +225,48 @@ const BottomSheetComponent = /*#__PURE__*/_react.default.forwardRef(({
183
225
  return () => hardwareBackPressEvent.current?.remove();
184
226
  }, [hardwareBackPressToClose]);
185
227
  _react.default.useImperativeHandle(ref, getInstance, [getInstance]);
228
+ const zIndex = _react.default.useMemo(() => {
229
+ if (!sheetId) return 0;
230
+ if (isPushed) {
231
+ return _manager.PrivateManager.zIndex(sheetId, currentCtx);
232
+ }
233
+ return 0;
234
+ }, [sheetId, isPushed, currentCtx]);
235
+ const backdropOpacity = _react.default.useMemo(() => {
236
+ if (isPushed && stackContext.previousSheetId) {
237
+ return (opacity || 0.45) * 0.6;
238
+ }
239
+ return opacity || 0.45;
240
+ }, [isPushed, stackContext.previousSheetId, opacity]);
186
241
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
187
242
  pointerEvents: "box-none",
188
243
  style: [_reactNative.StyleSheet.absoluteFill, {
189
- zIndex: sheetId && stackBehavior === "push" ? _manager.PrivateManager.zIndex(sheetId, currentCtx) : 0
244
+ zIndex
190
245
  }]
191
246
  }, /*#__PURE__*/_react.default.createElement(_bottomSheet.default, _extends({
192
247
  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({
248
+ backdropComponent: backdropProps => /*#__PURE__*/_react.default.createElement(_bottomSheet.BottomSheetBackdrop, _extends({
198
249
  enableTouchThrough: !!clickThrough,
199
- opacity: opacity || 0.45,
250
+ opacity: backdropOpacity,
200
251
  disappearsOnIndex: -1,
201
252
  appearsOnIndex: 0
202
- }, props))
253
+ }, backdropProps)),
254
+ onAnimate: (from, to, ...args) => {
255
+ const snapPointLen = Array.isArray(snapPoints) ? snapPoints.length : snapPoints?.value?.length ?? 0;
256
+ if (to >= isFullScreen.value && to > snapPointLen - 1) {
257
+ isFullScreen.set(0);
258
+ } else if (to > 0 && to === previousIndex.value && isFullScreen.value === 0) {
259
+ isFullScreen.set(1);
260
+ }
261
+ onAnimate?.(from, to, ...args);
262
+ },
263
+ topInset: 0,
264
+ bottomInset: 0
203
265
  }, props, {
204
266
  ref: bottomSheetRef,
205
267
  onClose: hideSheet,
206
268
  animatedIndex: animatedIndex,
207
- topInset: fullScreen ? 0 : top + (iosModalSheetTypeOfAnimation || pageAnimation ? 20 : 5),
269
+ style: [defaultStyle, style],
208
270
  snapPoints: enableDynamicSizing ? undefined : snapPoints ?? ["66%"],
209
271
  handleIndicatorStyle: [themeHandleIndicatorStyle, handleIndicatorStyle],
210
272
  backgroundStyle: [themeBackgroundStyle, backgroundStyle],
@@ -223,19 +285,5 @@ BottomSheet.Footer = _bottomSheet.BottomSheetFooter;
223
285
  BottomSheet.FooterContainer = _bottomSheet.BottomSheetFooterContainer;
224
286
  BottomSheet.Backdrop = _bottomSheet.BottomSheetBackdrop;
225
287
  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
288
  var _default = exports.default = BottomSheet;
241
289
  //# 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","_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","currentContext","useProviderContext","hasShownRef","React","useRef","useEffect","undefined","subscriptions","eventManager","subscribe","data","context","behavior","current","dismiss","forEach","s","unsubscribe","BottomSheetComponent","forwardRef","children","snapPoints","onClose","stackBehavior","hardwareBackPressToClose","enableDynamicSizing","handleIndicatorStyle","iosModalSheetTypeOfAnimation","pageAnimation","animatedIndex","defaultAnimatedIndex","backgroundStyle","onAnimate","handleStyle","style","clickThrough","opacity","props","ref","currentSheetRef","useSheetRef","currentCtx","stackContext","useStackBehaviorContext","isFullScreen","duration","useSheetAnimationContext","useSharedValue","previousIndex","currentStackBehavior","setCurrentStackBehavior","useState","isPushed","colors","useTheme","bottom","left","right","useSafeAreaInsets","themeBackgroundStyle","useMemo","borderCurve","backgroundColor","card","borderTopLeftRadius","borderTopRightRadius","themeHandleIndicatorStyle","border","height","width","defaultStyle","paddingBottom","paddingLeft","paddingRight","valueRef","bottomSheetRef","hardwareBackPressEvent","useSheetIDContext","sheetId","hideSheet","getInstance","PrivateManager","add","registerRef","useAnimatedReaction","value","index","isClosing","withTiming","easing","Easing","bezier","points","fullScreenIndex","Array","findIndex","p","includes","useCallback","fromManager","remove","closeValue","close","hasHistory","history","shouldRestorePrevious","publish","push","prev","pop","options","animationConfigs","expand","collapse","snapToIndex","snapToPosition","position","Platform","OS","BackHandler","addEventListener","useImperativeHandle","zIndex","backdropOpacity","previousSheetId","createElement","View","pointerEvents","StyleSheet","absoluteFill","backdropComponent","backdropProps","BottomSheetBackdrop","enableTouchThrough","disappearsOnIndex","appearsOnIndex","from","to","args","snapPointLen","isArray","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":[]}
@@ -2,5 +2,5 @@ export { default as BottomSheet } from "./sheet";
2
2
  export { SheetManager } 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, 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","SheetProvider","useSheetPayload","useSheetRef","useOnSheet","useStackBehaviorContext","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,SACEC,aAAa,EACbC,eAAe,EACfC,WAAW,EACXC,UAAU,EACVC,uBAAuB,EACvBC,aAAa,QACR,YAAY","ignoreList":[]}