diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-31 14:32:38 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-31 14:32:38 +0700 |
| commit | 3496025d97140268dc2e899adca994b5b9f343c0 (patch) | |
| tree | 3d8b51fc624b09a7ba46409e9e8a81fbd02da582 /src/pages/my/wishlist.js | |
| parent | d194dcc23c19a4cf31863b32770f8df77e1f675a (diff) | |
quotation and categories
Diffstat (limited to 'src/pages/my/wishlist.js')
| -rw-r--r-- | src/pages/my/wishlist.js | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/pages/my/wishlist.js b/src/pages/my/wishlist.js index 175bfa08..9683c785 100644 --- a/src/pages/my/wishlist.js +++ b/src/pages/my/wishlist.js @@ -1,24 +1,33 @@ import WithAuth from "@/components/auth/WithAuth"; +import Pagination from "@/components/elements/Pagination"; +import Spinner from "@/components/elements/Spinner"; import AppBar from "@/components/layouts/AppBar"; import Layout from "@/components/layouts/Layout"; import ProductCard from "@/components/products/ProductCard"; import apiOdoo from "@/core/utils/apiOdoo"; import { useAuth } from "@/core/utils/auth"; +import { useRouter } from "next/router"; import { useEffect, useState } from "react"; export default function Wishlist() { const [ auth ] = useAuth(); + const router = useRouter(); + const { page = 1 } = router.query; const [ wishlists, setWishlists ] = useState(null); + const [ pageCount, setPageCount ] = useState(0); useEffect(() => { const loadWishlist = async () => { + const limit = 10; + const offset = (page - 1) * limit; if (auth) { - const dataWishlist = await apiOdoo('GET', `/api/v1/user/${auth.id}/wishlist`); + const dataWishlist = await apiOdoo('GET', `/api/v1/user/${auth.id}/wishlist?limit=${limit}&offset=${offset}`); setWishlists(dataWishlist); + setPageCount(Math.ceil(dataWishlist.product_total / limit)); } } loadWishlist(); - }, [ auth ]); + }, [ auth, page ]); return ( <WithAuth> @@ -26,11 +35,18 @@ export default function Wishlist() { <AppBar title='Wishlist' /> <div className="px-4 py-6"> + { !wishlists && ( + <Spinner className="w-6 h-6 text-gray-600 fill-gray-900 mx-auto" /> + ) } <div className="grid grid-cols-2 gap-3"> {wishlists?.products.map((product) => ( <ProductCard key={product.id} data={product} /> ))} </div> + + <div className="mt-6"> + <Pagination currentPage={page} pageCount={pageCount} url={`/my/wishlist`} /> + </div> </div> </Layout> </WithAuth> |
