import React, { useState, useRef, useLayoutEffect } from 'react'; import { mount } from '@cypress/react'; import { observeScrollArea } from '../observeScrollArea'; it('reports changes to the scroll area sizes', () => { const Resizeable = () => { const [minHeight, setMinHeight] = useState(50); const toggleHeight = () => setMinHeight(prev => prev === 50 ? 200 : 50); return (
); }; const Main = () => { const [elements, setElements] = useState([]); const [height, setHeight] = useState(-1); const ref = useRef(null); useLayoutEffect(() => { return observeScrollArea(ref.current!, (_width, height) => { setHeight(height); }); }); const addElement = () => setElements(prev => [...prev, prev.length]); return (
{height}
{elements.map(num => (
))}
); }; mount(
); cy.get('#size').contains('92'); cy.get('#increase').first().click(); cy.get('#size').contains('242'); cy.get('#increase').first().click(); cy.get('#size').contains('92'); cy.get('#increase').first().click(); cy.get('#add').first().click(); cy.get('#size').contains('252'); cy.get('#add').first().click(); cy.get('#size').contains('262'); });