@swmansion/react-native-bottom-sheet 0.8.0-next.1 → 0.8.0-next.3
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.
- package/common/cpp/react/renderer/components/ReactNativeBottomSheetSpec/ComponentDescriptors.h +10 -1
- package/ios/BottomSheetComponentView.mm +3 -3
- package/ios/BottomSheetContentView.h +1 -0
- package/ios/BottomSheetContentView.mm +5 -0
- package/ios/RNSBottomSheetHostingView.swift +7 -0
- package/lib/module/BottomSheet.js +2 -1
- package/lib/module/BottomSheet.js.map +1 -1
- package/package.json +1 -1
- package/src/BottomSheet.tsx +1 -1
package/common/cpp/react/renderer/components/ReactNativeBottomSheetSpec/ComponentDescriptors.h
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include
|
|
3
|
+
#include "ShadowNodes.h"
|
|
4
4
|
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
5
5
|
|
|
6
6
|
namespace facebook::react {
|
|
7
7
|
|
|
8
8
|
class BottomSheetViewComponentDescriptor final
|
|
9
9
|
: public ConcreteComponentDescriptor<BottomSheetViewShadowNode> {
|
|
10
|
+
public:
|
|
10
11
|
using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
|
|
12
|
+
|
|
13
|
+
State::Shared createInitialState(
|
|
14
|
+
const Props::Shared& /*props*/,
|
|
15
|
+
const ShadowNodeFamily::Shared& family) const override {
|
|
16
|
+
return std::make_shared<BottomSheetViewShadowNode::ConcreteState>(
|
|
17
|
+
std::make_shared<const BottomSheetViewState>(),
|
|
18
|
+
family);
|
|
19
|
+
}
|
|
11
20
|
};
|
|
12
21
|
|
|
13
22
|
} // namespace facebook::react
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#import "BottomSheetComponentView.h"
|
|
2
2
|
#import "BottomSheetContentView.h"
|
|
3
|
+
#import "../common/cpp/react/renderer/components/ReactNativeBottomSheetSpec/BottomSheetStateHelper.h"
|
|
4
|
+
#import "../common/cpp/react/renderer/components/ReactNativeBottomSheetSpec/ComponentDescriptors.h"
|
|
3
5
|
|
|
4
6
|
#import <React/RCTConversions.h>
|
|
5
7
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
6
|
-
#import <react/renderer/components/ReactNativeBottomSheetSpec/BottomSheetStateHelper.h>
|
|
7
|
-
#import <react/renderer/components/ReactNativeBottomSheetSpec/ComponentDescriptors.h>
|
|
8
8
|
#import <react/renderer/components/ReactNativeBottomSheetSpec/EventEmitters.h>
|
|
9
9
|
#import <react/renderer/components/ReactNativeBottomSheetSpec/Props.h>
|
|
10
10
|
#import <react/renderer/components/ReactNativeBottomSheetSpec/RCTComponentViewHelpers.h>
|
|
@@ -107,7 +107,7 @@ using namespace facebook::react;
|
|
|
107
107
|
emitter->onPositionChange({.position = static_cast<double>(position)});
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
float contentOffsetY = static_cast<float>(
|
|
110
|
+
float contentOffsetY = static_cast<float>(view.currentContentOffsetY);
|
|
111
111
|
if (contentOffsetY == _lastContentOffsetY) {
|
|
112
112
|
return;
|
|
113
113
|
}
|
|
@@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
19
19
|
- (void)setDetents:(NSArray<NSDictionary *> *)raw;
|
|
20
20
|
- (void)setDetentIndex:(NSInteger)newIndex;
|
|
21
21
|
- (void)setScrimColor:(UIColor *_Nullable)color;
|
|
22
|
+
- (CGFloat)currentContentOffsetY;
|
|
22
23
|
- (void)mountChildComponentView:(UIView *)childView atIndex:(NSInteger)index;
|
|
23
24
|
- (void)unmountChildComponentView:(UIView *)childView;
|
|
24
25
|
- (void)resetSheetState;
|
|
@@ -65,6 +65,11 @@
|
|
|
65
65
|
_impl.scrimColor = color;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
- (CGFloat)currentContentOffsetY
|
|
69
|
+
{
|
|
70
|
+
return _impl.currentContentOffsetY;
|
|
71
|
+
}
|
|
72
|
+
|
|
68
73
|
- (void)mountChildComponentView:(UIView *)childView atIndex:(NSInteger)index
|
|
69
74
|
{
|
|
70
75
|
[_impl mountChildComponentView:childView atIndex:index];
|
|
@@ -237,6 +237,13 @@ public final class RNSBottomSheetHostingView: UIView {
|
|
|
237
237
|
return maxHeight - ty
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
+
public var currentContentOffsetY: CGFloat {
|
|
241
|
+
let maxHeight = detentSpecs.last?.height ?? bounds.height
|
|
242
|
+
let containerTop = bounds.height - maxHeight
|
|
243
|
+
let ty = sheetContainer.layer.presentation()?.affineTransform().ty ?? sheetContainer.transform.ty
|
|
244
|
+
return containerTop + ty
|
|
245
|
+
}
|
|
246
|
+
|
|
240
247
|
private var isScrimVisible: Bool {
|
|
241
248
|
modal && currentSheetHeight > 0.5
|
|
242
249
|
}
|
|
@@ -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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
|
|
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":[]}
|
package/package.json
CHANGED
package/src/BottomSheet.tsx
CHANGED
|
@@ -96,7 +96,7 @@ export const BottomSheet = ({
|
|
|
96
96
|
onIndexChange={handleIndexChange}
|
|
97
97
|
onPositionChange={handlePositionChange}
|
|
98
98
|
>
|
|
99
|
-
<View collapsable={false} style={{ flex: 1 }}>
|
|
99
|
+
<View collapsable={false} style={{ flex: 1, maxHeight }}>
|
|
100
100
|
{children}
|
|
101
101
|
<View onLayout={handleSentinelLayout} pointerEvents="none" />
|
|
102
102
|
</View>
|