diff --git a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap index 9987d1a14f5b..3c41104422ad 100644 --- a/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap +++ b/packages/react-native-codegen/e2e/deep_imports/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap @@ -532,7 +532,7 @@ folly::dynamic ImagePropNativeComponentViewProps::getDiffProps( folly::dynamic result = HostPlatformViewProps::getDiffProps(prevProps); if (thumbImage != oldProps->thumbImage) { - result[\\"thumbImage\\"] = thumbImage.toDynamic(); + result[\\"thumbImage\\"] = toDynamic(thumbImage); } return result; } @@ -740,7 +740,7 @@ folly::dynamic MultiNativePropNativeComponentViewProps::getDiffProps( folly::dynamic result = HostPlatformViewProps::getDiffProps(prevProps); if (thumbImage != oldProps->thumbImage) { - result[\\"thumbImage\\"] = thumbImage.toDynamic(); + result[\\"thumbImage\\"] = toDynamic(thumbImage); } if (color != oldProps->color) { diff --git a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap index 6c1446ec7432..953bd7b8f53a 100644 --- a/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap +++ b/packages/react-native-codegen/e2e/namespaced/__tests__/components/__snapshots__/GeneratePropsCpp-test.js.snap @@ -532,7 +532,7 @@ folly::dynamic ImagePropNativeComponentViewProps::getDiffProps( folly::dynamic result = HostPlatformViewProps::getDiffProps(prevProps); if (thumbImage != oldProps->thumbImage) { - result[\\"thumbImage\\"] = thumbImage.toDynamic(); + result[\\"thumbImage\\"] = toDynamic(thumbImage); } return result; } @@ -740,7 +740,7 @@ folly::dynamic MultiNativePropNativeComponentViewProps::getDiffProps( folly::dynamic result = HostPlatformViewProps::getDiffProps(prevProps); if (thumbImage != oldProps->thumbImage) { - result[\\"thumbImage\\"] = thumbImage.toDynamic(); + result[\\"thumbImage\\"] = toDynamic(thumbImage); } if (color != oldProps->color) { diff --git a/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js b/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js index 456725c5fcfb..45ed761e5552 100644 --- a/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js +++ b/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js @@ -105,7 +105,7 @@ function generatePropsDiffString( case 'ImageSourcePrimitive': return ` if (${prop.name} != oldProps->${prop.name}) { - result["${prop.name}"] = ${prop.name}.toDynamic(); + result["${prop.name}"] = toDynamic(${prop.name}); }`; case 'ImageRequestPrimitive': // Shouldn't be used in props diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap index 929d08d2194a..4f75a16632ed 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap @@ -852,7 +852,7 @@ folly::dynamic ImagePropNativeComponentProps::getDiffProps( folly::dynamic result = HostPlatformViewProps::getDiffProps(prevProps); if (thumbImage != oldProps->thumbImage) { - result[\\"thumbImage\\"] = thumbImage.toDynamic(); + result[\\"thumbImage\\"] = toDynamic(thumbImage); } return result; } @@ -1152,7 +1152,7 @@ folly::dynamic ImageColorPropNativeComponentProps::getDiffProps( folly::dynamic result = HostPlatformViewProps::getDiffProps(prevProps); if (thumbImage != oldProps->thumbImage) { - result[\\"thumbImage\\"] = thumbImage.toDynamic(); + result[\\"thumbImage\\"] = toDynamic(thumbImage); } if (color != oldProps->color) { diff --git a/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp index bd3d4dcb78ac..489ce787753d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp @@ -201,17 +201,17 @@ folly::dynamic ImageProps::getDiffProps(const Props* prevProps) const { if (sources != oldProps->sources) { auto sourcesArray = folly::dynamic::array(); for (const auto& source : sources) { - sourcesArray.push_back(source.toDynamic()); + sourcesArray.push_back(toDynamic(source)); } result["source"] = sourcesArray; } if (defaultSource != oldProps->defaultSource) { - result["defaultSource"] = defaultSource.toDynamic(); + result["defaultSource"] = toDynamic(defaultSource); } if (loadingIndicatorSource != oldProps->loadingIndicatorSource) { - result["loadingIndicatorSource"] = loadingIndicatorSource.toDynamic(); + result["loadingIndicatorSource"] = toDynamic(loadingIndicatorSource); } if (resizeMode != oldProps->resizeMode) { diff --git a/packages/react-native/ReactCommon/react/renderer/imagemanager/primitives.h b/packages/react-native/ReactCommon/react/renderer/imagemanager/primitives.h index 7c79f970a8c0..a89807bcb215 100644 --- a/packages/react-native/ReactCommon/react/renderer/imagemanager/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/imagemanager/primitives.h @@ -92,6 +92,12 @@ class ImageSource { #endif }; +#ifdef RN_SERIALIZABLE_STATE +inline folly::dynamic toDynamic(const ImageSource& imageSource) { + return imageSource.toDynamic(); +} +#endif + using ImageSources = std::vector; enum class ImageResizeMode {