Так положись на вёрстку. Сделай что css:
width: 100%
height: 100%
И оно сам тянулось и тебя не волновало. Или библиотечный компонент-говно и не умеет следить за своим размером и обновляться?
...update: если это действительно так - накостыляй элементарную обёртку, типа:
const ResizableStage = (props) => {
const [size, setSize] = useState({width: 0, height: 0});
const stage = useRef(null);
useLayoutEffect(() => {
const observer = new ResizeObserver((entries) => {
setSize(entries.pop().contentRect);
});
observer.observe(stage.current);
}, []);
return (
<div style={{position: 'relative', overflow: 'clip'}} ref={stage}>
{size.width && size.height ? (
<Stage
style={{position: 'absolute', inset: 0}}
width={size.width}
height={size.height}
{...props}
/>
) : null}
</div>
)
}
На реакте сто лет не писал, и не проверял, так что может сходу не заработать, но логика, думаю, ясна.