Add pagination to the Jobs / Shifts / Talent list pages
The list pages loaded EVERY matching listing into one page (/Jobs was a ~2.6MB page with 1000+ cards) — no pagination at all. Add server-side paging (24/page, DB Skip/Take; near-me still sorts all by distance then paginates in memory). The header count now shows the true total, and a shared _Pager partial renders prev/next + a windowed page list that preserves all active filters in the URL. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,17 @@ a { color: inherit; text-decoration: none; }
|
||||
.nav-more-menu a { color: var(--text); font-weight: 600; font-size: 14px; padding: 9px 12px; border-radius: 8px; white-space: nowrap; }
|
||||
.nav-more-menu a:hover, .nav-more-menu a.active { background: var(--primary-soft); color: var(--primary-dark); }
|
||||
|
||||
/* Pagination */
|
||||
.pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: 26px 0 4px; }
|
||||
.pager-btn, .pager-num {
|
||||
display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px;
|
||||
padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff;
|
||||
color: var(--text); font-weight: 600; font-size: 14px; text-decoration: none; transition: all .15s;
|
||||
}
|
||||
.pager-btn:hover, .pager-num:hover { border-color: var(--primary); color: var(--primary-dark); }
|
||||
.pager-num.active { background: var(--primary); border-color: var(--primary); color: #fff; cursor: default; }
|
||||
.pager-gap { padding: 0 2px; color: var(--muted); }
|
||||
|
||||
.cta-post { white-space: nowrap; box-shadow: 0 2px 8px rgba(240,132,62,.35); }
|
||||
.header-actions { display: flex; align-items: center; gap: 12px; margin-inline-start: auto; }
|
||||
.nav-action { font-weight: 600; font-size: 15px; color: var(--muted); white-space: nowrap; transition: color .15s; }
|
||||
|
||||
Reference in New Issue
Block a user