|
15 | 15 | const ColorPropType = require('ColorPropType');
|
16 | 16 | const EdgeInsetsPropType = require('EdgeInsetsPropType');
|
17 | 17 | const NativeMethodsMixin = require('NativeMethodsMixin');
|
| 18 | +const Platform = require('Platform'); |
18 | 19 | const React = require('React');
|
19 | 20 | const PropTypes = require('prop-types');
|
| 21 | +const ReactNativeViewAttributes = require('ReactNativeViewAttributes'); |
20 | 22 | const StyleSheetPropType = require('StyleSheetPropType');
|
21 | 23 | const TextStylePropTypes = require('TextStylePropTypes');
|
22 | 24 | const Touchable = require('Touchable');
|
23 |
| -const UIManager = require('UIManager'); |
24 | 25 |
|
25 | 26 | const createReactClass = require('create-react-class');
|
26 |
| -const requireNativeComponent = require('requireNativeComponent'); |
| 27 | +const createReactNativeComponentClass = require('createReactNativeComponentClass'); |
27 | 28 | const mergeFast = require('mergeFast');
|
28 | 29 | const processColor = require('processColor');
|
29 | 30 | const {ViewContextTypes} = require('ViewContext');
|
30 | 31 |
|
31 | 32 | const stylePropType = StyleSheetPropType(TextStylePropTypes);
|
32 | 33 |
|
| 34 | +const viewConfig = { |
| 35 | + validAttributes: mergeFast(ReactNativeViewAttributes.UIView, { |
| 36 | + isHighlighted: true, |
| 37 | + numberOfLines: true, |
| 38 | + ellipsizeMode: true, |
| 39 | + allowFontScaling: true, |
| 40 | + disabled: true, |
| 41 | + selectable: true, |
| 42 | + selectionColor: true, |
| 43 | + adjustsFontSizeToFit: true, |
| 44 | + minimumFontScale: true, |
| 45 | + textBreakStrategy: true, |
| 46 | + }), |
| 47 | + uiViewClassName: 'RCTText', |
| 48 | +}; |
| 49 | + |
33 | 50 | import type {ViewChildContext} from 'ViewContext';
|
34 | 51 |
|
35 | 52 | /**
|
@@ -404,6 +421,7 @@ const Text = createReactClass({
|
404 | 421 | });
|
405 | 422 | },
|
406 | 423 | mixins: [NativeMethodsMixin],
|
| 424 | + viewConfig: viewConfig, |
407 | 425 | getChildContext(): ViewChildContext {
|
408 | 426 | return {
|
409 | 427 | isInAParentText: true,
|
@@ -551,11 +569,21 @@ type RectOffset = {
|
551 | 569 | bottom: number,
|
552 | 570 | };
|
553 | 571 |
|
554 |
| -const PRESS_RECT_OFFSET = {top: 20, left: 20, right: 20, bottom: 30}; |
| 572 | +var PRESS_RECT_OFFSET = {top: 20, left: 20, right: 20, bottom: 30}; |
| 573 | + |
| 574 | +var RCTText = createReactNativeComponentClass( |
| 575 | + viewConfig.uiViewClassName, |
| 576 | + () => viewConfig, |
| 577 | +); |
| 578 | +var RCTVirtualText = RCTText; |
555 | 579 |
|
556 |
| -const RCTText = requireNativeComponent('RCTText'); |
557 |
| -const RCTVirtualText = UIManager.RCTVirtualText |
558 |
| - ? requireNativeComponent('RCTVirtualText') |
559 |
| - : RCTText; |
| 580 | +if (Platform.OS === 'android') { |
| 581 | + RCTVirtualText = createReactNativeComponentClass('RCTVirtualText', () => ({ |
| 582 | + validAttributes: mergeFast(ReactNativeViewAttributes.UIView, { |
| 583 | + isHighlighted: true, |
| 584 | + }), |
| 585 | + uiViewClassName: 'RCTVirtualText', |
| 586 | + })); |
| 587 | +} |
560 | 588 |
|
561 | 589 | module.exports = Text;
|
0 commit comments