Как плавно объединить родительскую строку и дочернюю строку в начальной загрузке?

#laravel #frontend #rows

Вопрос:

В настоящее время мы разрабатываем приложение для интернет-магазина с использованием laravel-livewire, а для интерфейса мы используем bootstrap. Недавно мы столкнулись с ситуацией с infinity scroll и загрузкой дополнительных продуктов.

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

В коде это выглядит так:

 <div wire:id="XXX" class="products-grid">
    <main>PRODUCT</main>
    <main>PRODUCT</main>
    <main>PRODUCT</main>
    <main>PRODUCT</main>
    <div wire:id="YYY" class="products-grid">
        <main>PRODUCT</main>
        <main>PRODUCT</main>
        <main>PRODUCT</main>
        <main>PRODUCT</main>
        <div wire:id="ZZZ">...</div>
    </div>
</div>

 

И к настоящему времени дополнительно загруженные продукты не продолжают работу в предыдущем ряду, как можно было ожидать. На экранах меньшего размера это может выглядеть очень плохо и запутанно, как вы можете видеть на изображении ниже:

Текущее поведение загрузки продукта

Мы хотели бы, чтобы продукты продолжались в предыдущей сгенерированной строке и не создавали новую, не заполнив верхнюю.

Итак, я ищу возможное решение этой проблемы, предпочтительно на основе интерфейса. Мы должны сохранить атрибут wire:id.

Я рад ответить на дополнительные вопросы и приношу извинения за любую путаницу или ошибки.