@swmansion/react-native-bottom-sheet 0.8.0-next.4 → 0.8.0-next.6

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.
@@ -25,6 +25,7 @@ private data class DetentSpec(val height: Float, val programmatic: Boolean)
25
25
 
26
26
  interface BottomSheetViewListener {
27
27
  fun onIndexChange(index: Int)
28
+ fun onSettle(index: Int)
28
29
  fun onPositionChange(position: Double)
29
30
  }
30
31
 
@@ -140,7 +141,7 @@ class BottomSheetView(context: Context) : ReactViewGroup(context) {
140
141
  val closedTy = detentSpecs.lastOrNull()?.height ?: h.toFloat()
141
142
  sheetContainer.translationY = closedTy
142
143
  emitPosition()
143
- snapToIndex(targetIndex, 0f, emitIndexChange = false)
144
+ snapToIndex(targetIndex, 0f, emitIndexChange = false, emitSettle = false)
144
145
  } else {
145
146
  sheetContainer.translationY = translationY(targetIndex)
146
147
  emitPosition()
@@ -205,7 +206,7 @@ class BottomSheetView(context: Context) : ReactViewGroup(context) {
205
206
  }
206
207
 
207
208
  if (newIndex >= detentSpecs.size || newIndex == targetIndex) return
208
- snapToIndex(newIndex, 0f)
209
+ snapToIndex(newIndex, 0f, emitIndexChange = false)
209
210
  }
210
211
 
211
212
  fun setScrimColor(color: Int?) {
@@ -287,7 +288,12 @@ class BottomSheetView(context: Context) : ReactViewGroup(context) {
287
288
 
288
289
  // MARK: - Spring animation
289
290
 
290
- private fun snapToIndex(index: Int, velocity: Float, emitIndexChange: Boolean = true) {
291
+ private fun snapToIndex(
292
+ index: Int,
293
+ velocity: Float,
294
+ emitIndexChange: Boolean = true,
295
+ emitSettle: Boolean = true,
296
+ ) {
291
297
  if (index < 0 || index >= detentSpecs.size) return
292
298
  targetIndex = index
293
299
 
@@ -310,6 +316,7 @@ class BottomSheetView(context: Context) : ReactViewGroup(context) {
310
316
  activeAnimation = null
311
317
  updateInteractionState()
312
318
  if (emitIndexChange) listener?.onIndexChange(index)
319
+ if (emitSettle) listener?.onSettle(index)
313
320
  }
314
321
  }
315
322
 
@@ -40,6 +40,16 @@ class BottomSheetViewManager :
40
40
  .receiveEvent(view.id, "topIndexChange", event)
41
41
  }
42
42
 
43
+ override fun onSettle(index: Int) {
44
+ val event = com.facebook.react.bridge.Arguments.createMap().apply {
45
+ putInt("index", index)
46
+ }
47
+ val reactContext = view.context as? ThemedReactContext ?: return
48
+ reactContext
49
+ .getJSModule(com.facebook.react.uimanager.events.RCTEventEmitter::class.java)
50
+ .receiveEvent(view.id, "topSettle", event)
51
+ }
52
+
43
53
  override fun onPositionChange(position: Double) {
44
54
  val event = com.facebook.react.bridge.Arguments.createMap().apply {
45
55
  putDouble("position", position)
@@ -79,6 +89,7 @@ class BottomSheetViewManager :
79
89
  override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any> {
80
90
  return mapOf(
81
91
  "topIndexChange" to mapOf("registrationName" to "onIndexChange"),
92
+ "topSettle" to mapOf("registrationName" to "onSettle"),
82
93
  "topPositionChange" to mapOf("registrationName" to "onPositionChange"),
83
94
  )
84
95
  }
@@ -100,6 +100,14 @@ using namespace facebook::react;
100
100
  }
101
101
  }
102
102
 
103
+ - (void)bottomSheetView:(BottomSheetContentView *)view didSettle:(NSInteger)index
104
+ {
105
+ if (_eventEmitter) {
106
+ auto emitter = std::static_pointer_cast<const BottomSheetViewEventEmitter>(_eventEmitter);
107
+ emitter->onSettle({.index = static_cast<int>(index)});
108
+ }
109
+ }
110
+
103
111
  - (void)bottomSheetView:(BottomSheetContentView *)view didChangePosition:(CGFloat)position
104
112
  {
105
113
  if (_eventEmitter) {
@@ -6,6 +6,7 @@ NS_ASSUME_NONNULL_BEGIN
6
6
 
7
7
  @protocol BottomSheetContentViewDelegate <NSObject>
8
8
  - (void)bottomSheetView:(BottomSheetContentView *)view didChangeIndex:(NSInteger)index;
9
+ - (void)bottomSheetView:(BottomSheetContentView *)view didSettle:(NSInteger)index;
9
10
  - (void)bottomSheetView:(BottomSheetContentView *)view didChangePosition:(CGFloat)position;
10
11
  @end
11
12
 
@@ -90,6 +90,11 @@
90
90
  [self.delegate bottomSheetView:self didChangeIndex:index];
91
91
  }
92
92
 
93
+ - (void)bottomSheetHostingView:(RNSBottomSheetHostingView *)view didSettle:(NSInteger)index
94
+ {
95
+ [self.delegate bottomSheetView:self didSettle:index];
96
+ }
97
+
93
98
  - (void)bottomSheetHostingView:(RNSBottomSheetHostingView *)view didChangePosition:(CGFloat)position
94
99
  {
95
100
  [self.delegate bottomSheetView:self didChangePosition:position];
@@ -2,6 +2,7 @@ import UIKit
2
2
 
3
3
  @objc public protocol RNSBottomSheetHostingViewDelegate: AnyObject {
4
4
  func bottomSheetHostingView(_ view: RNSBottomSheetHostingView, didChangeIndex index: Int)
5
+ func bottomSheetHostingView(_ view: RNSBottomSheetHostingView, didSettle index: Int)
5
6
  func bottomSheetHostingView(_ view: RNSBottomSheetHostingView, didChangePosition position: CGFloat)
6
7
  }
7
8
 
@@ -112,7 +113,7 @@ public final class RNSBottomSheetHostingView: UIView {
112
113
  let closedTy = detentSpecs.last?.height ?? bounds.height
113
114
  sheetContainer.transform = CGAffineTransform(translationX: 0, y: closedTy)
114
115
  emitPosition()
115
- snapToIndex(targetIndex, velocity: 0, emitIndexChange: false)
116
+ snapToIndex(targetIndex, velocity: 0, emitIndexChange: false, emitSettle: false)
116
117
  } else {
117
118
  sheetContainer.transform = CGAffineTransform(translationX: 0, y: translationY(for: targetIndex))
118
119
  emitPosition()
@@ -173,7 +174,7 @@ public final class RNSBottomSheetHostingView: UIView {
173
174
  }
174
175
 
175
176
  guard newIndex < detentSpecs.count, newIndex != targetIndex else { return }
176
- snapToIndex(newIndex, velocity: 0)
177
+ snapToIndex(newIndex, velocity: 0, emitIndexChange: false)
177
178
  }
178
179
 
179
180
  public func mountChildComponentView(_ childView: UIView, atIndex index: Int) {
@@ -296,7 +297,12 @@ public final class RNSBottomSheetHostingView: UIView {
296
297
  snapToIndex(closedIndex, velocity: 0)
297
298
  }
298
299
 
299
- private func snapToIndex(_ index: Int, velocity: CGFloat, emitIndexChange: Bool = true) {
300
+ private func snapToIndex(
301
+ _ index: Int,
302
+ velocity: CGFloat,
303
+ emitIndexChange: Bool = true,
304
+ emitSettle: Bool = true
305
+ ) {
300
306
  guard index >= 0, index < detentSpecs.count else { return }
301
307
  targetIndex = index
302
308
 
@@ -325,6 +331,9 @@ public final class RNSBottomSheetHostingView: UIView {
325
331
  if emitIndexChange {
326
332
  self.eventDelegate?.bottomSheetHostingView(self, didChangeIndex: index)
327
333
  }
334
+ if emitSettle {
335
+ self.eventDelegate?.bottomSheetHostingView(self, didSettle: index)
336
+ }
328
337
  }
329
338
  animator.startAnimation()
330
339
  activeAnimator = animator
@@ -15,6 +15,7 @@ export const BottomSheet = ({
15
15
  index,
16
16
  animateIn = true,
17
17
  onIndexChange,
18
+ onSettle,
18
19
  onPositionChange,
19
20
  modal = false,
20
21
  scrimColor = 'rgba(0, 0, 0, 0.5)'
@@ -41,6 +42,9 @@ export const BottomSheet = ({
41
42
  const handleIndexChange = event => {
42
43
  onIndexChange?.(event.nativeEvent.index);
43
44
  };
45
+ const handleSettle = event => {
46
+ onSettle?.(event.nativeEvent.index);
47
+ };
44
48
  const handlePositionChange = event => {
45
49
  const height = event.nativeEvent.position;
46
50
  sheetOpacity.setValue(height === 0 ? 0 : 1);
@@ -72,6 +76,7 @@ export const BottomSheet = ({
72
76
  modal: modal,
73
77
  scrimColor: scrimColor,
74
78
  onIndexChange: handleIndexChange,
79
+ onSettle: handleSettle,
75
80
  onPositionChange: handlePositionChange,
76
81
  children: /*#__PURE__*/_jsxs(View, {
77
82
  collapsable: false,
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useState","Animated","StyleSheet","View","useWindowDimensions","useSafeAreaInsets","BottomSheetNativeComponent","Portal","resolveDetent","jsx","_jsx","jsxs","_jsxs","programmatic","BottomSheet","children","style","detents","index","animateIn","onIndexChange","onPositionChange","modal","scrimColor","height","windowHeight","insets","maxHeight","top","contentHeight","setContentHeight","sheetOpacity","Value","current","resolvedDetents","map","detent","value","Math","max","min","isDetentProgrammatic","handleSentinelLayout","event","nativeEvent","layout","y","clampedIndex","length","isCollapsed","handleIndexChange","handlePositionChange","position","setValue","sheet","absoluteFill","pointerEvents","opacity","left","right","bottom","collapsable","flex","onLayout"],"sourceRoot":"../../src","sources":["BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","useState","Animated","StyleSheet","View","useWindowDimensions","useSafeAreaInsets","BottomSheetNativeComponent","Portal","resolveDetent","jsx","_jsx","jsxs","_jsxs","programmatic","BottomSheet","children","style","detents","index","animateIn","onIndexChange","onSettle","onPositionChange","modal","scrimColor","height","windowHeight","insets","maxHeight","top","contentHeight","setContentHeight","sheetOpacity","Value","current","resolvedDetents","map","detent","value","Math","max","min","isDetentProgrammatic","handleSentinelLayout","event","nativeEvent","layout","y","clampedIndex","length","isCollapsed","handleIndexChange","handleSettle","handlePositionChange","position","setValue","sheet","absoluteFill","pointerEvents","opacity","left","right","bottom","collapsable","flex","onLayout"],"sourceRoot":"../../src","sources":["BottomSheet.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,QAAQ,QAAwB,OAAO;AAExD,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,EAAEC,mBAAmB,QAAQ,cAAc;AAC9E,SAASC,iBAAiB,QAAQ,gCAAgC;AAElE,OAAOC,0BAA0B,MAAM,8BAA8B;AACrE,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SAAsBC,aAAa,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhE,SAASC,YAAY,QAAQ,uBAAoB;AAejD,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC1BC,QAAQ;EACRC,KAAK;EACLC,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;EACxBC,KAAK;EACLC,SAAS,GAAG,IAAI;EAChBC,aAAa;EACbC,QAAQ;EACRC,gBAAgB;EAChBC,KAAK,GAAG,KAAK;EACbC,UAAU,GAAG;AACG,CAAC,KAAK;EACtB,MAAM;IAAEC,MAAM,EAAEC;EAAa,CAAC,GAAGtB,mBAAmB,CAAC,CAAC;EACtD,MAAMuB,MAAM,GAAGtB,iBAAiB,CAAC,CAAC;EAClC,MAAMuB,SAAS,GAAGF,YAAY,GAAGC,MAAM,CAACE,GAAG;EAC3C,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG/B,QAAQ,CAAC,CAAC,CAAC;EACrD,MAAMgC,YAAY,GAAGjC,MAAM,CAAC,IAAIE,QAAQ,CAACgC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAE1D,MAAMC,eAAe,GAAGlB,OAAO,CAACmB,GAAG,CAAEC,MAAM,IAAK;IAC9C,MAAMC,KAAK,GAAG9B,aAAa,CAAC6B,MAAM,EAAEP,aAAa,EAAEF,SAAS,CAAC;IAC7D,OAAO;MACLH,MAAM,EAAEc,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACH,KAAK,EAAEV,SAAS,CAAC,CAAC;MAC/Cf,YAAY,EAAE6B,oBAAoB,CAACL,MAAM;IAC3C,CAAC;EACH,CAAC,CAAC;EAEF,MAAMM,oBAAoB,GAAIC,KAAwB,IAAK;IACzDb,gBAAgB,CAACa,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,CAAC,CAAC;EAC9C,CAAC;EAED,MAAMC,YAAY,GAAGT,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACvB,KAAK,EAAEiB,eAAe,CAACc,MAAM,GAAG,CAAC,CAAC,CAAC;EAC7E,MAAMC,WAAW,GAAG,CAACf,eAAe,CAACa,YAAY,CAAC,EAAEvB,MAAM,IAAI,CAAC,MAAM,CAAC;EACtE,MAAM0B,iBAAiB,GAAIP,KAAyC,IAAK;IACvExB,aAAa,GAAGwB,KAAK,CAACC,WAAW,CAAC3B,KAAK,CAAC;EAC1C,CAAC;EACD,MAAMkC,YAAY,GAAIR,KAAyC,IAAK;IAClEvB,QAAQ,GAAGuB,KAAK,CAACC,WAAW,CAAC3B,KAAK,CAAC;EACrC,CAAC;EAED,MAAMmC,oBAAoB,GAAIT,KAE7B,IAAK;IACJ,MAAMnB,MAAM,GAAGmB,KAAK,CAACC,WAAW,CAACS,QAAQ;IACzCtB,YAAY,CAACuB,QAAQ,CAAC9B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3CH,gBAAgB,GAAGG,MAAM,CAAC;EAC5B,CAAC;EAED,MAAM+B,KAAK,gBACT9C,IAAA,CAACT,QAAQ,CAACE,IAAI;IACZa,KAAK,EAAEd,UAAU,CAACuD,YAAa;IAC/BC,aAAa,EAAEnC,KAAK,GAAI2B,WAAW,GAAG,MAAM,GAAG,MAAM,GAAI,UAAW;IAAAnC,QAAA,eAEpEL,IAAA,CAACT,QAAQ,CAACE,IAAI;MACZuD,aAAa,EAAC,UAAU;MACxB1C,KAAK,EAAE,CAACd,UAAU,CAACuD,YAAY,EAAE;QAAEE,OAAO,EAAE3B;MAAa,CAAC,CAAE;MAAAjB,QAAA,eAE5DL,IAAA,CAACJ,0BAA0B;QACzBoD,aAAa,EAAC,UAAU;QACxB1C,KAAK,EAAE,CACL;UACEsC,QAAQ,EAAE,UAAU;UACpBM,IAAI,EAAE,CAAC;UACPC,KAAK,EAAE,CAAC;UACRC,MAAM,EAAE,CAAC;UACT;UACA;UACA;UACArC,MAAM,EAAEC;QACV,CAAC,EACDV,KAAK,CACL;QACFC,OAAO,EAAEkB,eAAgB;QACzBjB,KAAK,EAAEA,KAAM;QACbC,SAAS,EAAEA,SAAU;QACrBI,KAAK,EAAEA,KAAM;QACbC,UAAU,EAAEA,UAAW;QACvBJ,aAAa,EAAE+B,iBAAkB;QACjC9B,QAAQ,EAAE+B,YAAa;QACvB9B,gBAAgB,EAAE+B,oBAAqB;QAAAtC,QAAA,eAEvCH,KAAA,CAACT,IAAI;UAAC4D,WAAW,EAAE,KAAM;UAAC/C,KAAK,EAAE;YAAEgD,IAAI,EAAE,CAAC;YAAEpC;UAAU,CAAE;UAAAb,QAAA,GACrDA,QAAQ,eACTL,IAAA,CAACP,IAAI;YAAC8D,QAAQ,EAAEtB,oBAAqB;YAACe,aAAa,EAAC;UAAM,CAAE,CAAC;QAAA,CACzD;MAAC,CACmB;IAAC,CAChB;EAAC,CACH,CAChB;EAED,IAAInC,KAAK,EAAE;IACT,oBAAOb,IAAA,CAACH,MAAM;MAAAQ,QAAA,EAAEyC;IAAK,CAAS,CAAC;EACjC;EAEA,OAAOA,KAAK;AACd,CAAC;AAED,SAASd,oBAAoBA,CAACL,MAAc,EAAW;EACrD,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;IACjD,OAAOA,MAAM,CAACxB,YAAY,KAAK,IAAI;EACrC;EACA,OAAO,KAAK;AACd","ignoreList":[]}
@@ -19,6 +19,9 @@ export interface NativeProps extends ViewProps {
19
19
  onIndexChange?: CodegenTypes.DirectEventHandler<
20
20
  Readonly<{ index: CodegenTypes.Int32 }>
21
21
  >;
22
+ onSettle?: CodegenTypes.DirectEventHandler<
23
+ Readonly<{ index: CodegenTypes.Int32 }>
24
+ >;
22
25
  onPositionChange?: CodegenTypes.DirectEventHandler<
23
26
  Readonly<{ position: CodegenTypes.Double }>
24
27
  >;
@@ -10,9 +10,10 @@ export interface BottomSheetProps {
10
10
  index: number;
11
11
  animateIn?: boolean;
12
12
  onIndexChange?: (index: number) => void;
13
+ onSettle?: (index: number) => void;
13
14
  onPositionChange?: (position: number) => void;
14
15
  modal?: boolean;
15
16
  scrimColor?: string;
16
17
  }
17
- export declare const BottomSheet: ({ children, style, detents, index, animateIn, onIndexChange, onPositionChange, modal, scrimColor, }: BottomSheetProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const BottomSheet: ({ children, style, detents, index, animateIn, onIndexChange, onSettle, onPositionChange, modal, scrimColor, }: BottomSheetProps) => import("react/jsx-runtime").JSX.Element;
18
19
  //# sourceMappingURL=BottomSheet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM5E,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,GAAI,qGAUzB,gBAAgB,4CA+ElB,CAAC"}
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM5E,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,GAAI,+GAWzB,gBAAgB,4CAmFlB,CAAC"}
@@ -12,6 +12,9 @@ export interface NativeProps extends ViewProps {
12
12
  onIndexChange?: CodegenTypes.DirectEventHandler<Readonly<{
13
13
  index: CodegenTypes.Int32;
14
14
  }>>;
15
+ onSettle?: CodegenTypes.DirectEventHandler<Readonly<{
16
+ index: CodegenTypes.Int32;
17
+ }>>;
15
18
  onPositionChange?: CodegenTypes.DirectEventHandler<Readonly<{
16
19
  position: CodegenTypes.Double;
17
20
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,KAAK,YAAY,GAAG,QAAQ,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAC7C,QAAQ,CAAC;QAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAA;KAAE,CAAC,CACxC,CAAC;IACF,gBAAgB,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAChD,QAAQ,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAA;KAAE,CAAC,CAC5C,CAAC;CACH;;AAED,wBAAsE"}
1
+ {"version":3,"file":"BottomSheetNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,KAAK,YAAY,GAAG,QAAQ,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAC7C,QAAQ,CAAC;QAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAA;KAAE,CAAC,CACxC,CAAC;IACF,QAAQ,CAAC,EAAE,YAAY,CAAC,kBAAkB,CACxC,QAAQ,CAAC;QAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAA;KAAE,CAAC,CACxC,CAAC;IACF,gBAAgB,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAChD,QAAQ,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAA;KAAE,CAAC,CAC5C,CAAC;CACH;;AAED,wBAAsE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swmansion/react-native-bottom-sheet",
3
- "version": "0.8.0-next.4",
3
+ "version": "0.8.0-next.6",
4
4
  "description": "Provides bottom-sheet components for React Native.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -16,6 +16,7 @@ export interface BottomSheetProps {
16
16
  index: number;
17
17
  animateIn?: boolean;
18
18
  onIndexChange?: (index: number) => void;
19
+ onSettle?: (index: number) => void;
19
20
  onPositionChange?: (position: number) => void;
20
21
  modal?: boolean;
21
22
  scrimColor?: string;
@@ -28,6 +29,7 @@ export const BottomSheet = ({
28
29
  index,
29
30
  animateIn = true,
30
31
  onIndexChange,
32
+ onSettle,
31
33
  onPositionChange,
32
34
  modal = false,
33
35
  scrimColor = 'rgba(0, 0, 0, 0.5)',
@@ -55,6 +57,9 @@ export const BottomSheet = ({
55
57
  const handleIndexChange = (event: { nativeEvent: { index: number } }) => {
56
58
  onIndexChange?.(event.nativeEvent.index);
57
59
  };
60
+ const handleSettle = (event: { nativeEvent: { index: number } }) => {
61
+ onSettle?.(event.nativeEvent.index);
62
+ };
58
63
 
59
64
  const handlePositionChange = (event: {
60
65
  nativeEvent: { position: number };
@@ -94,6 +99,7 @@ export const BottomSheet = ({
94
99
  modal={modal}
95
100
  scrimColor={scrimColor}
96
101
  onIndexChange={handleIndexChange}
102
+ onSettle={handleSettle}
97
103
  onPositionChange={handlePositionChange}
98
104
  >
99
105
  <View collapsable={false} style={{ flex: 1, maxHeight }}>
@@ -19,6 +19,9 @@ export interface NativeProps extends ViewProps {
19
19
  onIndexChange?: CodegenTypes.DirectEventHandler<
20
20
  Readonly<{ index: CodegenTypes.Int32 }>
21
21
  >;
22
+ onSettle?: CodegenTypes.DirectEventHandler<
23
+ Readonly<{ index: CodegenTypes.Int32 }>
24
+ >;
22
25
  onPositionChange?: CodegenTypes.DirectEventHandler<
23
26
  Readonly<{ position: CodegenTypes.Double }>
24
27
  >;