Skip to content

Commit 645b643

Browse files
genkikondofacebook-github-bot
authored andcommitted
Enable animating skew in transforms with native driver (#36933)
Summary: Pull Request resolved: #36933 Skew is already supported on the platform side; there's no reason to disable animating it. Changelog: [General][Added] - Enable animating skew in transforms with native driver Reviewed By: mdvacca Differential Revision: D45053914 fbshipit-source-id: 31198c35eeb55211a3ff88c968707db65b025f49
1 parent e2e59c4 commit 645b643

File tree

3 files changed

+6
-14
lines changed

3 files changed

+6
-14
lines changed

packages/react-native/Libraries/Animated/NativeAnimatedHelper.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,8 @@ const SUPPORTED_TRANSFORMS = {
425425
rotateY: true,
426426
rotateZ: true,
427427
perspective: true,
428+
skewX: true,
429+
skewY: true,
428430
matrix: ReactNativeFeatureFlags.shouldUseAnimatedObjectForTransform(),
429431
};
430432

packages/react-native/Libraries/StyleSheet/private/_TransformStyle.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ export type ____TransformStyle_Internal = $ReadOnly<{|
4444
| [number | AnimatedNode, number | AnimatedNode]
4545
| AnimatedNode,
4646
|}
47-
| {|+skewX: string|}
48-
| {|+skewY: string|}
47+
| {|+skewX: string | AnimatedNode|}
48+
| {|+skewY: string | AnimatedNode|}
4949
// TODO: what is the actual type it expects?
5050
| {|
5151
+matrix: $ReadOnlyArray<number | AnimatedNode> | AnimatedNode,

packages/rn-tester/js/examples/Animated/TransformStylesExample.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,6 @@ function AnimatedView({
7474
);
7575
}
7676

77-
function notSupportedByNativeDriver(property: string) {
78-
return property === 'skewX' || property === 'skewY';
79-
}
80-
8177
function AnimatedTransformStyleExample(): React.Node {
8278
const [properties, setProperties] = React.useState(transformProperties);
8379
const [useNativeDriver, setUseNativeDriver] = React.useState(false);
@@ -109,9 +105,6 @@ function AnimatedTransformStyleExample(): React.Node {
109105
key={property}
110106
label={property}
111107
multiSelect
112-
disabled={
113-
notSupportedByNativeDriver(property) && useNativeDriver
114-
}
115108
selected={properties[property].selected}
116109
onPress={() => {
117110
onToggle(property);
@@ -127,9 +120,7 @@ function AnimatedTransformStyleExample(): React.Node {
127120
useNativeDriver={useNativeDriver}
128121
// $FlowFixMe[incompatible-call]
129122
properties={Object.keys(properties).filter(
130-
property =>
131-
properties[property].selected &&
132-
!(useNativeDriver && notSupportedByNativeDriver(property)),
123+
property => properties[property].selected,
133124
)}
134125
/>
135126
</View>
@@ -163,7 +154,6 @@ const styles = StyleSheet.create({
163154
export default ({
164155
title: 'Transform Styles',
165156
name: 'transformStyles',
166-
description:
167-
'Variations of transform styles. `skewX` and `skewY` are not supported on native driver.',
157+
description: 'Variations of transform styles.',
168158
render: () => <AnimatedTransformStyleExample />,
169159
}: RNTesterModuleExample);

0 commit comments

Comments
 (0)