mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Migrate RCTPicker to use NativeComponentRegistry instead of requireNativeComponent
Summary: This diff migrates RCTPicker to use NativeComponentRegistry instead of requireNativeComponent. The intention is to unify the way the component is registered and enable StaticViewConfigs for this component changelog: [internal] internal Reviewed By: yungsters Differential Revision: D26799477 fbshipit-source-id: 2f5935e0a4796c7a76921762a087cf7823ebd62e
This commit is contained in:
committed by
Facebook GitHub Bot
parent
e6931caca4
commit
ce0b7e080b
@@ -8,15 +8,13 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
const requireNativeComponent = require('../../ReactNative/requireNativeComponent');
|
||||
const ReactNativeViewConfigRegistry = require('../../Renderer/shims/ReactNativeViewConfigRegistry');
|
||||
|
||||
import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry';
|
||||
import ReactNativeViewViewConfig from '../../Components/View/ReactNativeViewViewConfig';
|
||||
import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
|
||||
import type {SyntheticEvent} from '../../Types/CoreEventTypes';
|
||||
import type {TextStyleProp} from '../../StyleSheet/StyleSheet';
|
||||
import type {ProcessedColorValue} from '../../StyleSheet/processColor';
|
||||
import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
|
||||
import RCTPickerViewConfig from './RCTPickerViewConfig';
|
||||
import * as React from 'react';
|
||||
|
||||
type PickerIOSChangeEvent = SyntheticEvent<
|
||||
@@ -56,15 +54,33 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
||||
supportedCommands: ['setNativeSelectedIndex'],
|
||||
});
|
||||
|
||||
let RCTPickerNativeComponent;
|
||||
if (global.RN$Bridgeless) {
|
||||
ReactNativeViewConfigRegistry.register('RCTPicker', () => {
|
||||
return RCTPickerViewConfig;
|
||||
});
|
||||
RCTPickerNativeComponent = 'RCTPicker';
|
||||
} else {
|
||||
RCTPickerNativeComponent = requireNativeComponent<NativeProps>('RCTPicker');
|
||||
}
|
||||
const RCTPickerNativeComponent: HostComponent<NativeProps> = NativeComponentRegistry.get<NativeProps>(
|
||||
'RCTPicker',
|
||||
() => ({
|
||||
uiViewClassName: 'RCTPicker',
|
||||
bubblingEventTypes: {
|
||||
topChange: {
|
||||
phasedRegistrationNames: {
|
||||
bubbled: 'onChange',
|
||||
captured: 'onChangeCapture',
|
||||
},
|
||||
},
|
||||
},
|
||||
directEventTypes: {},
|
||||
validAttributes: {
|
||||
...ReactNativeViewViewConfig.validAttributes,
|
||||
color: {process: require('../../StyleSheet/processColor')},
|
||||
fontFamily: true,
|
||||
fontSize: true,
|
||||
fontStyle: true,
|
||||
fontWeight: true,
|
||||
items: true,
|
||||
onChange: true,
|
||||
selectedIndex: true,
|
||||
textAlign: true,
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
// flowlint-next-line unclear-type:off
|
||||
export default ((RCTPickerNativeComponent: any): HostComponent<NativeProps>);
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its 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 ReactNativeViewViewConfig from '../../Components/View/ReactNativeViewViewConfig';
|
||||
import {type ViewConfig} from '../../Renderer/shims/ReactNativeTypes';
|
||||
|
||||
const RCTPickerViewConfig = {
|
||||
uiViewClassName: 'RCTPicker',
|
||||
bubblingEventTypes: {
|
||||
topChange: {
|
||||
phasedRegistrationNames: {
|
||||
bubbled: 'onChange',
|
||||
captured: 'onChangeCapture',
|
||||
},
|
||||
},
|
||||
},
|
||||
directEventTypes: {},
|
||||
validAttributes: {
|
||||
...ReactNativeViewViewConfig.validAttributes,
|
||||
color: {process: require('../../StyleSheet/processColor')},
|
||||
fontFamily: true,
|
||||
fontSize: true,
|
||||
fontStyle: true,
|
||||
fontWeight: true,
|
||||
items: true,
|
||||
onChange: true,
|
||||
selectedIndex: true,
|
||||
textAlign: true,
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = (RCTPickerViewConfig: ViewConfig);
|
||||
Reference in New Issue
Block a user