Home / File/ ReactFabricEventEmitter.js — react Source File

ReactFabricEventEmitter.js — react Source File

Architecture documentation for ReactFabricEventEmitter.js, a javascript file in the react codebase. 14 imports, 1 dependents.

File javascript BabelCompiler 14 imports 1 dependents

Entity Profile

Dependency Diagram

graph LR
  846f0667_39ae_eb6e_55fe_26d3acf81e44["ReactFabricEventEmitter.js"]
  e7f91ff9_eaf6_39c4_5463_6f4e0e1c075f["PluginModuleType.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> e7f91ff9_eaf6_39c4_5463_6f4e0e1c075f
  b2f450b6_f67a_153d_5efb_a03735431450["ReactSyntheticEventType.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> b2f450b6_f67a_153d_5efb_a03735431450
  304edd67_bb4f_7b82_bbee_3b770742ef97["TopLevelEventTypes.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 304edd67_bb4f_7b82_bbee_3b770742ef97
  6b52f26d_d341_6500_ecb0_54a0747596f4["EventPluginRegistry.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 6b52f26d_d341_6500_ecb0_54a0747596f4
  cb0565f2_ac6f_4c74_0235_a8c5f28c4334["ReactGenericBatching.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> cb0565f2_ac6f_4c74_0235_a8c5f28c4334
  b7455b38_0a5f_98b8_80f7_72b10f1f60c9["batchedUpdates"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> b7455b38_0a5f_98b8_80f7_72b10f1f60c9
  c55ef19d_ffff_0be0_ac25_e6d6c8520cd6["accumulateInto.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> c55ef19d_ffff_0be0_ac25_e6d6c8520cd6
  5f61475e_65e9_53ee_1eeb_f357a8fb2b93["ReactNativeGetListener.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 5f61475e_65e9_53ee_1eeb_f357a8fb2b93
  2d91c4ed_9a58_6013_5118_49d8f98f9453["getListener"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 2d91c4ed_9a58_6013_5118_49d8f98f9453
  501868ac_ed82_decd_b0b4_e77c7390f910["EventBatching.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 501868ac_ed82_decd_b0b4_e77c7390f910
  206d6e15_9f6a_1db1_9586_33b342b6cf24["runEventsInBatch"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 206d6e15_9f6a_1db1_9586_33b342b6cf24
  948a0d34_693c_c158_f23e_d41306507c72["ReactFiberConfigFabric.js"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 948a0d34_693c_c158_f23e_d41306507c72
  42892443_e223_3da0_aeb9_e1b32a408fb0["ReactInternalTypes"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 42892443_e223_3da0_aeb9_e1b32a408fb0
  94a68304_3047_524d_e604_af34f5a80eaf["ReactNativePrivateInterface"]
  846f0667_39ae_eb6e_55fe_26d3acf81e44 --> 94a68304_3047_524d_e604_af34f5a80eaf
  style 846f0667_39ae_eb6e_55fe_26d3acf81e44 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */

import type {
  AnyNativeEvent,
  LegacyPluginModule,
} from './legacy-events/PluginModuleType';
import type {Fiber} from 'react-reconciler/src/ReactInternalTypes';
import type {ReactSyntheticEvent} from './legacy-events/ReactSyntheticEventType';
import type {
  RNTopLevelEventType,
  TopLevelType,
} from './legacy-events/TopLevelEventTypes';

import {
  registrationNameModules,
  plugins,
} from './legacy-events/EventPluginRegistry';
import {batchedUpdates} from './legacy-events/ReactGenericBatching';
import accumulateInto from './legacy-events/accumulateInto';

import getListener from './ReactNativeGetListener';
import {runEventsInBatch} from './legacy-events/EventBatching';

import {RawEventEmitter} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
import {getPublicInstance} from './ReactFiberConfigFabric';

export {getListener, registrationNameModules as registrationNames};

/**
 * Allows registered plugins an opportunity to extract events from top-level
 * native browser events.
 *
 * @return {*} An accumulation of synthetic events.
 * @internal
 */
function extractPluginEvents(
  topLevelType: TopLevelType,
  targetInst: null | Fiber,
  nativeEvent: AnyNativeEvent,
  nativeEventTarget: null | EventTarget,
): Array<ReactSyntheticEvent> | ReactSyntheticEvent | null {
  let events: Array<ReactSyntheticEvent> | ReactSyntheticEvent | null = null;
  const legacyPlugins = ((plugins: any): Array<LegacyPluginModule<Event>>);
  for (let i = 0; i < legacyPlugins.length; i++) {
    // Not every plugin in the ordering may be loaded at runtime.
    const possiblePlugin: LegacyPluginModule<AnyNativeEvent> = legacyPlugins[i];
    if (possiblePlugin) {
      const extractedEvents = possiblePlugin.extractEvents(
        topLevelType,
        targetInst,
        nativeEvent,
        nativeEventTarget,
      );
// ... (80 more lines)

Domain

Frequently Asked Questions

What does ReactFabricEventEmitter.js do?
ReactFabricEventEmitter.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain.
What does ReactFabricEventEmitter.js depend on?
ReactFabricEventEmitter.js imports 14 module(s): EventBatching.js, EventPluginRegistry.js, PluginModuleType.js, ReactFiberConfigFabric.js, ReactGenericBatching.js, ReactInternalTypes, ReactNativeGetListener.js, ReactNativePrivateInterface, and 6 more.
What files import ReactFabricEventEmitter.js?
ReactFabricEventEmitter.js is imported by 1 file(s): ReactFiberConfigFabric.js.
Where is ReactFabricEventEmitter.js in the architecture?
ReactFabricEventEmitter.js is located at packages/react-native-renderer/src/ReactFabricEventEmitter.js (domain: BabelCompiler, directory: packages/react-native-renderer/src).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free