Skip to content

Commit b13af97

Browse files
committed
Trigger update when container resizes
1 parent 7d14727 commit b13af97

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

Diff for: packages/module/src/LogViewer/LogViewer.tsx

+14-1
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)