mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
621f4cf3b1
Summary: This adds the `tabIndex` Android only prop to View as requested on https://github.com/facebook/react-native/issues/34424 mapping the existing `focusable` prop to `tabIndex` so that `tabIndex={0}` maps to `focusable={true}` and `tabIndex={-1}` represents ` focusable={false}`. ## Changelog [Android] [Added] - Add tabIndex prop to View component Pull Request resolved: https://github.com/facebook/react-native/pull/34486 Test Plan: I'm still investigating the best way to test this but we're are just mapping this to an existing prop Reviewed By: GijsWeterings Differential Revision: D38957303 Pulled By: necolas fbshipit-source-id: d00db854e11cb3457329c1547b69cff60afb34cf
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @flow strict-local
|
|
*/
|
|
|
|
import type {ViewProps} from './ViewPropTypes';
|
|
|
|
import ViewNativeComponent from './ViewNativeComponent';
|
|
import TextAncestor from '../../Text/TextAncestor';
|
|
import * as React from 'react';
|
|
|
|
export type Props = ViewProps;
|
|
|
|
/**
|
|
* The most fundamental component for building a UI, View is a container that
|
|
* supports layout with flexbox, style, some touch handling, and accessibility
|
|
* controls.
|
|
*
|
|
* @see https://reactnative.dev/docs/view
|
|
*/
|
|
const View: React.AbstractComponent<
|
|
ViewProps,
|
|
React.ElementRef<typeof ViewNativeComponent>,
|
|
> = React.forwardRef(
|
|
({tabIndex, focusable, ...otherProps}: ViewProps, forwardedRef) => {
|
|
return (
|
|
<TextAncestor.Provider value={false}>
|
|
<ViewNativeComponent
|
|
focusable={tabIndex !== undefined ? !tabIndex : focusable}
|
|
{...otherProps}
|
|
ref={forwardedRef}
|
|
/>
|
|
</TextAncestor.Provider>
|
|
);
|
|
},
|
|
);
|
|
|
|
View.displayName = 'View';
|
|
|
|
module.exports = View;
|