@@ -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