Skip to content

Commit 0a2effc

Browse files
Merge branch 'master' of github.com:deriv-com/p2p into optimise-some-bundles
2 parents f86bda4 + e46dd93 commit 0a2effc

File tree

6 files changed

+69
-46
lines changed

6 files changed

+69
-46
lines changed

src/components/ProfileContent/ProfileBalance/ProfileBalance.tsx

+6-6
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import { useMemo, useState } from 'react';
22
import { DeepPartial, TAdvertiserStats } from 'types';
33
import { AvailableP2PBalanceModal } from '@/components/Modals';
44
import { api } from '@/hooks';
5-
import { numberToCurrencyText } from '@/utils';
65
import { LabelPairedCircleInfoMdRegularIcon } from '@deriv/quill-icons';
76
import { Localize } from '@deriv-com/translations';
87
import { Text, useDevice } from '@deriv-com/ui';
8+
import { FormatUtils } from '@deriv-com/utils';
99
import { ProfileDailyLimit } from '../ProfileDailyLimit';
1010
import './ProfileBalance.scss';
1111

@@ -18,13 +18,13 @@ const ProfileBalance = ({ advertiserStats }: { advertiserStats: DeepPartial<TAdv
1818
const dailyLimits = useMemo(
1919
() => [
2020
{
21-
available: `${numberToCurrencyText(advertiserStats?.dailyAvailableBuyLimit || 0)} ${currency}`,
22-
dailyLimit: `${advertiserStats?.daily_buy_limit || numberToCurrencyText(0)} ${currency}`,
21+
available: `${FormatUtils.formatMoney(advertiserStats?.dailyAvailableBuyLimit || 0)} ${currency}`,
22+
dailyLimit: `${advertiserStats?.daily_buy_limit || FormatUtils.formatMoney(0)} ${currency}`,
2323
type: 'Buy',
2424
},
2525
{
26-
available: `${numberToCurrencyText(advertiserStats?.dailyAvailableSellLimit || 0)} ${currency}`,
27-
dailyLimit: `${advertiserStats?.daily_sell_limit || numberToCurrencyText(0)} ${currency}`,
26+
available: `${FormatUtils.formatMoney(advertiserStats?.dailyAvailableSellLimit || 0)} ${currency}`,
27+
dailyLimit: `${advertiserStats?.daily_sell_limit || FormatUtils.formatMoney(0)} ${currency}`,
2828
type: 'Sell',
2929
},
3030
],
@@ -58,7 +58,7 @@ const ProfileBalance = ({ advertiserStats }: { advertiserStats: DeepPartial<TAdv
5858
/>
5959
</div>
6060
<Text size={isMobile ? '2xl' : 'xl'} weight='bold'>
61-
{numberToCurrencyText(advertiserStats?.balance_available || 0)} USD
61+
{FormatUtils.formatMoney(advertiserStats?.balance_available || 0)} USD
6262
</Text>
6363
</div>
6464
<div className='flex flex-col gap-[1.6rem]'>

src/pages/my-profile/screens/MyProfileStats/MyProfileStats.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { useState } from 'react';
22
import { api } from '@/hooks';
33
import { useAdvertiserStats } from '@/hooks/custom-hooks';
4-
import { numberToCurrencyText } from '@/utils';
54
import { useTranslations } from '@deriv-com/translations';
65
import { Loader } from '@deriv-com/ui';
6+
import { FormatUtils } from '@deriv-com/utils';
77
import MyProfileStatsItem from './MyProfileStatsItem';
88
import './MyProfileStats.scss';
99

@@ -66,8 +66,8 @@ const MyProfileStats = ({ advertiserId }: TMyProfileStatsProps) => {
6666
testId='dt_profile_stats_trade_volume'
6767
value={
6868
shouldShowTradeVolumeLifetime
69-
? numberToCurrencyText(tradeVolumeLifetime)
70-
: numberToCurrencyText(tradeVolume)
69+
? FormatUtils.formatMoney(tradeVolumeLifetime)
70+
: FormatUtils.formatMoney(tradeVolume)
7171
}
7272
/>
7373
<MyProfileStatsItem
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { THooks, TPaymentMethod } from 'types';
2+
import {
3+
getPaymentMethodObjects,
4+
sortPaymentMethods,
5+
sortPaymentMethodsWithAvailability,
6+
TGetPaymentMethodObjects,
7+
} from '../payment-methods';
8+
9+
type TSortPaymentMethodsList = (TPaymentMethod & { isAvailable?: boolean })[];
10+
11+
describe('payment-methods', () => {
12+
describe('getPaymentMethodObjects', () => {
13+
it('should return an object with payment methods as keys', () => {
14+
const paymentMethods = [
15+
{ display_name: 'Bank Transfer', id: '1' },
16+
{ display_name: 'Alipay', id: '2' },
17+
];
18+
const result = getPaymentMethodObjects(paymentMethods as TGetPaymentMethodObjects);
19+
expect(result).toEqual({
20+
Alipay: { display_name: 'Alipay', id: '2' },
21+
'Bank Transfer': { display_name: 'Bank Transfer', id: '1' },
22+
});
23+
});
24+
25+
it('should return an empty object if the paymentMethodsList is empty', () => {
26+
const paymentMethods: TGetPaymentMethodObjects = [];
27+
const result = getPaymentMethodObjects(paymentMethods);
28+
expect(result).toEqual({});
29+
});
30+
31+
it('should return an empty object if paymentMethodsList is undefined', () => {
32+
// @ts-expect-error - Testing for undefined
33+
const result = getPaymentMethodObjects(undefined);
34+
expect(result).toEqual({});
35+
});
36+
});
37+
38+
describe('sortPaymentMethods', () => {
39+
it('should sort the payment methods based on their order', () => {
40+
const paymentMethods = [{ method: 'bank_transfer' }, { method: 'other' }, { method: 'alipay' }];
41+
const result = sortPaymentMethods(paymentMethods as THooks.AdvertiserPaymentMethods.Get);
42+
expect(result).toEqual([{ method: 'bank_transfer' }, { method: 'alipay' }, { method: 'other' }]);
43+
});
44+
});
45+
46+
describe('sortPaymentMethodsWithAvailability', () => {
47+
it('should sort the payment methods based on their availability', () => {
48+
const paymentMethods = [
49+
{ isAvailable: false, method: 'bank_transfer' },
50+
{ isAvailable: true, method: 'alipay' },
51+
];
52+
const result = sortPaymentMethodsWithAvailability(paymentMethods as unknown as TSortPaymentMethodsList);
53+
expect(result).toEqual([
54+
{ isAvailable: true, method: 'alipay' },
55+
{ isAvailable: false, method: 'bank_transfer' },
56+
]);
57+
});
58+
});
59+
});

src/utils/currency.ts

-35
This file was deleted.

src/utils/index.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
export * from './ad-utils';
22
export * from './adverts';
3-
export * from './currency';
43
export * from './date';
54
export * from './file-dropzone';
65
export * from './file-uploader';

src/utils/payment-methods.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export const sortPaymentMethods = (paymentMethodsList: THooks.AdvertiserPaymentM
2121
return paymentMethodsList?.sort((i, j) => getPaymentMethodOrder(i.method) - getPaymentMethodOrder(j.method));
2222
};
2323

24-
type TGetPaymentMethodObjects = THooks.AdvertiserPaymentMethods.Get | THooks.PaymentMethods.Get;
24+
export type TGetPaymentMethodObjects = THooks.AdvertiserPaymentMethods.Get | THooks.PaymentMethods.Get;
2525
type TField = Extract<keyof TGetPaymentMethodObjects[0], 'display_name' | 'id'>;
2626
/**
2727
* Retrieves the payment method objects.

0 commit comments

Comments
 (0)