From f47082be116e1ed0c0e31cfc8b93a8d87dcee804 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Tue, 1 Mar 2022 16:27:52 -0800 Subject: [PATCH] Generate Props C++ structs on all platforms Summary: The props generator assumes that Props are used only on iOS. (i.e: the generator doesn't generate the props code if the iOS platform is excluded). However, Props are also used on Android. So, this diff makes us generate Props for all platforms. Changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D34559900 fbshipit-source-id: 0c25835dd57aa55a094152c147a9f952b9bc6850 --- .../src/generators/components/GeneratePropsCpp.js | 7 ------- .../src/generators/components/GeneratePropsH.js | 7 ------- .../__snapshots__/GeneratePropsCpp-test.js.snap | 6 ++++++ .../__snapshots__/GeneratePropsH-test.js.snap | 11 ++++++++++- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js b/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js index 40cc0faf8f3..145b8467757 100644 --- a/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js +++ b/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js @@ -126,13 +126,6 @@ module.exports = { } return Object.keys(components) - .filter(componentName => { - const component = components[componentName]; - return !( - component.excludedPlatforms && - component.excludedPlatforms.includes('iOS') - ); - }) .map(componentName => { const component = components[componentName]; const newName = `${componentName}Props`; diff --git a/packages/react-native-codegen/src/generators/components/GeneratePropsH.js b/packages/react-native-codegen/src/generators/components/GeneratePropsH.js index 6d1d191e217..df4d37abb02 100644 --- a/packages/react-native-codegen/src/generators/components/GeneratePropsH.js +++ b/packages/react-native-codegen/src/generators/components/GeneratePropsH.js @@ -860,13 +860,6 @@ module.exports = { } return Object.keys(components) - .filter(componentName => { - const component = components[componentName]; - return !( - component.excludedPlatforms && - component.excludedPlatforms.includes('iOS') - ); - }) .map(componentName => { const component = components[componentName]; 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 2d54a94ffbe..ceae8252ed0 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 @@ -398,7 +398,13 @@ Map { namespace facebook { namespace react { +ExcludedAndroidIosComponentProps::ExcludedAndroidIosComponentProps( + const PropsParserContext &context, + const ExcludedAndroidIosComponentProps &sourceProps, + const RawProps &rawProps): ViewProps(context, sourceProps, rawProps) + + {} } // namespace react } // namespace facebook diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap index d2bd083f9ee..f739b225fc0 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap @@ -626,12 +626,21 @@ Map { */ #pragma once - +#include +#include namespace facebook { namespace react { +class ExcludedAndroidIosComponentProps final : public ViewProps { + public: + ExcludedAndroidIosComponentProps() = default; + ExcludedAndroidIosComponentProps(const PropsParserContext& context, const ExcludedAndroidIosComponentProps &sourceProps, const RawProps &rawProps); +#pragma mark - Props + + +}; } // namespace react } // namespace facebook