mirror of
https://github.com/zoriya/react-native-svg.git
synced 2025-12-05 22:56:11 +00:00
Changed `requireNativeComponent` to `codegenNativeComponent` so that upcoming changes (Static View Configs, Bridgeless Mode and idk what more) in `react-native` are available in the library. Also, types and native components are now taken directly from `fabric` folder to make sure the values passed to the native components are the ones defined in props. It should work on all supported versions since `codegenNativeComponent` function exists from RN v. 0.61.0. Suggested by @RSNara and @cipolleschi Reason for [`5394bbb` (#1847)](5394bbbced): - on `Paper`, `Animated` uses `setNativeProps` method when we set `useNativeDriver` to `false`, and does not rerender the component. Therefore, new transform lands only in `SvgView` and is parsed in `RCTViewManager.m` . - on `Fabric`, the same code makes the components rerender. Due to this, information about new transform is passed to the `SvgView` child: `G` , making it apply translations from the transform in its `updateProps` method. - other than `Animated` use-case, on both archs, if we just passed `transform` prop to `Svg` component, it would end up in double transformations now as well. All of those changes are due to https://github.com/software-mansion/react-native-svg/pull/1895, which added proper parsing of RN style `transform` prop (array of transformations objects) therefore making `G` properly handle `transform` prop passed from `Svg`. Reason for [`19bcb24` (#1847)](19bcb2464b): Same as https://github.com/software-mansion/react-native-screens/pull/1624
42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
let supportsCodegenConfig = false;
|
|
try {
|
|
const rnCliAndroidVersion =
|
|
require('@react-native-community/cli-platform-android/package.json').version;
|
|
const [major] = rnCliAndroidVersion.split('.');
|
|
supportsCodegenConfig = major >= 9;
|
|
} catch (e) {
|
|
// ignore
|
|
}
|
|
|
|
module.exports = {
|
|
dependency: {
|
|
platforms: {
|
|
android: supportsCodegenConfig ? {
|
|
componentDescriptors: [
|
|
"RNSVGCircleComponentDescriptor",
|
|
"RNSVGClipPathComponentDescriptor",
|
|
"RNSVGDefsComponentDescriptor",
|
|
"RNSVGEllipseComponentDescriptor",
|
|
"RNSVGForeignObjectComponentDescriptor",
|
|
"RNSVGGroupComponentDescriptor",
|
|
"RNSVGImageComponentDescriptor",
|
|
"RNSVGLinearGradientComponentDescriptor",
|
|
"RNSVGLineComponentDescriptor",
|
|
"RNSVGMarkerComponentDescriptor",
|
|
"RNSVGMaskComponentDescriptor",
|
|
"RNSVGPathComponentDescriptor",
|
|
"RNSVGPatternComponentDescriptor",
|
|
"RNSVGRadialGradientComponentDescriptor",
|
|
"RNSVGRectComponentDescriptor",
|
|
"RNSVGSvgViewAndroidComponentDescriptor",
|
|
"RNSVGSymbolComponentDescriptor",
|
|
"RNSVGTextComponentDescriptor",
|
|
"RNSVGTextPathComponentDescriptor",
|
|
"RNSVGTSpanComponentDescriptor",
|
|
"RNSVGUseComponentDescriptor"
|
|
],
|
|
cmakeListsPath: "../android/src/main/jni/CMakeLists.txt"
|
|
} : {},
|
|
},
|
|
},
|
|
} |