@@ -102,6 +102,8 @@ const LogViewerBase: React.FunctionComponent<LogViewerProps> = memo(
102102 const [ loading , setLoading ] = useState ( true ) ;
103103 const [ listKey , setListKey ] = useState ( 1 ) ;
104104
105+ const [ , setEmptyState ] = useState ( { } ) ;
106+
105107 /* Parse data every time it changes */
106108 const parsedData = React . useMemo ( ( ) => parseConsoleOutput ( data ) , [ data ] ) ;
107109
@@ -113,13 +115,21 @@ const LogViewerBase: React.FunctionComponent<LogViewerProps> = memo(
113115 let resizeTimer = null as any ;
114116
115117 useEffect ( ( ) => {
118+ let observer : ResizeObserver | undefined = undefined ;
116119 if ( containerRef && containerRef . current ) {
117120 window . addEventListener ( 'resize' , callbackResize ) ;
121+ observer = new ResizeObserver ( ( event ) => {
122+ setEmptyState ( { } ) ;
123+ } ) ;
124+ observer . observe ( containerRef . current ) ;
118125 setLoading ( false ) ;
119126 createDummyElements ( ) ;
120127 ansiUp . resetStyles ( ) ;
121128 }
122- return ( ) => window . removeEventListener ( 'resize' , callbackResize ) ;
129+ return ( ) => {
130+ window . removeEventListener ( 'resize' , callbackResize ) ;
131+ observer ?. disconnect ( ) ;
132+ }
123133 } , [ containerRef . current ] ) ;
124134
125135 const callbackResize = ( ) => {
@@ -168,6 +178,9 @@ const LogViewerBase: React.FunctionComponent<LogViewerProps> = memo(
168178 } , [ parsedData , scrollToRow ] ) ;
169179
170180 const createDummyElements = ( ) => {
181+ if ( ! ( containerRef && containerRef . current ) ) {
182+ return ;
183+ }
171184 // create dummy elements
172185 const dummyIndex = document . createElement ( 'span' ) ;
173186 dummyIndex . className = css ( styles . logViewerIndex ) ;
0 commit comments