Home / File/ EventFragmentContainer.js — react Source File

EventFragmentContainer.js — react Source File

Architecture documentation for EventFragmentContainer.js, a javascript file in the react codebase. 0 imports, 2 dependents.

File javascript BabelCompiler Entrypoint 2 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  86087e19_4194_bd7e_b870_ddbfd32ca7ad["EventFragmentContainer.js"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4["EventListenerCase.js"]
  51bfb37f_da4d_7046_3df6_4646dc9fa9e4 --> 86087e19_4194_bd7e_b870_ddbfd32ca7ad
  f361f511_643d_fef8_84d3_4e38e9129616["TextNodesCase.js"]
  f361f511_643d_fef8_84d3_4e38e9129616 --> 86087e19_4194_bd7e_b870_ddbfd32ca7ad
  style 86087e19_4194_bd7e_b870_ddbfd32ca7ad fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

const React = window.React;
const {Fragment, useRef, useState} = React;

export default function EventFragmentContainer({children}) {
  const fragmentRef = useRef(null);
  const [eventLog, setEventLog] = useState([]);
  const [listenerAdded, setListenerAdded] = useState(false);
  const [bubblesState, setBubblesState] = useState(true);

  const logEvent = message => {
    setEventLog(prev => [...prev, message]);
  };

  const fragmentClickHandler = () => {
    logEvent('Fragment event listener fired');
  };

  const addListener = () => {
    fragmentRef.current.addEventListener('click', fragmentClickHandler);
    setListenerAdded(true);
    logEvent('Added click listener to fragment');
  };

  const removeListener = () => {
    fragmentRef.current.removeEventListener('click', fragmentClickHandler);
    setListenerAdded(false);
    logEvent('Removed click listener from fragment');
  };

  const dispatchClick = () => {
    fragmentRef.current.dispatchEvent(
      new MouseEvent('click', {bubbles: bubblesState})
    );
    logEvent(`Dispatched click event (bubbles: ${bubblesState})`);
  };

  const clearLog = () => {
    setEventLog([]);
  };

  return (
    <Fragment>
      <div
        style={{
          marginBottom: '16px',
          display: 'flex',
          gap: '8px',
          flexWrap: 'wrap',
          alignItems: 'center',
        }}>
        <select
          value={bubblesState ? 'true' : 'false'}
          onChange={e => setBubblesState(e.target.value === 'true')}
          style={{padding: '6px 10px'}}>
          <option value="true">Bubbles: true</option>
          <option value="false">Bubbles: false</option>
        </select>
        <button onClick={dispatchClick} style={{padding: '6px 12px'}}>
          Dispatch click event
        </button>
        <button
          onClick={addListener}
          disabled={listenerAdded}
          style={{padding: '6px 12px'}}>
          Add event listener
        </button>
        <button
          onClick={removeListener}
          disabled={!listenerAdded}
          style={{padding: '6px 12px'}}>
          Remove event listener
        </button>
        <button onClick={clearLog} style={{padding: '6px 12px'}}>
          Clear log
        </button>
      </div>

      <div
        onClick={() => logEvent('Parent div clicked')}
        style={{
          padding: '12px',
          border: '1px dashed #ccc',
          borderRadius: '4px',
          backgroundColor: '#fff',
        }}>
        <Fragment ref={fragmentRef}>{children}</Fragment>
      </div>

      {eventLog.length > 0 && (
        <div
          style={{
            marginTop: '12px',
            padding: '10px',
            backgroundColor: '#f5f5f5',
            border: '1px solid #ddd',
            borderRadius: '4px',
            maxHeight: '150px',
            overflow: 'auto',
            fontFamily: 'monospace',
            fontSize: '13px',
          }}>
          <strong>Event Log:</strong>
          <ul style={{margin: '5px 0', paddingLeft: '20px'}}>
            {eventLog.map((msg, i) => (
              <li key={i}>{msg}</li>
            ))}
          </ul>
        </div>
      )}
    </Fragment>
  );
}

Domain

Subdomains

Frequently Asked Questions

What does EventFragmentContainer.js do?
EventFragmentContainer.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Entrypoint subdomain.
What functions are defined in EventFragmentContainer.js?
EventFragmentContainer.js defines 1 function(s): EventFragmentContainer.
What files import EventFragmentContainer.js?
EventFragmentContainer.js is imported by 2 file(s): EventListenerCase.js, TextNodesCase.js.
Where is EventFragmentContainer.js in the architecture?
EventFragmentContainer.js is located at fixtures/dom/src/components/fixtures/fragment-refs/EventFragmentContainer.js (domain: BabelCompiler, subdomain: Entrypoint, 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