Skip to content

Commit 27723c7

Browse files
Nick Lefeverfacebook-github-bot
authored andcommitted
Clean up prop diffing gen (#52436)
Summary: Pull Request resolved: #52436 Reordered the different property types in the switch/case to group similar outputs together. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D77799101 fbshipit-source-id: 5b7c6d188e9ffa0f1e41f44f82f438afeda04d74
1 parent dcd4307 commit 27723c7

1 file changed

Lines changed: 12 additions & 41 deletions

File tree

packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js

Lines changed: 12 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ function generatePropsDiffString(
8585
case 'StringTypeAnnotation':
8686
case 'Int32TypeAnnotation':
8787
case 'BooleanTypeAnnotation':
88+
case 'MixedTypeAnnotation':
8889
return `
8990
if (${prop.name} != oldProps->${prop.name}) {
9091
result["${prop.name}"] = ${prop.name};
@@ -94,6 +95,14 @@ function generatePropsDiffString(
9495
return `
9596
if ((${prop.name} != oldProps->${prop.name}) && !(std::isnan(${prop.name}) && std::isnan(oldProps->${prop.name}))) {
9697
result["${prop.name}"] = ${prop.name};
98+
}`;
99+
case 'ArrayTypeAnnotation':
100+
case 'ObjectTypeAnnotation':
101+
case 'StringEnumTypeAnnotation':
102+
case 'Int32EnumTypeAnnotation':
103+
return `
104+
if (${prop.name} != oldProps->${prop.name}) {
105+
result["${prop.name}"] = toDynamic(${prop.name});
97106
}`;
98107
case 'ReservedPropTypeAnnotation':
99108
switch (typeAnnotation.name) {
@@ -103,6 +112,9 @@ function generatePropsDiffString(
103112
result["${prop.name}"] = *${prop.name};
104113
}`;
105114
case 'ImageSourcePrimitive':
115+
case 'PointPrimitive':
116+
case 'EdgeInsetsPrimitive':
117+
case 'DimensionPrimitive':
106118
return `
107119
if (${prop.name} != oldProps->${prop.name}) {
108120
result["${prop.name}"] = toDynamic(${prop.name});
@@ -112,52 +124,11 @@ function generatePropsDiffString(
112124
throw new Error(
113125
'ImageRequestPrimitive should not be used in Props',
114126
);
115-
case 'PointPrimitive':
116-
return `
117-
if (${prop.name} != oldProps->${prop.name}) {
118-
result["${prop.name}"] = toDynamic(${prop.name});
119-
}`;
120-
case 'EdgeInsetsPrimitive':
121-
return `
122-
if (${prop.name} != oldProps->${prop.name}) {
123-
result["${prop.name}"] = toDynamic(${prop.name});
124-
}`;
125-
case 'DimensionPrimitive':
126-
return `
127-
if (${prop.name} != oldProps->${prop.name}) {
128-
result["${prop.name}"] = toDynamic(${prop.name});
129-
}`;
130127
default:
131128
(typeAnnotation.name: empty);
132129
throw new Error('Received unknown ReservedPropTypeAnnotation');
133130
}
134-
case 'ArrayTypeAnnotation':
135-
return `
136-
if (${prop.name} != oldProps->${prop.name}) {
137-
result["${prop.name}"] = toDynamic(${prop.name});
138-
}`;
139-
case 'ObjectTypeAnnotation':
140-
return `
141-
if (${prop.name} != oldProps->${prop.name}) {
142-
result["${prop.name}"] = toDynamic(${prop.name});
143-
}`;
144-
case 'StringEnumTypeAnnotation':
145-
return `
146-
if (${prop.name} != oldProps->${prop.name}) {
147-
result["${prop.name}"] = toDynamic(${prop.name});
148-
}`;
149-
case 'Int32EnumTypeAnnotation':
150-
return `
151-
if (${prop.name} != oldProps->${prop.name}) {
152-
result["${prop.name}"] = toDynamic(${prop.name});
153-
}`;
154-
case 'MixedTypeAnnotation':
155-
return `
156-
if (${prop.name} != oldProps->${prop.name}) {
157-
result["${prop.name}"] = ${prop.name};
158-
}`;
159131
default:
160-
// TODO: Implement diffProps for complex types
161132
return '';
162133
}
163134
})

0 commit comments

Comments
 (0)