Inline log details: adjust height on resize (#110310)
This commit is contained in:
@@ -156,6 +156,16 @@ const LogLineComponent = memo(
|
||||
[log, onClick]
|
||||
);
|
||||
|
||||
const handleLogDetailsResize = useCallback(() => {
|
||||
if (!onOverflow || !logLineRef.current || !virtualization) {
|
||||
return;
|
||||
}
|
||||
const actualHeight = hasUnderOrOverflow(virtualization, logLineRef.current, undefined, log.collapsed);
|
||||
if (actualHeight) {
|
||||
onOverflow(index, log.uid, actualHeight);
|
||||
}
|
||||
}, [index, log.collapsed, log.uid, onOverflow, virtualization]);
|
||||
|
||||
const detailsShown = detailsDisplayed(log);
|
||||
|
||||
return (
|
||||
@@ -255,7 +265,13 @@ const LogLineComponent = memo(
|
||||
</div>
|
||||
)}
|
||||
{detailsMode === 'inline' && detailsShown && (
|
||||
<InlineLogLineDetails logs={logs} log={log} timeRange={timeRange} timeZone={timeZone} />
|
||||
<InlineLogLineDetails
|
||||
logs={logs}
|
||||
log={log}
|
||||
onResize={handleLogDetailsResize}
|
||||
timeRange={timeRange}
|
||||
timeZone={timeZone}
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -141,11 +141,12 @@ LogLineDetailsTabs.displayName = 'LogLineDetailsTabs';
|
||||
export interface InlineLogLineDetailsProps {
|
||||
log: LogListModel;
|
||||
logs: LogListModel[];
|
||||
onResize(): void;
|
||||
timeRange: TimeRange;
|
||||
timeZone: string;
|
||||
}
|
||||
|
||||
export const InlineLogLineDetails = memo(({ logs, log, timeRange, timeZone }: InlineLogLineDetailsProps) => {
|
||||
export const InlineLogLineDetails = memo(({ logs, log, onResize, timeRange, timeZone }: InlineLogLineDetailsProps) => {
|
||||
const { app, detailsWidth, noInteractions } = useLogListContext();
|
||||
const styles = useStyles2(getStyles, 'inline');
|
||||
const scrollRef = useRef<HTMLDivElement | null>(null);
|
||||
@@ -159,6 +160,14 @@ export const InlineLogLineDetails = memo(({ logs, log, timeRange, timeZone }: In
|
||||
}
|
||||
}, [app, noInteractions]);
|
||||
|
||||
useEffect(() => {
|
||||
function handleResize() {
|
||||
onResize();
|
||||
}
|
||||
window.addEventListener('resize', handleResize);
|
||||
return () => window.removeEventListener('resize', handleResize);
|
||||
}, [onResize]);
|
||||
|
||||
const saveScroll = useCallback(() => {
|
||||
saveDetailsScrollPosition(log, scrollRef.current?.scrollTop ?? 0);
|
||||
}, [log]);
|
||||
|
||||
Reference in New Issue
Block a user