Skip to content

Commit 5965e6b

Browse files
coadometa-codesync[bot]
authored andcommitted
Add stable API guards for the Image component (#57966)
Summary: Pull Request resolved: #57966 This diff rolls umbrella guards for `react/renderer/components/image`. Initially, we consider image component target as public so the Umbrella file is added as the proxy for all includes. Changelog: [Internal] Differential Revision: D109849952
1 parent 38aa20f commit 5965e6b

11 files changed

Lines changed: 72 additions & 1 deletion

File tree

packages/react-native/ReactAndroid/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ val preparePrefab by
167167
"../ReactCommon/react/renderer/components/image/",
168168
"react/renderer/components/image/",
169169
),
170+
Pair(
171+
"../ReactCommon/react/renderer/components/image/React/",
172+
"React/",
173+
),
170174
// rrc_view
171175
Pair(
172176
"../ReactCommon/react/renderer/components/view/",

packages/react-native/ReactCommon/React-FabricImage.podspec

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,19 @@ Pod::Spec.new do |s|
4343
s.platforms = min_supported_versions
4444
s.source = source
4545
s.source_files = podspec_sources("react/renderer/components/image/**/*.{m,mm,cpp,h}", "react/renderer/components/image/**/*.h")
46-
s.exclude_files = "react/renderer/components/image/tests"
46+
s.exclude_files = ["react/renderer/components/image/tests", "react/renderer/components/image/React"]
4747
s.header_dir = "react/renderer/components/image"
4848
s.pod_target_xcconfig = { "USE_HEADERMAP" => "YES",
4949
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
5050
"HEADER_SEARCH_PATHS" => header_search_path.join(" ")
5151
}
5252

53+
s.subspec "ImageUmbrella" do |ss|
54+
ss.source_files = "react/renderer/components/image/React/*.h"
55+
ss.header_dir = "React"
56+
ss.header_mappings_dir = "react/renderer/components/image/React"
57+
end
58+
5359
resolve_use_frameworks(s, header_mappings_dir: './', module_name: "React_FabricImage")
5460

5561
s.dependency "React-jsiexecutor", version
@@ -60,6 +66,7 @@ Pod::Spec.new do |s|
6066
s.dependency "React-featureflags"
6167
s.dependency "React-utils"
6268
s.dependency "Yoga"
69+
s.dependency "React-cxxstableapi"
6370

6471
add_dependency(s, "React-ImageManager", :additional_framework_paths => [
6572
"react/renderer/components/view/platform/cxx",

packages/react-native/ReactCommon/react/renderer/components/image/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ target_link_libraries(rrc_image
1818
folly_runtime
1919
glog_init
2020
jsi
21+
react_cxxstableapi
2122
react_debug
2223
react_utils
2324
react_renderer_core

packages/react-native/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/renderer/components/image/ImageShadowNode.h>
1113
#include <react/renderer/core/ConcreteComponentDescriptor.h>
1214

packages/react-native/ReactCommon/react/renderer/components/image/ImageEventEmitter.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/renderer/components/view/ViewEventEmitter.h>
1113
#include <react/renderer/imagemanager/primitives.h>
1214

packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/renderer/components/view/ViewProps.h>
1113
#include <react/renderer/core/PropsParserContext.h>
1214
#include <react/renderer/graphics/Color.h>

packages/react-native/ReactCommon/react/renderer/components/image/ImageShadowNode.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/renderer/components/image/ImageEventEmitter.h>
1113
#include <react/renderer/components/image/ImageProps.h>
1214
#include <react/renderer/components/image/ImageState.h>

packages/react-native/ReactCommon/react/renderer/components/image/ImageState.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/renderer/imagemanager/ImageRequest.h>
1113
#include <react/renderer/imagemanager/ImageRequestParams.h>
1214
#include <react/renderer/imagemanager/primitives.h>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
#pragma once
9+
10+
// =============================================================================
11+
// Umbrella header for the `react/renderer/components/image` module - public entry point.
12+
//
13+
// #include <React/Image.h>
14+
//
15+
// Re-exports the module's public interface headers. React Native's own code
16+
// should keep using the fine-grained `<react/renderer/components/image/...>` includes; only outside
17+
// consumers use this umbrella.
18+
// =============================================================================
19+
20+
// Marks that the following headers are pulled in through the umbrella, so their
21+
// shared guard (<react/cxxstableapi/UmbrellaGuard.h>) accepts them.
22+
#define RN_UMBRELLA_CONTEXT
23+
24+
#include <react/renderer/components/image/ImageComponentDescriptor.h>
25+
#include <react/renderer/components/image/ImageEventEmitter.h>
26+
#include <react/renderer/components/image/ImageProps.h>
27+
#include <react/renderer/components/image/ImageShadowNode.h>
28+
#include <react/renderer/components/image/ImageState.h>
29+
#include <react/renderer/components/image/conversions.h>
30+
31+
#undef RN_UMBRELLA_CONTEXT

packages/react-native/ReactCommon/react/renderer/components/image/conversions.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <unordered_map>
1113

1214
#include <glog/logging.h>

0 commit comments

Comments
 (0)