From 95276f2602ec24387c5c70bb3b112b2b0be9be79 Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa Date: Wed, 13 Dec 2023 11:28:55 +0800 Subject: [PATCH 1/7] chore: remove P2P from hook and remove icon related transformations --- packages/api/src/constants/payment-method-icons.ts | 5 ----- .../p2p/{useP2PPaymentMethods.ts => usePaymentMethods.ts} | 7 ++----- 2 files changed, 2 insertions(+), 10 deletions(-) delete mode 100644 packages/api/src/constants/payment-method-icons.ts rename packages/api/src/hooks/p2p/{useP2PPaymentMethods.ts => usePaymentMethods.ts} (80%) diff --git a/packages/api/src/constants/payment-method-icons.ts b/packages/api/src/constants/payment-method-icons.ts deleted file mode 100644 index 039ca45c975f..000000000000 --- a/packages/api/src/constants/payment-method-icons.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const PAYMENT_METHOD_ICONS = { - bank: 'IcCashierBankTransfer', - other: 'IcCashierOther', - ewallet: 'IcCashierEwallet', -}; diff --git a/packages/api/src/hooks/p2p/useP2PPaymentMethods.ts b/packages/api/src/hooks/p2p/usePaymentMethods.ts similarity index 80% rename from packages/api/src/hooks/p2p/useP2PPaymentMethods.ts rename to packages/api/src/hooks/p2p/usePaymentMethods.ts index 15e0d4e0236a..a7ca84bcc756 100644 --- a/packages/api/src/hooks/p2p/useP2PPaymentMethods.ts +++ b/packages/api/src/hooks/p2p/usePaymentMethods.ts @@ -1,10 +1,9 @@ import { useMemo } from 'react'; import useAuthorize from '../useAuthorize'; -import { PAYMENT_METHOD_ICONS } from '../../constants'; import useQuery from '../../useQuery'; /** A custom hook that returns a list of P2P available payment methods **/ -const useP2PPaymentMethods = () => { +const usePaymentMethods = () => { const { isSuccess } = useAuthorize(); const { data, ...rest } = useQuery('p2p_payment_methods', { options: { enabled: isSuccess } }); // Modify the data to add additional information. @@ -21,8 +20,6 @@ const useP2PPaymentMethods = () => { ...payment_method, /** Payment method field definitions. */ fields, - /** Icon for each payment method based on the type */ - icon: PAYMENT_METHOD_ICONS[payment_method.type], /** Payment method id */ id: key, }; @@ -35,4 +32,4 @@ const useP2PPaymentMethods = () => { }; }; -export default useP2PPaymentMethods; +export default usePaymentMethods; From 7d2d22f75824fed59689dcbd0cdf89b1951c827c Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa Date: Wed, 13 Dec 2023 11:53:19 +0800 Subject: [PATCH 2/7] chore: move useadvertinfo to api package --- packages/api/src/hooks/p2p/useAdvertInfo.ts | 33 +++++++++++++++++++++ packages/hooks/src/useP2PAdvertInfo.ts | 1 + 2 files changed, 34 insertions(+) create mode 100644 packages/api/src/hooks/p2p/useAdvertInfo.ts diff --git a/packages/api/src/hooks/p2p/useAdvertInfo.ts b/packages/api/src/hooks/p2p/useAdvertInfo.ts new file mode 100644 index 000000000000..a7503b58e9bb --- /dev/null +++ b/packages/api/src/hooks/p2p/useAdvertInfo.ts @@ -0,0 +1,33 @@ +import { useMemo } from 'react'; +import useQuery from '../../useQuery'; + +/** + * This custom hook returns the advert info for a specific advert by calling 'p2p_advert_info' endpoint + */ +const useAdvertInfo = ( + id?: string, + options?: NonNullable>[1]>['options'] +) => { + const { data, ...rest } = useQuery('p2p_advert_info', { payload: { id }, options }); + + const modified_data = useMemo(() => { + const p2p_advert_info = data?.p2p_advert_info; + + if (!p2p_advert_info) return undefined; + + return { + ...p2p_advert_info, + /** Determines whether the advert is a buy advert or not. */ + is_buy: p2p_advert_info?.type === 'buy', + /** Determines whether the advert is a sell advert or not. */ + is_sell: p2p_advert_info?.type === 'sell', + }; + }, [data?.p2p_advert_info]); + + return { + data: modified_data, + ...rest, + }; +}; + +export default useAdvertInfo; diff --git a/packages/hooks/src/useP2PAdvertInfo.ts b/packages/hooks/src/useP2PAdvertInfo.ts index 19bceaffa7eb..068c8f442a13 100644 --- a/packages/hooks/src/useP2PAdvertInfo.ts +++ b/packages/hooks/src/useP2PAdvertInfo.ts @@ -3,6 +3,7 @@ import { useFetch } from '@deriv/api'; import { TSocketRequestQueryOptions } from '@deriv/api/types'; /** + * @deprecated * This custom hook returns the advert info for a specific advert by calling 'p2p_advert_info' endpoint */ const useP2PAdvertInfo = (id: string, options: TSocketRequestQueryOptions<'p2p_advert_info'>) => { From 208eb9e75d7154d94ddb18058c8eb0aee2916019 Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa Date: Wed, 13 Dec 2023 12:00:44 +0800 Subject: [PATCH 3/7] chore: add deprecated message --- packages/hooks/src/useP2PAdvertInfo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/hooks/src/useP2PAdvertInfo.ts b/packages/hooks/src/useP2PAdvertInfo.ts index 068c8f442a13..5078e8cc7d49 100644 --- a/packages/hooks/src/useP2PAdvertInfo.ts +++ b/packages/hooks/src/useP2PAdvertInfo.ts @@ -3,7 +3,7 @@ import { useFetch } from '@deriv/api'; import { TSocketRequestQueryOptions } from '@deriv/api/types'; /** - * @deprecated + * @deprecated Please use `useAdvertInfo` from the `api` package instead. * This custom hook returns the advert info for a specific advert by calling 'p2p_advert_info' endpoint */ const useP2PAdvertInfo = (id: string, options: TSocketRequestQueryOptions<'p2p_advert_info'>) => { From 2af211c03780dbf85846154983d70f621482598d Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa Date: Wed, 13 Dec 2023 12:04:29 +0800 Subject: [PATCH 4/7] chore: remove unnecessary export --- packages/api/src/constants/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/api/src/constants/index.ts b/packages/api/src/constants/index.ts index b8eec4fcaadf..4fb2e4a827f4 100644 --- a/packages/api/src/constants/index.ts +++ b/packages/api/src/constants/index.ts @@ -1,3 +1,2 @@ export * from './countries'; export * from './onfido'; -export * from './payment-method-icons'; From c851087b931dd3c00237ea4822e3a3a5893755ce Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa Date: Wed, 13 Dec 2023 14:48:07 +0800 Subject: [PATCH 5/7] chore: transform other fields based on code review comments --- packages/api/src/hooks/p2p/useAdvertInfo.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/api/src/hooks/p2p/useAdvertInfo.ts b/packages/api/src/hooks/p2p/useAdvertInfo.ts index a7503b58e9bb..4e9a4b29e1d5 100644 --- a/packages/api/src/hooks/p2p/useAdvertInfo.ts +++ b/packages/api/src/hooks/p2p/useAdvertInfo.ts @@ -5,10 +5,13 @@ import useQuery from '../../useQuery'; * This custom hook returns the advert info for a specific advert by calling 'p2p_advert_info' endpoint */ const useAdvertInfo = ( - id?: string, + payload: NonNullable>[1]>['payload'], options?: NonNullable>[1]>['options'] ) => { - const { data, ...rest } = useQuery('p2p_advert_info', { payload: { id }, options }); + const { data, ...rest } = useQuery('p2p_advert_info', { + payload: { id: payload?.id, use_client_limits: payload?.use_client_limits }, + options, + }); const modified_data = useMemo(() => { const p2p_advert_info = data?.p2p_advert_info; @@ -21,6 +24,15 @@ const useAdvertInfo = ( is_buy: p2p_advert_info?.type === 'buy', /** Determines whether the advert is a sell advert or not. */ is_sell: p2p_advert_info?.type === 'sell', + is_block_trade: Boolean(p2p_advert_info?.block_trade), + is_deleted: Boolean(p2p_advert_info?.deleted), + is_active: Boolean(p2p_advert_info?.is_active), + is_visible: Boolean(p2p_advert_info?.is_visible), + /** + * @deprecated This property was deprecated on back-end + * @see https://api.deriv.com/api-explorer#p2p_advert_info + * **/ + payment_method: p2p_advert_info?.payment_method, }; }, [data?.p2p_advert_info]); From d4ecaa35a8e32c7162984fd765731db5e761031d Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa Date: Wed, 13 Dec 2023 15:32:11 +0800 Subject: [PATCH 6/7] chore: update based on review comments --- packages/api/src/hooks/p2p/useAdvertInfo.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/api/src/hooks/p2p/useAdvertInfo.ts b/packages/api/src/hooks/p2p/useAdvertInfo.ts index 4e9a4b29e1d5..674792d6ba4e 100644 --- a/packages/api/src/hooks/p2p/useAdvertInfo.ts +++ b/packages/api/src/hooks/p2p/useAdvertInfo.ts @@ -2,7 +2,7 @@ import { useMemo } from 'react'; import useQuery from '../../useQuery'; /** - * This custom hook returns the advert info for a specific advert by calling 'p2p_advert_info' endpoint + * This custom hook returns the advert information about the given advert ID. */ const useAdvertInfo = ( payload: NonNullable>[1]>['payload'], @@ -21,18 +21,18 @@ const useAdvertInfo = ( return { ...p2p_advert_info, /** Determines whether the advert is a buy advert or not. */ - is_buy: p2p_advert_info?.type === 'buy', + is_buy: p2p_advert_info.type === 'buy', /** Determines whether the advert is a sell advert or not. */ - is_sell: p2p_advert_info?.type === 'sell', - is_block_trade: Boolean(p2p_advert_info?.block_trade), - is_deleted: Boolean(p2p_advert_info?.deleted), - is_active: Boolean(p2p_advert_info?.is_active), - is_visible: Boolean(p2p_advert_info?.is_visible), + is_sell: p2p_advert_info.type === 'sell', + is_block_trade: Boolean(p2p_advert_info.block_trade), + is_deleted: Boolean(p2p_advert_info.deleted), + is_active: Boolean(p2p_advert_info.is_active), + is_visible: Boolean(p2p_advert_info.is_visible), /** * @deprecated This property was deprecated on back-end * @see https://api.deriv.com/api-explorer#p2p_advert_info * **/ - payment_method: p2p_advert_info?.payment_method, + payment_method: p2p_advert_info.payment_method, }; }, [data?.p2p_advert_info]); From fe2c31e87eea44cf77657ea59744799b6b060df1 Mon Sep 17 00:00:00 2001 From: Jim Daniels Wasswa <104334373+jim-deriv@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:36:46 +0800 Subject: [PATCH 7/7] chore: update based on code reviews Co-authored-by: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> --- packages/api/src/hooks/p2p/useAdvertInfo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api/src/hooks/p2p/useAdvertInfo.ts b/packages/api/src/hooks/p2p/useAdvertInfo.ts index 674792d6ba4e..ba6747fc0390 100644 --- a/packages/api/src/hooks/p2p/useAdvertInfo.ts +++ b/packages/api/src/hooks/p2p/useAdvertInfo.ts @@ -9,7 +9,7 @@ const useAdvertInfo = ( options?: NonNullable>[1]>['options'] ) => { const { data, ...rest } = useQuery('p2p_advert_info', { - payload: { id: payload?.id, use_client_limits: payload?.use_client_limits }, + payload, options, });