summaryrefslogtreecommitdiff
path: root/src/lib/wishlist/components/Wishlists.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/wishlist/components/Wishlists.jsx')
-rw-r--r--src/lib/wishlist/components/Wishlists.jsx55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/lib/wishlist/components/Wishlists.jsx b/src/lib/wishlist/components/Wishlists.jsx
new file mode 100644
index 00000000..e61efcc3
--- /dev/null
+++ b/src/lib/wishlist/components/Wishlists.jsx
@@ -0,0 +1,55 @@
+import Alert from '@/core/components/elements/Alert/Alert'
+import Pagination from '@/core/components/elements/Pagination/Pagination'
+import Spinner from '@/core/components/elements/Spinner/Spinner'
+import ProductCard from '@/lib/product/components/ProductCard'
+import { useRouter } from 'next/router'
+import useWishlists from '../hooks/useWishlists'
+
+const Wishlists = () => {
+ const router = useRouter()
+ const { page = 1 } = router.query
+ const limit = 30
+ const { wishlists } = useWishlists({ page, limit })
+
+ const pageCount = Math.ceil(wishlists.data?.productTotal / limit)
+
+ if (wishlists.isLoading) {
+ return (
+ <div className='flex justify-center my-6'>
+ <Spinner className='w-6 text-gray_r-12/50 fill-gray_r-12' />
+ </div>
+ )
+ }
+
+ return (
+ <div className='px-4 py-6'>
+ {wishlists.data?.products?.length == 0 && (
+ <Alert
+ type='info'
+ className='text-center'
+ >
+ Wishlist anda masih kosong
+ </Alert>
+ )}
+
+ <div className='grid grid-cols-2 gap-3'>
+ {wishlists.data?.products.map((product) => (
+ <ProductCard
+ key={product.id}
+ product={product}
+ />
+ ))}
+ </div>
+
+ <div className='mt-6'>
+ <Pagination
+ currentPage={page}
+ pageCount={pageCount}
+ url={`/my/wishlist`}
+ />
+ </div>
+ </div>
+ )
+}
+
+export default Wishlists