mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53979 This reverts a previous change that modified how focus behavior is handled in JavaScript. That change caused hierarchy rows to no longer be focusable, either manually or programmatically as they were before, which in turn broke arrow key navigation in entity lists. Reverting the change restores the expected focus behavior and re-enables proper arrow key functionality within entity lists. Changelog: [Internal] Differential Revision: D83390685 fbshipit-source-id: 165567eceedce5d0a2e664a9ef3070d5a2bf9b67
47 lines
1.7 KiB
JavaScript
47 lines
1.7 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.
|
|
*
|
|
* @flow strict-local
|
|
* @format
|
|
*/
|
|
|
|
import type {HostComponent} from '../../../src/private/types/HostComponent';
|
|
import type {HostInstance} from '../../../src/private/types/HostInstance';
|
|
|
|
import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
|
|
import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
|
|
import {type ViewProps as Props} from './ViewPropTypes';
|
|
|
|
const ViewNativeComponent: HostComponent<Props> =
|
|
NativeComponentRegistry.get<Props>('RCTView', () => ({
|
|
uiViewClassName: 'RCTView',
|
|
}));
|
|
|
|
interface NativeCommands {
|
|
+focus: () => void;
|
|
+blur: () => void;
|
|
+hotspotUpdate: (viewRef: HostInstance, x: number, y: number) => void;
|
|
+setPressed: (viewRef: HostInstance, pressed: boolean) => void;
|
|
}
|
|
|
|
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
supportedCommands: ['focus', 'blur', 'hotspotUpdate', 'setPressed'],
|
|
});
|
|
|
|
/**
|
|
* `ViewNativeComponent` is an internal React Native host component, and is
|
|
* exported to provide lower-level access for libraries.
|
|
*
|
|
* @warning `<unstable_NativeView>` provides no semver guarantees and is not
|
|
* intended to be used in app code. Please use
|
|
* [`<View>`](https://reactnative.dev/docs/view) instead.
|
|
*/
|
|
// Additional note: Our long term plan is to reduce the overhead of the <Text>
|
|
// and <View> wrappers so that we no longer have any reason to export these APIs.
|
|
export default ViewNativeComponent;
|
|
|
|
export type ViewNativeComponentType = HostComponent<Props>;
|