@@ -6,18 +6,41 @@ import android.text.style.StrikethroughSpan
66import android.text.style.StyleSpan
77import android.text.style.UnderlineSpan
88import android.widget.EditText
9+ import androidx.core.widget.doOnTextChanged
910import com.facebook.infer.annotation.Assertions
11+ import com.facebook.react.bridge.Arguments
1012import com.facebook.react.bridge.ReadableArray
1113import com.facebook.react.uimanager.SimpleViewManager
1214import com.facebook.react.uimanager.ThemedReactContext
1315import com.facebook.react.uimanager.annotations.ReactProp
14-
16+ import com.facebook.react.uimanager.events.RCTEventEmitter
1517
1618class RichTextInputViewManager : SimpleViewManager <EditText >() {
1719 override fun getName () = " RichTextInputView"
1820
21+ override fun getExportedCustomBubblingEventTypeConstants (): Map <String , Any > {
22+ return mapOf (
23+ " topChange" to mapOf (
24+ " phasedRegistrationNames" to mapOf (
25+ " bubbled" to " onChange"
26+ )
27+ )
28+ )
29+ }
30+
1931 override fun createViewInstance (reactContext : ThemedReactContext ): EditText {
20- return EditText (reactContext)
32+ val editText = EditText (reactContext)
33+
34+ editText.doOnTextChanged { text, start, before, count ->
35+ val event = Arguments .createMap().apply {
36+ putString(" text" , text.toString())
37+ }
38+ reactContext
39+ .getJSModule(RCTEventEmitter ::class .java)
40+ .receiveEvent(editText.id, " topChange" , event)
41+ }
42+
43+ return editText
2144 }
2245
2346 @ReactProp(name = " placeholder" )
0 commit comments