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');
});