Skip to content

Commit 69f8cf1

Browse files
Riccardo Cipolleschifacebook-github-bot
Riccardo Cipolleschi
authored andcommitted
Always generate the EventEmitters (#34750)
Summary: Pull Request resolved: #34750 This Diff is the first step of enabling the CodeGen to parse and generate a NativeState for the components. The feature has been largely requested by the OSS community but it could be also helpful for people in Meta. To allow the generation of custom `NativeState`, we first have to always generate a `ViewEventEmitter`: that's because the `ConcreteShadowNode` template lists the Generics with this order: `Name`, `Props`, `EventEmitter`, Others... If we skip the `EventEmitters` and we put the `State`, React Native would think that the State is actually an `EventEmitter` and the build step will fail. ## Changelog [General][Added] - Always generate a ViewEventEmitter for Fabric Components Reviewed By: cortinico Differential Revision: D39509869 fbshipit-source-id: 390cc146ef013baf1ed09d55a0182a5aeb5b9d9e
1 parent 15dbd91 commit 69f8cf1

File tree

7 files changed

+401
-59
lines changed

7 files changed

+401
-59
lines changed

packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GenerateEventEmitterH-test.js.snap

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@ Object {
1919
namespace facebook {
2020
namespace react {
2121
22+
class JSI_EXPORT ArrayPropsNativeComponentViewEventEmitter : public ViewEventEmitter {
23+
public:
24+
using ViewEventEmitter::ViewEventEmitter;
2225
26+
27+
28+
29+
};
2330
2431
} // namespace react
2532
} // namespace facebook
@@ -46,7 +53,14 @@ Object {
4653
namespace facebook {
4754
namespace react {
4855
56+
class JSI_EXPORT BooleanPropNativeComponentViewEventEmitter : public ViewEventEmitter {
57+
public:
58+
using ViewEventEmitter::ViewEventEmitter;
4959
60+
61+
62+
63+
};
5064
5165
} // namespace react
5266
} // namespace facebook
@@ -73,7 +87,14 @@ Object {
7387
namespace facebook {
7488
namespace react {
7589
90+
class JSI_EXPORT ColorPropNativeComponentViewEventEmitter : public ViewEventEmitter {
91+
public:
92+
using ViewEventEmitter::ViewEventEmitter;
93+
94+
7695
96+
97+
};
7798
7899
} // namespace react
79100
} // namespace facebook
@@ -100,7 +121,14 @@ Object {
100121
namespace facebook {
101122
namespace react {
102123
124+
class JSI_EXPORT EdgeInsetsPropNativeComponentViewEventEmitter : public ViewEventEmitter {
125+
public:
126+
using ViewEventEmitter::ViewEventEmitter;
127+
128+
103129
130+
131+
};
104132
105133
} // namespace react
106134
} // namespace facebook
@@ -127,7 +155,14 @@ Object {
127155
namespace facebook {
128156
namespace react {
129157
158+
class JSI_EXPORT EnumPropNativeComponentViewEventEmitter : public ViewEventEmitter {
159+
public:
160+
using ViewEventEmitter::ViewEventEmitter;
161+
162+
130163
164+
165+
};
131166
132167
} // namespace react
133168
} // namespace facebook
@@ -281,7 +316,14 @@ Object {
281316
namespace facebook {
282317
namespace react {
283318
319+
class JSI_EXPORT FloatPropsNativeComponentViewEventEmitter : public ViewEventEmitter {
320+
public:
321+
using ViewEventEmitter::ViewEventEmitter;
322+
323+
284324
325+
326+
};
285327
286328
} // namespace react
287329
} // namespace facebook
@@ -308,7 +350,14 @@ Object {
308350
namespace facebook {
309351
namespace react {
310352
353+
class JSI_EXPORT ImagePropNativeComponentViewEventEmitter : public ViewEventEmitter {
354+
public:
355+
using ViewEventEmitter::ViewEventEmitter;
356+
357+
311358
359+
360+
};
312361
313362
} // namespace react
314363
} // namespace facebook
@@ -335,7 +384,14 @@ Object {
335384
namespace facebook {
336385
namespace react {
337386
387+
class JSI_EXPORT IntegerPropNativeComponentViewEventEmitter : public ViewEventEmitter {
388+
public:
389+
using ViewEventEmitter::ViewEventEmitter;
338390
391+
392+
393+
394+
};
339395
340396
} // namespace react
341397
} // namespace facebook
@@ -398,7 +454,14 @@ Object {
398454
namespace facebook {
399455
namespace react {
400456
457+
class JSI_EXPORT MultiNativePropNativeComponentViewEventEmitter : public ViewEventEmitter {
458+
public:
459+
using ViewEventEmitter::ViewEventEmitter;
460+
461+
401462
463+
464+
};
402465
403466
} // namespace react
404467
} // namespace facebook
@@ -425,7 +488,14 @@ Object {
425488
namespace facebook {
426489
namespace react {
427490
491+
class JSI_EXPORT NoPropsNoEventsNativeComponentViewEventEmitter : public ViewEventEmitter {
492+
public:
493+
using ViewEventEmitter::ViewEventEmitter;
494+
495+
428496
497+
498+
};
429499
430500
} // namespace react
431501
} // namespace facebook
@@ -452,7 +522,14 @@ Object {
452522
namespace facebook {
453523
namespace react {
454524
525+
class JSI_EXPORT ObjectPropsNativeComponentEventEmitter : public ViewEventEmitter {
526+
public:
527+
using ViewEventEmitter::ViewEventEmitter;
455528
529+
530+
531+
532+
};
456533
457534
} // namespace react
458535
} // namespace facebook
@@ -479,7 +556,14 @@ Object {
479556
namespace facebook {
480557
namespace react {
481558
559+
class JSI_EXPORT PointPropNativeComponentViewEventEmitter : public ViewEventEmitter {
560+
public:
561+
using ViewEventEmitter::ViewEventEmitter;
482562
563+
564+
565+
566+
};
483567
484568
} // namespace react
485569
} // namespace facebook
@@ -506,7 +590,14 @@ Object {
506590
namespace facebook {
507591
namespace react {
508592
593+
class JSI_EXPORT StringPropNativeComponentViewEventEmitter : public ViewEventEmitter {
594+
public:
595+
using ViewEventEmitter::ViewEventEmitter;
596+
597+
509598
599+
600+
};
510601
511602
} // namespace react
512603
} // namespace facebook

0 commit comments

Comments
 (0)