feat: Introduce custom Livewire pagination component and apply it to news and announcements, enhancing list rendering with wire:key.
This commit is contained in:
parent
3577c8827a
commit
a4f85c53c5
@ -31,11 +31,11 @@ class="bi bi-megaphone text-white icon-small me-10px"></i>{{ $pageTitle }}</span
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<ul class="blog-wrapper grid-loading grid grid-1col gutter-extra-large">
|
<ul class="blog-wrapper grid grid-1col gutter-extra-large">
|
||||||
<li class="grid-sizer"></li>
|
<li class="grid-sizer"></li>
|
||||||
<!-- start blog item -->
|
<!-- start blog item -->
|
||||||
@foreach ($announcements as $announcement)
|
@foreach ($announcements as $announcement)
|
||||||
<li class="grid-item">
|
<li class="grid-item" wire:key="announcement-{{ $announcement->id }}">
|
||||||
<div
|
<div
|
||||||
class="card border-0 border-radius-4px overflow-hidden box-shadow-quadruple-large box-shadow-quadruple-large-hover">
|
class="card border-0 border-radius-4px overflow-hidden box-shadow-quadruple-large box-shadow-quadruple-large-hover">
|
||||||
<div class="card-body p-0">
|
<div class="card-body p-0">
|
||||||
@ -63,7 +63,7 @@ class="card-title mb-10px fw-600 fs-19 lh-28 text-dark-gray text-primary-hover">
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 mt-4 d-flex justify-content-center">
|
<div class="col-12 mt-4 d-flex justify-content-center">
|
||||||
{{ $announcements->links() }}
|
{{ $announcements->links('livewire.home.custom-pagination') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
57
resources/views/livewire/home/custom-pagination.blade.php
Normal file
57
resources/views/livewire/home/custom-pagination.blade.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
@if ($paginator->hasPages())
|
||||||
|
<ul class="pagination pagination-style-01 fs-13 fw-500 mb-0">
|
||||||
|
{{-- Previous Page Link --}}
|
||||||
|
@if ($paginator->onFirstPage())
|
||||||
|
<li class="page-item disabled" aria-disabled="true">
|
||||||
|
<span class="page-link">
|
||||||
|
<i class="feather icon-feather-arrow-left fs-18 d-xs-none"></i>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
@else
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="page-link" href="javascript:void(0)" wire:click="previousPage" rel="prev">
|
||||||
|
<i class="feather icon-feather-arrow-left fs-18 d-xs-none"></i>
|
||||||
|
</a>
|
||||||
|
</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" aria-current="page"><span
|
||||||
|
class="page-link">{{ sprintf('%02d', $page) }}</span></li>
|
||||||
|
@else
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="page-link" href="javascript:void(0)"
|
||||||
|
wire:click="gotoPage({{ $page }})">{{ sprintf('%02d', $page) }}</a>
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
|
||||||
|
{{-- Next Page Link --}}
|
||||||
|
@if ($paginator->hasMorePages())
|
||||||
|
<li class="page-item">
|
||||||
|
<a class="page-link" href="javascript:void(0)" wire:click="nextPage" rel="next">
|
||||||
|
<i class="feather icon-feather-arrow-right fs-18 d-xs-none"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
@else
|
||||||
|
<li class="page-item disabled" aria-disabled="true">
|
||||||
|
<span class="page-link">
|
||||||
|
<i class="feather icon-feather-arrow-right fs-18 d-xs-none"></i>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
@endif
|
||||||
|
</ul>
|
||||||
|
@endif
|
||||||
@ -33,7 +33,7 @@ class="bi bi-megaphone text-white icon-small me-10px"></i>{{ $pageTitle }}</span
|
|||||||
<div class="col-12 col-lg-8 blog-standard md-mb-50px sm-mb-40px">
|
<div class="col-12 col-lg-8 blog-standard md-mb-50px sm-mb-40px">
|
||||||
@forelse($news as $item)
|
@forelse($news as $item)
|
||||||
<!-- start blog item -->
|
<!-- start blog item -->
|
||||||
<div class="col-12 mb-40px">
|
<div class="col-12 mb-40px" wire:key="news-{{ $item->id }}">
|
||||||
<div class="card border-0 no-border-radius box-shadow-extra-large">
|
<div class="card border-0 no-border-radius box-shadow-extra-large">
|
||||||
@if ($item->thumbnail)
|
@if ($item->thumbnail)
|
||||||
<div class="blog-image">
|
<div class="blog-image">
|
||||||
@ -78,7 +78,7 @@ class="bg-base-color"></span></a>
|
|||||||
@endforelse
|
@endforelse
|
||||||
|
|
||||||
<div class="col-12 mt-8 d-flex justify-content-center">
|
<div class="col-12 mt-8 d-flex justify-content-center">
|
||||||
{{ $news->links() }}
|
{{ $news->links('livewire.home.custom-pagination') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- start sidebar -->
|
<!-- start sidebar -->
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user