Home / Function/ setupDocumentReadyState() — react Function Reference

setupDocumentReadyState() — react Function Reference

Architecture documentation for the setupDocumentReadyState() function in ReactJSDOMUtils.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  bcc549a2_8a36_8ba5_59c8_2eed0355f6fd["setupDocumentReadyState()"]
  88b77f1f_5252_c8d1_621c_409e39fba450["ReactJSDOMUtils.js"]
  bcc549a2_8a36_8ba5_59c8_2eed0355f6fd -->|defined in| 88b77f1f_5252_c8d1_621c_409e39fba450
  style bcc549a2_8a36_8ba5_59c8_2eed0355f6fd fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/internal-test-utils/ReactJSDOMUtils.js lines 1–33

export function setupDocumentReadyState(
  document: Document,
  Event: typeof Event,
) {
  let readyState: 0 | 1 | 2 = 0;
  Object.defineProperty(document, 'readyState', {
    get() {
      switch (readyState) {
        case 0:
          return 'loading';
        case 1:
          return 'interactive';
        case 2:
          return 'complete';
      }
    },
    set(value) {
      if (value === 'interactive' && readyState < 1) {
        readyState = 1;
        document.dispatchEvent(new Event('readystatechange'));
      } else if (value === 'complete' && readyState < 2) {
        readyState = 2;
        document.dispatchEvent(new Event('readystatechange'));
        document.dispatchEvent(new Event('DOMContentLoaded'));
      } else if (value === 'loading') {
        // We allow resetting the readyState to loading mostly for pragamtism.
        // tests that use this environment don't reset the document between tests.
        readyState = 0;
      }
    },
    configurable: true,
  });
}

Domain

Subdomains

Frequently Asked Questions

What does setupDocumentReadyState() do?
setupDocumentReadyState() is a function in the react codebase, defined in packages/internal-test-utils/ReactJSDOMUtils.js.
Where is setupDocumentReadyState() defined?
setupDocumentReadyState() is defined in packages/internal-test-utils/ReactJSDOMUtils.js at line 1.

Analyze Your Own Codebase

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

Try Supermodel Free