From 1e136d394200ae0b00bebeb8a71189266a7cedb7 Mon Sep 17 00:00:00 2001 From: Meruert Date: Wed, 11 Jun 2025 19:32:27 +0500 Subject: [PATCH 1/4] feat: ECOM-80 add pagination to catalog page --- app/components/ui/Pagination.tsx | 133 ++++++++++++++++++ app/pages/catalog/FilterForm/Categories.tsx | 13 +- .../catalog/FilterForm/FilterFormBody.tsx | 11 +- app/pages/catalog/NoProductsFound.tsx | 13 ++ app/pages/catalog/PaginationControls.tsx | 58 ++++++++ app/pages/catalog/ProductList.tsx | 20 +-- .../catalog/SearchForm/SearchFomBody.tsx | 4 +- app/pages/catalog/hooks/useCatalogData.ts | 5 +- .../catalog/hooks/useCatalogProductsData.ts | 9 +- app/pages/catalog/index.tsx | 39 +++-- 10 files changed, 264 insertions(+), 41 deletions(-) create mode 100644 app/components/ui/Pagination.tsx create mode 100644 app/pages/catalog/NoProductsFound.tsx create mode 100644 app/pages/catalog/PaginationControls.tsx diff --git a/app/components/ui/Pagination.tsx b/app/components/ui/Pagination.tsx new file mode 100644 index 0000000..d3282a7 --- /dev/null +++ b/app/components/ui/Pagination.tsx @@ -0,0 +1,133 @@ +import { ChevronLeftIcon, ChevronRightIcon, ChevronsLeft, ChevronsRight, MoreHorizontalIcon } from 'lucide-react' + +import { cn } from '~/utils/ui' +import type { Button } from '~/components/ui/Button' +import { buttonVariants } from '~/components/ui/Button' +import type { ComponentProps, ReactElement } from 'react' + +function Pagination({ className, ...properties }: ComponentProps<'nav'>): ReactElement { + return ( +