@lodev09/react-native-true-sheet 3.0.0-beta.4 → 3.0.0-beta.5
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/RNTrueSheet.podspec +5 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +50 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerViewManager.kt +7 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +0 -9
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +8 -4
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +11 -2
- package/android/src/main/jni/CMakeLists.txt +87 -0
- package/android/src/main/jni/TrueSheetSpec.h +17 -0
- package/ios/TrueSheetContainerView.mm +61 -5
- package/ios/TrueSheetContentView.mm +0 -11
- package/ios/TrueSheetView.h +0 -16
- package/ios/TrueSheetView.mm +10 -8
- package/ios/TrueSheetViewController.h +0 -1
- package/ios/TrueSheetViewController.mm +9 -26
- package/ios/utils/ConversionUtil.mm +30 -40
- package/lib/module/TrueSheet.js +1 -23
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/fabric/TrueSheetContainerViewNativeComponent.ts +3 -1
- package/lib/module/fabric/TrueSheetViewNativeComponent.ts +0 -6
- package/lib/typescript/src/TrueSheet.d.ts +0 -3
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.types.d.ts +0 -13
- package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetContainerViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +0 -5
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native.config.js +5 -2
- package/src/TrueSheet.tsx +1 -27
- package/src/TrueSheet.types.ts +0 -15
- package/src/fabric/TrueSheetContainerViewNativeComponent.ts +3 -1
- package/src/fabric/TrueSheetViewNativeComponent.ts +0 -6
- package/android/src/main/java/com/lodev09/truesheet/events/SizeChangeEvent.kt +0 -27
- package/ios/events/OnSizeChangeEvent.h +0 -28
- package/ios/events/OnSizeChangeEvent.mm +0 -30
package/RNTrueSheet.podspec
CHANGED
|
@@ -13,8 +13,12 @@ Pod::Spec.new do |s|
|
|
|
13
13
|
s.platforms = { :ios => min_ios_version_supported }
|
|
14
14
|
s.source = { :git => "https://github.com/lodev09/react-native-true-sheet.git", :tag => "#{s.version}" }
|
|
15
15
|
|
|
16
|
-
s.source_files = "ios/**/*.{h,m,mm,swift,cpp}"
|
|
16
|
+
s.source_files = "ios/**/*.{h,m,mm,swift,cpp}", "common/cpp/**/*.{cpp,h}"
|
|
17
17
|
s.private_header_files = "ios/**/*.h"
|
|
18
18
|
|
|
19
|
+
s.pod_target_xcconfig = {
|
|
20
|
+
"HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/common/cpp\""
|
|
21
|
+
}
|
|
22
|
+
|
|
19
23
|
install_modules_dependencies(s)
|
|
20
24
|
end
|
|
@@ -3,6 +3,9 @@ package com.lodev09.truesheet
|
|
|
3
3
|
import android.annotation.SuppressLint
|
|
4
4
|
import android.view.View
|
|
5
5
|
import androidx.core.view.isNotEmpty
|
|
6
|
+
import com.facebook.react.bridge.WritableNativeMap
|
|
7
|
+
import com.facebook.react.uimanager.PixelUtil.pxToDp
|
|
8
|
+
import com.facebook.react.uimanager.StateWrapper
|
|
6
9
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
7
10
|
import com.facebook.react.views.view.ReactViewGroup
|
|
8
11
|
|
|
@@ -26,6 +29,53 @@ class TrueSheetContainerView(private val reactContext: ThemedReactContext) :
|
|
|
26
29
|
|
|
27
30
|
var delegate: TrueSheetContainerViewDelegate? = null
|
|
28
31
|
|
|
32
|
+
private var stateWrapper: StateWrapper? = null
|
|
33
|
+
|
|
34
|
+
// Pending dimensions to update when stateWrapper becomes available
|
|
35
|
+
private var pendingWidth: Int = 0
|
|
36
|
+
private var pendingHeight: Int = 0
|
|
37
|
+
|
|
38
|
+
fun setStateWrapper(wrapper: StateWrapper?) {
|
|
39
|
+
stateWrapper = wrapper
|
|
40
|
+
|
|
41
|
+
if (wrapper == null) return
|
|
42
|
+
|
|
43
|
+
// Get dimensions from parent controller and update state if we haven't yet
|
|
44
|
+
val controller = parent as? TrueSheetViewController
|
|
45
|
+
if (controller != null && pendingWidth == 0) {
|
|
46
|
+
val w = controller.width
|
|
47
|
+
val h = controller.height
|
|
48
|
+
if (w > 0 && h > 0) {
|
|
49
|
+
updateState(w, h)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Update state with container dimensions.
|
|
56
|
+
* Called by the controller when the dialog size changes.
|
|
57
|
+
*/
|
|
58
|
+
fun updateState(width: Int, height: Int) {
|
|
59
|
+
// Skip if dimensions haven't changed
|
|
60
|
+
if (width == pendingWidth && height == pendingHeight && stateWrapper != null) {
|
|
61
|
+
return
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Store dimensions
|
|
65
|
+
pendingWidth = width
|
|
66
|
+
pendingHeight = height
|
|
67
|
+
|
|
68
|
+
val sw = stateWrapper ?: return
|
|
69
|
+
|
|
70
|
+
val realWidth = width.toFloat().pxToDp()
|
|
71
|
+
val realHeight = height.toFloat().pxToDp()
|
|
72
|
+
|
|
73
|
+
val newStateData = WritableNativeMap()
|
|
74
|
+
newStateData.putDouble("containerWidth", realWidth.toDouble())
|
|
75
|
+
newStateData.putDouble("containerHeight", realHeight.toDouble())
|
|
76
|
+
sw.updateState(newStateData)
|
|
77
|
+
}
|
|
78
|
+
|
|
29
79
|
/**
|
|
30
80
|
* Reference to content view (first child)
|
|
31
81
|
*/
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
package com.lodev09.truesheet
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.module.annotations.ReactModule
|
|
4
|
+
import com.facebook.react.uimanager.ReactStylesDiffMap
|
|
5
|
+
import com.facebook.react.uimanager.StateWrapper
|
|
4
6
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
5
7
|
import com.facebook.react.uimanager.ViewGroupManager
|
|
6
8
|
|
|
@@ -15,6 +17,11 @@ class TrueSheetContainerViewManager : ViewGroupManager<TrueSheetContainerView>()
|
|
|
15
17
|
|
|
16
18
|
override fun createViewInstance(reactContext: ThemedReactContext): TrueSheetContainerView = TrueSheetContainerView(reactContext)
|
|
17
19
|
|
|
20
|
+
override fun updateState(view: TrueSheetContainerView, props: ReactStylesDiffMap?, stateWrapper: StateWrapper?): Any? {
|
|
21
|
+
view.setStateWrapper(stateWrapper)
|
|
22
|
+
return null
|
|
23
|
+
}
|
|
24
|
+
|
|
18
25
|
companion object {
|
|
19
26
|
const val REACT_CLASS = "TrueSheetContainerView"
|
|
20
27
|
}
|
|
@@ -18,7 +18,6 @@ import com.lodev09.truesheet.events.DragChangeEvent
|
|
|
18
18
|
import com.lodev09.truesheet.events.DragEndEvent
|
|
19
19
|
import com.lodev09.truesheet.events.MountEvent
|
|
20
20
|
import com.lodev09.truesheet.events.PositionChangeEvent
|
|
21
|
-
import com.lodev09.truesheet.events.SizeChangeEvent
|
|
22
21
|
import com.lodev09.truesheet.events.WillDismissEvent
|
|
23
22
|
import com.lodev09.truesheet.events.WillPresentEvent
|
|
24
23
|
|
|
@@ -350,14 +349,6 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
|
|
|
350
349
|
viewController.dismiss()
|
|
351
350
|
}
|
|
352
351
|
|
|
353
|
-
override fun viewControllerDidChangeSize(width: Int, height: Int) {
|
|
354
|
-
// Dispatch size change event to JS
|
|
355
|
-
val surfaceId = UIManagerHelper.getSurfaceId(this)
|
|
356
|
-
eventDispatcher?.dispatchEvent(
|
|
357
|
-
SizeChangeEvent(surfaceId, id, width, height)
|
|
358
|
-
)
|
|
359
|
-
}
|
|
360
|
-
|
|
361
352
|
// ==================== TrueSheetContainerViewDelegate Implementation ====================
|
|
362
353
|
|
|
363
354
|
override fun containerViewContentDidChangeSize(width: Int, height: Int) {
|
|
@@ -40,7 +40,6 @@ interface TrueSheetViewControllerDelegate {
|
|
|
40
40
|
fun viewControllerDidDragChange(index: Int, position: Float)
|
|
41
41
|
fun viewControllerDidDragEnd(index: Int, position: Float)
|
|
42
42
|
fun viewControllerDidChangePosition(index: Int, position: Float, transitioning: Boolean)
|
|
43
|
-
fun viewControllerDidChangeSize(width: Int, height: Int)
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
/**
|
|
@@ -65,6 +64,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
65
64
|
private val jSTouchDispatcher = JSTouchDispatcher(this)
|
|
66
65
|
private var jSPointerDispatcher: JSPointerDispatcher? = null
|
|
67
66
|
|
|
67
|
+
private var viewWidth = 0
|
|
68
|
+
private var viewHeight = 0
|
|
69
|
+
|
|
68
70
|
/**
|
|
69
71
|
* Delegate for handling view controller events
|
|
70
72
|
*/
|
|
@@ -774,6 +776,11 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
774
776
|
|
|
775
777
|
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
|
|
776
778
|
super.onSizeChanged(w, h, oldw, oldh)
|
|
779
|
+
viewWidth = w
|
|
780
|
+
viewHeight = h
|
|
781
|
+
|
|
782
|
+
// Update container state with new dimensions
|
|
783
|
+
containerView?.updateState(viewWidth, viewHeight)
|
|
777
784
|
|
|
778
785
|
// Only proceed if size actually changed
|
|
779
786
|
if (w == oldw && h == oldh) return
|
|
@@ -796,9 +803,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
796
803
|
delegate?.viewControllerDidChangePosition(detentInfo.index, detentInfo.position, transitioning = true)
|
|
797
804
|
}
|
|
798
805
|
}
|
|
799
|
-
|
|
800
|
-
// Notify delegate about size change
|
|
801
|
-
delegate?.viewControllerDidChangeSize(w, h)
|
|
802
806
|
}
|
|
803
807
|
|
|
804
808
|
override fun handleException(t: Throwable) {
|
|
@@ -61,8 +61,7 @@ class TrueSheetViewManager :
|
|
|
61
61
|
DragBeginEvent.EVENT_NAME to hashMapOf("registrationName" to DragBeginEvent.REGISTRATION_NAME),
|
|
62
62
|
DragChangeEvent.EVENT_NAME to hashMapOf("registrationName" to DragChangeEvent.REGISTRATION_NAME),
|
|
63
63
|
DragEndEvent.EVENT_NAME to hashMapOf("registrationName" to DragEndEvent.REGISTRATION_NAME),
|
|
64
|
-
PositionChangeEvent.EVENT_NAME to hashMapOf("registrationName" to PositionChangeEvent.REGISTRATION_NAME)
|
|
65
|
-
SizeChangeEvent.EVENT_NAME to hashMapOf("registrationName" to SizeChangeEvent.REGISTRATION_NAME)
|
|
64
|
+
PositionChangeEvent.EVENT_NAME to hashMapOf("registrationName" to PositionChangeEvent.REGISTRATION_NAME)
|
|
66
65
|
)
|
|
67
66
|
|
|
68
67
|
// ==================== Props ====================
|
|
@@ -154,6 +153,16 @@ class TrueSheetViewManager :
|
|
|
154
153
|
view.setEdgeToEdgeFullScreen(edgeToEdgeFullScreen)
|
|
155
154
|
}
|
|
156
155
|
|
|
156
|
+
@ReactProp(name = "fitScrollView", defaultBoolean = false)
|
|
157
|
+
override fun setFitScrollView(view: TrueSheetView, value: Boolean) {
|
|
158
|
+
// iOS-specific prop - no-op on Android
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@ReactProp(name = "pageSizing", defaultBoolean = true)
|
|
162
|
+
override fun setPageSizing(view: TrueSheetView, value: Boolean) {
|
|
163
|
+
// iOS-specific prop - no-op on Android
|
|
164
|
+
}
|
|
165
|
+
|
|
157
166
|
companion object {
|
|
158
167
|
const val REACT_CLASS = "TrueSheetView"
|
|
159
168
|
const val TAG_NAME = "TrueSheet"
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.13)
|
|
2
|
+
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
3
|
+
|
|
4
|
+
set(LIB_LITERAL TrueSheetSpec)
|
|
5
|
+
set(LIB_TARGET_NAME react_codegen_${LIB_LITERAL})
|
|
6
|
+
|
|
7
|
+
set(LIB_ANDROID_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
|
|
8
|
+
set(LIB_COMMON_DIR ${LIB_ANDROID_DIR}/../common/cpp)
|
|
9
|
+
set(LIB_ANDROID_GENERATED_JNI_DIR ${LIB_ANDROID_DIR}/build/generated/source/codegen/jni)
|
|
10
|
+
set(LIB_ANDROID_GENERATED_COMPONENTS_DIR ${LIB_ANDROID_GENERATED_JNI_DIR}/react/renderer/components/${LIB_LITERAL})
|
|
11
|
+
|
|
12
|
+
file(GLOB LIB_CUSTOM_SRCS CONFIGURE_DEPENDS *.cpp ${LIB_COMMON_DIR}/react/renderer/components/${LIB_LITERAL}/*.cpp)
|
|
13
|
+
file(GLOB LIB_CODEGEN_SRCS CONFIGURE_DEPENDS ${LIB_ANDROID_GENERATED_JNI_DIR}/*.cpp ${LIB_ANDROID_GENERATED_COMPONENTS_DIR}/*.cpp)
|
|
14
|
+
|
|
15
|
+
add_library(
|
|
16
|
+
${LIB_TARGET_NAME}
|
|
17
|
+
SHARED
|
|
18
|
+
${LIB_CUSTOM_SRCS}
|
|
19
|
+
${LIB_CODEGEN_SRCS}
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
target_include_directories(
|
|
23
|
+
${LIB_TARGET_NAME}
|
|
24
|
+
PUBLIC
|
|
25
|
+
.
|
|
26
|
+
${LIB_COMMON_DIR}
|
|
27
|
+
${LIB_ANDROID_GENERATED_JNI_DIR}
|
|
28
|
+
${LIB_ANDROID_GENERATED_COMPONENTS_DIR}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
if (REACTNATIVE_MERGED_SO)
|
|
32
|
+
target_link_libraries(
|
|
33
|
+
${LIB_TARGET_NAME}
|
|
34
|
+
fbjni
|
|
35
|
+
jsi
|
|
36
|
+
reactnative
|
|
37
|
+
log
|
|
38
|
+
)
|
|
39
|
+
else()
|
|
40
|
+
target_link_libraries(
|
|
41
|
+
${LIB_TARGET_NAME}
|
|
42
|
+
fbjni
|
|
43
|
+
folly_runtime
|
|
44
|
+
glog
|
|
45
|
+
jsi
|
|
46
|
+
react_codegen_rncore
|
|
47
|
+
react_debug
|
|
48
|
+
react_nativemodule_core
|
|
49
|
+
react_render_core
|
|
50
|
+
react_render_debug
|
|
51
|
+
react_render_graphics
|
|
52
|
+
react_render_mapbuffer
|
|
53
|
+
react_render_componentregistry
|
|
54
|
+
react_utils
|
|
55
|
+
rrc_view
|
|
56
|
+
turbomodulejsijni
|
|
57
|
+
yoga
|
|
58
|
+
log
|
|
59
|
+
)
|
|
60
|
+
endif()
|
|
61
|
+
|
|
62
|
+
target_include_directories(
|
|
63
|
+
${CMAKE_PROJECT_NAME}
|
|
64
|
+
PUBLIC
|
|
65
|
+
${CMAKE_CURRENT_SOURCE_DIR}
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 80)
|
|
69
|
+
target_compile_reactnative_options(${LIB_TARGET_NAME} PUBLIC)
|
|
70
|
+
else()
|
|
71
|
+
target_compile_options(
|
|
72
|
+
${LIB_TARGET_NAME}
|
|
73
|
+
PRIVATE
|
|
74
|
+
-fexceptions
|
|
75
|
+
-frtti
|
|
76
|
+
-std=c++20
|
|
77
|
+
-Wall
|
|
78
|
+
)
|
|
79
|
+
endif()
|
|
80
|
+
|
|
81
|
+
target_compile_options(
|
|
82
|
+
${LIB_TARGET_NAME}
|
|
83
|
+
PRIVATE
|
|
84
|
+
-Wpedantic
|
|
85
|
+
-Wno-gnu-zero-variadic-macro-arguments
|
|
86
|
+
-Wno-dollar-in-identifier-extension
|
|
87
|
+
)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <ReactCommon/JavaTurboModule.h>
|
|
4
|
+
#include <ReactCommon/TurboModule.h>
|
|
5
|
+
#include <jsi/jsi.h>
|
|
6
|
+
#include <react/renderer/components/TrueSheetSpec/TrueSheetContainerViewComponentDescriptor.h>
|
|
7
|
+
|
|
8
|
+
namespace facebook {
|
|
9
|
+
namespace react {
|
|
10
|
+
|
|
11
|
+
JSI_EXPORT
|
|
12
|
+
std::shared_ptr<TurboModule> TrueSheetSpec_ModuleProvider(
|
|
13
|
+
const std::string &moduleName,
|
|
14
|
+
const JavaTurboModule::InitParams ¶ms);
|
|
15
|
+
|
|
16
|
+
} // namespace react
|
|
17
|
+
} // namespace facebook
|
|
@@ -9,14 +9,18 @@
|
|
|
9
9
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
10
10
|
|
|
11
11
|
#import "TrueSheetContainerView.h"
|
|
12
|
-
#import <react/renderer/components/TrueSheetSpec/ComponentDescriptors.h>
|
|
13
12
|
#import <react/renderer/components/TrueSheetSpec/EventEmitters.h>
|
|
14
13
|
#import <react/renderer/components/TrueSheetSpec/Props.h>
|
|
15
14
|
#import <react/renderer/components/TrueSheetSpec/RCTComponentViewHelpers.h>
|
|
15
|
+
#import <react/renderer/components/TrueSheetSpec/TrueSheetContainerViewComponentDescriptor.h>
|
|
16
|
+
#import <react/renderer/components/TrueSheetSpec/TrueSheetContainerViewShadowNode.h>
|
|
17
|
+
#import <react/renderer/components/TrueSheetSpec/TrueSheetContainerViewState.h>
|
|
16
18
|
#import "TrueSheetContentView.h"
|
|
17
19
|
#import "TrueSheetFooterView.h"
|
|
18
20
|
|
|
19
21
|
#import <React/RCTConversions.h>
|
|
22
|
+
#import <React/RCTLog.h>
|
|
23
|
+
#import <react/renderer/core/State.h>
|
|
20
24
|
|
|
21
25
|
using namespace facebook::react;
|
|
22
26
|
|
|
@@ -26,6 +30,8 @@ using namespace facebook::react;
|
|
|
26
30
|
@implementation TrueSheetContainerView {
|
|
27
31
|
TrueSheetContentView *_contentView;
|
|
28
32
|
TrueSheetFooterView *_footerView;
|
|
33
|
+
TrueSheetContainerViewShadowNode::ConcreteState::Shared _state;
|
|
34
|
+
CGFloat _lastContainerWidth;
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
+ (ComponentDescriptorProvider)componentDescriptorProvider {
|
|
@@ -41,11 +47,49 @@ using namespace facebook::react;
|
|
|
41
47
|
|
|
42
48
|
_contentView = nil;
|
|
43
49
|
_footerView = nil;
|
|
50
|
+
_lastContainerWidth = 0;
|
|
44
51
|
}
|
|
45
52
|
return self;
|
|
46
53
|
}
|
|
47
54
|
|
|
48
|
-
- (void)
|
|
55
|
+
- (void)layoutSubviews {
|
|
56
|
+
[super layoutSubviews];
|
|
57
|
+
|
|
58
|
+
// Override Yoga layout - fill the entire parent (controller's view)
|
|
59
|
+
if (self.superview) {
|
|
60
|
+
CGRect parentBounds = self.superview.bounds;
|
|
61
|
+
if (!CGRectEqualToRect(self.frame, parentBounds)) {
|
|
62
|
+
self.frame = parentBounds;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Update state with container width so Yoga can use it for children layout
|
|
66
|
+
[self updateStateIfNeeded];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
- (void)updateStateIfNeeded {
|
|
71
|
+
if (!self.superview) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
CGFloat containerWidth = self.superview.bounds.size.width;
|
|
76
|
+
if (containerWidth > 0 && fabs(containerWidth - _lastContainerWidth) > 0.5) {
|
|
77
|
+
_lastContainerWidth = containerWidth;
|
|
78
|
+
[self updateState];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
- (void)updateState {
|
|
83
|
+
if (!_state) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
_state->updateState([=](TrueSheetContainerViewShadowNode::ConcreteState::Data const &oldData)
|
|
88
|
+
-> TrueSheetContainerViewShadowNode::ConcreteState::SharedData {
|
|
89
|
+
auto newData = oldData;
|
|
90
|
+
newData.containerWidth = static_cast<float>(_lastContainerWidth);
|
|
91
|
+
return std::make_shared<TrueSheetContainerViewShadowNode::ConcreteState::Data const>(newData);
|
|
92
|
+
});
|
|
49
93
|
}
|
|
50
94
|
|
|
51
95
|
- (CGFloat)contentHeight {
|
|
@@ -64,7 +108,6 @@ using namespace facebook::react;
|
|
|
64
108
|
|
|
65
109
|
- (void)setupContentScrollViewPinning:(BOOL)pinned {
|
|
66
110
|
if (_contentView) {
|
|
67
|
-
NSLog(@"setting up scrollview pinning: %i", pinned);
|
|
68
111
|
[_contentView setupScrollViewPinning:pinned];
|
|
69
112
|
}
|
|
70
113
|
}
|
|
@@ -75,7 +118,7 @@ using namespace facebook::react;
|
|
|
75
118
|
// Handle content view mounting
|
|
76
119
|
if ([childComponentView isKindOfClass:[TrueSheetContentView class]]) {
|
|
77
120
|
if (_contentView != nil) {
|
|
78
|
-
|
|
121
|
+
RCTLogWarn(@"TrueSheet: Container can only have one content component.");
|
|
79
122
|
return;
|
|
80
123
|
}
|
|
81
124
|
|
|
@@ -86,7 +129,7 @@ using namespace facebook::react;
|
|
|
86
129
|
// Handle footer view mounting
|
|
87
130
|
if ([childComponentView isKindOfClass:[TrueSheetFooterView class]]) {
|
|
88
131
|
if (_footerView != nil) {
|
|
89
|
-
|
|
132
|
+
RCTLogWarn(@"TrueSheet: Container can only have one footer component.");
|
|
90
133
|
return;
|
|
91
134
|
}
|
|
92
135
|
|
|
@@ -110,6 +153,19 @@ using namespace facebook::react;
|
|
|
110
153
|
[super updateProps:props oldProps:oldProps];
|
|
111
154
|
}
|
|
112
155
|
|
|
156
|
+
- (void)updateState:(const State::Shared &)state oldState:(const State::Shared &)oldState {
|
|
157
|
+
_state = std::static_pointer_cast<TrueSheetContainerViewShadowNode::ConcreteState const>(state);
|
|
158
|
+
|
|
159
|
+
// Reset last width when state is updated to ensure we push the correct width
|
|
160
|
+
// This handles re-presentation of the sheet where state is recreated
|
|
161
|
+
_lastContainerWidth = 0;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
- (void)finalizeUpdates:(RNComponentViewUpdateMask)updateMask {
|
|
165
|
+
[super finalizeUpdates:updateMask];
|
|
166
|
+
[self updateStateIfNeeded];
|
|
167
|
+
}
|
|
168
|
+
|
|
113
169
|
#pragma mark - TrueSheetContentViewDelegate
|
|
114
170
|
|
|
115
171
|
- (void)contentViewDidChangeSize:(CGSize)newSize {
|
|
@@ -53,17 +53,6 @@ using namespace facebook::react;
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
//- (void)didMoveToSuperview {
|
|
57
|
-
// [super didMoveToSuperview];
|
|
58
|
-
//
|
|
59
|
-
// // Setup scroll view pinning after Fabric mounts the view in container
|
|
60
|
-
// // Ensures proper view hierarchy for scroll detection and pinning
|
|
61
|
-
// if (self.superview) {
|
|
62
|
-
// NSLog(@"content has attached");
|
|
63
|
-
//// [self setupScrollViewPinning];
|
|
64
|
-
// }
|
|
65
|
-
//}
|
|
66
|
-
|
|
67
56
|
- (void)unpinScrollView {
|
|
68
57
|
// Unpin previous scroll view if exists
|
|
69
58
|
if (_pinnedScrollView) {
|
package/ios/TrueSheetView.h
CHANGED
|
@@ -23,22 +23,6 @@ typedef void (^TrueSheetCompletionBlock)(BOOL success, NSError *_Nullable error)
|
|
|
23
23
|
|
|
24
24
|
@interface TrueSheetView : RCTViewComponentView
|
|
25
25
|
|
|
26
|
-
///**
|
|
27
|
-
// * The view controller managing the sheet presentation
|
|
28
|
-
// * Exposed so container can access it
|
|
29
|
-
// */
|
|
30
|
-
//@property (nonatomic, readonly, strong) TrueSheetViewController *controller;
|
|
31
|
-
//
|
|
32
|
-
///**
|
|
33
|
-
// * Whether the sheet is currently presented
|
|
34
|
-
// */
|
|
35
|
-
//@property (nonatomic, readonly) BOOL isPresented;
|
|
36
|
-
//
|
|
37
|
-
///**
|
|
38
|
-
// * The currently active detent index
|
|
39
|
-
// */
|
|
40
|
-
//@property (nonatomic, readonly, strong, nullable) NSNumber *activeIndex;
|
|
41
|
-
|
|
42
26
|
// TurboModule methods
|
|
43
27
|
- (void)presentAtIndex:(NSInteger)index
|
|
44
28
|
animated:(BOOL)animated
|
package/ios/TrueSheetView.mm
CHANGED
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
#import "events/OnDragEndEvent.h"
|
|
23
23
|
#import "events/OnMountEvent.h"
|
|
24
24
|
#import "events/OnPositionChangeEvent.h"
|
|
25
|
-
#import "events/OnSizeChangeEvent.h"
|
|
26
25
|
#import "events/OnWillDismissEvent.h"
|
|
27
26
|
#import "events/OnWillPresentEvent.h"
|
|
28
27
|
#import "utils/LayoutUtil.h"
|
|
@@ -35,6 +34,7 @@
|
|
|
35
34
|
|
|
36
35
|
#import <React/RCTConversions.h>
|
|
37
36
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
37
|
+
#import <React/RCTLog.h>
|
|
38
38
|
#import <React/RCTSurfaceTouchHandler.h>
|
|
39
39
|
#import <React/RCTUtils.h>
|
|
40
40
|
|
|
@@ -271,7 +271,7 @@ using namespace facebook::react;
|
|
|
271
271
|
// Check if it's a container view
|
|
272
272
|
if ([childComponentView isKindOfClass:[TrueSheetContainerView class]]) {
|
|
273
273
|
if (_containerView != nil) {
|
|
274
|
-
|
|
274
|
+
RCTLogWarn(@"TrueSheet: Sheet can only have one container component.");
|
|
275
275
|
return;
|
|
276
276
|
}
|
|
277
277
|
|
|
@@ -292,6 +292,10 @@ using namespace facebook::react;
|
|
|
292
292
|
// Ensure container is above background view
|
|
293
293
|
[_controller.view bringSubviewToFront:_containerView];
|
|
294
294
|
|
|
295
|
+
// Force layout pass immediately so container gets correct width on mount
|
|
296
|
+
// This pushes the width to Yoga before the sheet is presented
|
|
297
|
+
[_controller.view layoutIfNeeded];
|
|
298
|
+
|
|
295
299
|
// Get initial content height from container
|
|
296
300
|
CGFloat contentHeight = [_containerView contentHeight];
|
|
297
301
|
if (contentHeight > 0) {
|
|
@@ -417,12 +421,6 @@ using namespace facebook::react;
|
|
|
417
421
|
[OnPositionChangeEvent emit:_eventEmitter index:index position:position transitioning:transitioning];
|
|
418
422
|
}
|
|
419
423
|
|
|
420
|
-
- (void)viewControllerDidChangeSize:(CGSize)size {
|
|
421
|
-
// Notify so our container can layout on JS
|
|
422
|
-
// TODO: hopefully we can convert this into native!
|
|
423
|
-
[OnSizeChangeEvent emit:_eventEmitter width:size.width height:size.height];
|
|
424
|
-
}
|
|
425
|
-
|
|
426
424
|
#pragma mark - Private Helpers
|
|
427
425
|
|
|
428
426
|
- (UIViewController *)findPresentingViewController {
|
|
@@ -434,6 +432,10 @@ using namespace facebook::react;
|
|
|
434
432
|
|
|
435
433
|
UIViewController *rootViewController = keyWindow.rootViewController;
|
|
436
434
|
|
|
435
|
+
if (!rootViewController) {
|
|
436
|
+
return nil;
|
|
437
|
+
}
|
|
438
|
+
|
|
437
439
|
// Find the top-most presented view controller
|
|
438
440
|
while (rootViewController.presentedViewController) {
|
|
439
441
|
UIViewController *presented = rootViewController.presentedViewController;
|
|
@@ -26,7 +26,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
26
26
|
- (void)viewControllerDidChangeDetent:(NSInteger)index position:(CGFloat)position;
|
|
27
27
|
- (void)viewControllerDidDrag:(UIGestureRecognizerState)state index:(NSInteger)index position:(CGFloat)position;
|
|
28
28
|
- (void)viewControllerDidChangePosition:(NSInteger)index position:(CGFloat)position transitioning:(BOOL)transitioning;
|
|
29
|
-
- (void)viewControllerDidChangeSize:(CGSize)size;
|
|
30
29
|
|
|
31
30
|
@end
|
|
32
31
|
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
@implementation TrueSheetViewController {
|
|
23
23
|
CGFloat _lastPosition;
|
|
24
24
|
CGFloat _lastTransitionPosition;
|
|
25
|
-
CGSize _lastNotifiedSize;
|
|
26
25
|
BOOL _isTransitioning;
|
|
27
26
|
BOOL _isDragging;
|
|
28
27
|
BOOL _isTrackingPositionFromLayout;
|
|
@@ -40,7 +39,6 @@
|
|
|
40
39
|
_pageSizing = YES;
|
|
41
40
|
_lastPosition = 0;
|
|
42
41
|
_lastTransitionPosition = 0;
|
|
43
|
-
_lastNotifiedSize = CGSizeZero;
|
|
44
42
|
_isTransitioning = NO;
|
|
45
43
|
_isDragging = NO;
|
|
46
44
|
_isTrackingPositionFromLayout = NO;
|
|
@@ -58,6 +56,12 @@
|
|
|
58
56
|
|
|
59
57
|
- (void)dealloc {
|
|
60
58
|
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
59
|
+
|
|
60
|
+
// Ensure display link is invalidated to prevent retain cycle
|
|
61
|
+
if (_displayLink) {
|
|
62
|
+
[_displayLink invalidate];
|
|
63
|
+
_displayLink = nil;
|
|
64
|
+
}
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
#pragma mark - Presentation State
|
|
@@ -95,9 +99,6 @@
|
|
|
95
99
|
[self.delegate viewControllerWillPresent];
|
|
96
100
|
}
|
|
97
101
|
|
|
98
|
-
// Emit size change event to layout our container
|
|
99
|
-
[self notifyContentSizeChange];
|
|
100
|
-
|
|
101
102
|
// Setup transition position tracking
|
|
102
103
|
[self setupTransitionPositionTracking];
|
|
103
104
|
}
|
|
@@ -163,18 +164,12 @@
|
|
|
163
164
|
completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
|
|
164
165
|
// After rotation completes
|
|
165
166
|
[self setupSheetDetents];
|
|
166
|
-
|
|
167
|
-
// Notify delegate of size changes
|
|
168
|
-
[self notifyContentSizeChange];
|
|
169
167
|
}];
|
|
170
168
|
}
|
|
171
169
|
|
|
172
170
|
- (void)viewDidLayoutSubviews {
|
|
173
171
|
[super viewDidLayoutSubviews];
|
|
174
172
|
|
|
175
|
-
// Notify content size changes (e.g., when pageSizing changes)
|
|
176
|
-
[self notifyContentSizeChange];
|
|
177
|
-
|
|
178
173
|
if (!_isTransitioning && self.isActiveAndVisible) {
|
|
179
174
|
// Flag that we are tracking position from layout
|
|
180
175
|
_isTrackingPositionFromLayout = YES;
|
|
@@ -193,19 +188,6 @@
|
|
|
193
188
|
}
|
|
194
189
|
}
|
|
195
190
|
|
|
196
|
-
- (void)notifyContentSizeChange {
|
|
197
|
-
CGSize currentSize = self.view.frame.size;
|
|
198
|
-
|
|
199
|
-
// Only notify if width has actually changed
|
|
200
|
-
if (currentSize.width != _lastNotifiedSize.width) {
|
|
201
|
-
_lastNotifiedSize = currentSize;
|
|
202
|
-
|
|
203
|
-
if ([self.delegate respondsToSelector:@selector(viewControllerDidChangeSize:)]) {
|
|
204
|
-
[self.delegate viewControllerDidChangeSize:currentSize];
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
191
|
#pragma mark - Gesture Handling
|
|
210
192
|
|
|
211
193
|
/**
|
|
@@ -391,7 +373,8 @@
|
|
|
391
373
|
|
|
392
374
|
// Our last transition position is nearly the same as fake view's layer position
|
|
393
375
|
// Sheet must've been repositioning after dragging at lowest detent
|
|
394
|
-
|
|
376
|
+
// Use 0.5 points as epsilon to account for floating-point precision in layout calculations
|
|
377
|
+
if (fabs(_lastTransitionPosition - position) < 0.5) {
|
|
395
378
|
// Let's just flag it as transitioning to let JS manually animate
|
|
396
379
|
transitioning = YES;
|
|
397
380
|
|
|
@@ -517,7 +500,7 @@
|
|
|
517
500
|
return UISheetPresentationControllerDetentIdentifierMedium;
|
|
518
501
|
|
|
519
502
|
UISheetPresentationControllerDetentIdentifier identifier = UISheetPresentationControllerDetentIdentifierMedium;
|
|
520
|
-
if (index < sheet.detents.count) {
|
|
503
|
+
if (index >= 0 && index < (NSInteger)sheet.detents.count) {
|
|
521
504
|
UISheetPresentationControllerDetent *detent = sheet.detents[index];
|
|
522
505
|
if (@available(iOS 16.0, *)) {
|
|
523
506
|
identifier = detent.identifier;
|
|
@@ -11,46 +11,36 @@
|
|
|
11
11
|
@implementation ConversionUtil
|
|
12
12
|
|
|
13
13
|
+ (UIBlurEffectStyle)blurEffectStyleFromString:(NSString *)tintString {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return
|
|
44
|
-
} else if ([tintString isEqualToString:@"system-ultra-thin-material-dark"]) {
|
|
45
|
-
return UIBlurEffectStyleSystemUltraThinMaterialDark;
|
|
46
|
-
} else if ([tintString isEqualToString:@"system-thin-material-dark"]) {
|
|
47
|
-
return UIBlurEffectStyleSystemThinMaterialDark;
|
|
48
|
-
} else if ([tintString isEqualToString:@"system-material-dark"]) {
|
|
49
|
-
return UIBlurEffectStyleSystemMaterialDark;
|
|
50
|
-
} else if ([tintString isEqualToString:@"system-thick-material-dark"]) {
|
|
51
|
-
return UIBlurEffectStyleSystemThickMaterialDark;
|
|
52
|
-
} else if ([tintString isEqualToString:@"system-chrome-material-dark"]) {
|
|
53
|
-
return UIBlurEffectStyleSystemChromeMaterialDark;
|
|
14
|
+
static NSDictionary<NSString *, NSNumber *> *styleMap = nil;
|
|
15
|
+
static dispatch_once_t onceToken;
|
|
16
|
+
dispatch_once(&onceToken, ^{
|
|
17
|
+
styleMap = @{
|
|
18
|
+
@"dark" : @(UIBlurEffectStyleDark),
|
|
19
|
+
@"light" : @(UIBlurEffectStyleLight),
|
|
20
|
+
@"extra-light" : @(UIBlurEffectStyleExtraLight),
|
|
21
|
+
@"regular" : @(UIBlurEffectStyleRegular),
|
|
22
|
+
@"prominent" : @(UIBlurEffectStyleProminent),
|
|
23
|
+
@"system-ultra-thin-material" : @(UIBlurEffectStyleSystemUltraThinMaterial),
|
|
24
|
+
@"system-thin-material" : @(UIBlurEffectStyleSystemThinMaterial),
|
|
25
|
+
@"system-material" : @(UIBlurEffectStyleSystemMaterial),
|
|
26
|
+
@"system-thick-material" : @(UIBlurEffectStyleSystemThickMaterial),
|
|
27
|
+
@"system-chrome-material" : @(UIBlurEffectStyleSystemChromeMaterial),
|
|
28
|
+
@"system-ultra-thin-material-light" : @(UIBlurEffectStyleSystemUltraThinMaterialLight),
|
|
29
|
+
@"system-thin-material-light" : @(UIBlurEffectStyleSystemThinMaterialLight),
|
|
30
|
+
@"system-material-light" : @(UIBlurEffectStyleSystemMaterialLight),
|
|
31
|
+
@"system-thick-material-light" : @(UIBlurEffectStyleSystemThickMaterialLight),
|
|
32
|
+
@"system-chrome-material-light" : @(UIBlurEffectStyleSystemChromeMaterialLight),
|
|
33
|
+
@"system-ultra-thin-material-dark" : @(UIBlurEffectStyleSystemUltraThinMaterialDark),
|
|
34
|
+
@"system-thin-material-dark" : @(UIBlurEffectStyleSystemThinMaterialDark),
|
|
35
|
+
@"system-material-dark" : @(UIBlurEffectStyleSystemMaterialDark),
|
|
36
|
+
@"system-thick-material-dark" : @(UIBlurEffectStyleSystemThickMaterialDark),
|
|
37
|
+
@"system-chrome-material-dark" : @(UIBlurEffectStyleSystemChromeMaterialDark),
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
NSNumber *style = styleMap[tintString];
|
|
42
|
+
if (style) {
|
|
43
|
+
return (UIBlurEffectStyle)[style integerValue];
|
|
54
44
|
}
|
|
55
45
|
|
|
56
46
|
// Default to light if not recognized
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -34,9 +34,7 @@ export class TrueSheet extends PureComponent {
|
|
|
34
34
|
// Lazy load by default, except when initialDetentIndex is set (for auto-presentation)
|
|
35
35
|
const shouldRenderImmediately = props.initialDetentIndex !== undefined && props.initialDetentIndex >= 0;
|
|
36
36
|
this.state = {
|
|
37
|
-
shouldRenderNativeView: shouldRenderImmediately
|
|
38
|
-
containerWidth: undefined,
|
|
39
|
-
containerHeight: undefined
|
|
37
|
+
shouldRenderNativeView: shouldRenderImmediately
|
|
40
38
|
};
|
|
41
39
|
this.onMount = this.onMount.bind(this);
|
|
42
40
|
this.onWillDismiss = this.onWillDismiss.bind(this);
|
|
@@ -48,7 +46,6 @@ export class TrueSheet extends PureComponent {
|
|
|
48
46
|
this.onDragChange = this.onDragChange.bind(this);
|
|
49
47
|
this.onDragEnd = this.onDragEnd.bind(this);
|
|
50
48
|
this.onPositionChange = this.onPositionChange.bind(this);
|
|
51
|
-
this.onSizeChange = this.onSizeChange.bind(this);
|
|
52
49
|
}
|
|
53
50
|
validateDetents() {
|
|
54
51
|
const {
|
|
@@ -188,20 +185,6 @@ export class TrueSheet extends PureComponent {
|
|
|
188
185
|
onPositionChange(event) {
|
|
189
186
|
this.props.onPositionChange?.(event);
|
|
190
187
|
}
|
|
191
|
-
onSizeChange(event) {
|
|
192
|
-
const {
|
|
193
|
-
width,
|
|
194
|
-
height
|
|
195
|
-
} = event.nativeEvent;
|
|
196
|
-
|
|
197
|
-
// Update container view dimensions in state
|
|
198
|
-
this.setState({
|
|
199
|
-
containerWidth: width,
|
|
200
|
-
containerHeight: height
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
// Internal handler only - not exposed to users
|
|
204
|
-
}
|
|
205
188
|
|
|
206
189
|
/**
|
|
207
190
|
* Present the Sheet by `index` (Promise-based)
|
|
@@ -317,13 +300,8 @@ export class TrueSheet extends PureComponent {
|
|
|
317
300
|
onDragChange: this.onDragChange,
|
|
318
301
|
onDragEnd: this.onDragEnd,
|
|
319
302
|
onPositionChange: this.onPositionChange,
|
|
320
|
-
onSizeChange: this.onSizeChange,
|
|
321
303
|
children: this.state.shouldRenderNativeView && /*#__PURE__*/_jsxs(TrueSheetContainerViewNativeComponent, {
|
|
322
304
|
testID: testID,
|
|
323
|
-
style: {
|
|
324
|
-
width: this.state.containerWidth,
|
|
325
|
-
height: this.state.containerHeight
|
|
326
|
-
},
|
|
327
305
|
collapsable: false,
|
|
328
306
|
children: [/*#__PURE__*/_jsx(TrueSheetContentViewNativeComponent, {
|
|
329
307
|
style: style,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","containerWidth","containerHeight","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onSizeChange","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","dismiss","resize","registerInstance","unregisterInstance","event","setState","width","height","nativeEvent","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","grabber","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","cornerRadius","maxHeight","edgeToEdgeFullScreen","fitScrollView","pageSizing","children","style","footer","testID","resolvedDetents","slice","map","ref","styles","sheetView","background","collapsable","create","position","zIndex","left","right"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","grabber","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","cornerRadius","maxHeight","edgeToEdgeFullScreen","fitScrollView","pageSizing","children","style","footer","testID","resolvedDetents","slice","map","ref","styles","sheetView","background","collapsable","create","position","width","zIndex","left","right"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,4 +5,6 @@ export interface NativeProps extends ViewProps {
|
|
|
5
5
|
// No props needed - container accesses props from parent TrueSheetView
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export default codegenNativeComponent<NativeProps>('TrueSheetContainerView', {
|
|
8
|
+
export default codegenNativeComponent<NativeProps>('TrueSheetContainerView', {
|
|
9
|
+
interfaceOnly: true,
|
|
10
|
+
});
|
|
@@ -19,11 +19,6 @@ export interface PositionChangeEventPayload {
|
|
|
19
19
|
transitioning: boolean;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export interface SizeChangeEventPayload {
|
|
23
|
-
width: Double;
|
|
24
|
-
height: Double;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
22
|
export interface NativeProps extends ViewProps {
|
|
28
23
|
// Array properties
|
|
29
24
|
detents?: ReadonlyArray<Float>;
|
|
@@ -59,7 +54,6 @@ export interface NativeProps extends ViewProps {
|
|
|
59
54
|
onDragChange?: DirectEventHandler<DetentInfoEventPayload>;
|
|
60
55
|
onDragEnd?: DirectEventHandler<DetentInfoEventPayload>;
|
|
61
56
|
onPositionChange?: DirectEventHandler<PositionChangeEventPayload>;
|
|
62
|
-
onSizeChange?: DirectEventHandler<SizeChangeEventPayload>;
|
|
63
57
|
}
|
|
64
58
|
|
|
65
59
|
export default codegenNativeComponent<NativeProps>('TrueSheetView');
|
|
@@ -2,8 +2,6 @@ import { PureComponent, type ReactNode } from 'react';
|
|
|
2
2
|
import type { TrueSheetProps } from './TrueSheet.types';
|
|
3
3
|
interface TrueSheetState {
|
|
4
4
|
shouldRenderNativeView: boolean;
|
|
5
|
-
containerWidth?: number;
|
|
6
|
-
containerHeight?: number;
|
|
7
5
|
}
|
|
8
6
|
export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
9
7
|
displayName: string;
|
|
@@ -55,7 +53,6 @@ export declare class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetSt
|
|
|
55
53
|
private onDragChange;
|
|
56
54
|
private onDragEnd;
|
|
57
55
|
private onPositionChange;
|
|
58
|
-
private onSizeChange;
|
|
59
56
|
/**
|
|
60
57
|
* Present the Sheet by `index` (Promise-based)
|
|
61
58
|
* @param index - Detent index (default: 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,EAWf,MAAM,mBAAmB,CAAC;AAuB3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1E,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IA2BjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;;;;OAKG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CA+EpB"}
|
|
@@ -28,19 +28,6 @@ export type DragBeginEvent = NativeSyntheticEvent<DetentInfoEventPayload>;
|
|
|
28
28
|
export type DragChangeEvent = NativeSyntheticEvent<DetentInfoEventPayload>;
|
|
29
29
|
export type DragEndEvent = NativeSyntheticEvent<DetentInfoEventPayload>;
|
|
30
30
|
export type PositionChangeEvent = NativeSyntheticEvent<PositionChangeEventPayload>;
|
|
31
|
-
/**
|
|
32
|
-
* Internal event payload for size changes (not exposed to users)
|
|
33
|
-
* @internal
|
|
34
|
-
*/
|
|
35
|
-
export interface SizeChangeEventPayload {
|
|
36
|
-
width: number;
|
|
37
|
-
height: number;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Internal event type for size changes (not exposed to users)
|
|
41
|
-
* @internal
|
|
42
|
-
*/
|
|
43
|
-
export type SizeChangeEvent = NativeSyntheticEvent<SizeChangeEventPayload>;
|
|
44
31
|
/**
|
|
45
32
|
* Blur style mapped to native values in IOS.
|
|
46
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpD,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC7E,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC5E,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACzD,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;AAEnF
|
|
1
|
+
{"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheetContainerViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetContainerViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,WAAW,WAAY,SAAQ,SAAS;CAE7C;;AAED,
|
|
1
|
+
{"version":3,"file":"TrueSheetContainerViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetContainerViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,WAAW,WAAY,SAAQ,SAAS;CAE7C;;AAED,wBAEG"}
|
|
@@ -9,10 +9,6 @@ export interface PositionChangeEventPayload {
|
|
|
9
9
|
position: Double;
|
|
10
10
|
transitioning: boolean;
|
|
11
11
|
}
|
|
12
|
-
export interface SizeChangeEventPayload {
|
|
13
|
-
width: Double;
|
|
14
|
-
height: Double;
|
|
15
|
-
}
|
|
16
12
|
export interface NativeProps extends ViewProps {
|
|
17
13
|
detents?: ReadonlyArray<Float>;
|
|
18
14
|
maxHeight?: WithDefault<Double, 0>;
|
|
@@ -39,7 +35,6 @@ export interface NativeProps extends ViewProps {
|
|
|
39
35
|
onDragChange?: DirectEventHandler<DetentInfoEventPayload>;
|
|
40
36
|
onDragEnd?: DirectEventHandler<DetentInfoEventPayload>;
|
|
41
37
|
onPositionChange?: DirectEventHandler<PositionChangeEventPayload>;
|
|
42
|
-
onSizeChange?: DirectEventHandler<SizeChangeEventPayload>;
|
|
43
38
|
}
|
|
44
39
|
declare const _default: import("react-native").HostComponent<NativeProps>;
|
|
45
40
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,WAAW,EACX,KAAK,EACN,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,WAAW,EACX,KAAK,EACN,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAE5C,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAG/B,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAG1C,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;IAGvD,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,qBAAqB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,oBAAoB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,aAAa,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAGxC,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC1D,aAAa,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC1D,SAAS,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;CACnE;;AAED,wBAAoE"}
|
package/package.json
CHANGED
package/react-native.config.js
CHANGED
|
@@ -2,7 +2,10 @@ module.exports = {
|
|
|
2
2
|
dependency: {
|
|
3
3
|
platforms: {
|
|
4
4
|
ios: {},
|
|
5
|
-
android: {
|
|
5
|
+
android: {
|
|
6
|
+
componentDescriptors: ['TrueSheetContainerViewComponentDescriptor'],
|
|
7
|
+
cmakeListsPath: '../android/src/main/jni/CMakeLists.txt',
|
|
8
|
+
},
|
|
6
9
|
},
|
|
7
10
|
},
|
|
8
11
|
dependencies: {
|
|
@@ -14,4 +17,4 @@ module.exports = {
|
|
|
14
17
|
},
|
|
15
18
|
},
|
|
16
19
|
},
|
|
17
|
-
}
|
|
20
|
+
};
|
package/src/TrueSheet.tsx
CHANGED
|
@@ -20,7 +20,6 @@ import type {
|
|
|
20
20
|
DidDismissEvent,
|
|
21
21
|
WillDismissEvent,
|
|
22
22
|
MountEvent,
|
|
23
|
-
SizeChangeEvent,
|
|
24
23
|
} from './TrueSheet.types';
|
|
25
24
|
import TrueSheetViewNativeComponent from './fabric/TrueSheetViewNativeComponent';
|
|
26
25
|
import TrueSheetContainerViewNativeComponent from './fabric/TrueSheetContainerViewNativeComponent';
|
|
@@ -46,8 +45,6 @@ type NativeRef = ComponentRef<typeof TrueSheetViewNativeComponent>;
|
|
|
46
45
|
|
|
47
46
|
interface TrueSheetState {
|
|
48
47
|
shouldRenderNativeView: boolean;
|
|
49
|
-
containerWidth?: number;
|
|
50
|
-
containerHeight?: number;
|
|
51
48
|
}
|
|
52
49
|
|
|
53
50
|
export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
@@ -78,8 +75,6 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
78
75
|
|
|
79
76
|
this.state = {
|
|
80
77
|
shouldRenderNativeView: shouldRenderImmediately,
|
|
81
|
-
containerWidth: undefined,
|
|
82
|
-
containerHeight: undefined,
|
|
83
78
|
};
|
|
84
79
|
|
|
85
80
|
this.onMount = this.onMount.bind(this);
|
|
@@ -92,7 +87,6 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
92
87
|
this.onDragChange = this.onDragChange.bind(this);
|
|
93
88
|
this.onDragEnd = this.onDragEnd.bind(this);
|
|
94
89
|
this.onPositionChange = this.onPositionChange.bind(this);
|
|
95
|
-
this.onSizeChange = this.onSizeChange.bind(this);
|
|
96
90
|
}
|
|
97
91
|
|
|
98
92
|
private validateDetents(): void {
|
|
@@ -255,18 +249,6 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
255
249
|
this.props.onPositionChange?.(event);
|
|
256
250
|
}
|
|
257
251
|
|
|
258
|
-
private onSizeChange(event: SizeChangeEvent): void {
|
|
259
|
-
const { width, height } = event.nativeEvent;
|
|
260
|
-
|
|
261
|
-
// Update container view dimensions in state
|
|
262
|
-
this.setState({
|
|
263
|
-
containerWidth: width,
|
|
264
|
-
containerHeight: height,
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
// Internal handler only - not exposed to users
|
|
268
|
-
}
|
|
269
|
-
|
|
270
252
|
/**
|
|
271
253
|
* Present the Sheet by `index` (Promise-based)
|
|
272
254
|
* @param index - Detent index (default: 0)
|
|
@@ -388,17 +370,9 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
|
|
|
388
370
|
onDragChange={this.onDragChange}
|
|
389
371
|
onDragEnd={this.onDragEnd}
|
|
390
372
|
onPositionChange={this.onPositionChange}
|
|
391
|
-
onSizeChange={this.onSizeChange}
|
|
392
373
|
>
|
|
393
374
|
{this.state.shouldRenderNativeView && (
|
|
394
|
-
<TrueSheetContainerViewNativeComponent
|
|
395
|
-
testID={testID}
|
|
396
|
-
style={{
|
|
397
|
-
width: this.state.containerWidth,
|
|
398
|
-
height: this.state.containerHeight,
|
|
399
|
-
}}
|
|
400
|
-
collapsable={false}
|
|
401
|
-
>
|
|
375
|
+
<TrueSheetContainerViewNativeComponent testID={testID} collapsable={false}>
|
|
402
376
|
<TrueSheetContentViewNativeComponent style={style} collapsable={false}>
|
|
403
377
|
{children}
|
|
404
378
|
</TrueSheetContentViewNativeComponent>
|
package/src/TrueSheet.types.ts
CHANGED
|
@@ -33,21 +33,6 @@ export type DragChangeEvent = NativeSyntheticEvent<DetentInfoEventPayload>;
|
|
|
33
33
|
export type DragEndEvent = NativeSyntheticEvent<DetentInfoEventPayload>;
|
|
34
34
|
export type PositionChangeEvent = NativeSyntheticEvent<PositionChangeEventPayload>;
|
|
35
35
|
|
|
36
|
-
/**
|
|
37
|
-
* Internal event payload for size changes (not exposed to users)
|
|
38
|
-
* @internal
|
|
39
|
-
*/
|
|
40
|
-
export interface SizeChangeEventPayload {
|
|
41
|
-
width: number;
|
|
42
|
-
height: number;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Internal event type for size changes (not exposed to users)
|
|
47
|
-
* @internal
|
|
48
|
-
*/
|
|
49
|
-
export type SizeChangeEvent = NativeSyntheticEvent<SizeChangeEventPayload>;
|
|
50
|
-
|
|
51
36
|
/**
|
|
52
37
|
* Blur style mapped to native values in IOS.
|
|
53
38
|
*
|
|
@@ -5,4 +5,6 @@ export interface NativeProps extends ViewProps {
|
|
|
5
5
|
// No props needed - container accesses props from parent TrueSheetView
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export default codegenNativeComponent<NativeProps>('TrueSheetContainerView', {
|
|
8
|
+
export default codegenNativeComponent<NativeProps>('TrueSheetContainerView', {
|
|
9
|
+
interfaceOnly: true,
|
|
10
|
+
});
|
|
@@ -19,11 +19,6 @@ export interface PositionChangeEventPayload {
|
|
|
19
19
|
transitioning: boolean;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export interface SizeChangeEventPayload {
|
|
23
|
-
width: Double;
|
|
24
|
-
height: Double;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
22
|
export interface NativeProps extends ViewProps {
|
|
28
23
|
// Array properties
|
|
29
24
|
detents?: ReadonlyArray<Float>;
|
|
@@ -59,7 +54,6 @@ export interface NativeProps extends ViewProps {
|
|
|
59
54
|
onDragChange?: DirectEventHandler<DetentInfoEventPayload>;
|
|
60
55
|
onDragEnd?: DirectEventHandler<DetentInfoEventPayload>;
|
|
61
56
|
onPositionChange?: DirectEventHandler<PositionChangeEventPayload>;
|
|
62
|
-
onSizeChange?: DirectEventHandler<SizeChangeEventPayload>;
|
|
63
57
|
}
|
|
64
58
|
|
|
65
59
|
export default codegenNativeComponent<NativeProps>('TrueSheetView');
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
package com.lodev09.truesheet.events
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.Arguments
|
|
4
|
-
import com.facebook.react.bridge.WritableMap
|
|
5
|
-
import com.facebook.react.uimanager.PixelUtil
|
|
6
|
-
import com.facebook.react.uimanager.events.Event
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Fired when the root view's size changes
|
|
10
|
-
* Payload: { width: number, height: number }
|
|
11
|
-
*/
|
|
12
|
-
class SizeChangeEvent(surfaceId: Int, viewId: Int, private val width: Int, private val height: Int) :
|
|
13
|
-
Event<SizeChangeEvent>(surfaceId, viewId) {
|
|
14
|
-
|
|
15
|
-
override fun getEventName(): String = EVENT_NAME
|
|
16
|
-
|
|
17
|
-
override fun getEventData(): WritableMap =
|
|
18
|
-
Arguments.createMap().apply {
|
|
19
|
-
putDouble("width", PixelUtil.toDIPFromPixel(width.toFloat()).toDouble())
|
|
20
|
-
putDouble("height", PixelUtil.toDIPFromPixel(height.toFloat()).toDouble())
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
companion object {
|
|
24
|
-
const val EVENT_NAME = "topSizeChange"
|
|
25
|
-
const val REGISTRATION_NAME = "onSizeChange"
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Jovanni Lo (@lodev09)
|
|
3
|
-
// Copyright (c) 2024-present. All rights reserved.
|
|
4
|
-
//
|
|
5
|
-
// This source code is licensed under the MIT license found in the
|
|
6
|
-
// LICENSE file in the root directory of this source tree.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
10
|
-
|
|
11
|
-
#import <Foundation/Foundation.h>
|
|
12
|
-
#import <react/renderer/components/TrueSheetSpec/EventEmitters.h>
|
|
13
|
-
|
|
14
|
-
using namespace facebook::react;
|
|
15
|
-
|
|
16
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
17
|
-
|
|
18
|
-
@interface OnSizeChangeEvent : NSObject
|
|
19
|
-
|
|
20
|
-
+ (void)emit:(std::shared_ptr<const facebook::react::EventEmitter>)eventEmitter
|
|
21
|
-
width:(CGFloat)width
|
|
22
|
-
height:(CGFloat)height;
|
|
23
|
-
|
|
24
|
-
@end
|
|
25
|
-
|
|
26
|
-
NS_ASSUME_NONNULL_END
|
|
27
|
-
|
|
28
|
-
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Created by Jovanni Lo (@lodev09)
|
|
3
|
-
// Copyright (c) 2024-present. All rights reserved.
|
|
4
|
-
//
|
|
5
|
-
// This source code is licensed under the MIT license found in the
|
|
6
|
-
// LICENSE file in the root directory of this source tree.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
10
|
-
|
|
11
|
-
#import "OnSizeChangeEvent.h"
|
|
12
|
-
|
|
13
|
-
@implementation OnSizeChangeEvent
|
|
14
|
-
|
|
15
|
-
+ (void)emit:(std::shared_ptr<const facebook::react::EventEmitter>)eventEmitter
|
|
16
|
-
width:(CGFloat)width
|
|
17
|
-
height:(CGFloat)height {
|
|
18
|
-
if (!eventEmitter)
|
|
19
|
-
return;
|
|
20
|
-
|
|
21
|
-
auto emitter = std::static_pointer_cast<TrueSheetViewEventEmitter const>(eventEmitter);
|
|
22
|
-
TrueSheetViewEventEmitter::OnSizeChange event;
|
|
23
|
-
event.width = static_cast<double>(width);
|
|
24
|
-
event.height = static_cast<double>(height);
|
|
25
|
-
emitter->onSizeChange(event);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@end
|
|
29
|
-
|
|
30
|
-
#endif // RCT_NEW_ARCH_ENABLED
|