mirror of
https://github.com/status-im/react-native.git
synced 2025-01-09 17:15:54 +00:00
8e3ce0ff98
Summary: Move the ViewAttributes and StyleAttributes configuration into the Components library since they're coupled and change with the native component configuration. This also decouples StyleAttributes from the reconciler by adding it to the ReactViewAttributes. To do that, I refactored the property diffing to allow for recursive configurations. Now an attribute configuration can be a nested object, a custom configuration (diff/process) or true. The requireNativeComponent path incorrectly gets its attributes set up on the root validAttributes instead of the nested style object. So I also have to add the nested form. Effectively these currently allow these attributes on props or nested. @public Reviewed By: @vjeux Differential Revision: D2456842 fb-gh-sync-id: cd5405bd8316c2fcb016d06c61244ce7719c26c0
49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
* @providesModule ReactNativeViewAttributes
|
|
* @flow
|
|
*/
|
|
'use strict';
|
|
|
|
var ReactNativeStyleAttributes = require('ReactNativeStyleAttributes');
|
|
|
|
var ReactNativeViewAttributes = {};
|
|
|
|
ReactNativeViewAttributes.UIView = {
|
|
pointerEvents: true,
|
|
accessible: true,
|
|
accessibilityLabel: true,
|
|
accessibilityComponentType: true,
|
|
accessibilityLiveRegion: true,
|
|
accessibilityTraits: true,
|
|
importantForAccessibility: true,
|
|
testID: true,
|
|
renderToHardwareTextureAndroid: true,
|
|
shouldRasterizeIOS: true,
|
|
onLayout: true,
|
|
onAccessibilityTap: true,
|
|
onMagicTap: true,
|
|
collapsable: true,
|
|
needsOffscreenAlphaCompositing: true,
|
|
style: ReactNativeStyleAttributes,
|
|
};
|
|
|
|
ReactNativeViewAttributes.RCTView = {
|
|
...ReactNativeViewAttributes.UIView,
|
|
|
|
// This is a special performance property exposed by RCTView and useful for
|
|
// scrolling content when there are many subviews, most of which are offscreen.
|
|
// For this property to be effective, it must be applied to a view that contains
|
|
// many subviews that extend outside its bound. The subviews must also have
|
|
// overflow: hidden, as should the containing view (or one of its superviews).
|
|
removeClippedSubviews: true,
|
|
};
|
|
|
|
module.exports = ReactNativeViewAttributes;
|