summaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
authorSam Light <samlight1994@gmail.com>2025-01-19 00:42:43 +0000
committerSam Light <samlight1994@gmail.com>2025-01-19 00:42:43 +0000
commit27a26440b3104059ef890c95af850b9a43926a31 (patch)
tree3e63e09bfde291597963bd4914c0c80e05ce30b6 /resources
parent9c01d445b928f38d811b4c29dd14119987685772 (diff)
Coppied livewire pagination to my own
Diffstat (limited to 'resources')
-rw-r--r--resources/views/pagination.blade.php89
1 files changed, 89 insertions, 0 deletions
diff --git a/resources/views/pagination.blade.php b/resources/views/pagination.blade.php
new file mode 100644
index 0000000..d4564fa
--- /dev/null
+++ b/resources/views/pagination.blade.php
@@ -0,0 +1,89 @@
+@php
+if (! isset($scrollTo)) {
+ $scrollTo = 'body';
+}
+
+$scrollIntoViewJsSnippet = ($scrollTo !== false)
+ ? <<<JS
+ (\$el.closest('{$scrollTo}') || document.querySelector('{$scrollTo}')).scrollIntoView()
+ JS
+ : '';
+@endphp
+<div>
+ @if ($paginator->hasPages())
+ <nav class="d-flex justify-items-center justify-content-between">
+ <div class="d-flex justify-content-between flex-fill d-sm-none">
+ <ul class="pagination">
+ {{-- Previous Page Link --}}
+ @if ($paginator->onFirstPage())
+ <li class="page-item disabled" aria-disabled="true">
+ <span class="page-link">@lang('pagination.previous')</span>
+ </li>
+ @else
+ <li class="page-item">
+ <button type="button" dusk="previousPage{{ $paginator->getPageName() == 'page' ? '' : '.' . $paginator->getPageName() }}" class="page-link" wire:click="previousPage('{{ $paginator->getPageName() }}')" x-on:click="{{ $scrollIntoViewJsSnippet }}" wire:loading.attr="disabled">@lang('pagination.previous')</button>
+ </li>
+ @endif
+
+ {{-- Next Page Link --}}
+ @if ($paginator->hasMorePages())
+ <li class="page-item">
+ <button type="button" dusk="nextPage{{ $paginator->getPageName() == 'page' ? '' : '.' . $paginator->getPageName() }}" class="page-link" wire:click="nextPage('{{ $paginator->getPageName() }}')" x-on:click="{{ $scrollIntoViewJsSnippet }}" wire:loading.attr="disabled">@lang('pagination.next')</button>
+ </li>
+ @else
+ <li class="page-item disabled" aria-disabled="true">
+ <span class="page-link" aria-hidden="true">@lang('pagination.next')</span>
+ </li>
+ @endif
+ </ul>
+ </div>
+
+ <div class="d-none flex-sm-fill d-sm-flex align-items-sm-center justify-content-sm-between">
+ <div>
+ <ul class="pagination">
+ {{-- Previous Page Link --}}
+ @if ($paginator->onFirstPage())
+ <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
+ <span class="page-link" aria-hidden="true">&lsaquo;</span>
+ </li>
+ @else
+ <li class="page-item">
+ <button type="button" dusk="previousPage{{ $paginator->getPageName() == 'page' ? '' : '.' . $paginator->getPageName() }}" class="page-link" wire:click="previousPage('{{ $paginator->getPageName() }}')" x-on:click="{{ $scrollIntoViewJsSnippet }}" wire:loading.attr="disabled" aria-label="@lang('pagination.previous')">&lsaquo;</button>
+ </li>
+ @endif
+
+ {{-- Pagination Elements --}}
+ @foreach ($elements as $element)
+ {{-- "Three Dots" Separator --}}
+ @if (is_string($element))
+ <li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
+ @endif
+
+ {{-- Array Of Links --}}
+ @if (is_array($element))
+ @foreach ($element as $page => $url)
+ @if ($page == $paginator->currentPage())
+ <li class="page-item active" wire:key="paginator-{{ $paginator->getPageName() }}-page-{{ $page }}" aria-current="page"><span class="page-link">{{ $page }}</span></li>
+ @else
+ <li class="page-item" wire:key="paginator-{{ $paginator->getPageName() }}-page-{{ $page }}"><button type="button" class="page-link" wire:click="gotoPage({{ $page }}, '{{ $paginator->getPageName() }}')" x-on:click="{{ $scrollIntoViewJsSnippet }}">{{ $page }}</button></li>
+ @endif
+ @endforeach
+ @endif
+ @endforeach
+
+ {{-- Next Page Link --}}
+ @if ($paginator->hasMorePages())
+ <li class="page-item">
+ <button type="button" dusk="nextPage{{ $paginator->getPageName() == 'page' ? '' : '.' . $paginator->getPageName() }}" class="page-link" wire:click="nextPage('{{ $paginator->getPageName() }}')" x-on:click="{{ $scrollIntoViewJsSnippet }}" wire:loading.attr="disabled" aria-label="@lang('pagination.next')">&rsaquo;</button>
+ </li>
+ @else
+ <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
+ <span class="page-link" aria-hidden="true">&rsaquo;</span>
+ </li>
+ @endif
+ </ul>
+ </div>
+ </div>
+ </nav>
+ @endif
+</div>