Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/components/Fullscreen/Fullscreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ function Fullscreen({children, className}: FullscreenProps) {
} else {
ref.current?.appendChild(container);
}
// Trigger recalculation for components relying on window resize
// Dispatch after DOM repaint to ensure correct measurements
requestAnimationFrame(() => {
window.dispatchEvent(new Event('resize'));
});
}
}, [container, isFullscreen]);

Expand Down
20 changes: 9 additions & 11 deletions src/components/QueryResultTable/QueryResultTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,14 @@ export const QueryResultTable = (props: QueryResultTableProps) => {
}

return (
<div style={{display: 'flex', flexGrow: 1}}>
<ResizeableDataTable
data={data}
columns={preparedColumns}
settings={settings}
// prevent accessing row.id in case it is present but is not the PK (i.e. may repeat)
rowKey={getRowIndex}
visibleRowIndex={getVisibleRowIndex}
wrapperClassName={b('table-wrapper')}
/>
</div>
<ResizeableDataTable
data={data}
columns={preparedColumns}
settings={settings}
// prevent accessing row.id in case it is present but is not the PK (i.e. may repeat)
rowKey={getRowIndex}
visibleRowIndex={getVisibleRowIndex}
wrapperClassName={b('table-wrapper')}
/>
);
};
2 changes: 0 additions & 2 deletions src/components/ResizeableDataTable/ResizeableDataTable.scss
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
.ydb-resizeable-data-table {
display: flex;

width: max-content;

// padding for easier resize of the last column
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import {Flex, Tab, TabList, TabProvider, Text} from '@gravity-ui/uikit';
import {QueryResultTable} from '../../../../../../components/QueryResultTable';
import type {ParsedResultSet} from '../../../../../../types/store/query';
import {cn} from '../../../../../../utils/cn';
import {useTypedSelector} from '../../../../../../utils/hooks';
import {QueryResultError} from '../QueryResultError/QueryResultError';

import './ResultSetsViewer.scss';
Expand All @@ -23,20 +22,11 @@ interface ResultSetsViewerProps {

export function ResultSetsViewer(props: ResultSetsViewerProps) {
const {selectedResultSet, setSelectedResultSet, resultSets, error} = props;
const isFullscreen = useTypedSelector((state) => state.fullscreen);

const scrollRef = React.useRef<HTMLDivElement>(null);

const currentResult = resultSets?.[selectedResultSet];

React.useEffect(() => {
//this is needed to trigger data-table recount visible rows
if (isFullscreen) {
const resizeEvent = new Event('resize');
scrollRef.current?.dispatchEvent(resizeEvent);
}
}, [isFullscreen]);

const renderTabs = () => {
return (
<TabProvider value={String(selectedResultSet)}>
Expand Down
Loading