Files
react-native/Libraries/Image/ImageViewNativeComponent.js
T
David Vacca 959bc47c18 Add internal_analyticTag into RCTImageView JS view configs
Summary:
this diff fixes the next error:

```
'RCTImageView' has a view config that does not match native. 'validAttributes' is missing: internal_analyticTag
    in RCTImageView (at Image.ios.js:149)
    in ImageAnalyticsTagContext.Consumer (at Image.ios.js:146)
    in Image (at TintedIcon.js:55)
    in TintedIcon (at TetraIcon.js:98)
    in TetraIcon (at FDSCheckbox.js:67)
    in FDSCheckbox (at TetraListCell.js:820)
    in TetraAddOnSecondary (at TetraListCell.js:576)
    in TetraPressable (at TetraListCell.js:603)
    in TetraListCell (created by TetraListCell)
    in TetraListCell (at RNInternalSettingsUnit.js:35)
    in TetraList (at RNInternalSettingsUnit.js:32)
    in RNInternalSettingsUnit (at RNInternalSettingsDeveloperModeUnit.new.js:73)
    in RNInternalSettingsDeveloperModeUnit (at RNInternalSettingsSurface.js:79)
    in RNInternalSettingsSurface (at withDefaultErrorBoundary.js:30)
    in DefaultError(React.lazy(RNInternalSettingsSurfaceForFacebook)) (at renderApplication.js:47)
```

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D25313414

fbshipit-source-id: ab951d25ac6a80809a2977c80ff059f667cc5595
2020-12-04 10:54:33 -08:00

102 lines
2.5 KiB
JavaScript

/**
* 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
*/
'use strict';
import type {ResolvedAssetSource} from './AssetSourceResolver';
import type {ImageProps} from './ImageProps';
import type {ViewProps} from '../Components/View/ViewPropTypes';
import * as NativeComponentRegistry from '../NativeComponent/NativeComponentRegistry';
import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
import type {
ColorValue,
DangerouslyImpreciseStyle,
ImageStyleProp,
} from '../StyleSheet/StyleSheet';
type Props = $ReadOnly<{
...ImageProps,
...ViewProps,
style?: ImageStyleProp | DangerouslyImpreciseStyle,
// iOS native props
tintColor?: ColorValue,
// Android native props
shouldNotifyLoadEvents?: boolean,
src?: ?ResolvedAssetSource | $ReadOnlyArray<{uri: string, ...}>,
headers?: ?string,
defaultSrc?: ?string,
loadingIndicatorSrc?: ?string,
}>;
const ImageViewNativeComponent: HostComponent<Props> = NativeComponentRegistry.get<Props>(
'RCTImageView',
() => ({
uiViewClassName: 'RCTImageView',
bubblingEventTypes: {},
directEventTypes: {
topLoadStart: {
registrationName: 'onLoadStart',
},
topProgress: {
registrationName: 'onProgress',
},
topError: {
registrationName: 'onError',
},
topPartialLoad: {
registrationName: 'onPartialLoad',
},
topLoad: {
registrationName: 'onLoad',
},
topLoadEnd: {
registrationName: 'onLoadEnd',
},
},
validAttributes: {
blurRadius: true,
capInsets: {
diff: require('../Utilities/differ/insetsDiffer'),
},
defaultSource: {
process: require('./resolveAssetSource'),
},
defaultSrc: true,
fadeDuration: true,
headers: true,
internal_analyticTag: true,
loadingIndicatorSrc: true,
onError: true,
onLoad: true,
onLoadEnd: true,
onLoadStart: true,
onPartialLoad: true,
onProgress: true,
overlayColor: {
process: require('../StyleSheet/processColor'),
},
progressiveRenderingEnabled: true,
resizeMethod: true,
resizeMode: true,
shouldNotifyLoadEvents: true,
source: true,
src: true,
tintColor: {
process: require('../StyleSheet/processColor'),
},
},
}),
);
export default ImageViewNativeComponent;