@swmansion/react-native-bottom-sheet 0.7.0-next.7 → 0.7.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.
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
14
14
  s.source = { :git => "https://github.com/software-mansion-labs/react-native-bottom-sheet.git", :tag => "#{s.version}" }
15
15
 
16
16
  s.source_files = ["ios/**/*.{h,m,mm,cpp,swift}", "common/**/*.{h,cpp}"]
17
- s.private_header_files = "ios/**/*.h"
17
+ s.private_header_files = ["ios/**/*.h", "common/**/*.h"]
18
18
  s.swift_version = "5.0"
19
19
  s.pod_target_xcconfig = {
20
20
  "DEFINES_MODULE" => "YES",
@@ -218,7 +218,9 @@ class BottomSheetView(context: Context) : ReactViewGroup(context) {
218
218
  private var lastShadowOffsetY = Float.NaN
219
219
 
220
220
  private fun updateShadowState(translationY: Float) {
221
- val offsetY = (translationY / density).toDouble()
221
+ val maxDetentHeight = detentSpecs.lastOrNull()?.height ?: height.toFloat()
222
+ val containerTop = height.toFloat() - maxDetentHeight
223
+ val offsetY = ((containerTop + translationY) / density).toDouble()
222
224
  if (offsetY.toFloat() == lastShadowOffsetY) return
223
225
  lastShadowOffsetY = offsetY.toFloat()
224
226
  val sw = stateWrapper ?: return
@@ -0,0 +1,12 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <react/renderer/core/State.h>
5
+
6
+ namespace facebook::react {
7
+
8
+ void updateBottomSheetContentOffsetY(
9
+ const State::Shared& state,
10
+ float contentOffsetY);
11
+
12
+ } // namespace facebook::react
@@ -1,28 +1,30 @@
1
+ #include "BottomSheetStateHelper.h"
1
2
  #include "ShadowNodes.h"
2
3
 
3
- #include <yoga/Yoga.h>
4
-
5
4
  namespace facebook::react {
6
5
 
7
- void BottomSheetViewShadowNode::adjustLayoutWithState() {
8
- #ifdef ANDROID
9
- ensureUnsealed();
10
-
6
+ Point BottomSheetViewShadowNode::getContentOriginOffset(
7
+ bool /*includeTransform*/) const {
11
8
  auto state =
12
9
  std::static_pointer_cast<const BottomSheetViewShadowNode::ConcreteState>(
13
10
  getState());
14
- auto stateData = state->getData();
15
-
16
- auto adjustedStyle = getConcreteProps().yogaStyle;
17
- auto newPaddingTop =
18
- yoga::Style::Length::points(stateData.contentOffsetY);
11
+ return {0, state->getData().contentOffsetY};
12
+ }
19
13
 
20
- if (adjustedStyle.padding(yoga::Edge::Top) != newPaddingTop) {
21
- adjustedStyle.setPadding(yoga::Edge::Top, newPaddingTop);
22
- yogaNode_.setStyle(adjustedStyle);
23
- yogaNode_.setDirty(true);
24
- }
25
- #endif
14
+ void updateBottomSheetContentOffsetY(
15
+ const State::Shared& state,
16
+ float contentOffsetY) {
17
+ auto concreteState =
18
+ std::static_pointer_cast<const BottomSheetViewShadowNode::ConcreteState>(
19
+ state);
20
+ concreteState->updateState(
21
+ [contentOffsetY](const BottomSheetViewState& /*oldState*/)
22
+ -> BottomSheetViewShadowNode::ConcreteState::SharedData {
23
+ auto newState = std::make_shared<BottomSheetViewState>();
24
+ const_cast<BottomSheetViewState&>(*newState).contentOffsetY =
25
+ contentOffsetY;
26
+ return newState;
27
+ });
26
28
  }
27
29
 
28
30
  } // namespace facebook::react
@@ -8,12 +8,6 @@ namespace facebook::react {
8
8
  class BottomSheetViewComponentDescriptor final
9
9
  : public ConcreteComponentDescriptor<BottomSheetViewShadowNode> {
10
10
  using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
11
-
12
- void adopt(ShadowNode& shadowNode) const override {
13
- auto& node = static_cast<BottomSheetViewShadowNode&>(shadowNode);
14
- node.adjustLayoutWithState();
15
- ConcreteComponentDescriptor::adopt(shadowNode);
16
- }
17
11
  };
18
12
 
19
13
  } // namespace facebook::react
@@ -19,7 +19,7 @@ class JSI_EXPORT BottomSheetViewShadowNode final
19
19
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
20
20
 
21
21
  public:
22
- void adjustLayoutWithState();
22
+ Point getContentOriginOffset(bool includeTransform) const override;
23
23
  };
24
24
 
25
25
  } // namespace facebook::react
@@ -3,6 +3,7 @@
3
3
 
4
4
  #import <React/RCTConversions.h>
5
5
  #import <React/RCTFabricComponentsPlugins.h>
6
+ #import <react/renderer/components/ReactNativeBottomSheetSpec/BottomSheetStateHelper.h>
6
7
  #import <react/renderer/components/ReactNativeBottomSheetSpec/ComponentDescriptors.h>
7
8
  #import <react/renderer/components/ReactNativeBottomSheetSpec/EventEmitters.h>
8
9
  #import <react/renderer/components/ReactNativeBottomSheetSpec/Props.h>
@@ -15,6 +16,8 @@ using namespace facebook::react;
15
16
 
16
17
  @implementation BottomSheetComponentView {
17
18
  BottomSheetContentView *_sheetView;
19
+ State::Shared _sheetState;
20
+ float _lastContentOffsetY;
18
21
  }
19
22
 
20
23
  + (ComponentDescriptorProvider)componentDescriptorProvider
@@ -64,6 +67,11 @@ using namespace facebook::react;
64
67
  [super updateProps:props oldProps:oldProps];
65
68
  }
66
69
 
70
+ - (void)updateState:(const State::Shared &)state oldState:(const State::Shared &)oldState
71
+ {
72
+ _sheetState = state;
73
+ }
74
+
67
75
  - (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
68
76
  {
69
77
  [_sheetView mountChildComponentView:childComponentView atIndex:index];
@@ -90,12 +98,24 @@ using namespace facebook::react;
90
98
  auto emitter = std::static_pointer_cast<const BottomSheetViewEventEmitter>(_eventEmitter);
91
99
  emitter->onPositionChange({.position = static_cast<double>(position)});
92
100
  }
101
+
102
+ float contentOffsetY = static_cast<float>(self.bounds.size.height - position);
103
+ if (contentOffsetY == _lastContentOffsetY) {
104
+ return;
105
+ }
106
+ _lastContentOffsetY = contentOffsetY;
107
+
108
+ if (_sheetState) {
109
+ updateBottomSheetContentOffsetY(_sheetState, contentOffsetY);
110
+ }
93
111
  }
94
112
 
95
113
  - (void)prepareForRecycle
96
114
  {
97
115
  [super prepareForRecycle];
98
116
  [_sheetView resetSheetState];
117
+ _sheetState.reset();
118
+ _lastContentOffsetY = 0;
99
119
  }
100
120
 
101
121
  @end
@@ -39,6 +39,7 @@ export const BottomSheet = ({
39
39
  const [contentHeight, setContentHeight] = useState(0);
40
40
  const currentPositionRef = useRef(0);
41
41
  const scrimProgress = useRef(new Animated.Value(0)).current;
42
+ const sheetOpacity = useRef(new Animated.Value(0)).current;
42
43
  const resolvedDetents = detents.map(detent => {
43
44
  const value = resolveDetent(detent, contentHeight, maxHeight);
44
45
  return {
@@ -85,6 +86,7 @@ export const BottomSheet = ({
85
86
  currentPositionRef.current = height;
86
87
  const progress = firstNonzeroDetent <= 0 ? 0 : Math.min(1, Math.max(0, height / firstNonzeroDetent));
87
88
  scrimProgress.setValue(progress);
89
+ sheetOpacity.setValue(height === 0 ? 0 : 1);
88
90
  onPositionChange?.(height);
89
91
  };
90
92
  const closedIndex = resolvedDetents.findIndex(detent => detent.height === 0);
@@ -105,9 +107,11 @@ export const BottomSheet = ({
105
107
  style: StyleSheet.absoluteFill,
106
108
  onPress: handleScrimPress,
107
109
  children: scrimElement
108
- }) : null, /*#__PURE__*/_jsx(View, {
110
+ }) : null, /*#__PURE__*/_jsx(Animated.View, {
109
111
  pointerEvents: "box-none",
110
- style: StyleSheet.absoluteFill,
112
+ style: [StyleSheet.absoluteFill, {
113
+ opacity: sheetOpacity
114
+ }],
111
115
  children: /*#__PURE__*/_jsx(BottomSheetNativeComponent, {
112
116
  pointerEvents: sheetPointerEvents,
113
117
  style: [{
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Animated","Pressable","StyleSheet","View","useWindowDimensions","useSafeAreaInsets","BottomSheetNativeComponent","Portal","resolveDetent","jsx","_jsx","jsxs","_jsxs","programmatic","DefaultScrim","progress","color","style","absoluteFill","flex","backgroundColor","opacity","BottomSheet","children","detents","index","animateIn","onIndexChange","onPositionChange","modal","scrimColor","height","screenHeight","insets","maxHeight","top","contentHeight","setContentHeight","currentPositionRef","scrimProgress","Value","current","resolvedDetents","map","detent","value","Math","max","min","isDetentProgrammatic","handleSentinelLayout","event","nativeEvent","layout","y","clampedIndex","length","isCollapsed","sheetPointerEvents","scrimPressEnabledRef","previousIsCollapsedRef","firstNonzeroDetent","find","setValue","undefined","frame","requestAnimationFrame","cancelAnimationFrame","handleIndexChange","handlePositionChange","position","closedIndex","findIndex","handleScrimPress","scrimElement","sheet","pointerEvents","onPress","left","right","bottom","collapsable","onLayout"],"sourceRoot":"../../src","sources":["BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","Animated","Pressable","StyleSheet","View","useWindowDimensions","useSafeAreaInsets","BottomSheetNativeComponent","Portal","resolveDetent","jsx","_jsx","jsxs","_jsxs","programmatic","DefaultScrim","progress","color","style","absoluteFill","flex","backgroundColor","opacity","BottomSheet","children","detents","index","animateIn","onIndexChange","onPositionChange","modal","scrimColor","height","screenHeight","insets","maxHeight","top","contentHeight","setContentHeight","currentPositionRef","scrimProgress","Value","current","sheetOpacity","resolvedDetents","map","detent","value","Math","max","min","isDetentProgrammatic","handleSentinelLayout","event","nativeEvent","layout","y","clampedIndex","length","isCollapsed","sheetPointerEvents","scrimPressEnabledRef","previousIsCollapsedRef","firstNonzeroDetent","find","setValue","undefined","frame","requestAnimationFrame","cancelAnimationFrame","handleIndexChange","handlePositionChange","position","closedIndex","findIndex","handleScrimPress","scrimElement","sheet","pointerEvents","onPress","left","right","bottom","collapsable","onLayout"],"sourceRoot":"../../src","sources":["BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAY5E,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;AAmBlD,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,4CAiJlB,CAAC"}
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAY5E,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;AAmBlD,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,4CAsJlB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swmansion/react-native-bottom-sheet",
3
- "version": "0.7.0-next.7",
3
+ "version": "0.7.0",
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",
@@ -61,6 +61,7 @@ export const BottomSheet = ({
61
61
  const [contentHeight, setContentHeight] = useState(0);
62
62
  const currentPositionRef = useRef(0);
63
63
  const scrimProgress = useRef(new Animated.Value(0)).current;
64
+ const sheetOpacity = useRef(new Animated.Value(0)).current;
64
65
 
65
66
  const resolvedDetents = detents.map((detent) => {
66
67
  const value = resolveDetent(detent, contentHeight, maxHeight);
@@ -130,6 +131,7 @@ export const BottomSheet = ({
130
131
  ? 0
131
132
  : Math.min(1, Math.max(0, height / firstNonzeroDetent));
132
133
  scrimProgress.setValue(progress);
134
+ sheetOpacity.setValue(height === 0 ? 0 : 1);
133
135
  onPositionChange?.(height);
134
136
  };
135
137
 
@@ -162,7 +164,10 @@ export const BottomSheet = ({
162
164
  {scrimElement}
163
165
  </Pressable>
164
166
  ) : null}
165
- <View pointerEvents="box-none" style={StyleSheet.absoluteFill}>
167
+ <Animated.View
168
+ pointerEvents="box-none"
169
+ style={[StyleSheet.absoluteFill, { opacity: sheetOpacity }]}
170
+ >
166
171
  <BottomSheetNativeComponent
167
172
  pointerEvents={sheetPointerEvents}
168
173
  style={[
@@ -190,7 +195,7 @@ export const BottomSheet = ({
190
195
  <View onLayout={handleSentinelLayout} pointerEvents="none" />
191
196
  </View>
192
197
  </BottomSheetNativeComponent>
193
- </View>
198
+ </Animated.View>
194
199
  </Animated.View>
195
200
  );
196
201