diff --git a/app/Http/Controllers/FrontMemeController.php b/app/Http/Controllers/FrontMemeController.php index e08210d..3c7cc56 100644 --- a/app/Http/Controllers/FrontMemeController.php +++ b/app/Http/Controllers/FrontMemeController.php @@ -25,7 +25,7 @@ private function getMemes(?string $search = null): Response { $query = MemeMedia::query() ->where('is_enabled', true) - ->orderBy('created_at', 'desc'); + ->orderBy('id', 'desc'); // Search functionality if ($search) { @@ -39,7 +39,7 @@ private function getMemes(?string $search = null): Response }); } - $memes = $query->paginate(12); + $memes = $query->cursorPaginate(24); // Get available types for filter $types = MemeMedia::where('is_enabled', true) diff --git a/resources/js/pages/memes/index.tsx b/resources/js/pages/memes/index.tsx index 0796725..dfe3590 100644 --- a/resources/js/pages/memes/index.tsx +++ b/resources/js/pages/memes/index.tsx @@ -25,23 +25,18 @@ interface MemeMedia { slug: string; } -interface PaginationLinks { - url: string | null; - label: string; - active: boolean; -} - -interface PaginatedMemes { +interface CursorPaginatedMemes { data: MemeMedia[]; - current_page: number; - last_page: number; + next_cursor: string | null; + prev_cursor: string | null; + next_page_url: string | null; + prev_page_url: string | null; per_page: number; - total: number; - links: PaginationLinks[]; + path: string; } interface Props { - memes: PaginatedMemes; + memes: CursorPaginatedMemes; types: string[]; popularKeywords: string[]; filters: { @@ -75,10 +70,6 @@ export default function MemesIndex({ memes, popularKeywords, filters }: Props) { router.get(route('memes.search', urlSegment)); }; - const handlePageChange = (url: string) => { - router.get(url); - }; - return ( <>
- Showing {memes.data.length} of {memes.total} memes -
-