arm-web/src/widgets/DocumentReview/osvTableSize.ts
Andrey Epifancev a3e53c8cfc fix(DocumentReview): виртуализация таблицы ОСВ — большая ОСВ больше не роняет вкладку (#38, AURORA-1665)
Таблица строк ОСВ получила virtual (antd 6): в DOM только видимые строки.
Высота области прокрутки считается числом (osvBodyHeight) и обновляется при
изменении окна. В спеку document-review-ui добавлено требование про виртуализацию.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:08:22 +04:00

14 lines
989 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** Высота тела таблицы не меньше этой, даже в низком окне. */
export const OSV_MIN_BODY_HEIGHT = 240;
/** Сколько высоты окна занимает всё над и под телом таблицы: шапка страницы, кнопки, поиск, шапка и «Итого» таблицы. */
export const OSV_CHROME_HEIGHT = 340;
/**
* Высота области прокрутки таблицы ОСВ числом (виртуальной таблице antd нужен числовой scroll.y, calc() не подходит).
* Повторяет прежнее `calc(100vh - 340px)`, но не ниже минимума; мусорное значение окна даёт минимум.
*/
export function osvBodyHeight(viewportHeight: number): number {
if (!Number.isFinite(viewportHeight)) return OSV_MIN_BODY_HEIGHT;
return Math.max(OSV_MIN_BODY_HEIGHT, Math.floor(viewportHeight - OSV_CHROME_HEIGHT));
}