diff --git a/web/src/pages/Svod2Page/Svod2Page.jsx b/web/src/pages/Svod2Page/Svod2Page.jsx
index 932a483..c129adf 100644
--- a/web/src/pages/Svod2Page/Svod2Page.jsx
+++ b/web/src/pages/Svod2Page/Svod2Page.jsx
@@ -12,7 +12,7 @@ import DenominationSelect from '../../components/common/DenominationSelect';
import useDenomination from '../../components/common/useDenomination';
import { useSvod } from '../SvodPage/SvodContext';
import { SvodFilters } from '../SvodPage/SvodFilters';
-import { SVOD2_TABLE_CONTAINER_SX, createColumnClassMap, getEstimateTypeClassName } from './svod2Styles';
+import { SVOD2_LAYOUT_OPTIONS, SVOD2_TABLE_CONTAINER_SX, createColumnClassMap, getEstimateTypeClassName } from './svod2Styles';
const SHEETS = [
{ value: 'GO', label: 'ССП' },
@@ -273,12 +273,13 @@ const getColumnConfig = (sheet) => {
return COLUMN_CONFIG_CACHE.get(sheet);
};
-const scaleNumericColumns = (columns, divisor) => columns.map((column) => {
- const isText = ['name', 'org_name', 'smeta_type', 'smeta_direction', 'section_code', 'contract_number'].includes(column.id);
- const children = column.columns ? scaleNumericColumns(column.columns, divisor) : undefined;
- if (isText || children) return { ...column, ...(children ? { columns: children } : {}) };
- return { ...column, Cell: ({ cell }) => formatValue(cell.getValue(), divisor) };
-});
+const scaleNumericColumns = (columns, divisor) =>
+ columns.map((column) => {
+ const isText = ['name', 'org_name', 'smeta_type', 'smeta_direction', 'section_code', 'contract_number'].includes(column.id);
+ const children = column.columns ? scaleNumericColumns(column.columns, divisor) : undefined;
+ if (isText || children) return { ...column, ...(children ? { columns: children } : {}) };
+ return { ...column, Cell: ({ cell }) => formatValue(cell.getValue(), divisor) };
+ });
const matchesSearch = (row, query) => {
const searchableData = {
@@ -405,6 +406,7 @@ export default function Svod2Page() {
enablePagination: false,
enableRowVirtualization: true,
enableColumnVirtualization: true,
+ ...SVOD2_LAYOUT_OPTIONS,
columnVirtualizerOptions: getSvod2ColumnVirtualizerOptions,
enableTopToolbar: false,
enableBottomToolbar: false,
@@ -487,7 +489,12 @@ export default function Svod2Page() {
onChange={(_event, value) => setSheet(value)}
sx={{ px: '1rem', minHeight: '3rem', borderBottom: '0.0625rem solid #edf0f2' }}>
{SHEETS.map((item) => (
-
+
))}
{
assert.ok(SVOD2_TABLE_CONTAINER_SX[key], key);
}
});
+
+test('column virtualization layout uses grid-no-grow and column pinning', () => {
+ assert.equal(SVOD2_LAYOUT_OPTIONS.layoutMode, 'grid-no-grow');
+ assert.equal(SVOD2_LAYOUT_OPTIONS.enableColumnPinning, true);
+});