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/address/api/addressesApi.js | 10 +++++ src/lib/address/components/Addresses.jsx | 68 ++++++++++++++++++++++++++++++++ src/lib/address/hooks/useAddresses.js | 13 ++++++ 3 files changed, 91 insertions(+) create mode 100644 src/lib/address/api/addressesApi.js create mode 100644 src/lib/address/components/Addresses.jsx create mode 100644 src/lib/address/hooks/useAddresses.js (limited to 'src/lib/address') diff --git a/src/lib/address/api/addressesApi.js b/src/lib/address/api/addressesApi.js new file mode 100644 index 00000000..1edfc077 --- /dev/null +++ b/src/lib/address/api/addressesApi.js @@ -0,0 +1,10 @@ +import odooApi from "@/core/api/odooApi" +import { getAuth } from "@/core/utils/auth" + +const addressesApi = async () => { + const auth = getAuth() + const dataAddresses = await odooApi('GET', `/api/v1/user/${auth.id}/address`) + return dataAddresses +} + +export default addressesApi \ No newline at end of file diff --git a/src/lib/address/components/Addresses.jsx b/src/lib/address/components/Addresses.jsx new file mode 100644 index 00000000..7a82c0da --- /dev/null +++ b/src/lib/address/components/Addresses.jsx @@ -0,0 +1,68 @@ +import Link from "@/core/components/elements/Link/Link" +import Spinner from "@/core/components/elements/Spinner/Spinner" +import useAuth from "@/core/hooks/useAuth" +import { getItemAddress, updateItemAddress } from "@/core/utils/address" +import { useRouter } from "next/router" +import useAddresses from "../hooks/useAddresses" + +const Addresses = () => { + const router = useRouter() + const { + select = null + } = router.query + const auth = useAuth() + const { addresses } = useAddresses() + const selectedAdress = getItemAddress(select || '') + const changeSelectedAddress = (id) => { + if (!select) return + updateItemAddress(select, id) + router.back() + } + + if (addresses.isLoading) { + return ( +
+ +
+ ) + } + + return ( +
+
+ Tambah Alamat +
+ +
+ { addresses.data?.map((address, index) => { + let type = address.type.charAt(0).toUpperCase() + address.type.slice(1) + ' Address'; + return ( +
+
changeSelectedAddress(address.id)}> +
+
{ type }
+ { auth?.partnerId == address.id && ( +
Utama
+ ) } +
+

{ address.name }

+ { address.mobile && ( +

{ address.mobile }

+ ) } +

+ { address.street } +

+
+ Ubah Alamat +
+ ); + }) } +
+
+ ) +} + +export default Addresses \ No newline at end of file diff --git a/src/lib/address/hooks/useAddresses.js b/src/lib/address/hooks/useAddresses.js new file mode 100644 index 00000000..9968d790 --- /dev/null +++ b/src/lib/address/hooks/useAddresses.js @@ -0,0 +1,13 @@ +import { useQuery } from "react-query" +import addressesApi from "../api/addressesApi" + +const useAddresses = () => { + const fetchAddresses = async () => await addressesApi() + const { data, isLoading } = useQuery('addresses', fetchAddresses) + + return { + addresses: { data, isLoading } + } +} + +export default useAddresses \ No newline at end of file -- cgit v1.2.3