Пользовательская нумерация страниц - PullRequest
0 голосов
/ 16 апреля 2020

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

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

Page Loaded     Page Numbers Visible
1                1, 2, 3, 4, 5, 13
2                1, 2, 3, 4, 5, 13
3                1, 2, 3, 4, 5, 13
4                1, 2, 3, 4, 5, 13
5                1, 4, 5, 6, 13
6                1, 5, 6, 7, 13
7                1, 6, 7, 8, 13
8                1, 7, 8, 9, 13
9                1, 8, 9, 10, 13
10               1, 9, 10, 11, 12, 13
11               1, 9, 10, 11, 12, 13
12               1, 9, 10, 11, 12, 13
13               1, 9, 10, 11, 12, 13
 @if (
    $page > $paginator->lastPage() - 1 ||
    $page == $paginator->onFirstPage() + 1 ||
    $page == $paginator->currentPage() + 1 ||
    $page == $paginator->currentPage() - 1 ||
    $page <= $paginator->onFirstPage() + 5 ||
    $paginator->currentPage() >= $paginator->lastPage() - 5 ||
    ($page < $paginator->onFirstPage() + 5 && $paginator->currentPage() + 1 > $page)
) 
{ 
    // show page number 
}
...