diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-02-23 08:20:44 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-02-23 08:20:44 +0700 |
| commit | a553af3576985e6d14cf59177a6cca9fa108c0bb (patch) | |
| tree | 763f73dafe6cc69c913eacafdc26e972849092b1 /src/lib/wishlist | |
| parent | e5aea4632cb84c9d5e04024b67d149178f794ba6 (diff) | |
| parent | 404afb8b94b5d8d88f6dfd619cde0b5a122fbc42 (diff) | |
prettier
Diffstat (limited to 'src/lib/wishlist')
| -rw-r--r-- | src/lib/wishlist/api/createOrDeleteWishlistApi.js | 14 | ||||
| -rw-r--r-- | src/lib/wishlist/api/wishlistApi.js | 14 | ||||
| -rw-r--r-- | src/lib/wishlist/components/Wishlists.jsx | 16 | ||||
| -rw-r--r-- | src/lib/wishlist/hooks/useWishlist.js | 13 |
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 |
