Back out "Migrate TouchableNativeFeedback to use codegenNativeCommands"
Summary: Reverting D16909622 and D16909622 due to T53098065. This change made TouchableNativeFeedback a bit less resilient to non native components being passed as the child. We probably need to handle this migration a little bit safer. Original commit changeset: 902528623742 Differential Revision: D17096765 fbshipit-source-id: e3fc1a21504459b6d7ea5442c4bc926bbd77379d
This commit is contained in:
Родитель
ed9ecb5d73
Коммит
c526b3ff14
|
@ -13,10 +13,11 @@
|
|||
const Platform = require('../../Utilities/Platform');
|
||||
const PropTypes = require('prop-types');
|
||||
const React = require('react');
|
||||
const ReactNative = require('../../Renderer/shims/ReactNative');
|
||||
const Touchable = require('./Touchable');
|
||||
const TouchableWithoutFeedback = require('./TouchableWithoutFeedback');
|
||||
const UIManager = require('../../ReactNative/UIManager');
|
||||
const View = require('../View/View');
|
||||
const {Commands: ViewCommands} = require('../View/ViewNativeComponent');
|
||||
|
||||
const createReactClass = require('create-react-class');
|
||||
const ensurePositiveDelayProps = require('./ensurePositiveDelayProps');
|
||||
|
@ -261,16 +262,20 @@ const TouchableNativeFeedback = createReactClass({
|
|||
);
|
||||
},
|
||||
|
||||
_handleRef: function(ref) {
|
||||
this._viewRef = ref;
|
||||
},
|
||||
|
||||
_dispatchHotspotUpdate: function(destX, destY) {
|
||||
ViewCommands.hotspotUpdate(this._viewRef, destX || 0, destY || 0);
|
||||
UIManager.dispatchViewManagerCommand(
|
||||
ReactNative.findNodeHandle(this),
|
||||
UIManager.getViewManagerConfig('RCTView').Commands.hotspotUpdate,
|
||||
[destX || 0, destY || 0],
|
||||
);
|
||||
},
|
||||
|
||||
_dispatchPressedStateChange: function(pressed) {
|
||||
ViewCommands.setPressed(this._viewRef, pressed);
|
||||
UIManager.dispatchViewManagerCommand(
|
||||
ReactNative.findNodeHandle(this),
|
||||
UIManager.getViewManagerConfig('RCTView').Commands.setPressed,
|
||||
[pressed],
|
||||
);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
|
@ -313,7 +318,6 @@ const TouchableNativeFeedback = createReactClass({
|
|||
accessibilityActions: this.props.accessibilityActions,
|
||||
onAccessibilityAction: this.props.onAccessibilityAction,
|
||||
children,
|
||||
ref: this._handleRef,
|
||||
testID: this.props.testID,
|
||||
onLayout: this.props.onLayout,
|
||||
hitSlop: this.props.hitSlop,
|
||||
|
|
|
@ -10,17 +10,13 @@
|
|||
|
||||
'use strict';
|
||||
|
||||
const React = require('react');
|
||||
const Platform = require('../../Utilities/Platform');
|
||||
const ReactNative = require('../../Renderer/shims/ReactNative');
|
||||
const ReactNativeViewViewConfigAndroid = require('./ReactNativeViewViewConfigAndroid');
|
||||
|
||||
const registerGeneratedViewConfig = require('../../Utilities/registerGeneratedViewConfig');
|
||||
const requireNativeComponent = require('../../ReactNative/requireNativeComponent');
|
||||
const codegenNativeCommands = require('../../Utilities/codegenNativeCommands')
|
||||
.default;
|
||||
|
||||
import type {Int32} from '../../Types/CodegenTypes';
|
||||
import type {ViewProps} from './ViewPropTypes';
|
||||
|
||||
export type ViewNativeComponentType = Class<
|
||||
|
@ -70,22 +66,5 @@ if (__DEV__) {
|
|||
NativeViewComponent = requireNativeComponent('RCTView');
|
||||
}
|
||||
|
||||
// These commands are Android only
|
||||
interface NativeCommands {
|
||||
+hotspotUpdate: (
|
||||
viewRef: React.ElementRef<ViewNativeComponentType>,
|
||||
x: Int32,
|
||||
y: Int32,
|
||||
) => void;
|
||||
+setPressed: (
|
||||
viewRef: React.ElementRef<ViewNativeComponentType>,
|
||||
pressed: boolean,
|
||||
) => void;
|
||||
}
|
||||
|
||||
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
||||
supportedCommands: ['hotspotUpdate', 'setPressed'],
|
||||
});
|
||||
|
||||
export const __INTERNAL_VIEW_CONFIG = viewConfig;
|
||||
export default ((NativeViewComponent: any): ViewNativeComponentType);
|
||||
|
|
Загрузка…
Ссылка в новой задаче