summaryrefslogtreecommitdiff
path: root/src/lib/wishlist
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-23 08:20:44 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-23 08:20:44 +0700
commita553af3576985e6d14cf59177a6cca9fa108c0bb (patch)
tree763f73dafe6cc69c913eacafdc26e972849092b1 /src/lib/wishlist
parente5aea4632cb84c9d5e04024b67d149178f794ba6 (diff)
parent404afb8b94b5d8d88f6dfd619cde0b5a122fbc42 (diff)
prettier
Diffstat (limited to 'src/lib/wishlist')
-rw-r--r--src/lib/wishlist/api/createOrDeleteWishlistApi.js14
-rw-r--r--src/lib/wishlist/api/wishlistApi.js14
-rw-r--r--src/lib/wishlist/components/Wishlists.jsx16
-rw-r--r--src/lib/wishlist/hooks/useWishlist.js13
4 files changed, 54 insertions, 3 deletions
diff --git a/src/lib/wishlist/api/createOrDeleteWishlistApi.js b/src/lib/wishlist/api/createOrDeleteWishlistApi.js
new file mode 100644
index 00000000..617d139d
--- /dev/null
+++ b/src/lib/wishlist/api/createOrDeleteWishlistApi.js
@@ -0,0 +1,14 @@
+import odooApi from '@/core/api/odooApi'
+import { getAuth } from '@/core/utils/auth'
+
+const createOrDeleteWishlistApi = async ({ data }) => {
+ const auth = getAuth()
+ const dataWishlist = await odooApi(
+ 'POST',
+ `/api/v1/user/${auth.id}/wishlist/create-or-delete`,
+ data
+ )
+ return dataWishlist
+}
+
+export default createOrDeleteWishlistApi
diff --git a/src/lib/wishlist/api/wishlistApi.js b/src/lib/wishlist/api/wishlistApi.js
new file mode 100644
index 00000000..a8906dd4
--- /dev/null
+++ b/src/lib/wishlist/api/wishlistApi.js
@@ -0,0 +1,14 @@
+import odooApi from '@/core/api/odooApi'
+import { getAuth } from '@/core/utils/auth'
+
+const wishlistApi = async ({ productId }) => {
+ const auth = getAuth()
+ if (!auth) return { productTotal: 0, products: [] }
+ const dataWishlist = await odooApi(
+ 'GET',
+ `/api/v1/user/${auth.id}/wishlist?product_id=${productId}`
+ )
+ return dataWishlist
+}
+
+export default wishlistApi
diff --git a/src/lib/wishlist/components/Wishlists.jsx b/src/lib/wishlist/components/Wishlists.jsx
index 71ac095e..e61efcc3 100644
--- a/src/lib/wishlist/components/Wishlists.jsx
+++ b/src/lib/wishlist/components/Wishlists.jsx
@@ -24,19 +24,29 @@ const Wishlists = () => {
return (
<div className='px-4 py-6'>
{wishlists.data?.products?.length == 0 && (
- <Alert type='info' className='text-center'>
+ <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} />
+ <ProductCard
+ key={product.id}
+ product={product}
+ />
))}
</div>
<div className='mt-6'>
- <Pagination currentPage={page} pageCount={pageCount} url={`/my/wishlist`} />
+ <Pagination
+ currentPage={page}
+ pageCount={pageCount}
+ url={`/my/wishlist`}
+ />
</div>
</div>
)
diff --git a/src/lib/wishlist/hooks/useWishlist.js b/src/lib/wishlist/hooks/useWishlist.js
new file mode 100644
index 00000000..8580a19d
--- /dev/null
+++ b/src/lib/wishlist/hooks/useWishlist.js
@@ -0,0 +1,13 @@
+import { useQuery } from 'react-query'
+import wishlistApi from '../api/wishlistApi'
+
+const useWishlist = ({ productId }) => {
+ const fetchWishlist = async () => await wishlistApi({ productId })
+ const { data, isLoading, refetch } = useQuery(`wishlist-${productId}`, fetchWishlist)
+
+ return {
+ wishlist: { data, isLoading, refetch }
+ }
+}
+
+export default useWishlist