Home / File/ EventListenerCase.js — react Source File

EventListenerCase.js — react Source File

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

File javascript BabelCompiler Optimization 7 imports 1 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4["EventListenerCase.js"]
  14dde3c9_48ef_6e34_3667_978d06aff15d["TestCase.js"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> 14dde3c9_48ef_6e34_3667_978d06aff15d
  e1e356f5_b085_dad5_a81f_4b4844381311["TestCase"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> e1e356f5_b085_dad5_a81f_4b4844381311
  bc8ae172_cc20_3692_943c_bbdb1ad34855["Fixture.js"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> bc8ae172_cc20_3692_943c_bbdb1ad34855
  2851624d_a736_f3f6_2132_5a20630983fe["Fixture"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> 2851624d_a736_f3f6_2132_5a20630983fe
  a3aeab4c_4f93_b8d8_01c2_7a351a28a3fb["Fixture"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> a3aeab4c_4f93_b8d8_01c2_7a351a28a3fb
  86087e19_4194_bd7e_b870_ddbfd32ca7ad["EventFragmentContainer.js"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> 86087e19_4194_bd7e_b870_ddbfd32ca7ad
  c62bde89_5d76_2360_c2c8_1ab329a843b1["EventFragmentContainer"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> c62bde89_5d76_2360_c2c8_1ab329a843b1
  463c662d_adfd_912e_a87b_b390bc35e100["index.js"]
  463c662d_adfd_912e_a87b_b390bc35e100 --> 51bfb37f_da4d_7046_3df6_4646dc9fa9e4
  style 51bfb37f_da4d_7046_3df6_4646dc9fa9e4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import TestCase from '../../TestCase';
import Fixture from '../../Fixture';
import EventFragmentContainer from './EventFragmentContainer';

const React = window.React;
const {useState} = React;

function WrapperComponent(props) {
  return props.children;
}

export default function EventListenerCase() {
  const [extraChildCount, setExtraChildCount] = useState(0);

  return (
    <TestCase title="Event Registration">
      <TestCase.Steps>
        <li>
          Click "Add event listener" to attach a click handler to the fragment
        </li>
        <li>Click "Dispatch click event" to dispatch a click event</li>
        <li>Observe the event log showing the event fired</li>
        <li>Add a new child, dispatch again to see it still works</li>
        <li>
          Click "Remove event listener" and dispatch again to see no event fires
        </li>
      </TestCase.Steps>

      <TestCase.ExpectedResult>
        <p>
          Fragment refs can manage event listeners on the first level of host
          children. The event log shows when events are dispatched and handled.
        </p>
        <p>
          New child nodes will also have event listeners applied. Removed nodes
          will have their listeners cleaned up.
        </p>
      </TestCase.ExpectedResult>

      <Fixture>
        <Fixture.Controls>
          <div style={{marginBottom: '10px'}}>
            Target count: {extraChildCount + 3}
            <button
              onClick={() => {
                setExtraChildCount(prev => prev + 1);
              }}
              style={{marginLeft: '10px'}}>
              Add Child
            </button>
          </div>
          <EventFragmentContainer>
            <div className="card" id="child-a">
              Child A
            </div>
            <div className="card" id="child-b">
              Child B
            </div>
            <WrapperComponent>
              <div className="card" id="child-c">
                Child C
              </div>
              {Array.from({length: extraChildCount}).map((_, index) => (
                <div className="card" id={'extra-child-' + index} key={index}>
                  Extra Child {index}
                </div>
              ))}
            </WrapperComponent>
          </EventFragmentContainer>
        </Fixture.Controls>
      </Fixture>
    </TestCase>
  );
}

Domain

Subdomains

Frequently Asked Questions

What does EventListenerCase.js do?
EventListenerCase.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Optimization subdomain.
What functions are defined in EventListenerCase.js?
EventListenerCase.js defines 2 function(s): EventListenerCase, WrapperComponent.
What does EventListenerCase.js depend on?
EventListenerCase.js imports 7 module(s): EventFragmentContainer, EventFragmentContainer.js, Fixture, Fixture, Fixture.js, TestCase, TestCase.js.
What files import EventListenerCase.js?
EventListenerCase.js is imported by 1 file(s): index.js.
Where is EventListenerCase.js in the architecture?
EventListenerCase.js is located at fixtures/dom/src/components/fixtures/fragment-refs/EventListenerCase.js (domain: BabelCompiler, subdomain: Optimization, directory: fixtures/dom/src/components/fixtures/fragment-refs).

Analyze Your Own Codebase

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

Try Supermodel Free