From 829a3fce6dc7d967983e9ce1e01b0ba6c9d6ff35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Thu, 12 Dec 2024 10:31:15 +0100 Subject: [PATCH] feat: add `RawPropsParser` as optional parameter to Concrete-/ComponentDescriptor --- .../ReactCommon/react/renderer/core/ComponentDescriptor.cpp | 6 ++++-- .../ReactCommon/react/renderer/core/ComponentDescriptor.h | 6 ++++-- .../react/renderer/core/ConcreteComponentDescriptor.h | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.cpp b/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.cpp index ca23205252d1..35e6f37239bd 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +++ b/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.cpp @@ -11,10 +11,12 @@ namespace facebook::react { ComponentDescriptor::ComponentDescriptor( - const ComponentDescriptorParameters& parameters) + const ComponentDescriptorParameters& parameters, + RawPropsParser&& rawPropsParser) : eventDispatcher_(parameters.eventDispatcher), contextContainer_(parameters.contextContainer), - flavor_(parameters.flavor) {} + flavor_(parameters.flavor), + rawPropsParser_(std::move(rawPropsParser)) {} const std::shared_ptr& ComponentDescriptor::getContextContainer() const { diff --git a/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h index 07c5c6cec161..a58806288909 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h @@ -46,7 +46,9 @@ class ComponentDescriptor { */ using Flavor = std::shared_ptr; - ComponentDescriptor(const ComponentDescriptorParameters& parameters); + ComponentDescriptor( + const ComponentDescriptorParameters& parameters, + RawPropsParser&& rawPropsParser = {}); virtual ~ComponentDescriptor() = default; @@ -133,8 +135,8 @@ class ComponentDescriptor { EventDispatcher::Weak eventDispatcher_; std::shared_ptr contextContainer_; - RawPropsParser rawPropsParser_{}; Flavor flavor_; + RawPropsParser rawPropsParser_; /* * Called immediately after `ShadowNode` is created, cloned or state is diff --git a/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h index a6ca39231775..fc1d20160b4a 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h @@ -46,8 +46,10 @@ class ConcreteComponentDescriptor : public ComponentDescriptor { using ConcreteState = typename ShadowNodeT::ConcreteState; using ConcreteStateData = typename ShadowNodeT::ConcreteState::Data; - ConcreteComponentDescriptor(const ComponentDescriptorParameters& parameters) - : ComponentDescriptor(parameters) { + ConcreteComponentDescriptor( + const ComponentDescriptorParameters& parameters, + RawPropsParser&& rawPropsParser = {}) + : ComponentDescriptor(parameters, std::move(rawPropsParser)) { rawPropsParser_.prepare(); }