ResizeObserverCase.js — react Source File
Architecture documentation for ResizeObserverCase.js, a javascript file in the react codebase. 5 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 5baa25a0_1e52_b988_1762_40c15ffae851["ResizeObserverCase.js"] 14dde3c9_48ef_6e34_3667_978d06aff15d["TestCase.js"] 5baa25a0_1e52_b988_1762_40c15ffae851 --> 14dde3c9_48ef_6e34_3667_978d06aff15d e1e356f5_b085_dad5_a81f_4b4844381311["TestCase"] 5baa25a0_1e52_b988_1762_40c15ffae851 --> e1e356f5_b085_dad5_a81f_4b4844381311 bc8ae172_cc20_3692_943c_bbdb1ad34855["Fixture.js"] 5baa25a0_1e52_b988_1762_40c15ffae851 --> bc8ae172_cc20_3692_943c_bbdb1ad34855 2851624d_a736_f3f6_2132_5a20630983fe["Fixture"] 5baa25a0_1e52_b988_1762_40c15ffae851 --> 2851624d_a736_f3f6_2132_5a20630983fe a3aeab4c_4f93_b8d8_01c2_7a351a28a3fb["Fixture"] 5baa25a0_1e52_b988_1762_40c15ffae851 --> a3aeab4c_4f93_b8d8_01c2_7a351a28a3fb 463c662d_adfd_912e_a87b_b390bc35e100["index.js"] 463c662d_adfd_912e_a87b_b390bc35e100 --> 5baa25a0_1e52_b988_1762_40c15ffae851 style 5baa25a0_1e52_b988_1762_40c15ffae851 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import TestCase from '../../TestCase';
import Fixture from '../../Fixture';
const React = window.React;
const {Fragment, useEffect, useRef, useState} = React;
export default function ResizeObserverCase() {
const fragmentRef = useRef(null);
const [width, setWidth] = useState([0, 0, 0]);
useEffect(() => {
const resizeObserver = new window.ResizeObserver(entries => {
if (entries.length > 0) {
setWidth(prev => {
const newWidth = [...prev];
entries.forEach(entry => {
const index = parseInt(entry.target.id, 10);
newWidth[index] = Math.round(entry.contentRect.width);
});
return newWidth;
});
}
});
fragmentRef.current.observeUsing(resizeObserver);
const lastFragmentRefValue = fragmentRef.current;
return () => {
lastFragmentRefValue.unobserveUsing(resizeObserver);
};
}, []);
return (
<TestCase title="Resize Observer">
<TestCase.Steps>
<li>Resize the viewport width until the children respond</li>
<li>See that the width data updates as they elements resize</li>
</TestCase.Steps>
<TestCase.ExpectedResult>
The Fragment Ref has a ResizeObserver attached which has a callback to
update the width state of each child node.
</TestCase.ExpectedResult>
<Fixture>
<Fragment ref={fragmentRef}>
<div className="card" id="0" style={{width: '100%'}}>
<p>
Width: <b>{width[0]}px</b>
</p>
</div>
<div className="card" id="1" style={{width: '80%'}}>
<p>
Width: <b>{width[1]}px</b>
</p>
</div>
<div className="card" id="2" style={{width: '50%'}}>
<p>
Width: <b>{width[2]}px</b>
</p>
</div>
</Fragment>
</Fixture>
</TestCase>
);
}
Domain
Subdomains
Functions
Dependencies
Source
Frequently Asked Questions
What does ResizeObserverCase.js do?
ResizeObserverCase.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 ResizeObserverCase.js?
ResizeObserverCase.js defines 1 function(s): ResizeObserverCase.
What does ResizeObserverCase.js depend on?
ResizeObserverCase.js imports 5 module(s): Fixture, Fixture, Fixture.js, TestCase, TestCase.js.
What files import ResizeObserverCase.js?
ResizeObserverCase.js is imported by 1 file(s): index.js.
Where is ResizeObserverCase.js in the architecture?
ResizeObserverCase.js is located at fixtures/dom/src/components/fixtures/fragment-refs/ResizeObserverCase.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