From 5933732a74ae1ca4124ddd4e8265b1f443234736 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 21 Feb 2023 21:51:51 +0700 Subject: fix --- src/lib/wishlist/api/wishlistsApi.js | 10 ++++++++ src/lib/wishlist/components/Wishlists.jsx | 41 +++++++++++++++++++++++++++++++ src/lib/wishlist/hooks/useWishlists.js | 14 +++++++++++ 3 files changed, 65 insertions(+) create mode 100644 src/lib/wishlist/api/wishlistsApi.js create mode 100644 src/lib/wishlist/components/Wishlists.jsx create mode 100644 src/lib/wishlist/hooks/useWishlists.js (limited to 'src/lib/wishlist') diff --git a/src/lib/wishlist/api/wishlistsApi.js b/src/lib/wishlist/api/wishlistsApi.js new file mode 100644 index 00000000..49ef56ee --- /dev/null +++ b/src/lib/wishlist/api/wishlistsApi.js @@ -0,0 +1,10 @@ +import odooApi from "@/core/api/odooApi" +import { getAuth } from "@/core/utils/auth" + +const wishlistsApi = async ({ limit, offset }) => { + const auth = getAuth() + const dataWishlists = await odooApi('GET', `/api/v1/user/${auth.id}/wishlist?limit=${limit}&offset=${offset}`) + return dataWishlists +} + +export default wishlistsApi \ No newline at end of file diff --git a/src/lib/wishlist/components/Wishlists.jsx b/src/lib/wishlist/components/Wishlists.jsx new file mode 100644 index 00000000..8a456a8d --- /dev/null +++ b/src/lib/wishlist/components/Wishlists.jsx @@ -0,0 +1,41 @@ +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) + + return ( +
+ { wishlists.isLoading && ( + + ) } + { wishlists.data?.products?.length == 0 && ( + + Wishlist anda masih kosong + + ) } +
+ {wishlists.data?.products.map((product) => ( + + ))} +
+ +
+ +
+
+ ) +} + +export default Wishlists \ No newline at end of file diff --git a/src/lib/wishlist/hooks/useWishlists.js b/src/lib/wishlist/hooks/useWishlists.js new file mode 100644 index 00000000..a219ab69 --- /dev/null +++ b/src/lib/wishlist/hooks/useWishlists.js @@ -0,0 +1,14 @@ +import { useQuery } from "react-query" +import wishlistsApi from "../api/wishlistsApi" + +const useWishlists = ({ page, limit }) => { + const offset = (page - 1) * limit + const fetchWishlists = async () => await wishlistsApi({ limit, offset }) + const { data, isLoading } = useQuery(`wishlists-${limit}-${offset}`, fetchWishlists) + + return { + wishlists: { data, isLoading } + } +} + +export default useWishlists \ No newline at end of file -- cgit v1.2.3 From 98c8fc56db91664b98a50e9113787b56fe785b9e Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 21 Feb 2023 22:33:32 +0700 Subject: fix --- src/lib/wishlist/components/Wishlists.jsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/lib/wishlist') diff --git a/src/lib/wishlist/components/Wishlists.jsx b/src/lib/wishlist/components/Wishlists.jsx index 8a456a8d..4bb63933 100644 --- a/src/lib/wishlist/components/Wishlists.jsx +++ b/src/lib/wishlist/components/Wishlists.jsx @@ -15,16 +15,22 @@ const Wishlists = () => { const pageCount = Math.ceil(wishlists.data?.productTotal / limit) + if (wishlists.isLoading) { + return ( +
+ +
+ ) + } + return (
- { wishlists.isLoading && ( - - ) } { wishlists.data?.products?.length == 0 && ( Wishlist anda masih kosong ) } +
{wishlists.data?.products.map((product) => ( -- cgit v1.2.3 From 3c559031623649a67825ff47f34512f0eb946861 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 22 Feb 2023 10:14:32 +0700 Subject: fix --- src/lib/wishlist/components/Wishlists.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/lib/wishlist') diff --git a/src/lib/wishlist/components/Wishlists.jsx b/src/lib/wishlist/components/Wishlists.jsx index 4bb63933..8cbbb0a2 100644 --- a/src/lib/wishlist/components/Wishlists.jsx +++ b/src/lib/wishlist/components/Wishlists.jsx @@ -33,7 +33,7 @@ const Wishlists = () => {
{wishlists.data?.products.map((product) => ( - + ))}
-- cgit v1.2.3 From f66b12fd1d0b83af0d7230d7b1565fbe00afbe3c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 22 Feb 2023 11:03:34 +0700 Subject: prettier --- src/lib/wishlist/api/wishlistsApi.js | 11 ++++++---- src/lib/wishlist/components/Wishlists.jsx | 34 +++++++++++++++---------------- src/lib/wishlist/hooks/useWishlists.js | 6 +++--- 3 files changed, 26 insertions(+), 25 deletions(-) (limited to 'src/lib/wishlist') diff --git a/src/lib/wishlist/api/wishlistsApi.js b/src/lib/wishlist/api/wishlistsApi.js index 49ef56ee..dfcce028 100644 --- a/src/lib/wishlist/api/wishlistsApi.js +++ b/src/lib/wishlist/api/wishlistsApi.js @@ -1,10 +1,13 @@ -import odooApi from "@/core/api/odooApi" -import { getAuth } from "@/core/utils/auth" +import odooApi from '@/core/api/odooApi' +import { getAuth } from '@/core/utils/auth' const wishlistsApi = async ({ limit, offset }) => { const auth = getAuth() - const dataWishlists = await odooApi('GET', `/api/v1/user/${auth.id}/wishlist?limit=${limit}&offset=${offset}`) + const dataWishlists = await odooApi( + 'GET', + `/api/v1/user/${auth.id}/wishlist?limit=${limit}&offset=${offset}` + ) return dataWishlists } -export default wishlistsApi \ No newline at end of file +export default wishlistsApi diff --git a/src/lib/wishlist/components/Wishlists.jsx b/src/lib/wishlist/components/Wishlists.jsx index 8cbbb0a2..71ac095e 100644 --- a/src/lib/wishlist/components/Wishlists.jsx +++ b/src/lib/wishlist/components/Wishlists.jsx @@ -1,15 +1,13 @@ -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" +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 { page = 1 } = router.query const limit = 30 const { wishlists } = useWishlists({ page, limit }) @@ -17,31 +15,31 @@ const Wishlists = () => { if (wishlists.isLoading) { return ( -
- +
+
) } return ( -
- { wishlists.data?.products?.length == 0 && ( +
+ {wishlists.data?.products?.length == 0 && ( Wishlist anda masih kosong - ) } - -
+ )} + +
{wishlists.data?.products.map((product) => ( ))}
-
+
) } -export default Wishlists \ No newline at end of file +export default Wishlists diff --git a/src/lib/wishlist/hooks/useWishlists.js b/src/lib/wishlist/hooks/useWishlists.js index a219ab69..169fdf46 100644 --- a/src/lib/wishlist/hooks/useWishlists.js +++ b/src/lib/wishlist/hooks/useWishlists.js @@ -1,5 +1,5 @@ -import { useQuery } from "react-query" -import wishlistsApi from "../api/wishlistsApi" +import { useQuery } from 'react-query' +import wishlistsApi from '../api/wishlistsApi' const useWishlists = ({ page, limit }) => { const offset = (page - 1) * limit @@ -11,4 +11,4 @@ const useWishlists = ({ page, limit }) => { } } -export default useWishlists \ No newline at end of file +export default useWishlists -- cgit v1.2.3 From 8cfb615556e67408d7afb6d9694b2407447085ff Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 22 Feb 2023 23:34:50 +0700 Subject: fix --- src/lib/wishlist/api/createOrDeleteWishlistApi.js | 10 ++++++++++ src/lib/wishlist/api/wishlistApi.js | 14 ++++++++++++++ src/lib/wishlist/hooks/useWishlist.js | 13 +++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 src/lib/wishlist/api/createOrDeleteWishlistApi.js create mode 100644 src/lib/wishlist/api/wishlistApi.js create mode 100644 src/lib/wishlist/hooks/useWishlist.js (limited to 'src/lib/wishlist') diff --git a/src/lib/wishlist/api/createOrDeleteWishlistApi.js b/src/lib/wishlist/api/createOrDeleteWishlistApi.js new file mode 100644 index 00000000..63cb1c51 --- /dev/null +++ b/src/lib/wishlist/api/createOrDeleteWishlistApi.js @@ -0,0 +1,10 @@ +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 \ No newline at end of file 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/hooks/useWishlist.js b/src/lib/wishlist/hooks/useWishlist.js new file mode 100644 index 00000000..1eb17d53 --- /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 -- cgit v1.2.3 From ac3fdf7be9982e65d8f83a20bc487f8dd62e3bfc Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Wed, 22 Feb 2023 23:36:47 +0700 Subject: fix --- src/lib/wishlist/api/createOrDeleteWishlistApi.js | 12 ++++++++---- src/lib/wishlist/components/Wishlists.jsx | 16 +++++++++++++--- src/lib/wishlist/hooks/useWishlist.js | 4 ++-- 3 files changed, 23 insertions(+), 9 deletions(-) (limited to 'src/lib/wishlist') diff --git a/src/lib/wishlist/api/createOrDeleteWishlistApi.js b/src/lib/wishlist/api/createOrDeleteWishlistApi.js index 63cb1c51..617d139d 100644 --- a/src/lib/wishlist/api/createOrDeleteWishlistApi.js +++ b/src/lib/wishlist/api/createOrDeleteWishlistApi.js @@ -1,10 +1,14 @@ -import odooApi from "@/core/api/odooApi"; -import { getAuth } from "@/core/utils/auth"; +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) + const dataWishlist = await odooApi( + 'POST', + `/api/v1/user/${auth.id}/wishlist/create-or-delete`, + data + ) return dataWishlist } -export default createOrDeleteWishlistApi \ No newline at end of file +export default createOrDeleteWishlistApi 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 (
{wishlists.data?.products?.length == 0 && ( - + Wishlist anda masih kosong )}
{wishlists.data?.products.map((product) => ( - + ))}
- +
) diff --git a/src/lib/wishlist/hooks/useWishlist.js b/src/lib/wishlist/hooks/useWishlist.js index 1eb17d53..8580a19d 100644 --- a/src/lib/wishlist/hooks/useWishlist.js +++ b/src/lib/wishlist/hooks/useWishlist.js @@ -1,5 +1,5 @@ -import { useQuery } from "react-query" -import wishlistApi from "../api/wishlistApi" +import { useQuery } from 'react-query' +import wishlistApi from '../api/wishlistApi' const useWishlist = ({ productId }) => { const fetchWishlist = async () => await wishlistApi({ productId }) -- cgit v1.2.3