Skip to content

Commit 09a810a

Browse files
sammy-SCfacebook-github-bot
authored andcommitted
Call setSurfaceProps when props change in SurfaceHandler (#37087)
Summary: Pull Request resolved: #37087 changelog: [internal] Surface props can change during life cycle of a surface. This was supported before the new renderer as well. AppRegistry has a corresponding method for this: `AppRegistry.setSurfaceProps`. To add support for this, we just need to call into `UIManager::setSurfaceProps`. Reviewed By: rshest Differential Revision: D45272046 fbshipit-source-id: d138b57d5c83f554839b0db0e6721045b8dc81ef
1 parent bfeef95 commit 09a810a

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

packages/react-native/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,25 @@ std::string SurfaceHandler::getModuleName() const noexcept {
162162

163163
void SurfaceHandler::setProps(folly::dynamic const &props) const noexcept {
164164
SystraceSection s("SurfaceHandler::setProps");
165-
std::unique_lock lock(parametersMutex_);
166-
parameters_.props = props;
165+
auto parameters = Parameters{};
166+
{
167+
std::unique_lock lock(parametersMutex_);
168+
169+
parameters_.props = props;
170+
parameters = parameters_;
171+
}
172+
173+
{
174+
std::shared_lock lock(linkMutex_);
175+
176+
if (link_.status == Status::Running) {
177+
link_.uiManager->setSurfaceProps(
178+
parameters.surfaceId,
179+
parameters.moduleName,
180+
parameters.props,
181+
parameters.displayMode);
182+
}
183+
}
167184
}
168185

169186
folly::dynamic SurfaceHandler::getProps() const noexcept {

0 commit comments

Comments
 (0)