1{{--
2 Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0.
3 See the LICENCE file in the repository root for full licence text.
4--}}
5@if ($object->lastPage() > 1)
6 @php
7 if ($object->currentPage() > $object->lastPage()) {
8 $currentPage = $object->lastPage() + 1;
9 } else {
10 $currentPage = $object->currentPage();
11 }
12 @endphp
13
14 <nav class="{{ class_with_modifiers('pagination-v2', $modifiers ?? []) }}">
15 <div class="pagination-v2__col">
16 @if ($currentPage === 1)
17 <span class="pagination-v2__link pagination-v2__link--quick pagination-v2__link--disabled">
18 <i class="fas fa-angle-left"></i>
19 <span class="hidden-xs">
20 {{ osu_trans('common.pagination.previous') }}
21 </span>
22 </span>
23 @else
24 <a class="pagination-v2__link pagination-v2__link--quick" href="{{ $object->url($currentPage - 1) }}">
25 <i class="fas fa-angle-left"></i>
26 <span class="hidden-xs">
27 {{ osu_trans('common.pagination.previous') }}
28 </span>
29 </a>
30 @endif
31 </div>
32
33 <ul class="pagination-v2__col pagination-v2__col--pages">
34 {{-- decide if we're showing first page link separately --}}
35 @if ($currentPage > 3)
36 <li class="pagination-v2__item">
37 <a class="pagination-v2__link" href="{{ $object->url(1) }}">1</a>
38 </li>
39 @endif
40
41 @if ($currentPage > 4)
42 <li class="pagination-v2__item">
43 <span class="pagination-v2__link">...</span>
44 </li>
45 @endif
46
47 @foreach(range(max($currentPage - 2, 1), min($currentPage + 2, $object->lastPage())) as $page)
48 <li class="pagination-v2__item">
49 @if ($page === $currentPage)
50 <span class="pagination-v2__link pagination-v2__link--active">{{ $page }}</span>
51 @else
52 <a class="pagination-v2__link" href="{{ $object->url($page) }}">{{ $page }}</a>
53 @endif
54 </li>
55 @endforeach
56
57 {{-- decide if we're showing last page link separately --}}
58 {{-- first, see if `...` is needed --}}
59 @if (($currentPage + 2) < ($object->lastPage() - 1))
60 <li class="pagination-v2__item">
61 <span class="pagination-v2__link">...</span>
62 </li>
63 @endif
64
65 {{-- see if the link is needed --}}
66 @if (($currentPage + 2) < $object->lastPage())
67 <li class="pagination-v2__item">
68 <a class="pagination-v2__link" href="{{ $object->url($object->lastPage()) }}">{{ $object->lastPage() }}</a>
69 </li>
70 @endif
71 </ul>
72
73 <div class="pagination-v2__col">
74 @if ($currentPage >= $object->lastPage())
75 <span class="pagination-v2__link pagination-v2__link--quick pagination-v2__link--disabled">
76 <span class="hidden-xs">
77 {{ osu_trans('common.pagination.next') }}
78 </span>
79 <i class="fas fa-angle-right"></i>
80 </span>
81 @else
82 <a class="pagination-v2__link pagination-v2__link--quick" href="{{ $object->url($currentPage + 1) }}">
83 <span class="hidden-xs">
84 {{ osu_trans('common.pagination.next') }}
85 </span>
86 <i class="fas fa-angle-right"></i>
87 </a>
88 @endif
89 </div>
90 </nav>
91@endif