react-native-controlled-input 0.20.0 → 0.22.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/android/src/main/java/com/controlledinput/ControlledInputView.kt +30 -77
- package/android/src/main/java/com/controlledinput/ControlledInputViewManager.kt +1 -0
- package/android/src/main/java/com/controlledinput/JetpackComposeView.kt +1 -0
- package/lib/module/ControlledInputViewNativeComponent.ts +1 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/ControlledInputViewNativeComponent.d.ts +1 -0
- package/lib/typescript/src/ControlledInputViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ControlledInputViewNativeComponent.ts +1 -0
- package/src/index.tsx +3 -0
|
@@ -2,7 +2,6 @@ package com.controlledinput
|
|
|
2
2
|
|
|
3
3
|
import android.content.Context
|
|
4
4
|
import android.util.AttributeSet
|
|
5
|
-
import android.util.Log
|
|
6
5
|
import android.util.TypedValue
|
|
7
6
|
import android.view.View
|
|
8
7
|
import android.view.inputmethod.InputMethodManager
|
|
@@ -32,14 +31,8 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
|
|
32
31
|
/**
|
|
33
32
|
* - [shouldUseAndroidLayout]: requestLayout posts measureAndLayout
|
|
34
33
|
* - onMeasure skips child [ComposeView] until attached (window + WindowRecomposer)
|
|
35
|
-
*
|
|
36
|
-
* @see expo.modules.kotlin.views.ExpoComposeView
|
|
37
|
-
* @see expo.modules.kotlin.views.ExpoView
|
|
38
34
|
*/
|
|
39
35
|
class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
40
|
-
companion object {
|
|
41
|
-
private const val TAG = "ControlledInputView"
|
|
42
|
-
}
|
|
43
36
|
constructor(context: Context) : super(context) {
|
|
44
37
|
configureComponent(context)
|
|
45
38
|
}
|
|
@@ -67,8 +60,9 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
67
60
|
private var windowLifecycleBound = false
|
|
68
61
|
|
|
69
62
|
/**
|
|
70
|
-
* Hidden [EditText] used only as
|
|
71
|
-
*
|
|
63
|
+
* Hidden [EditText] used only as [FocusedInputObserver.lastFocusedInput] from
|
|
64
|
+
* https://github.com/kirillzyusko/react-native-keyboard-controller; [syncUpLayout] reads
|
|
65
|
+
* [EditText]-scoped geometry. It is NOT focused and does not participate in the focus
|
|
72
66
|
* chain — we push state via reflection + synthetic selection events instead.
|
|
73
67
|
*/
|
|
74
68
|
private val kbcLayoutHost: EditText by lazy {
|
|
@@ -85,8 +79,9 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
85
79
|
}
|
|
86
80
|
|
|
87
81
|
/**
|
|
88
|
-
* EdgeToEdgeViewRegistry → KeyboardAnimationCallback + FocusedInputObserver
|
|
89
|
-
*
|
|
82
|
+
* EdgeToEdgeViewRegistry → KeyboardAnimationCallback + FocusedInputObserver
|
|
83
|
+
* (https://github.com/kirillzyusko/react-native-keyboard-controller).
|
|
84
|
+
* Null if that library is missing or not initialized.
|
|
90
85
|
*/
|
|
91
86
|
private fun resolveKbcCallbackAndObserver(): Pair<Any, Any>? {
|
|
92
87
|
try {
|
|
@@ -94,49 +89,25 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
94
89
|
Class.forName("com.reactnativekeyboardcontroller.views.EdgeToEdgeViewRegistry")
|
|
95
90
|
val registryInstance = registryClass.getField("INSTANCE").get(null)
|
|
96
91
|
val edgeToEdgeView =
|
|
97
|
-
registryClass.getDeclaredMethod("get").invoke(registryInstance)
|
|
98
|
-
?: run {
|
|
99
|
-
Log.w(TAG, "resolveKbcCallbackAndObserver: EdgeToEdgeViewRegistry.get() == null")
|
|
100
|
-
return null
|
|
101
|
-
}
|
|
92
|
+
registryClass.getDeclaredMethod("get").invoke(registryInstance) ?: return null
|
|
102
93
|
|
|
103
94
|
val callbackField =
|
|
104
95
|
edgeToEdgeView.javaClass.declaredFields.firstOrNull {
|
|
105
96
|
it.type.simpleName == "KeyboardAnimationCallback"
|
|
106
|
-
}
|
|
107
|
-
?: run {
|
|
108
|
-
Log.w(TAG, "resolveKbcCallbackAndObserver: KeyboardAnimationCallback field not found")
|
|
109
|
-
return null
|
|
110
|
-
}
|
|
97
|
+
} ?: return null
|
|
111
98
|
callbackField.isAccessible = true
|
|
112
|
-
val callback =
|
|
113
|
-
callbackField.get(edgeToEdgeView)
|
|
114
|
-
?: run {
|
|
115
|
-
Log.w(TAG, "resolveKbcCallbackAndObserver: callback == null")
|
|
116
|
-
return null
|
|
117
|
-
}
|
|
99
|
+
val callback = callbackField.get(edgeToEdgeView) ?: return null
|
|
118
100
|
|
|
119
101
|
val observerField =
|
|
120
102
|
callback.javaClass.declaredFields.firstOrNull {
|
|
121
103
|
it.type.simpleName == "FocusedInputObserver"
|
|
122
|
-
}
|
|
123
|
-
?: run {
|
|
124
|
-
Log.w(TAG, "resolveKbcCallbackAndObserver: FocusedInputObserver field not found")
|
|
125
|
-
return null
|
|
126
|
-
}
|
|
104
|
+
} ?: return null
|
|
127
105
|
observerField.isAccessible = true
|
|
128
|
-
val observer =
|
|
129
|
-
observerField.get(callback)
|
|
130
|
-
?: run {
|
|
131
|
-
Log.w(TAG, "resolveKbcCallbackAndObserver: layoutObserver == null")
|
|
132
|
-
return null
|
|
133
|
-
}
|
|
106
|
+
val observer = observerField.get(callback) ?: return null
|
|
134
107
|
return Pair(callback, observer)
|
|
135
108
|
} catch (_: ClassNotFoundException) {
|
|
136
|
-
Log.d(TAG, "resolveKbcCallbackAndObserver: keyboard-controller not on classpath")
|
|
137
109
|
return null
|
|
138
|
-
} catch (
|
|
139
|
-
Log.w(TAG, "resolveKbcCallbackAndObserver: ${e.javaClass.simpleName}: ${e.message}")
|
|
110
|
+
} catch (_: Exception) {
|
|
140
111
|
return null
|
|
141
112
|
}
|
|
142
113
|
}
|
|
@@ -146,9 +117,7 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
146
117
|
val f = callback.javaClass.getDeclaredField("viewTagFocused")
|
|
147
118
|
f.isAccessible = true
|
|
148
119
|
f.setInt(callback, id)
|
|
149
|
-
|
|
150
|
-
} catch (e: Exception) {
|
|
151
|
-
Log.w(TAG, "setKbcViewTagFocused: ${e.javaClass.simpleName}: ${e.message}")
|
|
120
|
+
} catch (_: Exception) {
|
|
152
121
|
}
|
|
153
122
|
}
|
|
154
123
|
|
|
@@ -160,16 +129,22 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
160
129
|
holderClass
|
|
161
130
|
.getMethod("set", EditText::class.java)
|
|
162
131
|
.invoke(instance, kbcLayoutHost)
|
|
163
|
-
} catch (
|
|
164
|
-
Log.w(TAG, "setKbcFocusedInputHolder: ${e.javaClass.simpleName}: ${e.message}")
|
|
132
|
+
} catch (_: Exception) {
|
|
165
133
|
}
|
|
166
134
|
}
|
|
167
135
|
|
|
168
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* `selection.end.y` for https://github.com/kirillzyusko/react-native-keyboard-controller / JS
|
|
138
|
+
* customHeight: prefer explicit style height (dp, same as padding in [InputStyle]), else measured
|
|
139
|
+
* view height in dp.
|
|
140
|
+
*/
|
|
169
141
|
private fun approximateSelectionEndYDp(): Double {
|
|
170
|
-
viewModel.inputStyle.value?.
|
|
142
|
+
viewModel.inputStyle.value?.height?.takeIf { it > 0 }?.let { return it }
|
|
171
143
|
val dm = resources.displayMetrics
|
|
172
|
-
|
|
144
|
+
if (height > 0) {
|
|
145
|
+
return (height / dm.density).toDouble()
|
|
146
|
+
}
|
|
147
|
+
return 12.0
|
|
173
148
|
}
|
|
174
149
|
|
|
175
150
|
private fun dispatchSyntheticKbcSelectionEvent(observer: Any) {
|
|
@@ -186,11 +161,7 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
186
161
|
val dataClz =
|
|
187
162
|
Class.forName("com.reactnativekeyboardcontroller.events.FocusedInputSelectionChangedEventData")
|
|
188
163
|
val dataCtor =
|
|
189
|
-
dataClz.declaredConstructors.singleOrNull { it.parameterTypes.size == 7 }
|
|
190
|
-
?: run {
|
|
191
|
-
Log.w(TAG, "dispatchSyntheticKbcSelectionEvent: no 7-arg data ctor")
|
|
192
|
-
return
|
|
193
|
-
}
|
|
164
|
+
dataClz.declaredConstructors.singleOrNull { it.parameterTypes.size == 7 } ?: return
|
|
194
165
|
dataCtor.isAccessible = true
|
|
195
166
|
val data =
|
|
196
167
|
dataCtor.newInstance(targetId, 0.0, 0.0, 0.0, endY, 0, 0)
|
|
@@ -207,21 +178,16 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
207
178
|
|
|
208
179
|
UIManagerHelper.getEventDispatcherForReactTag(reactContext, propagationId)
|
|
209
180
|
?.dispatchEvent(event)
|
|
210
|
-
|
|
211
|
-
TAG,
|
|
212
|
-
"dispatchSyntheticKbcSelectionEvent: propagationId=$propagationId target=$targetId endY(dp)=$endY",
|
|
213
|
-
)
|
|
214
|
-
} catch (e: Exception) {
|
|
215
|
-
Log.w(TAG, "dispatchSyntheticKbcSelectionEvent: ${e.javaClass.simpleName}: ${e.message}")
|
|
181
|
+
} catch (_: Exception) {
|
|
216
182
|
}
|
|
217
183
|
}
|
|
218
184
|
|
|
219
185
|
/**
|
|
220
|
-
* Pushes ControlledInput state into
|
|
221
|
-
* viewTagFocused, lastFocusedInput, FocusedInputHolder,
|
|
186
|
+
* Pushes ControlledInput state into https://github.com/kirillzyusko/react-native-keyboard-controller
|
|
187
|
+
* without stealing Compose focus: viewTagFocused, lastFocusedInput, FocusedInputHolder,
|
|
188
|
+
* syncUpLayout, synthetic selection.
|
|
222
189
|
*/
|
|
223
190
|
private fun syncKeyboardControllerFocusedInput() {
|
|
224
|
-
Log.d(TAG, "syncKeyboardControllerFocusedInput: id=$id")
|
|
225
191
|
kbcLayoutHost.id = id
|
|
226
192
|
viewModel.inputStyle.value?.fontSize?.toFloat()?.let {
|
|
227
193
|
kbcLayoutHost.setTextSize(TypedValue.COMPLEX_UNIT_SP, it)
|
|
@@ -240,11 +206,9 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
240
206
|
val syncMethod = observer.javaClass.getDeclaredMethod("syncUpLayout")
|
|
241
207
|
syncMethod.isAccessible = true
|
|
242
208
|
syncMethod.invoke(observer)
|
|
243
|
-
Log.d(TAG, "syncKeyboardControllerFocusedInput: syncUpLayout() ok")
|
|
244
209
|
|
|
245
210
|
dispatchSyntheticKbcSelectionEvent(observer)
|
|
246
|
-
} catch (
|
|
247
|
-
Log.w(TAG, "syncKeyboardControllerFocusedInput: ${e.javaClass.simpleName}: ${e.message}")
|
|
211
|
+
} catch (_: Exception) {
|
|
248
212
|
}
|
|
249
213
|
}
|
|
250
214
|
|
|
@@ -253,11 +217,6 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
253
217
|
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
|
|
254
218
|
super.onLayout(changed, l, t, r, b)
|
|
255
219
|
kbcLayoutHost.layout(0, 0, width, height)
|
|
256
|
-
if (changed) {
|
|
257
|
-
val loc = IntArray(2)
|
|
258
|
-
getLocationOnScreen(loc)
|
|
259
|
-
Log.d(TAG, "onLayout: view=${width}x${height} screenX=${loc[0]} screenY=${loc[1]}")
|
|
260
|
-
}
|
|
261
220
|
}
|
|
262
221
|
|
|
263
222
|
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
|
|
@@ -289,12 +248,10 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
289
248
|
|
|
290
249
|
override fun onAttachedToWindow() {
|
|
291
250
|
super.onAttachedToWindow()
|
|
292
|
-
Log.d(TAG, "onAttachedToWindow: id=$id")
|
|
293
251
|
bindComposeToWindowLifecycle()
|
|
294
252
|
}
|
|
295
253
|
|
|
296
254
|
override fun onDetachedFromWindow() {
|
|
297
|
-
Log.d(TAG, "onDetachedFromWindow: id=$id")
|
|
298
255
|
if (usesLocalFallbackLifecycle) {
|
|
299
256
|
lifecycleRegistry.currentState = Lifecycle.State.CREATED
|
|
300
257
|
}
|
|
@@ -339,7 +296,6 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
339
296
|
}
|
|
340
297
|
|
|
341
298
|
fun blur() {
|
|
342
|
-
Log.d(TAG, "blur() called from JS ref")
|
|
343
299
|
blurSignal.value = blurSignal.value + 1
|
|
344
300
|
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
|
345
301
|
imm.hideSoftInputFromWindow(windowToken, 0)
|
|
@@ -347,7 +303,6 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
347
303
|
}
|
|
348
304
|
|
|
349
305
|
fun focus() {
|
|
350
|
-
Log.d(TAG, "focus() called from JS ref")
|
|
351
306
|
focusSignal.value = focusSignal.value + 1
|
|
352
307
|
}
|
|
353
308
|
|
|
@@ -415,7 +370,6 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
415
370
|
)
|
|
416
371
|
},
|
|
417
372
|
onFocus = {
|
|
418
|
-
Log.d(TAG, "Compose onFocus id=$id")
|
|
419
373
|
val surfaceId = UIManagerHelper.getSurfaceId(context)
|
|
420
374
|
val viewId = this@ControlledInputView.id
|
|
421
375
|
UIManagerHelper
|
|
@@ -424,7 +378,6 @@ class ControlledInputView : LinearLayout, LifecycleOwner {
|
|
|
424
378
|
post { syncKeyboardControllerFocusedInput() }
|
|
425
379
|
},
|
|
426
380
|
onBlur = {
|
|
427
|
-
Log.d(TAG, "Compose onBlur id=$id")
|
|
428
381
|
val surfaceId = UIManagerHelper.getSurfaceId(context)
|
|
429
382
|
val viewId = this@ControlledInputView.id
|
|
430
383
|
UIManagerHelper
|
|
@@ -81,6 +81,7 @@ class ControlledInputViewManager : SimpleViewManager<ControlledInputView>(),
|
|
|
81
81
|
InputStyle(
|
|
82
82
|
color = if (inputStyle.hasKey("color")) inputStyle.getString("color") else null,
|
|
83
83
|
fontSize = if (inputStyle.hasKey("fontSize")) inputStyle.getDouble("fontSize") else null,
|
|
84
|
+
height = if (inputStyle.hasKey("height")) inputStyle.getDouble("height") else null,
|
|
84
85
|
fontFamily = if (inputStyle.hasKey("fontFamily")) inputStyle.getString("fontFamily") else null,
|
|
85
86
|
paddingTop = if (inputStyle.hasKey("paddingTop")) inputStyle.getDouble("paddingTop") else null,
|
|
86
87
|
paddingBottom = if (inputStyle.hasKey("paddingBottom")) inputStyle.getDouble("paddingBottom") else null,
|
|
@@ -51,6 +51,7 @@ import kotlinx.coroutines.flow.StateFlow
|
|
|
51
51
|
data class InputStyle(
|
|
52
52
|
val color: String? = null,
|
|
53
53
|
val fontSize: Double? = null,
|
|
54
|
+
val height: Double? = null,
|
|
54
55
|
val fontFamily: String? = null,
|
|
55
56
|
val paddingTop: Double? = null,
|
|
56
57
|
val paddingBottom: Double? = null,
|
package/lib/module/index.js
CHANGED
|
@@ -52,6 +52,9 @@ export const ControlledInputView = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
|
|
|
52
52
|
inputStyle = {
|
|
53
53
|
color: flattenedStyle.color,
|
|
54
54
|
fontSize: flattenedStyle.fontSize,
|
|
55
|
+
...(typeof flattenedStyle.height === 'number' ? {
|
|
56
|
+
height: flattenedStyle.height
|
|
57
|
+
} : {}),
|
|
55
58
|
fontFamily: flattenedStyle.fontFamily,
|
|
56
59
|
...(hasPadding ? resolveAndroidComposeViewPadding(flattenedStyle) : {}),
|
|
57
60
|
borderWidth: flattenedStyle.borderWidth,
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","memo","useImperativeHandle","useLayoutEffect","useRef","Platform","processColor","StyleSheet","TextInputState","ControlledInputViewNativeComponent","jsx","_jsx","androidComposeHandledKeys","resolveAndroidComposeViewPadding","flat","padding","paddingTop","paddingVertical","paddingBottom","paddingLeft","paddingHorizontal","paddingRight","ControlledInputView","style","onTextChange","onFocus","onBlur","selectionColor","placeholderTextColor","rest","ref","nativeRef","isNativePlatform","OS","node","current","registerInput","unregisterInput","currentlyFocusedInput","blurTextInput","flattenedStyle","flatten","viewStyle","inputStyle","Object","fromEntries","entries","filter","k","includes","hasPadding","some","v","color","fontSize","fontFamily","borderWidth","borderRadius","borderColor","backgroundColor","iosViewStyle","hasTextStyle","undefined","handleTextChange","e","nativeEvent","value","handleFocus","focusInput","handleBlur","blurInput","blur","focus","focusTextInput","displayName"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["forwardRef","memo","useImperativeHandle","useLayoutEffect","useRef","Platform","processColor","StyleSheet","TextInputState","ControlledInputViewNativeComponent","jsx","_jsx","androidComposeHandledKeys","resolveAndroidComposeViewPadding","flat","padding","paddingTop","paddingVertical","paddingBottom","paddingLeft","paddingHorizontal","paddingRight","ControlledInputView","style","onTextChange","onFocus","onBlur","selectionColor","placeholderTextColor","rest","ref","nativeRef","isNativePlatform","OS","node","current","registerInput","unregisterInput","currentlyFocusedInput","blurTextInput","flattenedStyle","flatten","viewStyle","inputStyle","Object","fromEntries","entries","filter","k","includes","hasPadding","some","v","color","fontSize","height","fontFamily","borderWidth","borderRadius","borderColor","backgroundColor","iosViewStyle","hasTextStyle","undefined","handleTextChange","e","nativeEvent","value","handleFocus","focusInput","handleBlur","blurInput","blur","focus","focusTextInput","displayName"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledInputViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/ControlledInputViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EACP,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;CAE1B;AAED,MAAM,WAAW,SAAS;CAEzB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;IACvE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;CACvE;AAED,eAAO,MAAM,QAAQ,EAAE,cAErB,CAAC;;AAEH,wBAA0E"}
|
|
1
|
+
{"version":3,"file":"ControlledInputViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/ControlledInputViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EACP,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;CAE1B;AAED,MAAM,WAAW,SAAS;CAEzB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;IACvE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;CACvE;AAED,eAAO,MAAM,QAAQ,EAAE,cAErB,CAAC;;AAEH,wBAA0E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,cAAc,EAGpB,MAAM,cAAc,CAAC;AAEtB,OAA2C,EACzC,KAAK,WAAW,EAEjB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,KAAK,uBAAuB,GAAG,IAAI,CACjC,cAAc,EACZ,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,aAAa,GACb,sBAAsB,GACtB,gBAAgB,CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,WAAW,EACX,YAAY,GAAG,cAAc,GAAG,MAAM,uBAAuB,CAC9D,GACC,uBAAuB,GAAG;IACxB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AA2CJ,eAAO,MAAM,mBAAmB;mBA5Cb,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,cAAc,EAGpB,MAAM,cAAc,CAAC;AAEtB,OAA2C,EACzC,KAAK,WAAW,EAEjB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,KAAK,uBAAuB,GAAG,IAAI,CACjC,cAAc,EACZ,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,aAAa,GACb,sBAAsB,GACtB,gBAAgB,CACnB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,WAAW,EACX,YAAY,GAAG,cAAc,GAAG,MAAM,uBAAuB,CAC9D,GACC,uBAAuB,GAAG;IACxB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AA2CJ,eAAO,MAAM,mBAAmB;mBA5Cb,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;0DAoLzC,CAAC;AAIF,cAAc,sCAAsC,CAAC"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -146,6 +146,9 @@ export const ControlledInputView = memo(
|
|
|
146
146
|
inputStyle = {
|
|
147
147
|
color: flattenedStyle.color,
|
|
148
148
|
fontSize: flattenedStyle.fontSize,
|
|
149
|
+
...(typeof flattenedStyle.height === 'number'
|
|
150
|
+
? { height: flattenedStyle.height }
|
|
151
|
+
: {}),
|
|
149
152
|
fontFamily: flattenedStyle.fontFamily,
|
|
150
153
|
...(hasPadding
|
|
151
154
|
? resolveAndroidComposeViewPadding(flattenedStyle)
|