Skip to content

Commit f730532

Browse files
Bartlomiej Bloniarzfacebook-github-bot
authored andcommitted
Extract cloneProp in animation backend
Summary: This diff extracts the `cloneProp` helper from `AnimationBackend::cloneProps` so the logic can be reused # Changelog [General] [Changed] - Extracted `cloneProp` from `AnimationBackend.cpp` to `AnimatedProps.h` Differential Revision: D86414627
1 parent 79b09ce commit f730532

File tree

2 files changed

+30
-28
lines changed

2 files changed

+30
-28
lines changed

packages/react-native/ReactCommon/react/renderer/animationbackend/AnimatedProps.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,33 @@ struct AnimatedProps {
3737
std::vector<std::unique_ptr<AnimatedPropBase>> props;
3838
std::unique_ptr<RawProps> rawProps;
3939
};
40+
41+
inline void cloneProp(BaseViewProps &viewProps, std::unique_ptr<AnimatedPropBase> &animatedProp)
42+
{
43+
switch (animatedProp->propName) {
44+
case OPACITY:
45+
viewProps.opacity = get<Float>(animatedProp);
46+
break;
47+
48+
case WIDTH:
49+
viewProps.yogaStyle.setDimension(yoga::Dimension::Width, get<yoga::Style::SizeLength>(animatedProp));
50+
break;
51+
52+
case HEIGHT:
53+
viewProps.yogaStyle.setDimension(yoga::Dimension::Height, get<yoga::Style::SizeLength>(animatedProp));
54+
break;
55+
56+
case BORDER_RADII:
57+
viewProps.borderRadii = get<CascadedBorderRadii>(animatedProp);
58+
break;
59+
60+
case FLEX:
61+
viewProps.yogaStyle.setFlex(get<yoga::FloatOptional>(animatedProp));
62+
break;
63+
64+
case TRANSFORM:
65+
viewProps.transform = get<Transform>(animatedProp);
66+
break;
67+
}
68+
}
4069
} // namespace facebook::react

packages/react-native/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -41,34 +41,7 @@ static inline Props::Shared cloneProps(
4141
auto viewProps = std::const_pointer_cast<BaseViewProps>(
4242
std::static_pointer_cast<const BaseViewProps>(newProps));
4343
for (auto& animatedProp : animatedProps.props) {
44-
switch (animatedProp->propName) {
45-
case OPACITY:
46-
viewProps->opacity = get<Float>(animatedProp);
47-
break;
48-
49-
case WIDTH:
50-
viewProps->yogaStyle.setDimension(
51-
yoga::Dimension::Width, get<yoga::Style::SizeLength>(animatedProp));
52-
break;
53-
54-
case HEIGHT:
55-
viewProps->yogaStyle.setDimension(
56-
yoga::Dimension::Height,
57-
get<yoga::Style::SizeLength>(animatedProp));
58-
break;
59-
60-
case BORDER_RADII:
61-
viewProps->borderRadii = get<CascadedBorderRadii>(animatedProp);
62-
break;
63-
64-
case FLEX:
65-
viewProps->yogaStyle.setFlex(get<yoga::FloatOptional>(animatedProp));
66-
break;
67-
68-
case TRANSFORM:
69-
viewProps->transform = get<Transform>(animatedProp);
70-
break;
71-
}
44+
cloneProp(*viewProps, animatedProp);
7245
}
7346
return newProps;
7447
}

0 commit comments

Comments
 (0)