|  | 
| 1 | 1 | <template> | 
| 2 |  | -  <!-- This example requires Tailwind CSS v2.0+ --> | 
| 3 | 2 |   <div class="py-6 flex items-center justify-between"> | 
| 4 | 3 |     <div class="flex-1 flex items-center sm:justify-between justify-end"> | 
| 5 | 4 |       <div class="hidden sm:block"> | 
| 6 | 5 |         <p class="text-sm text-slate-400"> | 
| 7 | 6 |           Showing | 
| 8 | 7 |           <span class="font-medium">{{ (currentPage * pageSize) - pageSize }}</span> | 
| 9 | 8 |           to | 
| 10 |  | -          <span class="font-medium">{{ currentPage * pageSize }}</span> | 
|  | 9 | +          <span class="font-medium">{{ Math.min(currentPage * pageSize, totalResults) }}</span> | 
| 11 | 10 |           of | 
| 12 | 11 |           <span class="font-medium">{{ totalResults }}</span> | 
| 13 | 12 |           results | 
|  | 
| 38 | 37 |             </svg> | 
| 39 | 38 |           </button> | 
| 40 | 39 | 
 | 
| 41 |  | -          <template v-if="currentPage > 4"> | 
| 42 |  | -            <button | 
| 43 |  | -                @click="goToFirstPage" | 
| 44 |  | -                class="page-button"> | 
| 45 |  | -              1 | 
|  | 40 | +          <!--show all page buttons--> | 
|  | 41 | +          <template v-if="totalPages < 7"> | 
|  | 42 | +            <button v-for="i in totalPages" :key="i" | 
|  | 43 | +                  @click="goToPage(i)" | 
|  | 44 | +                  :disabled="i === currentPage" | 
|  | 45 | +                  class="page-button"> | 
|  | 46 | +                  {{ i }} | 
|  | 47 | +            </button> | 
|  | 48 | +          </template> | 
|  | 49 | + | 
|  | 50 | +          <template v-else-if="currentPage <= 4"> | 
|  | 51 | +            <button v-for="i in 5" :key="i" | 
|  | 52 | +                  @click="goToPage(i)" | 
|  | 53 | +                  :disabled="i === currentPage" | 
|  | 54 | +                  class="page-button"> | 
|  | 55 | +                  {{ i }} | 
| 46 | 56 |             </button> | 
| 47 |  | -            <span | 
|  | 57 | +            <span v-if="totalPages > 7" | 
| 48 | 58 |                 class="page-button"> | 
| 49 | 59 |               ... | 
| 50 | 60 |             </span> | 
| 51 | 61 |           </template> | 
| 52 |  | -<!--          <button v-else v-for="i in 5" :key="i" v-show="i < totalPages"--> | 
| 53 |  | -<!--                  @click="goToPage(i)"--> | 
| 54 |  | -<!--                  :disabled="i === currentPage"--> | 
| 55 |  | -<!--                  class="page-button">--> | 
| 56 |  | -<!--            {{ i }}--> | 
| 57 |  | -<!--          </button>--> | 
| 58 | 62 | 
 | 
| 59 |  | -          <template v-if="currentPage > 4 && currentPage < totalPages-3"> | 
|  | 63 | +          <template v-else-if="currentPage > totalPages - 4"> | 
|  | 64 | +            <span v-if="totalPages > 7" | 
|  | 65 | +              class="page-button"> | 
|  | 66 | +              ... | 
|  | 67 | +            </span> | 
|  | 68 | +            <button v-for="i in 5" :key="totalPages - 5 + i" | 
|  | 69 | +                  @click="goToPage(totalPages - 5 + i)" | 
|  | 70 | +                  :disabled="totalPages - 5 + i === currentPage" | 
|  | 71 | +                  class="page-button"> | 
|  | 72 | +                  {{ totalPages - 5 + i }} | 
|  | 73 | +            </button> | 
|  | 74 | +          </template> | 
|  | 75 | + | 
|  | 76 | +          <template v-else> | 
|  | 77 | +            <span class="page-button"> | 
|  | 78 | +              ... | 
|  | 79 | +            </span> | 
| 60 | 80 |             <button v-for="i in 2" :key="currentPage - 3 + i" | 
| 61 | 81 |                     @click="goToPage(currentPage - 3 + i)" | 
| 62 | 82 |                     class="page-button"> | 
| 63 | 83 |               {{ currentPage - 3 + i }} | 
| 64 | 84 |             </button> | 
| 65 |  | -            <button | 
| 66 |  | -                :key="currentPage" | 
| 67 |  | -                disabled | 
|  | 85 | +            <button disabled | 
| 68 | 86 |                 class="page-button"> | 
| 69 | 87 |               {{ currentPage }} | 
| 70 | 88 |             </button> | 
|  | 
| 73 | 91 |                     class="page-button"> | 
| 74 | 92 |               {{ currentPage + i }} | 
| 75 | 93 |             </button> | 
| 76 |  | -          </template> | 
| 77 |  | - | 
| 78 |  | -          <template v-if="currentPage < totalPages-3"> | 
| 79 |  | -            <span | 
| 80 |  | -                class="page-button"> | 
|  | 94 | +            <span class="page-button"> | 
| 81 | 95 |               ... | 
| 82 | 96 |             </span> | 
| 83 |  | -            <button | 
| 84 |  | -                @click="goToLastPage" | 
| 85 |  | -                class="page-button"> | 
| 86 |  | -              {{ totalPages }} | 
| 87 |  | -            </button> | 
| 88 |  | -          </template> | 
| 89 |  | -          <template v-else> | 
| 90 |  | -            <button v-for="i in 5" :key="totalPages-5+i" v-show="totalPages-5+i > 0" | 
| 91 |  | -                    @click="goToPage(totalPages-5+i)" | 
| 92 |  | -                    :disabled="totalPages-5+i === currentPage" | 
| 93 |  | -                    class="page-button"> | 
| 94 |  | -              {{ totalPages-5+i }} | 
| 95 |  | -            </button> | 
| 96 | 97 |           </template> | 
| 97 | 98 | 
 | 
| 98 | 99 |           <button | 
|  | 
0 commit comments