react-native-screens 3.31.0 → 3.32.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.
Files changed (119) hide show
  1. package/README.md +6 -0
  2. package/RNScreens.podspec +1 -0
  3. package/android/build.gradle +83 -4
  4. package/android/src/main/cpp/jni-adapter.cpp +86 -93
  5. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +2 -0
  6. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +2 -0
  7. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +17 -3
  8. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +14 -1
  9. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +3 -2
  10. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +6 -2
  11. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +4 -0
  12. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +5 -0
  13. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +19 -2
  14. package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +1 -1
  15. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +82 -27
  16. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +0 -1
  17. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +1 -1
  18. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +1 -1
  19. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +25 -0
  20. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +16 -0
  21. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +3 -0
  22. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +1 -0
  23. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +3 -0
  24. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +1 -0
  25. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +99 -0
  26. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +37 -0
  27. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenComponentDescriptor.h +8 -9
  28. package/common/cpp/react/renderer/components/rnscreens/RNSModalScreenShadowNode.h +8 -7
  29. package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +7 -9
  30. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +6 -6
  31. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +2 -1
  32. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +8 -10
  33. package/cpp/RNScreensTurboModule.cpp +31 -23
  34. package/cpp/RNScreensTurboModule.h +17 -20
  35. package/ios/RNSConvert.h +6 -0
  36. package/ios/RNSConvert.mm +24 -0
  37. package/ios/RNSModule.mm +1 -2
  38. package/ios/RNSScreen.mm +8 -0
  39. package/ios/RNSScreenContainer.mm +1 -1
  40. package/ios/RNSScreenStack.mm +71 -13
  41. package/ios/RNSScreenStackHeaderConfig.h +2 -0
  42. package/ios/RNSScreenStackHeaderConfig.mm +44 -17
  43. package/ios/RNSSearchBar.h +5 -5
  44. package/ios/RNSSearchBar.mm +11 -11
  45. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.h +15 -0
  46. package/ios/utils/RCTSurfaceTouchHandler+RNSUtility.mm +14 -0
  47. package/ios/utils/RCTTouchHandler+RNSUtility.h +15 -0
  48. package/ios/utils/RCTTouchHandler+RNSUtility.mm +15 -0
  49. package/lib/commonjs/components/Screen.js +119 -127
  50. package/lib/commonjs/components/Screen.js.map +1 -1
  51. package/lib/commonjs/components/SearchBar.js +39 -36
  52. package/lib/commonjs/components/SearchBar.js.map +1 -1
  53. package/lib/commonjs/fabric/ModalScreenNativeComponent.js.map +1 -1
  54. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
  55. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  56. package/lib/commonjs/native-stack/views/HeaderConfig.js +2 -0
  57. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
  58. package/lib/commonjs/native-stack/views/NativeStackView.js +2 -0
  59. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
  60. package/lib/module/components/Screen.js +118 -126
  61. package/lib/module/components/Screen.js.map +1 -1
  62. package/lib/module/components/SearchBar.js +39 -36
  63. package/lib/module/components/SearchBar.js.map +1 -1
  64. package/lib/module/fabric/ModalScreenNativeComponent.js.map +1 -1
  65. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
  66. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
  67. package/lib/module/native-stack/views/HeaderConfig.js +2 -0
  68. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
  69. package/lib/module/native-stack/views/NativeStackView.js +2 -0
  70. package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
  71. package/lib/typescript/TransitionProgressContext.d.ts +1 -1
  72. package/lib/typescript/TransitionProgressContext.d.ts.map +1 -1
  73. package/lib/typescript/components/Screen.d.ts +3 -14
  74. package/lib/typescript/components/Screen.d.ts.map +1 -1
  75. package/lib/typescript/components/SearchBar.d.ts +14 -21
  76. package/lib/typescript/components/SearchBar.d.ts.map +1 -1
  77. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts +11 -10
  78. package/lib/typescript/fabric/ModalScreenNativeComponent.d.ts.map +1 -1
  79. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +11 -10
  80. package/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +1 -1
  81. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +5 -3
  82. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
  83. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +1 -1
  84. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
  85. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +1 -1
  86. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts.map +1 -1
  87. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +9 -9
  88. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts.map +1 -1
  89. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts +1 -1
  90. package/lib/typescript/gesture-handler/RNScreensTurboModule.d.ts.map +1 -1
  91. package/lib/typescript/native-stack/types.d.ts +29 -14
  92. package/lib/typescript/native-stack/types.d.ts.map +1 -1
  93. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +1 -1
  94. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts.map +1 -1
  95. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -1
  96. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts.map +1 -1
  97. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +1 -1
  98. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts.map +1 -1
  99. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +2 -2
  100. package/lib/typescript/native-stack/views/HeaderConfig.d.ts.map +1 -1
  101. package/lib/typescript/native-stack/views/NativeStackView.d.ts +1 -1
  102. package/lib/typescript/native-stack/views/NativeStackView.d.ts.map +1 -1
  103. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +1 -1
  104. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts.map +1 -1
  105. package/lib/typescript/types.d.ts +29 -13
  106. package/lib/typescript/types.d.ts.map +1 -1
  107. package/lib/typescript/useTransitionProgress.d.ts +3 -3
  108. package/native-stack/README.md +7 -0
  109. package/package.json +13 -7
  110. package/src/components/Screen.tsx +27 -33
  111. package/src/components/SearchBar.tsx +77 -65
  112. package/src/fabric/ModalScreenNativeComponent.ts +1 -0
  113. package/src/fabric/ScreenNativeComponent.ts +1 -0
  114. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +3 -0
  115. package/src/fabric/SearchBarNativeComponent.ts +6 -6
  116. package/src/native-stack/types.tsx +15 -0
  117. package/src/native-stack/views/HeaderConfig.tsx +2 -0
  118. package/src/native-stack/views/NativeStackView.tsx +2 -0
  119. package/src/types.tsx +16 -0
@@ -1,12 +1,15 @@
1
1
  package com.swmansion.rnscreens
2
2
 
3
+ import android.util.Log
3
4
  import com.facebook.react.bridge.JSApplicationIllegalArgumentException
4
- import com.facebook.react.bridge.ReadableArray
5
5
  import com.facebook.react.common.MapBuilder
6
6
  import com.facebook.react.module.annotations.ReactModule
7
7
  import com.facebook.react.uimanager.ThemedReactContext
8
8
  import com.facebook.react.uimanager.ViewGroupManager
9
+ import com.facebook.react.uimanager.ViewManagerDelegate
9
10
  import com.facebook.react.uimanager.annotations.ReactProp
11
+ import com.facebook.react.viewmanagers.RNSSearchBarManagerDelegate
12
+ import com.facebook.react.viewmanagers.RNSSearchBarManagerInterface
10
13
  import com.swmansion.rnscreens.events.SearchBarBlurEvent
11
14
  import com.swmansion.rnscreens.events.SearchBarChangeTextEvent
12
15
  import com.swmansion.rnscreens.events.SearchBarCloseEvent
@@ -15,7 +18,17 @@ import com.swmansion.rnscreens.events.SearchBarOpenEvent
15
18
  import com.swmansion.rnscreens.events.SearchBarSearchButtonPressEvent
16
19
 
17
20
  @ReactModule(name = SearchBarManager.REACT_CLASS)
18
- class SearchBarManager : ViewGroupManager<SearchBarView>() {
21
+ class SearchBarManager : ViewGroupManager<SearchBarView>(), RNSSearchBarManagerInterface<SearchBarView> {
22
+ private val delegate: ViewManagerDelegate<SearchBarView>
23
+
24
+ init {
25
+ delegate = RNSSearchBarManagerDelegate<SearchBarView, SearchBarManager>(this)
26
+ }
27
+
28
+ protected override fun getDelegate(): ViewManagerDelegate<SearchBarView> {
29
+ return delegate
30
+ }
31
+
19
32
  override fun getName(): String {
20
33
  return REACT_CLASS
21
34
  }
@@ -30,7 +43,7 @@ class SearchBarManager : ViewGroupManager<SearchBarView>() {
30
43
  }
31
44
 
32
45
  @ReactProp(name = "autoCapitalize")
33
- fun setAutoCapitalize(view: SearchBarView, autoCapitalize: String?) {
46
+ override fun setAutoCapitalize(view: SearchBarView, autoCapitalize: String?) {
34
47
  view.autoCapitalize = when (autoCapitalize) {
35
48
  null, "none" -> SearchBarView.SearchBarAutoCapitalize.NONE
36
49
  "words" -> SearchBarView.SearchBarAutoCapitalize.WORDS
@@ -48,17 +61,17 @@ class SearchBarManager : ViewGroupManager<SearchBarView>() {
48
61
  }
49
62
 
50
63
  @ReactProp(name = "barTintColor", customType = "Color")
51
- fun setTintColor(view: SearchBarView, color: Int?) {
64
+ override fun setBarTintColor(view: SearchBarView, color: Int?) {
52
65
  view.tintColor = color
53
66
  }
54
67
 
55
68
  @ReactProp(name = "disableBackButtonOverride")
56
- fun setDisableBackButtonOverride(view: SearchBarView, disableBackButtonOverride: Boolean?) {
69
+ override fun setDisableBackButtonOverride(view: SearchBarView, disableBackButtonOverride: Boolean) {
57
70
  view.shouldOverrideBackButton = disableBackButtonOverride != true
58
71
  }
59
72
 
60
73
  @ReactProp(name = "inputType")
61
- fun setInputType(view: SearchBarView, inputType: String?) {
74
+ override fun setInputType(view: SearchBarView, inputType: String?) {
62
75
  view.inputType = when (inputType) {
63
76
  null, "text" -> SearchBarView.SearchBarInputTypes.TEXT
64
77
  "phone" -> SearchBarView.SearchBarInputTypes.PHONE
@@ -71,56 +84,42 @@ class SearchBarManager : ViewGroupManager<SearchBarView>() {
71
84
  }
72
85
 
73
86
  @ReactProp(name = "placeholder")
74
- fun setPlaceholder(view: SearchBarView, placeholder: String?) {
87
+ override fun setPlaceholder(view: SearchBarView, placeholder: String?) {
75
88
  if (placeholder != null) {
76
89
  view.placeholder = placeholder
77
90
  }
78
91
  }
79
92
 
80
93
  @ReactProp(name = "textColor", customType = "Color")
81
- fun setTextColor(view: SearchBarView, color: Int?) {
94
+ override fun setTextColor(view: SearchBarView, color: Int?) {
82
95
  view.textColor = color
83
96
  }
84
97
 
85
98
  @ReactProp(name = "headerIconColor", customType = "Color")
86
- fun setHeaderIconColor(view: SearchBarView, color: Int?) {
99
+ override fun setHeaderIconColor(view: SearchBarView, color: Int?) {
87
100
  view.headerIconColor = color
88
101
  }
89
102
 
90
103
  @ReactProp(name = "hintTextColor", customType = "Color")
91
- fun setHintTextColor(view: SearchBarView, color: Int?) {
104
+ override fun setHintTextColor(view: SearchBarView, color: Int?) {
92
105
  view.hintTextColor = color
93
106
  }
94
107
 
95
108
  @ReactProp(name = "shouldShowHintSearchIcon")
96
- fun setShouldShowHintSearchIcon(view: SearchBarView, shouldShowHintSearchIcon: Boolean?) {
109
+ override fun setShouldShowHintSearchIcon(view: SearchBarView, shouldShowHintSearchIcon: Boolean) {
97
110
  view.shouldShowHintSearchIcon = shouldShowHintSearchIcon ?: true
98
111
  }
99
112
 
100
- fun setPlacement(view: SearchBarView, placeholder: String?) = Unit
101
-
102
- override fun receiveCommand(root: SearchBarView, commandId: String?, args: ReadableArray?) {
103
- when (commandId) {
104
- "focus" -> root.handleFocusJsRequest()
105
- "blur" -> root.handleBlurJsRequest()
106
- "clearText" -> root.handleClearTextJsRequest()
107
- "toggleCancelButton" -> root.handleToggleCancelButtonJsRequest(false) // just a dummy argument
108
- "setText" -> root.handleSetTextJsRequest(args?.getString(0))
109
- "cancelSearch" -> root.handleCancelSearchJsRequest()
110
- else -> throw JSApplicationIllegalArgumentException("Unsupported native command received: $commandId")
111
- }
112
- }
113
-
114
113
  override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
115
114
  return MapBuilder.of(
116
115
  SearchBarBlurEvent.EVENT_NAME,
117
- MapBuilder.of("registrationName", "onBlur"),
116
+ MapBuilder.of("registrationName", "onSearchBlur"),
118
117
  SearchBarChangeTextEvent.EVENT_NAME,
119
118
  MapBuilder.of("registrationName", "onChangeText"),
120
119
  SearchBarCloseEvent.EVENT_NAME,
121
120
  MapBuilder.of("registrationName", "onClose"),
122
121
  SearchBarFocusEvent.EVENT_NAME,
123
- MapBuilder.of("registrationName", "onFocus"),
122
+ MapBuilder.of("registrationName", "onSearchFocus"),
124
123
  SearchBarOpenEvent.EVENT_NAME,
125
124
  MapBuilder.of("registrationName", "onOpen"),
126
125
  SearchBarSearchButtonPressEvent.EVENT_NAME,
@@ -131,4 +130,60 @@ class SearchBarManager : ViewGroupManager<SearchBarView>() {
131
130
  companion object {
132
131
  const val REACT_CLASS = "RNSSearchBar"
133
132
  }
133
+
134
+ private fun logNotAvailable(propName: String) {
135
+ Log.w("RN SCREENS", "$propName prop is not available on Android")
136
+ }
137
+
138
+ // NativeCommands
139
+
140
+ override fun blur(view: SearchBarView?) {
141
+ view?.handleBlurJsRequest()
142
+ }
143
+
144
+ override fun focus(view: SearchBarView?) {
145
+ view?.handleFocusJsRequest()
146
+ }
147
+
148
+ override fun clearText(view: SearchBarView?) {
149
+ view?.handleClearTextJsRequest()
150
+ }
151
+
152
+ override fun toggleCancelButton(view: SearchBarView?, flag: Boolean) {
153
+ view?.handleToggleCancelButtonJsRequest(flag)
154
+ }
155
+
156
+ override fun setText(view: SearchBarView?, text: String?) {
157
+ view?.handleSetTextJsRequest(text)
158
+ }
159
+
160
+ override fun cancelSearch(view: SearchBarView?) {
161
+ view?.handleFocusJsRequest()
162
+ }
163
+
164
+ // iOS only
165
+
166
+ override fun setPlacement(view: SearchBarView, placeholder: String?) {
167
+ logNotAvailable("setPlacement")
168
+ }
169
+
170
+ override fun setHideWhenScrolling(view: SearchBarView?, value: Boolean) {
171
+ logNotAvailable("hideWhenScrolling")
172
+ }
173
+
174
+ override fun setObscureBackground(view: SearchBarView?, value: Boolean) {
175
+ logNotAvailable("hideNavigationBar")
176
+ }
177
+
178
+ override fun setHideNavigationBar(view: SearchBarView?, value: Boolean) {
179
+ logNotAvailable("hideNavigationBar")
180
+ }
181
+
182
+ override fun setCancelButtonText(view: SearchBarView?, value: String?) {
183
+ logNotAvailable("cancelButtonText")
184
+ }
185
+
186
+ override fun setTintColor(view: SearchBarView?, value: Int?) {
187
+ logNotAvailable("tintColor")
188
+ }
134
189
  }
@@ -3,7 +3,6 @@ package com.swmansion.rnscreens.events
3
3
  import com.facebook.react.bridge.Arguments
4
4
  import com.facebook.react.bridge.WritableMap
5
5
  import com.facebook.react.uimanager.events.Event
6
- import com.facebook.react.uimanager.events.RCTEventEmitter
7
6
 
8
7
  class HeaderHeightChangeEvent(
9
8
  surfaceId: Int,
@@ -13,6 +13,6 @@ class SearchBarBlurEvent(surfaceId: Int, viewId: Int) : Event<SearchBarBlurEvent
13
13
  override fun getEventData(): WritableMap? = Arguments.createMap()
14
14
 
15
15
  companion object {
16
- const val EVENT_NAME = "topBlur"
16
+ const val EVENT_NAME = "topSearchBlur"
17
17
  }
18
18
  }
@@ -13,6 +13,6 @@ class SearchBarFocusEvent(surfaceId: Int, viewId: Int) : Event<SearchBarFocusEve
13
13
  override fun getEventData(): WritableMap? = Arguments.createMap()
14
14
 
15
15
  companion object {
16
- const val EVENT_NAME = "topFocus"
16
+ const val EVENT_NAME = "topSearchFocus"
17
17
  }
18
18
  }
@@ -0,0 +1,25 @@
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.uimanager.BaseViewManagerDelegate;
15
+ import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+
17
+ public class RNSScreenContainerManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenContainerManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public RNSScreenContainerManagerDelegate(U viewManager) {
19
+ super(viewManager);
20
+ }
21
+ @Override
22
+ public void setProperty(T view, String propName, @Nullable Object value) {
23
+ super.setProperty(view, propName, value);
24
+ }
25
+ }
@@ -0,0 +1,16 @@
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
+
14
+ public interface RNSScreenContainerManagerInterface<T extends View> {
15
+ // No props
16
+ }
@@ -98,6 +98,9 @@ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManagerI
98
98
  case "navigationBarColor":
99
99
  mViewManager.setNavigationBarColor(view, ColorPropConverter.getColor(value, view.getContext()));
100
100
  break;
101
+ case "navigationBarTranslucent":
102
+ mViewManager.setNavigationBarTranslucent(view, value == null ? false : (boolean) value);
103
+ break;
101
104
  case "navigationBarHidden":
102
105
  mViewManager.setNavigationBarHidden(view, value == null ? false : (boolean) value);
103
106
  break;
@@ -39,6 +39,7 @@ public interface RNSScreenManagerInterface<T extends View> {
39
39
  void setHideKeyboardOnSwipe(T view, boolean value);
40
40
  void setActivityState(T view, float value);
41
41
  void setNavigationBarColor(T view, @Nullable Integer value);
42
+ void setNavigationBarTranslucent(T view, boolean value);
42
43
  void setNavigationBarHidden(T view, boolean value);
43
44
  void setNativeBackButtonDismissalEnabled(T view, boolean value);
44
45
  }
@@ -91,6 +91,9 @@ public class RNSScreenStackHeaderConfigManagerDelegate<T extends View, U extends
91
91
  case "disableBackButtonMenu":
92
92
  mViewManager.setDisableBackButtonMenu(view, value == null ? false : (boolean) value);
93
93
  break;
94
+ case "backButtonDisplayMode":
95
+ mViewManager.setBackButtonDisplayMode(view, (String) value);
96
+ break;
94
97
  case "hideBackButton":
95
98
  mViewManager.setHideBackButton(view, value == null ? false : (boolean) value);
96
99
  break;
@@ -36,6 +36,7 @@ public interface RNSScreenStackHeaderConfigManagerInterface<T extends View> {
36
36
  void setTitleFontWeight(T view, @Nullable String value);
37
37
  void setTitleColor(T view, @Nullable Integer value);
38
38
  void setDisableBackButtonMenu(T view, boolean value);
39
+ void setBackButtonDisplayMode(T view, @Nullable String value);
39
40
  void setHideBackButton(T view, boolean value);
40
41
  void setBackButtonInCustomView(T view, boolean value);
41
42
  void setTopInsetEnabled(T view, boolean value);
@@ -0,0 +1,99 @@
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.ReadableArray;
16
+ import com.facebook.react.uimanager.BaseViewManagerDelegate;
17
+ import com.facebook.react.uimanager.BaseViewManagerInterface;
18
+
19
+ public class RNSSearchBarManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSSearchBarManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
20
+ public RNSSearchBarManagerDelegate(U viewManager) {
21
+ super(viewManager);
22
+ }
23
+ @Override
24
+ public void setProperty(T view, String propName, @Nullable Object value) {
25
+ switch (propName) {
26
+ case "hideWhenScrolling":
27
+ mViewManager.setHideWhenScrolling(view, value == null ? false : (boolean) value);
28
+ break;
29
+ case "autoCapitalize":
30
+ mViewManager.setAutoCapitalize(view, (String) value);
31
+ break;
32
+ case "placeholder":
33
+ mViewManager.setPlaceholder(view, value == null ? null : (String) value);
34
+ break;
35
+ case "placement":
36
+ mViewManager.setPlacement(view, (String) value);
37
+ break;
38
+ case "obscureBackground":
39
+ mViewManager.setObscureBackground(view, value == null ? false : (boolean) value);
40
+ break;
41
+ case "hideNavigationBar":
42
+ mViewManager.setHideNavigationBar(view, value == null ? false : (boolean) value);
43
+ break;
44
+ case "cancelButtonText":
45
+ mViewManager.setCancelButtonText(view, value == null ? null : (String) value);
46
+ break;
47
+ case "barTintColor":
48
+ mViewManager.setBarTintColor(view, ColorPropConverter.getColor(value, view.getContext()));
49
+ break;
50
+ case "tintColor":
51
+ mViewManager.setTintColor(view, ColorPropConverter.getColor(value, view.getContext()));
52
+ break;
53
+ case "textColor":
54
+ mViewManager.setTextColor(view, ColorPropConverter.getColor(value, view.getContext()));
55
+ break;
56
+ case "disableBackButtonOverride":
57
+ mViewManager.setDisableBackButtonOverride(view, value == null ? false : (boolean) value);
58
+ break;
59
+ case "inputType":
60
+ mViewManager.setInputType(view, value == null ? null : (String) value);
61
+ break;
62
+ case "hintTextColor":
63
+ mViewManager.setHintTextColor(view, ColorPropConverter.getColor(value, view.getContext()));
64
+ break;
65
+ case "headerIconColor":
66
+ mViewManager.setHeaderIconColor(view, ColorPropConverter.getColor(value, view.getContext()));
67
+ break;
68
+ case "shouldShowHintSearchIcon":
69
+ mViewManager.setShouldShowHintSearchIcon(view, value == null ? true : (boolean) value);
70
+ break;
71
+ default:
72
+ super.setProperty(view, propName, value);
73
+ }
74
+ }
75
+
76
+ @Override
77
+ public void receiveCommand(T view, String commandName, ReadableArray args) {
78
+ switch (commandName) {
79
+ case "blur":
80
+ mViewManager.blur(view);
81
+ break;
82
+ case "focus":
83
+ mViewManager.focus(view);
84
+ break;
85
+ case "clearText":
86
+ mViewManager.clearText(view);
87
+ break;
88
+ case "toggleCancelButton":
89
+ mViewManager.toggleCancelButton(view, args.getBoolean(0));
90
+ break;
91
+ case "setText":
92
+ mViewManager.setText(view, args.getString(0));
93
+ break;
94
+ case "cancelSearch":
95
+ mViewManager.cancelSearch(view);
96
+ break;
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,37 @@
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
+
15
+ public interface RNSSearchBarManagerInterface<T extends View> {
16
+ void setHideWhenScrolling(T view, boolean value);
17
+ void setAutoCapitalize(T view, @Nullable String value);
18
+ void setPlaceholder(T view, @Nullable String value);
19
+ void setPlacement(T view, @Nullable String value);
20
+ void setObscureBackground(T view, boolean value);
21
+ void setHideNavigationBar(T view, boolean value);
22
+ void setCancelButtonText(T view, @Nullable String value);
23
+ void setBarTintColor(T view, @Nullable Integer value);
24
+ void setTintColor(T view, @Nullable Integer value);
25
+ void setTextColor(T view, @Nullable Integer value);
26
+ void setDisableBackButtonOverride(T view, boolean value);
27
+ void setInputType(T view, @Nullable String value);
28
+ void setHintTextColor(T view, @Nullable Integer value);
29
+ void setHeaderIconColor(T view, @Nullable Integer value);
30
+ void setShouldShowHintSearchIcon(T view, boolean value);
31
+ void blur(T view);
32
+ void focus(T view);
33
+ void clearText(T view);
34
+ void toggleCancelButton(T view, boolean flag);
35
+ void setText(T view, String text);
36
+ void cancelSearch(T view);
37
+ }
@@ -1,8 +1,8 @@
1
1
  #pragma once
2
2
 
3
3
  #include <react/debug/react_native_assert.h>
4
- #include "RNSModalScreenShadowNode.h"
5
4
  #include <react/renderer/core/ConcreteComponentDescriptor.h>
5
+ #include "RNSModalScreenShadowNode.h"
6
6
 
7
7
  namespace facebook {
8
8
  namespace react {
@@ -12,16 +12,15 @@ class RNSModalScreenComponentDescriptor final
12
12
  public:
13
13
  using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
14
14
 
15
- void adopt(ShadowNode& shadowNode) const override {
16
- react_native_assert(
17
- dynamic_cast<RNSModalScreenShadowNode*>(&shadowNode));
18
- auto& screenShadowNode =
19
- static_cast<RNSModalScreenShadowNode&>(shadowNode);
15
+ void adopt(ShadowNode &shadowNode) const override {
16
+ react_native_assert(dynamic_cast<RNSModalScreenShadowNode *>(&shadowNode));
17
+ auto &screenShadowNode =
18
+ static_cast<RNSModalScreenShadowNode &>(shadowNode);
20
19
 
21
20
  react_native_assert(
22
- dynamic_cast<YogaLayoutableShadowNode*>(&screenShadowNode));
23
- auto& layoutableShadowNode =
24
- dynamic_cast<YogaLayoutableShadowNode&>(screenShadowNode);
21
+ dynamic_cast<YogaLayoutableShadowNode *>(&screenShadowNode));
22
+ auto &layoutableShadowNode =
23
+ dynamic_cast<YogaLayoutableShadowNode &>(screenShadowNode);
25
24
 
26
25
  auto state =
27
26
  std::static_pointer_cast<const RNSModalScreenShadowNode::ConcreteState>(
@@ -1,21 +1,22 @@
1
1
  #pragma once
2
2
 
3
- #include "RNSScreenState.h"
3
+ #include <jsi/jsi.h>
4
4
  #include <react/renderer/components/rnscreens/EventEmitters.h>
5
5
  #include <react/renderer/components/rnscreens/Props.h>
6
6
  #include <react/renderer/components/view/ConcreteViewShadowNode.h>
7
- #include <jsi/jsi.h>
7
+ #include "RNSScreenState.h"
8
8
 
9
9
  namespace facebook {
10
10
  namespace react {
11
11
 
12
12
  JSI_EXPORT extern const char RNSModalScreenComponentName[];
13
13
 
14
- class JSI_EXPORT RNSModalScreenShadowNode final : public ConcreteViewShadowNode<
15
- RNSModalScreenComponentName,
16
- RNSScreenProps,
17
- RNSScreenEventEmitter,
18
- RNSScreenState> {
14
+ class JSI_EXPORT RNSModalScreenShadowNode final
15
+ : public ConcreteViewShadowNode<
16
+ RNSModalScreenComponentName,
17
+ RNSScreenProps,
18
+ RNSScreenEventEmitter,
19
+ RNSScreenState> {
19
20
  public:
20
21
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
21
22
 
@@ -1,8 +1,8 @@
1
1
  #pragma once
2
2
 
3
3
  #include <react/debug/react_native_assert.h>
4
- #include "RNSScreenShadowNode.h"
5
4
  #include <react/renderer/core/ConcreteComponentDescriptor.h>
5
+ #include "RNSScreenShadowNode.h"
6
6
 
7
7
  namespace facebook {
8
8
  namespace react {
@@ -12,16 +12,14 @@ class RNSScreenComponentDescriptor final
12
12
  public:
13
13
  using ConcreteComponentDescriptor::ConcreteComponentDescriptor;
14
14
 
15
- void adopt(ShadowNode& shadowNode) const override {
16
- react_native_assert(
17
- dynamic_cast<RNSScreenShadowNode*>(&shadowNode));
18
- auto& screenShadowNode =
19
- static_cast<RNSScreenShadowNode&>(shadowNode);
15
+ void adopt(ShadowNode &shadowNode) const override {
16
+ react_native_assert(dynamic_cast<RNSScreenShadowNode *>(&shadowNode));
17
+ auto &screenShadowNode = static_cast<RNSScreenShadowNode &>(shadowNode);
20
18
 
21
19
  react_native_assert(
22
- dynamic_cast<YogaLayoutableShadowNode*>(&screenShadowNode));
23
- auto& layoutableShadowNode =
24
- dynamic_cast<YogaLayoutableShadowNode&>(screenShadowNode);
20
+ dynamic_cast<YogaLayoutableShadowNode *>(&screenShadowNode));
21
+ auto &layoutableShadowNode =
22
+ dynamic_cast<YogaLayoutableShadowNode &>(screenShadowNode);
25
23
 
26
24
  auto state =
27
25
  std::static_pointer_cast<const RNSScreenShadowNode::ConcreteState>(
@@ -1,10 +1,10 @@
1
1
  #pragma once
2
2
 
3
- #include "RNSScreenState.h"
3
+ #include <jsi/jsi.h>
4
4
  #include <react/renderer/components/rnscreens/EventEmitters.h>
5
5
  #include <react/renderer/components/rnscreens/Props.h>
6
6
  #include <react/renderer/components/view/ConcreteViewShadowNode.h>
7
- #include <jsi/jsi.h>
7
+ #include "RNSScreenState.h"
8
8
 
9
9
  namespace facebook {
10
10
  namespace react {
@@ -12,10 +12,10 @@ namespace react {
12
12
  JSI_EXPORT extern const char RNSScreenComponentName[];
13
13
 
14
14
  class JSI_EXPORT RNSScreenShadowNode final : public ConcreteViewShadowNode<
15
- RNSScreenComponentName,
16
- RNSScreenProps,
17
- RNSScreenEventEmitter,
18
- RNSScreenState> {
15
+ RNSScreenComponentName,
16
+ RNSScreenProps,
17
+ RNSScreenEventEmitter,
18
+ RNSScreenState> {
19
19
  public:
20
20
  using ConcreteViewShadowNode::ConcreteViewShadowNode;
21
21
 
@@ -6,7 +6,8 @@ namespace react {
6
6
  #ifdef ANDROID
7
7
  folly::dynamic RNSScreenState::getDynamic() const {
8
8
  return folly::dynamic::object("frameWidth", frameSize.width)(
9
- "frameHeight", frameSize.height)("contentOffsetX", contentOffset.x)("contentOffsetY", contentOffset.y);
9
+ "frameHeight", frameSize.height)("contentOffsetX", contentOffset.x)(
10
+ "contentOffsetY", contentOffset.y);
10
11
  }
11
12
  #endif
12
13
 
@@ -1,7 +1,7 @@
1
1
  #pragma once
2
2
 
3
- #include <react/renderer/graphics/Float.h>
4
3
  #include <react/renderer/core/graphicsConversions.h>
4
+ #include <react/renderer/graphics/Float.h>
5
5
 
6
6
  #ifdef ANDROID
7
7
  #include <folly/dynamic.h>
@@ -17,23 +17,21 @@ class JSI_EXPORT RNSScreenState final {
17
17
  using Shared = std::shared_ptr<const RNSScreenState>;
18
18
 
19
19
  RNSScreenState(){};
20
- RNSScreenState(Size frameSize_, Point contentOffset_) : frameSize(frameSize_), contentOffset(contentOffset_){};
20
+ RNSScreenState(Size frameSize_, Point contentOffset_)
21
+ : frameSize(frameSize_), contentOffset(contentOffset_){};
21
22
 
22
23
  #ifdef ANDROID
23
- RNSScreenState(
24
- RNSScreenState const &previousState,
25
- folly::dynamic data)
24
+ RNSScreenState(RNSScreenState const &previousState, folly::dynamic data)
26
25
  : frameSize(Size{
27
26
  (Float)data["frameWidth"].getDouble(),
28
- (Float)data["frameHeight"].getDouble()}),
27
+ (Float)data["frameHeight"].getDouble()}),
29
28
  contentOffset(Point{
30
29
  (Float)data["contentOffsetX"].getDouble(),
31
- (Float)data["contentOffsetY"].getDouble()})
32
- {};
30
+ (Float)data["contentOffsetY"].getDouble()}){};
33
31
  #endif
34
32
 
35
- const Size frameSize{};
36
- Point contentOffset;
33
+ const Size frameSize{};
34
+ Point contentOffset;
37
35
 
38
36
  #ifdef ANDROID
39
37
  folly::dynamic getDynamic() const;