Skip to content

Commit d857f09

Browse files
mdvaccafacebook-github-bot
authored andcommitted
[skip ci] Implement prop diffing for event props in <View> (facebook#48830)
Summary: This diff implements the diffing for event props of <View> changelog: [internal] internal Reviewed By: javache Differential Revision: D59972038
1 parent d4e9e36 commit d857f09

File tree

1 file changed

+192
-25
lines changed
  • packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view

1 file changed

+192
-25
lines changed

packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp

Lines changed: 192 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,18 @@ SharedDebugStringConvertibleList HostPlatformViewProps::getDebugProps() const {
135135

136136
#ifdef ANDROID
137137

138+
inline static void updateEventProp(
139+
folly::dynamic& result,
140+
const ViewEvents& newEvents,
141+
const ViewEvents& oldEvents,
142+
const ViewEvents::Offset& offset,
143+
const std::string& name) {
144+
if (newEvents[offset] != oldEvents[offset]) {
145+
auto value = newEvents[offset];
146+
result[name] = value;
147+
}
148+
}
149+
138150
folly::dynamic HostPlatformViewProps::getDiffProps(
139151
const Props* prevProps) const {
140152
folly::dynamic result = folly::dynamic::object();
@@ -222,39 +234,194 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
222234
result["pointerEvents"] = "auto";
223235
break;
224236
}
237+
}
225238

226-
if (nativeId != oldProps->nativeId) {
227-
result["nativeId"] = nativeId;
228-
}
239+
if (nativeId != oldProps->nativeId) {
240+
result["nativeId"] = nativeId;
241+
}
229242

230-
if (testId != oldProps->testId) {
231-
result["testId"] = testId;
232-
}
243+
if (testId != oldProps->testId) {
244+
result["testId"] = testId;
245+
}
233246

234-
if (accessible != oldProps->accessible) {
235-
result["accessible"] = accessible;
236-
}
247+
if (accessible != oldProps->accessible) {
248+
result["accessible"] = accessible;
249+
}
237250

238-
if (getClipsContentToBounds() != oldProps->getClipsContentToBounds()) {
239-
result["overflow"] = getClipsContentToBounds() ? "hidden" : "visible";
240-
result["scroll"] = result["overflow"];
241-
}
251+
if (getClipsContentToBounds() != oldProps->getClipsContentToBounds()) {
252+
result["overflow"] = getClipsContentToBounds() ? "hidden" : "visible";
253+
result["scroll"] = result["overflow"];
254+
}
242255

243-
if (backfaceVisibility != oldProps->backfaceVisibility) {
244-
switch (backfaceVisibility) {
245-
case BackfaceVisibility::Auto:
246-
result["backfaceVisibility"] = "auto";
247-
break;
248-
case BackfaceVisibility::Visible:
249-
result["backfaceVisibility"] = "visible";
250-
break;
251-
case BackfaceVisibility::Hidden:
252-
result["backfaceVisibility"] = "hidden";
253-
break;
254-
}
256+
if (backfaceVisibility != oldProps->backfaceVisibility) {
257+
switch (backfaceVisibility) {
258+
case BackfaceVisibility::Auto:
259+
result["backfaceVisibility"] = "auto";
260+
break;
261+
case BackfaceVisibility::Visible:
262+
result["backfaceVisibility"] = "visible";
263+
break;
264+
case BackfaceVisibility::Hidden:
265+
result["backfaceVisibility"] = "hidden";
266+
break;
255267
}
256268
}
257269

270+
if (events != oldProps->events) {
271+
updateEventProp(
272+
result,
273+
events,
274+
oldProps->events,
275+
ViewEvents::Offset::PointerEnter,
276+
"onPointerEnter");
277+
updateEventProp(
278+
result,
279+
events,
280+
oldProps->events,
281+
ViewEvents::Offset::PointerEnterCapture,
282+
"onPointerEnterCapture");
283+
updateEventProp(
284+
result,
285+
events,
286+
oldProps->events,
287+
ViewEvents::Offset::PointerMove,
288+
"onPointerMove");
289+
updateEventProp(
290+
result,
291+
events,
292+
oldProps->events,
293+
ViewEvents::Offset::PointerMoveCapture,
294+
"onPointerMoveCapture");
295+
updateEventProp(
296+
result,
297+
events,
298+
oldProps->events,
299+
ViewEvents::Offset::PointerLeave,
300+
"onPointerLeave");
301+
updateEventProp(
302+
result,
303+
events,
304+
oldProps->events,
305+
ViewEvents::Offset::PointerLeaveCapture,
306+
"onPointerLeaveCapture");
307+
updateEventProp(
308+
result,
309+
events,
310+
oldProps->events,
311+
ViewEvents::Offset::PointerOver,
312+
"onPointerOver");
313+
updateEventProp(
314+
result,
315+
events,
316+
oldProps->events,
317+
ViewEvents::Offset::PointerOut,
318+
"onPointerOut");
319+
updateEventProp(
320+
result, events, oldProps->events, ViewEvents::Offset::Click, "onClick");
321+
updateEventProp(
322+
result,
323+
events,
324+
oldProps->events,
325+
ViewEvents::Offset::MoveShouldSetResponder,
326+
"onMoveShouldSetResponder");
327+
updateEventProp(
328+
result,
329+
events,
330+
oldProps->events,
331+
ViewEvents::Offset::MoveShouldSetResponderCapture,
332+
"onMoveShouldSetResponderCapture");
333+
updateEventProp(
334+
result,
335+
events,
336+
oldProps->events,
337+
ViewEvents::Offset::StartShouldSetResponder,
338+
"onStartShouldSetResponder");
339+
updateEventProp(
340+
result,
341+
events,
342+
oldProps->events,
343+
ViewEvents::Offset::StartShouldSetResponderCapture,
344+
"onStartShouldSetResponderCapture");
345+
updateEventProp(
346+
result,
347+
events,
348+
oldProps->events,
349+
ViewEvents::Offset::ResponderGrant,
350+
"onResponderGrant");
351+
updateEventProp(
352+
result,
353+
events,
354+
oldProps->events,
355+
ViewEvents::Offset::ResponderReject,
356+
"onResponderReject");
357+
updateEventProp(
358+
result,
359+
events,
360+
oldProps->events,
361+
ViewEvents::Offset::ResponderStart,
362+
"onResponderStart");
363+
updateEventProp(
364+
result,
365+
events,
366+
oldProps->events,
367+
ViewEvents::Offset::ResponderEnd,
368+
"onResponderEnd");
369+
updateEventProp(
370+
result,
371+
events,
372+
oldProps->events,
373+
ViewEvents::Offset::ResponderRelease,
374+
"onResponderRelease");
375+
updateEventProp(
376+
result,
377+
events,
378+
oldProps->events,
379+
ViewEvents::Offset::ResponderMove,
380+
"onResponderMove");
381+
updateEventProp(
382+
result,
383+
events,
384+
oldProps->events,
385+
ViewEvents::Offset::ResponderTerminate,
386+
"onResponderTerminate");
387+
updateEventProp(
388+
result,
389+
events,
390+
oldProps->events,
391+
ViewEvents::Offset::ResponderTerminationRequest,
392+
"onResponderTerminationRequest");
393+
updateEventProp(
394+
result,
395+
events,
396+
oldProps->events,
397+
ViewEvents::Offset::ShouldBlockNativeResponder,
398+
"onShouldBlockNativeResponder");
399+
updateEventProp(
400+
result,
401+
events,
402+
oldProps->events,
403+
ViewEvents::Offset::TouchStart,
404+
"onTouchStart");
405+
updateEventProp(
406+
result,
407+
events,
408+
oldProps->events,
409+
ViewEvents::Offset::TouchMove,
410+
"onTouchMove");
411+
updateEventProp(
412+
result,
413+
events,
414+
oldProps->events,
415+
ViewEvents::Offset::TouchEnd,
416+
"onTouchEnd");
417+
updateEventProp(
418+
result,
419+
events,
420+
oldProps->events,
421+
ViewEvents::Offset::TouchCancel,
422+
"onTouchCancel");
423+
}
424+
258425
return result;
259426
}
260427

0 commit comments

Comments
 (0)