Skip to content

TextInput component parity for Fabric #11145

Closed
@jonthysell

Description

@jonthysell

This task captures the work to reach parity between Paper and Fabric for the native code for the <TextInput> component.

ComponentView

  1. Create the WindowsTextInputComponentView (WTICV)
  2. Register the ComponentView in the ComponentViewRegistry

APIs

See latest spec at https://reactnative.dev/docs/textinput.

TextInput Props

41/61

API Platform RNW Paper RNW Fabric Notes
  • allowFontScaling
TIVM Pri 1 Fabric: Code present but commented out?
  • autoCapitalize
TIVM Pri 1 Fabric: Code present but commented out?
  • autoComplete
Android No No?
  • autoCorrect
No No?
  • autoFocus
TIVM Pri 1
  • blurOnSubmit
No No?
  • caretHidden
TIVM WTICV Fabric: #12430
  • clearButtonMode
iOS No No?
  • clearTextOnFocus
iOS TIVM Pri 1
  • contextMenuHidden
TIVM Pri 1
  • dataDetectorTypes
iOS No No?
  • defaultValue
TIVM WTICV Passed in as text = value ?? defaultValue
  • cursorColor
Android TIVM WTICV Paper: #11502, Fabric: #12158
  • disableFullscreenUI
Android No No?
TIVM WTICV Fabric: #11488
  • enablesReturnKeyAutomatically
iOS No No?
  • importantForAutofill
Android No No?
  • inlineImageLeft
Android No No?
  • inlineImagePadding
Android No No?
  • inputAccessoryViewID
iOS No No?
  • keyboardAppearance
iOS No No?
  • keyboardType
TIVM Pri 1
  • maxFontSizeMultiplier
No No?
  • maxLength
TIVM WTICV
TIVM WTICV Fabric: #11490
  • numberOfLines
Android No No?
  • onBlur
TIVM+VMB Pri 1 Event is topTextInputBlur
  • onChange
TIVM+VMB WTICV Event is topTextInputChange
TIVM Pri 1 Event is topTextInputChangeText
  • onContentSizeChange
TIVM Pri 1 Event is topTextInputContentSizeChange
  • onEndEditing
TIVM+VMB Pri 1 Event is topTextInputEndEditing
  • onPressIn
TIVM Pri 1 Event is topTextInputPressIn
  • onPressOut
TIVM Pri 1 Event is topTextInputPressOut
  • onFocus
TIVM+VMB Pri 1 Event is topTextInputFocus
  • onKeyPress
TIVM WTICV topTextInputKeyPress, Fabric: #12771
  • onLayout
VMB Pri 1
  • onScroll
TIVM Pri 1 Event is topTextInputScroll
  • onSelectionChange
TIVM WTICV Event is topTextInputSelectionChange
TIVM+VMB WTICV Event is topTextInputSubmitEditing, Fabric: #12746
TIVM WTICV Fabric: #12018
  • placeholderTextColor
TIVM WTICV Fabric: #12018
  • returnKeyLabel
Android No No?
  • returnKeyType
No No?
  • rejectResponderTermination
iOS No No?
  • scrollEnabled
iOS TIVM Pri 1
TIVM WTICV Fabric: #11484
  • selection
TIVM Pri 1 Fabric: Code present but commented out?
  • selectionColor
TIVM Pri 1
  • selectTextOnFocus
TIVM Pri 1
  • showSoftInputOnFocus
No No?
  • spellCheck
iOS TIVM Pri 1
  • textAlign
TIVM Pri 1
  • textContentType
iOS No No?
  • passwordRules
IOS No No?
  • style
See Below See Below Supports Text Style Props*, View Style Props, Layout Props, Shadow Props
  • textBreakStrategy
Android No No?
  • underlineColorAndroid
Android No No?
  • value
TIVM WTICV Passed in as text = value ?? defaultValue
  • clearTextOnSubmit
Windows TIVM WTICV Fabric: #12746
  • mostRecentEventCount
Windows TIVM Pri 1
Windows TIVM WTICV Fabric: #12746

TextInput Methods

4/4

API Platform RNW Paper RNW Fabric Notes
  • focus()
TIVM+VMB CBCV Duplicate of Native Component Method? Fabric: #11323
  • blur()
TIVM+VMB CBCV Duplicate of Native Component Method? Fabric: #11323
  • clear()
TIVM WTICV Invoked by calling setTextAndSelection
  • isFocused()
JS JS

View Props

48/58

API Platform RNW Paper RNW Fabric Notes
  • accessibilityActions
FEVM Pri 2
  • accessibilityElementsHidden
iOS No No?
  • accessibilityHint
FEVM CBCV+CDAP Fabric: #12036
  • accessibilityIgnoresInvertColors
iOS No No?
  • accessibilityLabel
FEVM CBCV+CDAP Fabric: #11674
  • accessibilityLanguage
iOS No No?
  • accessibilityLiveRegion
Android FEVM Pri 2
  • accessibilityRole
FEVM CDAP Fabric: #11412
  • accessibilityState
FEVM CBCV+CDAP Fabric: Partial impl in #11674
  • accessibilityValue
FEVM CBCV+CDAP+WTICV Fabric: #12287
  • accessibilityViewIsModal
iOS No No?
  • accessible
CVM+FEVM CBCV+CDAP Fabric: #11719
  • collapsable
Android No No?
  • focusable
Android TIVM+CVM CBCV+CDAP Fabric: #11674
  • hitSlop
JS JS
  • importantForAccessibility
Android No No?
  • nativeID
No No?
  • needsOffscreenAlphaCompositing
No No?
  • nextFocusDown
Android No No?
  • nextFocusForward
Android No No?
  • nextFocusLeft
Android No No?
  • nextFocusRight
Android No No?
  • nextFocusUp
Android No No?
  • onAccessibilityAction
VMB Pri 2
  • onAccessibilityEscape
iOS No No?
  • onAccessibilityTap
No CDAP Fabric: #11874
  • onLayout
VMB Pri 1
  • onMagicTap
iOS No No?
  • onMoveShouldSetResponder
JS JS
  • onMoveShouldSetResponderCapture
JS JS
  • onResponderGrant
JS JS
  • onResponderMove
JS JS
  • onResponderReject
JS JS
  • onResponderRelease
JS JS
  • onResponderTerminate
JS JS
  • onResponderTerminationRequest
JS JS
  • onStartShouldSetResponder
JS JS
  • onStartShouldSetResponderCapture
JS JS
  • pointerEvents
VMB WTICV
  • removeClippedSubviews
No No?
  • renderToHardwareTextureAndroid
Android No No?
  • shouldRasterizeIOS
iOS No No?
  • testID
FEVM CDAP Fabric: #11412
  • accessibilityPosInSet
Windows FEVM Pri 2
  • accessibilitySetSize
Windows FEVM Pri 2
  • enableFocusRing
Windows JS CBCV+WTICV Fabric: #11323, Focus ring impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • keyDownEvents
Windows TIVM+VMB WTICV+CBCV Fabric: #12146
  • keyUpEvents
Windows VMB WTICV+CBCV Fabric: #12146
  • onBlur
Windows TIVM+VMB Pri 1 Duplicate of TextInput prop, but with different event?
  • onFocus
Windows TIVM+VMB Pri 1 Duplicate of TextInput prop, but with different event?
  • onKeyDown
Windows VMB WTICV+CBCV+CEH Fabric: #12146
  • onKeyDownCapture
Windows VMB Pri 1
  • onKeyUp
Windows VMB WTICV+CBCV+CEH Fabric: #12146
  • onKeyUpCapture
Windows VMB Pri 1
  • onMouseEnter
Windows VMB CEH
  • onMouseLeave
Windows VMB CEH
  • tabIndex
Windows CVM Pri 1
  • tooltip
Windows FEVM Pri 1

Text Style Props

11/20

API Platform RNW Paper RNW Fabric Notes
  • color
CVM WTICV
  • fontFamily
TIVM Pri 1 Fabric: Code present but commented out?
  • fontSize
TIVM WTICV
  • fontStyle
TIVM Pri 1 Fabric: Code present but commented out?
  • fontWeight
TIVM WTICV
  • includeFontPadding
Android No No?
  • fontVariant
No No?
  • letterSpacing
TIVM Pri 1
  • lineHeight
No Pri 1
  • textAlign
TIVM Pri 1
  • textAlignVertical
Android No No?
  • textDecorationColor
iOS No No?
  • textDecorationLine
No Pri 1
  • textDecorationStyle
iOS No No?
  • textShadowColor
No No?
  • textShadowOffset
No No?
  • textShadowRadius
No No?
  • textTransform
No Pri 1
  • writingDirection
FEVM Pri 1
  • characterSpacing
Windows TIVM Pri 1 Alias for letterSpacing?

View Style Props

28/29

API Platform RNW Paper RNW Fabric Notes
  • backfaceVisibility
No CBCV+WTICV Fabric: #12115 Impl in CBCV and CV must call updateTransformProps
  • backgroundColor
CVM WTICV
  • borderBottomColor
No CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomEndRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomLeftRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomRightRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomStartRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderColor
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderEndColor
No CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderEndWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderLeftColor
No CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderLeftWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderRightColor
No CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderRightWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderStartColor
No CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderStartWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
No CBCV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopColor
No CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopEndRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopLeftRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopRightRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopStartRadius
CVM CBCV+WTICV Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • elevation
Android No No?
  • opacity
FEVM Pri 1
  • transform
FEVM CBCV+WTICVCV Fabric: #12115 Impl in CBCV and CV must call updateTransformProps

Layout Props

51/53

API Platform RNW Paper RNW Fabric Notes
  • alignContent
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • alignItems
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • alignSelf
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • aspectRatio
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • borderBottomWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderEndWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderLeftWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderRightWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderStartWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderWidth
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • bottom
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • direction
FEVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • display
FEVM+NUIM WTICV
  • end
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • flex
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • flexBasis
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • flexDirection
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • flexGrow
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • flexShrink
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • flexWrap
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • height
VMB+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • justifyContent
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • left
VMB+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • margin
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginBottom
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginEnd
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginHorizontal
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginLeft
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginRight
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginStart
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginTop
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • marginVertical
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • maxHeight
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • maxWidth
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • minHeight
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • minWidth
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • overflow
NUIM Pri 1
  • padding
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingBottom
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingEnd
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingHorizontal
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingLeft
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingRight
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingStart
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingTop
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • paddingVertical
CVM+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • position
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • right
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • start
NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • top
VMB+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • width
VMB+NUIM CBCV+WTICV Fabric: RN Core resolves LayoutMetrics
  • zIndex
FEVM Pri 1

Shadow Props

4/4

API Platform RNW Paper RNW Fabric Notes
  • shadowColor
No CBCV+WTICV Fabric: #12108, Shadow props impl in CBCV and CV must call updateShadowProps
  • shadowOffset
iOS No CBCV+WTICV Fabric: #12108, Shadow props impl in CBCV and CV must call updateShadowProps
  • shadowOpacity
iOS No CBCV+WTICV Fabric: #12108, Shadow props impl in CBCV and CV must call updateShadowProps
  • shadowRadius
iOS No CBCV+WTICV Fabric: #12108, Shadow props impl in CBCV and CV must call updateShadowProps

Native Component Methods

2/2

API Platform RNW Paper RNW Fabric Notes
  • blur()
Windows TIVM+VMB CBCV Fabric: #11323
  • focus()
Windows TIVM+VMB CBCV Fabric: #11323

Glossary

See the Glossary to decode the abbreviations above and/or the RNW Fabric Inventory.xlsx.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions