Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

RefreshControl component parity for Fabric #11164

Closed
46 of 158 tasks
Tracked by #11135
jonthysell opened this issue Feb 2, 2023 · 1 comment
Closed
46 of 158 tasks
Tracked by #11135

RefreshControl component parity for Fabric #11164

jonthysell opened this issue Feb 2, 2023 · 1 comment
Labels
API: Completion Area: Component Views Area: Fabric Support Facebook Fabric Area: RefreshControl Deliverable Major item tracked for top-level planning in ADO enhancement New Architecture Broad category for issues that apply to the RN "new" architecture of Turbo Modules + Fabric Parity: Fabric vs. Paper RNW Fabric does not look or behave like RNW Paper
Milestone

Comments

@jonthysell
Copy link
Contributor

jonthysell commented Feb 2, 2023

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

ComponentView

  1. Create the RefreshControlComponentView (RCCV)
  2. Register the ComponentView in the ComponentViewRegistry

APIs

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

RefreshControl Props

API Platform RNW Paper RNW Fabric Notes
  • refreshing
RCVM Pri 1
  • colors
Android No No?
  • enabled
Android No No?
  • onRefresh
RCVM Pri 1
  • progressBackgroundColor
Android No No?
  • progressViewOffset
No No?
  • size
Android No No?
  • tintColor
iOS No No?
  • title
iOS No No?
  • titleColor
iOS No No?

View Props

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 Pri 2
  • accessibilityLanguage
iOS No No?
  • accessibilityLiveRegion
Android FEVM Pri 2
  • accessibilityRole
FEVM Pri 2
  • accessibilityState
FEVM Pri 2
  • accessibilityValue
FEVM CBCV+CDAP Fabric: #12287
  • accessibilityViewIsModal
iOS No No?
  • accessible
CVM+FEVM CBCV+CDAP Fabric: #11719
  • collapsable
Android No No?
  • focusable
Android CVM Pri 1
  • 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 Pri 1
  • removeClippedSubviews
No No?
  • renderToHardwareTextureAndroid
Android No No?
  • shouldRasterizeIOS
iOS No No?
  • style
See Below See Below Supports View Style Props, Layout Props, Shadow Props
  • testID
FEVM CDAP Fabric: #11412
  • accessibilityPosInSet
Windows FEVM Pri 2
  • accessibilitySetSize
Windows FEVM Pri 2
  • enableFocusRing
Windows JS Pri 1 Fabric: #11323, Focus ring impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • keyDownEvents
Windows VMB Pri 1
  • keyUpEvents
Windows VMB Pri 1
  • onBlur
Windows VMB Pri 1 Necessary? Fabric: #11323
  • onFocus
Windows VMB Pri 1 Necessary? Fabric: #11323
  • onKeyDown
Windows VMB Pri 1
  • onKeyDownCapture
Windows VMB Pri 1
  • onKeyUp
Windows VMB Pri 1
  • onKeyUpCapture
Windows VMB Pri 1
  • onMouseEnter
Windows VMB Pri 1
  • onMouseLeave
Windows VMB Pri 1
  • tabIndex
Windows CVM Pri 1
  • tooltip
Windows FEVM Pri 1

View Style Props

API Platform RNW Paper RNW Fabric Notes
  • backfaceVisibility
No No?
  • backgroundColor
CVM Pri 1
  • borderBottomColor
No Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomEndRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomLeftRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomRightRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomStartRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderBottomWidth
CVM+NUIM Pri 1 Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderColor
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderEndColor
No Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderEndWidth
CVM+NUIM Pri 1 Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderLeftColor
No Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderLeftWidth
CVM+NUIM Pri 1 Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderRightColor
No Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderRightWidth
CVM+NUIM Pri 1 Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderStartColor
No Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderStartWidth
CVM+NUIM Pri 1 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 Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopEndRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopLeftRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopRightRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopStartRadius
CVM Pri 1 Fabric: Border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderTopWidth
CVM+NUIM Pri 1 Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • borderWidth
CVM+NUIM Pri 1 Fabric: RN Core resolves LayoutMetrics, but border impl in CBCV and CV must call updateBorderProps / updateBorderLayoutMetrics
  • elevation
Android No No?
  • opacity
FEVM Pri 1

Layout Props

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

Shadow Props

API Platform RNW Paper RNW Fabric Notes
  • shadowColor
No Pri 2 Fabric: Shadow props impl in CBCV and CV must call updateShadowProps
  • shadowOffset
iOS No Pri 2 Fabric: Shadow props impl in CBCV and CV must call updateShadowProps
  • shadowOpacity
iOS No Pri 2 Fabric: Shadow props impl in CBCV and CV must call updateShadowProps
  • shadowRadius
iOS No Pri 2 Fabric: Shadow props impl in CBCV and CV must call updateShadowProps

Native Component Methods

API Platform RNW Paper RNW Fabric Notes
  • blur()
Windows VMB Pri 1 Necessary? Fabric: #11323
  • focus()
Windows VMB Pri 1 Necessary? Fabric: #11323

Glossary

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

@jonthysell jonthysell added the Area: Fabric Support Facebook Fabric label Feb 2, 2023
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) label Feb 2, 2023
@chrisglein chrisglein added this to the Backlog milestone Feb 2, 2023
@chrisglein chrisglein added Area: RefreshControl enhancement and removed Needs: Triage 🔍 New issue that needs to be reviewed by the issue management team (label applied by bot) labels Feb 2, 2023
@jonthysell jonthysell added New Architecture Broad category for issues that apply to the RN "new" architecture of Turbo Modules + Fabric Parity: Fabric vs. Paper RNW Fabric does not look or behave like RNW Paper Area: Component Views Deliverable Major item tracked for top-level planning in ADO API: Completion labels Mar 7, 2024
@jonthysell
Copy link
Contributor Author

Closing this deliverable, all remaining component properties required for parity are now being tracked by individual issues.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
API: Completion Area: Component Views Area: Fabric Support Facebook Fabric Area: RefreshControl Deliverable Major item tracked for top-level planning in ADO enhancement New Architecture Broad category for issues that apply to the RN "new" architecture of Turbo Modules + Fabric Parity: Fabric vs. Paper RNW Fabric does not look or behave like RNW Paper
Projects
Status: Done
Development

No branches or pull requests

3 participants