mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Mark hasTVPreferredFocus as deprecated (#52043)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/52043 The `hasTVPreferredFocus` prop is functionally similar to the `focusable` prop. On iOS, the props are identical. The primary difference appears on Android, where the prop attempts to request focus when set to true. Attempting to invoke imperative API calls through declarative means has been [a source of confusion](https://github.com/react-native-tvos/react-native-tvos/issues/237) and we should instead recommend requesting focus through imperative means, like calling `focus()` on a specific view's ref instead. Workarounds presented rely on lifecycle methods to request focus natively. This change only marks these methods as deprecated on JS. In the following version, they will be removed from the public API. Changelog: [General][Deprecated] - Deprecate `hasTVPreferredFocus` Reviewed By: andrewdacenko Differential Revision: D76732539 fbshipit-source-id: 64912b4dacb76cd40e79148c1082d8ed8f573879
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3c17e101ee
commit
cfb6c968dd
@@ -63,6 +63,7 @@ export type ButtonProps = $ReadOnly<{
|
||||
@platform tv
|
||||
|
||||
@default false
|
||||
@deprecated Use `focusable` instead
|
||||
*/
|
||||
hasTVPreferredFocus?: ?boolean,
|
||||
|
||||
|
||||
@@ -30,6 +30,9 @@ type AndroidProps = $ReadOnly<{
|
||||
}>;
|
||||
|
||||
type IOSProps = $ReadOnly<{
|
||||
/**
|
||||
* @deprecated Use `focusable` instead
|
||||
*/
|
||||
hasTVPreferredFocus?: ?boolean,
|
||||
}>;
|
||||
|
||||
|
||||
+1
@@ -29,6 +29,7 @@ type TVProps = {
|
||||
* *(Apple TV only)* TV preferred focus (see documentation for the View component).
|
||||
*
|
||||
* @platform ios
|
||||
* @deprecated Use `focusable` instead
|
||||
*/
|
||||
hasTVPreferredFocus?: ?boolean,
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ export interface TVProps {
|
||||
* *(Apple TV only)* TV preferred focus (see documentation for the View component).
|
||||
*
|
||||
* @platform ios
|
||||
* @deprecated Use `focusable` instead
|
||||
*/
|
||||
hasTVPreferredFocus?: boolean | undefined;
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ export type TVProps = $ReadOnly<{
|
||||
* *(Apple TV only)* TV preferred focus (see documentation for the View component).
|
||||
*
|
||||
* @platform ios
|
||||
* @deprecated Use `focusable` instead
|
||||
*/
|
||||
hasTVPreferredFocus?: ?boolean,
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ import {
|
||||
import {Touchable} from '../Touchable/Touchable';
|
||||
import {AccessibilityProps} from './ViewAccessibility';
|
||||
|
||||
/**
|
||||
* @deprecated These properties are not implemented natively.
|
||||
*/
|
||||
export interface TVViewPropsIOS {
|
||||
/**
|
||||
* *(Apple TV only)* When set to true, this view will be focusable
|
||||
@@ -34,6 +37,7 @@ export interface TVViewPropsIOS {
|
||||
* *(Apple TV only)* May be set to true to force the Apple TV focus engine to move focus to this view.
|
||||
*
|
||||
* @platform ios
|
||||
* @deprecated Use `focusable` instead
|
||||
*/
|
||||
hasTVPreferredFocus?: boolean | undefined;
|
||||
|
||||
|
||||
@@ -280,6 +280,7 @@ export type ViewPropsAndroid = $ReadOnly<{
|
||||
* Whether to force the Android TV focus engine to move focus to this view.
|
||||
*
|
||||
* @platform android
|
||||
* @deprecated Use `focusable` instead
|
||||
*/
|
||||
hasTVPreferredFocus?: ?boolean,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user