На прошлой неделе я не мог ничего опубликовать о проекте, потому что было много работы. Столкнулся с проблемой, решить которую было не просто.

Проблема связана с AG-Grid, библиотекой, которую я использую для представления журналов в таблице. Он предоставляет 2 способа загрузки данных (в бесплатной версии). Способ, который я использовал некоторое время, — это модель бесконечной строки, которая была отличной, потому что она автоматически реализует бесконечную прокрутку. Но когда я захотел начать добавлять новые функции, такие как динамическое изменение высоты строки, у меня возникли некоторые проблемы.

Я могу рассказать вам историю о том, как я злился, пытаясь ее решить, но я не очень хочу ее вспоминать. Таким образом, модель бесконечной строки была разработана для отображения данных в нескольких случаях использования, и она имеет много несовместимостей с функциями сетки.

Так что я был вынужден использовать модель Client Side Row, которая была отличной, схему разбиения на страницы, которая использовалась в течение долгого времени. Но у AG-Grid есть очень специфический способ реализации этого. В документации написано, что сначала нужно загрузить все данные в клиент, а потом сетка готова к использованию.

Очевидно, что это не очень хорошая практика, а также они не предлагают решение для людей, которые не хотят перегружать сеть. Таким образом, решение состояло в том, чтобы реализовать это вручную, вычисляя высоту экрана с пикселями и некоторыми случайными вещами, которые в конце концов, кажется, работают (на данный момент).

Я не только реализовал бесконечную прокрутку вручную, что было большим приключением, но также реализовал глубокую разбивку на страницы на сервере. Почему? На всякий случай, если пользователю нужны логи на странице 16.258.

Как только мне удалось получить окончательный результат, я решил, что пришло время поиграть с CSS и подобными вещами, и в итоге я добавил Angular Material в проект. Я только тестирую, но вот фото результата.

По крайней мере, теперь вы не хотите убить себя, пытаясь найти что-то со старым интерфейсом из-за его уродства.

Больше нечего сказать, добавление этого меню ломает способ, которым я привык общаться с таблицей, поэтому у меня есть идея, что мне делать дальше.