react-native-screens 4.12.0 → 4.13.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.
- package/RNScreens.podspec +29 -2
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +4 -0
- package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +9 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +0 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +4 -4
- package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingView.kt +4 -4
- package/android/src/main/java/com/swmansion/rnscreens/bottomsheet/DimmingViewManager.kt +8 -2
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAnimationDelegate.kt +1 -2
- package/android/src/main/java/com/swmansion/rnscreens/events/ScreenEventEmitter.kt +16 -13
- package/android/src/main/java/com/swmansion/rnscreens/gamma/common/BaseEventEmitter.kt +22 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/common/FragmentProviding.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/common/NamingAwareEventType.kt +13 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/EventHelpers.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/FragmentManagerHelper.kt +76 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/helpers/SystemDrawable.kt +33 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreen.kt +101 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenDelegate.kt +17 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenEventEmitter.kt +46 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenFragment.kt +37 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabScreenViewManager.kt +178 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHost.kt +433 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostEventEmitter.kt +14 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/TabsHostViewManager.kt +177 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenDidAppearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenDidDisappearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenWillAppearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenWillDisappearEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabsHostNativeFocusChangeEvent.kt +36 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/views/ChildDrawingOrderStrategyImpl.kt +0 -1
- package/android/src/main/java/com/swmansion/rnscreens/transition/ExternalBoundaryValuesEvaluator.kt +9 -2
- package/android/src/main/java/com/swmansion/rnscreens/utils/FragmentTransactionKt.kt +4 -1
- package/android/src/main/jni/rnscreens.h +1 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerDelegate.java +76 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerInterface.java +33 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerDelegate.java +97 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerInterface.java +40 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt +2 -2
- package/android/src/versioned/backgroundcolor/76/ViewBackgroundUtils.kt +0 -1
- package/android/src/versioned/backgroundcolor/latest/ViewBackgroundUtils.kt +0 -3
- package/android/src/versioned/pointerevents/77/com/swmansion/rnscreens/PointerEventsBoxNoneImpl.kt +1 -1
- package/android/src/versioned/pointerevents/latest/com/swmansion/rnscreens/PointerEventsBoxNoneImpl.kt +1 -1
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsComponentDescriptor.h +31 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsShadowNode.cpp +20 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsShadowNode.h +32 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsState.cpp +22 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSBottomTabsState.h +44 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +8 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenComponentDescriptor.h +40 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenShadowNode.cpp +13 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenShadowNode.h +36 -0
- package/common/cpp/react/renderer/components/rnscreens/RNSSplitViewScreenState.h +32 -0
- package/cpp/RNScreensTurboModule.h +5 -0
- package/ios/RNSEnums.h +6 -0
- package/ios/RNSScreen.h +2 -1
- package/ios/RNSScreen.mm +48 -1
- package/ios/RNSScreenContainer.mm +6 -0
- package/ios/RNSScreenStack.h +3 -1
- package/ios/RNSScreenStack.mm +39 -2
- package/ios/RNSScreenStackHeaderConfig.mm +1 -1
- package/ios/RNSScrollViewBehaviorOverriding.h +24 -0
- package/ios/RNSScrollViewFinder.h +13 -0
- package/ios/RNSScrollViewFinder.mm +22 -0
- package/ios/RNSScrollViewHelper.h +10 -0
- package/ios/RNSScrollViewHelper.mm +15 -0
- package/ios/RNScreens-Bridging-Header.h +4 -0
- package/ios/UIScrollView+RNScreens.h +14 -0
- package/ios/UIScrollView+RNScreens.mm +15 -0
- package/ios/bottom-tabs/RCTConvert+RNSBottomTabs.h +18 -0
- package/ios/bottom-tabs/RCTConvert+RNSBottomTabs.mm +25 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentView.h +80 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentView.mm +486 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentViewManager.h +11 -0
- package/ios/bottom-tabs/RNSBottomTabsHostComponentViewManager.mm +48 -0
- package/ios/bottom-tabs/RNSBottomTabsHostEventEmitter.h +53 -0
- package/ios/bottom-tabs/RNSBottomTabsHostEventEmitter.mm +57 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentView.h +95 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentView.mm +492 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentViewManager.h +9 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenComponentViewManager.mm +55 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenEventEmitter.h +53 -0
- package/ios/bottom-tabs/RNSBottomTabsScreenEventEmitter.mm +106 -0
- package/ios/bottom-tabs/RNSBottomTabsSpecialEffectsSupporting.h +17 -0
- package/ios/bottom-tabs/RNSTabBarAppearanceCoordinator.h +34 -0
- package/ios/bottom-tabs/RNSTabBarAppearanceCoordinator.mm +243 -0
- package/ios/bottom-tabs/RNSTabBarAppearanceProvider.h +23 -0
- package/ios/bottom-tabs/RNSTabBarController.h +132 -0
- package/ios/bottom-tabs/RNSTabBarController.mm +206 -0
- package/ios/bottom-tabs/RNSTabBarControllerDelegate.h +9 -0
- package/ios/bottom-tabs/RNSTabBarControllerDelegate.mm +63 -0
- package/ios/bottom-tabs/RNSTabsScreenViewController.h +42 -0
- package/ios/bottom-tabs/RNSTabsScreenViewController.mm +105 -0
- package/ios/bottom-tabs/extensions/RNSBottomTabsHostComponentView+RNSImageLoader.h +21 -0
- package/ios/bottom-tabs/extensions/RNSBottomTabsHostComponentView+RNSImageLoader.mm +22 -0
- package/ios/bridging/RNSReactBaseView.h +31 -0
- package/ios/bridging/RNSReactBaseView.mm +5 -0
- package/ios/bridging/Swift-Bridging.h +7 -0
- package/ios/conversion/RNSConversions-BottomTabs.mm +216 -0
- package/ios/conversion/RNSConversions-SplitView.mm +63 -0
- package/ios/conversion/RNSConversions.h +53 -0
- package/ios/gamma/ReactMountingTransactionObserving.swift +7 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentView.h +29 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentView.mm +209 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentViewManager.h +11 -0
- package/ios/gamma/split-view/RNSSplitViewHostComponentViewManager.mm +7 -0
- package/ios/gamma/split-view/RNSSplitViewHostController.swift +98 -0
- package/ios/gamma/split-view/RNSSplitViewNavigationController.swift +31 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentView.h +24 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentView.mm +106 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentViewManager.h +11 -0
- package/ios/gamma/split-view/RNSSplitViewScreenComponentViewManager.mm +7 -0
- package/ios/gamma/split-view/RNSSplitViewScreenController.swift +86 -0
- package/ios/gamma/split-view/RNSSplitViewScreenShadowStateProxy.h +35 -0
- package/ios/gamma/split-view/RNSSplitViewScreenShadowStateProxy.mm +56 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentView.h +16 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentView.mm +143 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentViewManager.h +11 -0
- package/ios/gamma/stack/RNSScreenStackHostComponentViewManager.mm +7 -0
- package/ios/gamma/stack/RNSStackController.swift +65 -0
- package/ios/gamma/stack/RNSStackScreenComponentEventEmitter.h +37 -0
- package/ios/gamma/stack/RNSStackScreenComponentEventEmitter.mm +60 -0
- package/ios/gamma/stack/RNSStackScreenComponentView.h +36 -0
- package/ios/gamma/stack/RNSStackScreenComponentView.mm +124 -0
- package/ios/gamma/stack/RNSStackScreenComponentViewManager.h +11 -0
- package/ios/gamma/stack/RNSStackScreenComponentViewManager.mm +7 -0
- package/ios/gamma/stack/RNSStackScreenController.swift +56 -0
- package/ios/utils/NSString+RNSUtility.h +17 -0
- package/ios/utils/NSString+RNSUtility.mm +37 -0
- package/lib/commonjs/components/BottomTabs.js +54 -0
- package/lib/commonjs/components/BottomTabs.js.map +1 -0
- package/lib/commonjs/components/BottomTabsScreen.js +149 -0
- package/lib/commonjs/components/BottomTabsScreen.js.map +1 -0
- package/lib/commonjs/components/gamma/ScreenStackHost.js +27 -0
- package/lib/commonjs/components/gamma/ScreenStackHost.js.map +1 -0
- package/lib/commonjs/components/gamma/SplitViewHost.js +57 -0
- package/lib/commonjs/components/gamma/SplitViewHost.js.map +1 -0
- package/lib/commonjs/components/gamma/SplitViewScreen.js +22 -0
- package/lib/commonjs/components/gamma/SplitViewScreen.js.map +1 -0
- package/lib/commonjs/components/gamma/StackScreen.js +51 -0
- package/lib/commonjs/components/gamma/StackScreen.js.map +1 -0
- package/lib/commonjs/fabric/BottomTabsNativeComponent.js +19 -0
- package/lib/commonjs/fabric/BottomTabsNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/BottomTabsScreenNativeComponent.js +14 -0
- package/lib/commonjs/fabric/BottomTabsScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/ScreenStackHostNativeComponent.js +11 -0
- package/lib/commonjs/fabric/gamma/ScreenStackHostNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/SplitViewHostNativeComponent.js +11 -0
- package/lib/commonjs/fabric/gamma/SplitViewHostNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/SplitViewScreenNativeComponent.js +13 -0
- package/lib/commonjs/fabric/gamma/SplitViewScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/gamma/StackScreenNativeComponent.js +12 -0
- package/lib/commonjs/fabric/gamma/StackScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/flags.js +70 -0
- package/lib/commonjs/flags.js.map +1 -0
- package/lib/commonjs/index.js +66 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils.js +0 -28
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/components/BottomTabs.js +48 -0
- package/lib/module/components/BottomTabs.js.map +1 -0
- package/lib/module/components/BottomTabsScreen.js +144 -0
- package/lib/module/components/BottomTabsScreen.js.map +1 -0
- package/lib/module/components/gamma/ScreenStackHost.js +20 -0
- package/lib/module/components/gamma/ScreenStackHost.js.map +1 -0
- package/lib/module/components/gamma/SplitViewHost.js +50 -0
- package/lib/module/components/gamma/SplitViewHost.js.map +1 -0
- package/lib/module/components/gamma/SplitViewScreen.js +15 -0
- package/lib/module/components/gamma/SplitViewScreen.js.map +1 -0
- package/lib/module/components/gamma/StackScreen.js +44 -0
- package/lib/module/components/gamma/StackScreen.js.map +1 -0
- package/lib/module/fabric/BottomTabsNativeComponent.js +15 -0
- package/lib/module/fabric/BottomTabsNativeComponent.js.map +1 -0
- package/lib/module/fabric/BottomTabsScreenNativeComponent.js +12 -0
- package/lib/module/fabric/BottomTabsScreenNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/ScreenStackHostNativeComponent.js +5 -0
- package/lib/module/fabric/gamma/ScreenStackHostNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/SplitViewHostNativeComponent.js +5 -0
- package/lib/module/fabric/gamma/SplitViewHostNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/SplitViewScreenNativeComponent.js +7 -0
- package/lib/module/fabric/gamma/SplitViewScreenNativeComponent.js.map +1 -0
- package/lib/module/fabric/gamma/StackScreenNativeComponent.js +8 -0
- package/lib/module/fabric/gamma/StackScreenNativeComponent.js.map +1 -0
- package/lib/module/flags.js +64 -0
- package/lib/module/flags.js.map +1 -0
- package/lib/module/index.js +16 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils.js +0 -27
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/components/BottomTabs.d.ts +30 -0
- package/lib/typescript/components/BottomTabs.d.ts.map +1 -0
- package/lib/typescript/components/BottomTabsScreen.d.ts +56 -0
- package/lib/typescript/components/BottomTabsScreen.d.ts.map +1 -0
- package/lib/typescript/components/gamma/ScreenStackHost.d.ts +13 -0
- package/lib/typescript/components/gamma/ScreenStackHost.d.ts.map +1 -0
- package/lib/typescript/components/gamma/SplitViewHost.d.ts +13 -0
- package/lib/typescript/components/gamma/SplitViewHost.d.ts.map +1 -0
- package/lib/typescript/components/gamma/SplitViewScreen.d.ts +13 -0
- package/lib/typescript/components/gamma/SplitViewScreen.d.ts.map +1 -0
- package/lib/typescript/components/gamma/StackScreen.d.ts +21 -0
- package/lib/typescript/components/gamma/StackScreen.d.ts.map +1 -0
- package/lib/typescript/fabric/BottomTabsNativeComponent.d.ts +31 -0
- package/lib/typescript/fabric/BottomTabsNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/BottomTabsScreenNativeComponent.d.ts +51 -0
- package/lib/typescript/fabric/BottomTabsScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/ScreenStackHostNativeComponent.d.ts +7 -0
- package/lib/typescript/fabric/gamma/ScreenStackHostNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts +16 -0
- package/lib/typescript/fabric/gamma/SplitViewHostNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts +7 -0
- package/lib/typescript/fabric/gamma/SplitViewScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/gamma/StackScreenNativeComponent.d.ts +15 -0
- package/lib/typescript/fabric/gamma/StackScreenNativeComponent.d.ts.map +1 -0
- package/lib/typescript/flags.d.ts +45 -0
- package/lib/typescript/flags.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +14 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +0 -26
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +34 -6
- package/react-native.config.js +2 -1
- package/src/components/BottomTabs.tsx +115 -0
- package/src/components/BottomTabsScreen.tsx +291 -0
- package/src/components/gamma/ScreenStackHost.tsx +32 -0
- package/src/components/gamma/SplitViewHost.tsx +84 -0
- package/src/components/gamma/SplitViewScreen.tsx +26 -0
- package/src/components/gamma/StackScreen.tsx +64 -0
- package/src/fabric/BottomTabsNativeComponent.ts +82 -0
- package/src/fabric/BottomTabsScreenNativeComponent.ts +107 -0
- package/src/fabric/gamma/ScreenStackHostNativeComponent.ts +8 -0
- package/src/fabric/gamma/SplitViewHostNativeComponent.ts +39 -0
- package/src/fabric/gamma/SplitViewScreenNativeComponent.ts +10 -0
- package/src/fabric/gamma/StackScreenNativeComponent.ts +25 -0
- package/src/flags.ts +72 -0
- package/src/index.tsx +18 -1
- package/src/utils.ts +0 -28
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
package com.swmansion.rnscreens.gamma.tabs
|
|
2
|
+
|
|
3
|
+
import android.view.View
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap
|
|
5
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
6
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
7
|
+
import com.facebook.react.uimanager.ViewGroupManager
|
|
8
|
+
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
9
|
+
import com.facebook.react.uimanager.annotations.ReactProp
|
|
10
|
+
import com.facebook.react.viewmanagers.RNSBottomTabsManagerDelegate
|
|
11
|
+
import com.facebook.react.viewmanagers.RNSBottomTabsManagerInterface
|
|
12
|
+
import com.swmansion.rnscreens.gamma.helpers.makeEventRegistrationInfo
|
|
13
|
+
import com.swmansion.rnscreens.gamma.tabs.event.TabsHostNativeFocusChangeEvent
|
|
14
|
+
|
|
15
|
+
@ReactModule(name = TabsHostViewManager.REACT_CLASS)
|
|
16
|
+
class TabsHostViewManager :
|
|
17
|
+
ViewGroupManager<TabsHost>(),
|
|
18
|
+
RNSBottomTabsManagerInterface<TabsHost> {
|
|
19
|
+
private val delegate: ViewManagerDelegate<TabsHost> = RNSBottomTabsManagerDelegate<TabsHost, TabsHostViewManager>(this)
|
|
20
|
+
|
|
21
|
+
override fun getName() = REACT_CLASS
|
|
22
|
+
|
|
23
|
+
override fun createViewInstance(reactContext: ThemedReactContext) = TabsHost(reactContext)
|
|
24
|
+
|
|
25
|
+
protected override fun getDelegate(): ViewManagerDelegate<TabsHost> = delegate
|
|
26
|
+
|
|
27
|
+
override fun addView(
|
|
28
|
+
parent: TabsHost,
|
|
29
|
+
child: View,
|
|
30
|
+
index: Int,
|
|
31
|
+
) {
|
|
32
|
+
require(child is TabScreen) { "[RNScreens] Attempt to attach child that is not of type ${TabScreen::javaClass.name}" }
|
|
33
|
+
parent.mountReactSubviewAt(child, index)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
override fun removeView(
|
|
37
|
+
parent: TabsHost,
|
|
38
|
+
child: View,
|
|
39
|
+
) {
|
|
40
|
+
require(child is TabScreen) { "[RNScreens] Attempt to detach child that is not of type ${TabScreen::javaClass.name}" }
|
|
41
|
+
parent.unmountReactSubview(child)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
override fun removeViewAt(
|
|
45
|
+
parent: TabsHost,
|
|
46
|
+
index: Int,
|
|
47
|
+
) {
|
|
48
|
+
parent.unmountReactSubviewAt(index)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
override fun removeAllViews(parent: TabsHost) {
|
|
52
|
+
parent.unmountAllReactSubviews()
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> =
|
|
56
|
+
mutableMapOf(
|
|
57
|
+
makeEventRegistrationInfo(TabsHostNativeFocusChangeEvent),
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
override fun addEventEmitters(
|
|
61
|
+
reactContext: ThemedReactContext,
|
|
62
|
+
view: TabsHost,
|
|
63
|
+
) {
|
|
64
|
+
super.addEventEmitters(reactContext, view)
|
|
65
|
+
view.onViewManagerAddEventEmitters()
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// These should be ignored or another component, dedicated for Android should be used
|
|
69
|
+
|
|
70
|
+
@ReactProp(name = "tabBarBackgroundColor", customType = "Color")
|
|
71
|
+
override fun setTabBarBackgroundColor(
|
|
72
|
+
view: TabsHost,
|
|
73
|
+
value: Int?,
|
|
74
|
+
) {
|
|
75
|
+
view.tabBarBackgroundColor = value
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
override fun setTabBarBlurEffect(
|
|
79
|
+
view: TabsHost?,
|
|
80
|
+
value: String?,
|
|
81
|
+
) = Unit
|
|
82
|
+
|
|
83
|
+
override fun setTabBarTintColor(
|
|
84
|
+
view: TabsHost,
|
|
85
|
+
value: Int?,
|
|
86
|
+
) = Unit
|
|
87
|
+
|
|
88
|
+
@ReactProp(name = "tabBarItemTitleFontSize")
|
|
89
|
+
override fun setTabBarItemTitleFontSize(
|
|
90
|
+
view: TabsHost?,
|
|
91
|
+
value: Float,
|
|
92
|
+
) {
|
|
93
|
+
view?.tabBarItemTitleFontSize = value
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
override fun setControlNavigationStateInJS(
|
|
97
|
+
view: TabsHost?,
|
|
98
|
+
value: Boolean,
|
|
99
|
+
) = Unit
|
|
100
|
+
|
|
101
|
+
override fun setTabBarItemTitleFontFamily(
|
|
102
|
+
view: TabsHost,
|
|
103
|
+
value: String?,
|
|
104
|
+
) {
|
|
105
|
+
view.tabBarItemTitleFontFamily = value
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
override fun setTabBarItemTitleFontWeight(
|
|
109
|
+
view: TabsHost,
|
|
110
|
+
value: String?,
|
|
111
|
+
) {
|
|
112
|
+
view.tabBarItemTitleFontWeight = value
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
override fun setTabBarItemTitleFontStyle(
|
|
116
|
+
view: TabsHost,
|
|
117
|
+
value: String?,
|
|
118
|
+
) {
|
|
119
|
+
view.tabBarItemTitleFontStyle = value
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@ReactProp(name = "tabBarItemTitleFontColor", customType = "Color")
|
|
123
|
+
override fun setTabBarItemTitleFontColor(
|
|
124
|
+
view: TabsHost,
|
|
125
|
+
value: Int?,
|
|
126
|
+
) {
|
|
127
|
+
view.tabBarItemTitleFontColor = value
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
override fun setTabBarItemBadgeBackgroundColor(
|
|
131
|
+
view: TabsHost,
|
|
132
|
+
value: Int?,
|
|
133
|
+
) = Unit
|
|
134
|
+
|
|
135
|
+
override fun setTabBarItemTitlePositionAdjustment(
|
|
136
|
+
view: TabsHost?,
|
|
137
|
+
value: ReadableMap?,
|
|
138
|
+
) = Unit
|
|
139
|
+
|
|
140
|
+
@ReactProp(name = "tabBarItemIconColor", customType = "Color")
|
|
141
|
+
override fun setTabBarItemIconColor(
|
|
142
|
+
view: TabsHost,
|
|
143
|
+
value: Int?,
|
|
144
|
+
) {
|
|
145
|
+
view.tabBarItemIconColor = value
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Android additional
|
|
149
|
+
|
|
150
|
+
@ReactProp(name = "tabBarItemTitleFontColorActive", customType = "Color")
|
|
151
|
+
override fun setTabBarItemTitleFontColorActive(
|
|
152
|
+
view: TabsHost,
|
|
153
|
+
value: Int?,
|
|
154
|
+
) {
|
|
155
|
+
view.tabBarItemTitleFontColorActive = value
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@ReactProp(name = "tabBarItemIconColorActive", customType = "Color")
|
|
159
|
+
override fun setTabBarItemIconColorActive(
|
|
160
|
+
view: TabsHost,
|
|
161
|
+
value: Int?,
|
|
162
|
+
) {
|
|
163
|
+
view.tabBarItemIconColorActive = value
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@ReactProp(name = "tabBarItemTitleFontSizeActive")
|
|
167
|
+
override fun setTabBarItemTitleFontSizeActive(
|
|
168
|
+
view: TabsHost?,
|
|
169
|
+
value: Float,
|
|
170
|
+
) {
|
|
171
|
+
view?.tabBarItemTitleFontSizeActive = value
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
companion object {
|
|
175
|
+
const val REACT_CLASS = "RNSBottomTabs"
|
|
176
|
+
}
|
|
177
|
+
}
|
package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenDidAppearEvent.kt
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package com.swmansion.rnscreens.gamma.tabs.event
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
import com.swmansion.rnscreens.gamma.common.NamingAwareEventType
|
|
7
|
+
|
|
8
|
+
class TabScreenDidAppearEvent(
|
|
9
|
+
surfaceId: Int,
|
|
10
|
+
viewId: Int,
|
|
11
|
+
) : Event<TabScreenDidAppearEvent>(surfaceId, viewId),
|
|
12
|
+
NamingAwareEventType {
|
|
13
|
+
override fun getEventName() = EVENT_NAME
|
|
14
|
+
|
|
15
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
16
|
+
|
|
17
|
+
// All events for a given view can be coalesced.
|
|
18
|
+
override fun getCoalescingKey(): Short = 0
|
|
19
|
+
|
|
20
|
+
override fun getEventData(): WritableMap? = Arguments.createMap()
|
|
21
|
+
|
|
22
|
+
companion object : NamingAwareEventType {
|
|
23
|
+
const val EVENT_NAME = "topDidAppear"
|
|
24
|
+
const val EVENT_REGISTRATION_NAME = "onDidAppear"
|
|
25
|
+
|
|
26
|
+
override fun getEventName() = EVENT_NAME
|
|
27
|
+
|
|
28
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
29
|
+
}
|
|
30
|
+
}
|
package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenDidDisappearEvent.kt
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package com.swmansion.rnscreens.gamma.tabs.event
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
import com.swmansion.rnscreens.gamma.common.NamingAwareEventType
|
|
7
|
+
|
|
8
|
+
class TabScreenDidDisappearEvent(
|
|
9
|
+
surfaceId: Int,
|
|
10
|
+
viewId: Int,
|
|
11
|
+
) : Event<TabScreenDidDisappearEvent>(surfaceId, viewId),
|
|
12
|
+
NamingAwareEventType {
|
|
13
|
+
override fun getEventName() = EVENT_NAME
|
|
14
|
+
|
|
15
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
16
|
+
|
|
17
|
+
// All events for a given view can be coalesced.
|
|
18
|
+
override fun getCoalescingKey(): Short = 0
|
|
19
|
+
|
|
20
|
+
override fun getEventData(): WritableMap? = Arguments.createMap()
|
|
21
|
+
|
|
22
|
+
companion object : NamingAwareEventType {
|
|
23
|
+
const val EVENT_NAME = "topDidDisappear"
|
|
24
|
+
const val EVENT_REGISTRATION_NAME = "onDidDisappear"
|
|
25
|
+
|
|
26
|
+
override fun getEventName() = EVENT_NAME
|
|
27
|
+
|
|
28
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
29
|
+
}
|
|
30
|
+
}
|
package/android/src/main/java/com/swmansion/rnscreens/gamma/tabs/event/TabScreenWillAppearEvent.kt
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package com.swmansion.rnscreens.gamma.tabs.event
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
import com.swmansion.rnscreens.gamma.common.NamingAwareEventType
|
|
7
|
+
|
|
8
|
+
class TabScreenWillAppearEvent(
|
|
9
|
+
surfaceId: Int,
|
|
10
|
+
viewId: Int,
|
|
11
|
+
) : Event<TabScreenWillAppearEvent>(surfaceId, viewId),
|
|
12
|
+
NamingAwareEventType {
|
|
13
|
+
override fun getEventName() = EVENT_NAME
|
|
14
|
+
|
|
15
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
16
|
+
|
|
17
|
+
// All events for a given view can be coalesced.
|
|
18
|
+
override fun getCoalescingKey(): Short = 0
|
|
19
|
+
|
|
20
|
+
override fun getEventData(): WritableMap? = Arguments.createMap()
|
|
21
|
+
|
|
22
|
+
companion object : NamingAwareEventType {
|
|
23
|
+
const val EVENT_NAME = "topWillAppear"
|
|
24
|
+
const val EVENT_REGISTRATION_NAME = "onWillAppear"
|
|
25
|
+
|
|
26
|
+
override fun getEventName() = EVENT_NAME
|
|
27
|
+
|
|
28
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package com.swmansion.rnscreens.gamma.tabs.event
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
import com.swmansion.rnscreens.gamma.common.NamingAwareEventType
|
|
7
|
+
|
|
8
|
+
class TabScreenWillDisappearEvent(
|
|
9
|
+
surfaceId: Int,
|
|
10
|
+
viewId: Int,
|
|
11
|
+
) : Event<TabScreenWillDisappearEvent>(surfaceId, viewId),
|
|
12
|
+
NamingAwareEventType {
|
|
13
|
+
override fun getEventName() = EVENT_NAME
|
|
14
|
+
|
|
15
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
16
|
+
|
|
17
|
+
// All events for a given view can be coalesced.
|
|
18
|
+
override fun getCoalescingKey(): Short = 0
|
|
19
|
+
|
|
20
|
+
override fun getEventData(): WritableMap? = Arguments.createMap()
|
|
21
|
+
|
|
22
|
+
companion object : NamingAwareEventType {
|
|
23
|
+
const val EVENT_NAME = "topWillDisappear"
|
|
24
|
+
const val EVENT_REGISTRATION_NAME = "onWillDisappear"
|
|
25
|
+
|
|
26
|
+
override fun getEventName() = EVENT_NAME
|
|
27
|
+
|
|
28
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
package com.swmansion.rnscreens.gamma.tabs.event
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
import com.swmansion.rnscreens.gamma.common.NamingAwareEventType
|
|
7
|
+
|
|
8
|
+
class TabsHostNativeFocusChangeEvent(
|
|
9
|
+
surfaceId: Int,
|
|
10
|
+
viewId: Int,
|
|
11
|
+
val tabKey: String,
|
|
12
|
+
) : Event<TabScreenDidAppearEvent>(surfaceId, viewId),
|
|
13
|
+
NamingAwareEventType {
|
|
14
|
+
override fun getEventName() = EVENT_NAME
|
|
15
|
+
|
|
16
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
17
|
+
|
|
18
|
+
// All events for a given view can be coalesced.
|
|
19
|
+
override fun getCoalescingKey(): Short = 0
|
|
20
|
+
|
|
21
|
+
override fun getEventData(): WritableMap? =
|
|
22
|
+
Arguments.createMap().apply {
|
|
23
|
+
putString(EVENT_KEY_TAB_KEY, tabKey)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
companion object : NamingAwareEventType {
|
|
27
|
+
const val EVENT_NAME = "topNativeFocusChange"
|
|
28
|
+
const val EVENT_REGISTRATION_NAME = "onNativeFocusChange"
|
|
29
|
+
|
|
30
|
+
private const val EVENT_KEY_TAB_KEY = "tabKey"
|
|
31
|
+
|
|
32
|
+
override fun getEventName() = EVENT_NAME
|
|
33
|
+
|
|
34
|
+
override fun getEventRegistrationName() = EVENT_REGISTRATION_NAME
|
|
35
|
+
}
|
|
36
|
+
}
|
package/android/src/main/java/com/swmansion/rnscreens/transition/ExternalBoundaryValuesEvaluator.kt
CHANGED
|
@@ -9,7 +9,10 @@ typealias BoundaryValueProviderFn = (Number?) -> Float?
|
|
|
9
9
|
* not use boundary values used during value animator construction. This allows to defer computation
|
|
10
10
|
* of animator boundary values to the moment when animation starts.
|
|
11
11
|
*/
|
|
12
|
-
class ExternalBoundaryValuesEvaluator(
|
|
12
|
+
class ExternalBoundaryValuesEvaluator(
|
|
13
|
+
val startValueProvider: BoundaryValueProviderFn,
|
|
14
|
+
val endValueProvider: BoundaryValueProviderFn,
|
|
15
|
+
) : FloatEvaluator() {
|
|
13
16
|
var startValueCache: Number? = null
|
|
14
17
|
var endValueCache: Number? = null
|
|
15
18
|
|
|
@@ -27,7 +30,11 @@ class ExternalBoundaryValuesEvaluator(val startValueProvider: BoundaryValueProvi
|
|
|
27
30
|
return endValueCache
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
override fun evaluate(
|
|
33
|
+
override fun evaluate(
|
|
34
|
+
fraction: Float,
|
|
35
|
+
startValue: Number?,
|
|
36
|
+
endValue: Number?,
|
|
37
|
+
): Float? {
|
|
31
38
|
val realStartValue = getStartValue(startValue)
|
|
32
39
|
val realEndValue = getEndValue(endValue)
|
|
33
40
|
if (realStartValue == null || realEndValue == null) {
|
|
@@ -4,7 +4,10 @@ import androidx.fragment.app.FragmentTransaction
|
|
|
4
4
|
import com.swmansion.rnscreens.R
|
|
5
5
|
import com.swmansion.rnscreens.Screen.StackAnimation
|
|
6
6
|
|
|
7
|
-
internal fun FragmentTransaction.setTweenAnimations(
|
|
7
|
+
internal fun FragmentTransaction.setTweenAnimations(
|
|
8
|
+
stackAnimation: StackAnimation,
|
|
9
|
+
shouldUseOpenAnimation: Boolean,
|
|
10
|
+
) {
|
|
8
11
|
if (shouldUseOpenAnimation) {
|
|
9
12
|
when (stackAnimation) {
|
|
10
13
|
StackAnimation.DEFAULT ->
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include <react/renderer/components/rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
22
22
|
#include <react/renderer/components/rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h>
|
|
23
23
|
#include <react/renderer/components/rnscreens/RNSFullWindowOverlayComponentDescriptor.h>
|
|
24
|
+
#include <react/renderer/components/rnscreens/RNSBottomTabsComponentDescriptor.h>
|
|
24
25
|
|
|
25
26
|
namespace facebook {
|
|
26
27
|
namespace react {
|
package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerDelegate.java
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.ColorPropConverter;
|
|
15
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManager;
|
|
17
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
18
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
19
|
+
|
|
20
|
+
public class RNSBottomTabsManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSBottomTabsManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
21
|
+
public RNSBottomTabsManagerDelegate(U viewManager) {
|
|
22
|
+
super(viewManager);
|
|
23
|
+
}
|
|
24
|
+
@Override
|
|
25
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
26
|
+
switch (propName) {
|
|
27
|
+
case "tabBarBackgroundColor":
|
|
28
|
+
mViewManager.setTabBarBackgroundColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
29
|
+
break;
|
|
30
|
+
case "tabBarBlurEffect":
|
|
31
|
+
mViewManager.setTabBarBlurEffect(view, (String) value);
|
|
32
|
+
break;
|
|
33
|
+
case "tabBarTintColor":
|
|
34
|
+
mViewManager.setTabBarTintColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
35
|
+
break;
|
|
36
|
+
case "tabBarItemTitleFontFamily":
|
|
37
|
+
mViewManager.setTabBarItemTitleFontFamily(view, value == null ? null : (String) value);
|
|
38
|
+
break;
|
|
39
|
+
case "tabBarItemTitleFontSize":
|
|
40
|
+
mViewManager.setTabBarItemTitleFontSize(view, value == null ? 0f : ((Double) value).floatValue());
|
|
41
|
+
break;
|
|
42
|
+
case "tabBarItemTitleFontWeight":
|
|
43
|
+
mViewManager.setTabBarItemTitleFontWeight(view, value == null ? null : (String) value);
|
|
44
|
+
break;
|
|
45
|
+
case "tabBarItemTitleFontStyle":
|
|
46
|
+
mViewManager.setTabBarItemTitleFontStyle(view, value == null ? null : (String) value);
|
|
47
|
+
break;
|
|
48
|
+
case "tabBarItemTitleFontColor":
|
|
49
|
+
mViewManager.setTabBarItemTitleFontColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
50
|
+
break;
|
|
51
|
+
case "tabBarItemTitlePositionAdjustment":
|
|
52
|
+
mViewManager.setTabBarItemTitlePositionAdjustment(view, (ReadableMap) value);
|
|
53
|
+
break;
|
|
54
|
+
case "tabBarItemIconColor":
|
|
55
|
+
mViewManager.setTabBarItemIconColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
56
|
+
break;
|
|
57
|
+
case "tabBarItemBadgeBackgroundColor":
|
|
58
|
+
mViewManager.setTabBarItemBadgeBackgroundColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
59
|
+
break;
|
|
60
|
+
case "tabBarItemTitleFontColorActive":
|
|
61
|
+
mViewManager.setTabBarItemTitleFontColorActive(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
62
|
+
break;
|
|
63
|
+
case "tabBarItemIconColorActive":
|
|
64
|
+
mViewManager.setTabBarItemIconColorActive(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
65
|
+
break;
|
|
66
|
+
case "tabBarItemTitleFontSizeActive":
|
|
67
|
+
mViewManager.setTabBarItemTitleFontSizeActive(view, value == null ? 0f : ((Double) value).floatValue());
|
|
68
|
+
break;
|
|
69
|
+
case "controlNavigationStateInJS":
|
|
70
|
+
mViewManager.setControlNavigationStateInJS(view, value == null ? false : (boolean) value);
|
|
71
|
+
break;
|
|
72
|
+
default:
|
|
73
|
+
super.setProperty(view, propName, value);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
package/android/src/paper/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerInterface.java
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
public interface RNSBottomTabsManagerInterface<T extends View> {
|
|
18
|
+
void setTabBarBackgroundColor(T view, @Nullable Integer value);
|
|
19
|
+
void setTabBarBlurEffect(T view, @Nullable String value);
|
|
20
|
+
void setTabBarTintColor(T view, @Nullable Integer value);
|
|
21
|
+
void setTabBarItemTitleFontFamily(T view, @Nullable String value);
|
|
22
|
+
void setTabBarItemTitleFontSize(T view, float value);
|
|
23
|
+
void setTabBarItemTitleFontWeight(T view, @Nullable String value);
|
|
24
|
+
void setTabBarItemTitleFontStyle(T view, @Nullable String value);
|
|
25
|
+
void setTabBarItemTitleFontColor(T view, @Nullable Integer value);
|
|
26
|
+
void setTabBarItemTitlePositionAdjustment(T view, @Nullable ReadableMap value);
|
|
27
|
+
void setTabBarItemIconColor(T view, @Nullable Integer value);
|
|
28
|
+
void setTabBarItemBadgeBackgroundColor(T view, @Nullable Integer value);
|
|
29
|
+
void setTabBarItemTitleFontColorActive(T view, @Nullable Integer value);
|
|
30
|
+
void setTabBarItemIconColorActive(T view, @Nullable Integer value);
|
|
31
|
+
void setTabBarItemTitleFontSizeActive(T view, float value);
|
|
32
|
+
void setControlNavigationStateInJS(T view, boolean value);
|
|
33
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.ColorPropConverter;
|
|
15
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManager;
|
|
17
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
18
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
19
|
+
|
|
20
|
+
public class RNSBottomTabsScreenManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & RNSBottomTabsScreenManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
21
|
+
public RNSBottomTabsScreenManagerDelegate(U viewManager) {
|
|
22
|
+
super(viewManager);
|
|
23
|
+
}
|
|
24
|
+
@Override
|
|
25
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
26
|
+
switch (propName) {
|
|
27
|
+
case "isFocused":
|
|
28
|
+
mViewManager.setIsFocused(view, value == null ? false : (boolean) value);
|
|
29
|
+
break;
|
|
30
|
+
case "tabKey":
|
|
31
|
+
mViewManager.setTabKey(view, value == null ? null : (String) value);
|
|
32
|
+
break;
|
|
33
|
+
case "tabBarBackgroundColor":
|
|
34
|
+
mViewManager.setTabBarBackgroundColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
35
|
+
break;
|
|
36
|
+
case "tabBarBlurEffect":
|
|
37
|
+
mViewManager.setTabBarBlurEffect(view, (String) value);
|
|
38
|
+
break;
|
|
39
|
+
case "tabBarItemTitleFontFamily":
|
|
40
|
+
mViewManager.setTabBarItemTitleFontFamily(view, value == null ? null : (String) value);
|
|
41
|
+
break;
|
|
42
|
+
case "tabBarItemTitleFontSize":
|
|
43
|
+
mViewManager.setTabBarItemTitleFontSize(view, value == null ? 0f : ((Double) value).floatValue());
|
|
44
|
+
break;
|
|
45
|
+
case "tabBarItemTitleFontWeight":
|
|
46
|
+
mViewManager.setTabBarItemTitleFontWeight(view, value == null ? null : (String) value);
|
|
47
|
+
break;
|
|
48
|
+
case "tabBarItemTitleFontStyle":
|
|
49
|
+
mViewManager.setTabBarItemTitleFontStyle(view, value == null ? null : (String) value);
|
|
50
|
+
break;
|
|
51
|
+
case "tabBarItemTitleFontColor":
|
|
52
|
+
mViewManager.setTabBarItemTitleFontColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
53
|
+
break;
|
|
54
|
+
case "tabBarItemTitlePositionAdjustment":
|
|
55
|
+
mViewManager.setTabBarItemTitlePositionAdjustment(view, (ReadableMap) value);
|
|
56
|
+
break;
|
|
57
|
+
case "tabBarItemIconColor":
|
|
58
|
+
mViewManager.setTabBarItemIconColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
59
|
+
break;
|
|
60
|
+
case "tabBarItemBadgeBackgroundColor":
|
|
61
|
+
mViewManager.setTabBarItemBadgeBackgroundColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
62
|
+
break;
|
|
63
|
+
case "title":
|
|
64
|
+
mViewManager.setTitle(view, value == null ? null : (String) value);
|
|
65
|
+
break;
|
|
66
|
+
case "iconResourceName":
|
|
67
|
+
mViewManager.setIconResourceName(view, value == null ? null : (String) value);
|
|
68
|
+
break;
|
|
69
|
+
case "iconType":
|
|
70
|
+
mViewManager.setIconType(view, (String) value);
|
|
71
|
+
break;
|
|
72
|
+
case "iconImageSource":
|
|
73
|
+
mViewManager.setIconImageSource(view, (ReadableMap) value);
|
|
74
|
+
break;
|
|
75
|
+
case "iconSfSymbolName":
|
|
76
|
+
mViewManager.setIconSfSymbolName(view, value == null ? null : (String) value);
|
|
77
|
+
break;
|
|
78
|
+
case "selectedIconImageSource":
|
|
79
|
+
mViewManager.setSelectedIconImageSource(view, (ReadableMap) value);
|
|
80
|
+
break;
|
|
81
|
+
case "selectedIconSfSymbolName":
|
|
82
|
+
mViewManager.setSelectedIconSfSymbolName(view, value == null ? null : (String) value);
|
|
83
|
+
break;
|
|
84
|
+
case "badgeValue":
|
|
85
|
+
mViewManager.setBadgeValue(view, value == null ? null : (String) value);
|
|
86
|
+
break;
|
|
87
|
+
case "specialEffects":
|
|
88
|
+
mViewManager.setSpecialEffects(view, (ReadableMap) value);
|
|
89
|
+
break;
|
|
90
|
+
case "overrideScrollViewContentInsetAdjustmentBehavior":
|
|
91
|
+
mViewManager.setOverrideScrollViewContentInsetAdjustmentBehavior(view, value == null ? true : (boolean) value);
|
|
92
|
+
break;
|
|
93
|
+
default:
|
|
94
|
+
super.setProperty(view, propName, value);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
public interface RNSBottomTabsScreenManagerInterface<T extends View> {
|
|
18
|
+
void setIsFocused(T view, boolean value);
|
|
19
|
+
void setTabKey(T view, @Nullable String value);
|
|
20
|
+
void setTabBarBackgroundColor(T view, @Nullable Integer value);
|
|
21
|
+
void setTabBarBlurEffect(T view, @Nullable String value);
|
|
22
|
+
void setTabBarItemTitleFontFamily(T view, @Nullable String value);
|
|
23
|
+
void setTabBarItemTitleFontSize(T view, float value);
|
|
24
|
+
void setTabBarItemTitleFontWeight(T view, @Nullable String value);
|
|
25
|
+
void setTabBarItemTitleFontStyle(T view, @Nullable String value);
|
|
26
|
+
void setTabBarItemTitleFontColor(T view, @Nullable Integer value);
|
|
27
|
+
void setTabBarItemTitlePositionAdjustment(T view, @Nullable ReadableMap value);
|
|
28
|
+
void setTabBarItemIconColor(T view, @Nullable Integer value);
|
|
29
|
+
void setTabBarItemBadgeBackgroundColor(T view, @Nullable Integer value);
|
|
30
|
+
void setTitle(T view, @Nullable String value);
|
|
31
|
+
void setIconResourceName(T view, @Nullable String value);
|
|
32
|
+
void setIconType(T view, @Nullable String value);
|
|
33
|
+
void setIconImageSource(T view, @Nullable ReadableMap value);
|
|
34
|
+
void setIconSfSymbolName(T view, @Nullable String value);
|
|
35
|
+
void setSelectedIconImageSource(T view, @Nullable ReadableMap value);
|
|
36
|
+
void setSelectedIconSfSymbolName(T view, @Nullable String value);
|
|
37
|
+
void setBadgeValue(T view, @Nullable String value);
|
|
38
|
+
void setSpecialEffects(T view, @Nullable ReadableMap value);
|
|
39
|
+
void setOverrideScrollViewContentInsetAdjustmentBehavior(T view, boolean value);
|
|
40
|
+
}
|
package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledHeaderConfigViewGroup.kt
CHANGED
|
@@ -24,8 +24,8 @@ abstract class FabricEnabledHeaderConfigViewGroup(
|
|
|
24
24
|
paddingStart: Int,
|
|
25
25
|
paddingEnd: Int,
|
|
26
26
|
) {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
// Implementation of this method differs between Fabric & Paper!
|
|
28
|
+
updateState(width, height, paddingStart, paddingEnd)
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
// Implementation of this method differs between Fabric & Paper!
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
package com.swmansion.rnscreens.utils
|
|
2
2
|
|
|
3
|
-
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
4
3
|
import com.facebook.react.uimanager.BackgroundStyleApplicator
|
|
5
|
-
import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable
|
|
6
4
|
import com.facebook.react.views.view.ReactViewGroup
|
|
7
5
|
|
|
8
6
|
internal fun ReactViewGroup.resolveBackgroundColor(): Int? = BackgroundStyleApplicator.getBackgroundColor(this)
|
|
9
|
-
|