I was able to achieve this by traversing the parent and adjusting styles. Ugly...
const getClassNames = (isFullScreen: boolean = false): IClassNames => {
return mergeStyleSets({
iframeContainer: [
{
display: 'flex',
flex: 1,
height: '100%',
width: '100%',
overflow: 'hidden',
},
isFullScreen
? {
position: 'absolute',
}
: {
position: 'relative',
},
],
iframe: [
{
display: 'flex',
flex: 1,
position: 'relative',
height: '100%',
width: '100%',
border: 0,
top: 'auto',
left: 'auto',
},
isFullScreen && {
paddingBottom: '1em',
},
],
miniExpand: {
height: '16px',
width: '16px',
cursor: 'pointer',
},
})
}
// Adjust flex layout causing the contents to reflow
const adjustFlexLayout = (div: HTMLElement): void => {
let parent = div?.parentElement
console.log(`*** adjustFlexLayout - parent = ${parent}`)
while (parent?.id.indexOf('tab-section') === -1 && parent?.nodeName.indexOf('BODY') === -1) {
parent.style.display = 'flex'
parent.style.flex = '1'
parent.style.height = '100%'
parent = parent.parentElement
}
}
<div ref={iframeContainerRef} className={getClassNames(isFullScreen).iframeContainer}>
<iframe src={url} className={getClassNames(isFullScreen).iframe}></iframe>
</div>