Skip to content

Commit 4431282

Browse files
author
Marcin Mazurek
committed
[DDW-1111] Address PR feedback
1 parent 299a8c9 commit 4431282

File tree

7 files changed

+94
-26
lines changed

7 files changed

+94
-26
lines changed

source/renderer/app/api/api.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ import Asset from '../domains/Asset';
227227
import { getAssets } from './assets/requests/getAssets';
228228
import { getAccountPublicKey } from './wallets/requests/getAccountPublicKey';
229229
import { doesWalletRequireAdaToRemainToSupportTokens } from './utils/apiHelpers';
230-
import { AssetLocalData, defaultAssetLocalData } from '../types/localDataTypes';
230+
import { AssetLocalData } from '../types/localDataTypes';
231231

232232
export default class AdaApi {
233233
config: RequestConfig;
@@ -670,8 +670,7 @@ export default class AdaApi {
670670
const assets = response.map((asset) =>
671671
_createAssetFromServerData(
672672
asset,
673-
assetsLocalData[asset.policy_id + asset.asset_name] ||
674-
defaultAssetLocalData,
673+
assetsLocalData[asset.policy_id + asset.asset_name] || {},
675674
this.storedAssetMetadata
676675
)
677676
);

source/renderer/app/api/utils/localStorage.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import {
2626
HardwareWalletsLocalData,
2727
UnpairedHardwareWalletData,
2828
WalletLocalData,
29-
defaultAssetLocalData,
3029
} from '../../types/localDataTypes';
3130

3231
export type SetHardwareWalletLocalDataRequestType = {
@@ -278,11 +277,7 @@ export default class LocalStorageApi {
278277
policyId: string,
279278
assetName: string
280279
): Promise<AssetLocalData> =>
281-
LocalStorageApi.get(
282-
keys.ASSET_DATA,
283-
defaultAssetLocalData,
284-
`${policyId}${assetName}`
285-
);
280+
LocalStorageApi.get(keys.ASSET_DATA, {}, `${policyId}${assetName}`);
286281
setAssetLocalData = (
287282
policyId: string,
288283
assetName: string,

source/renderer/app/components/assets/AssetSettingsDialog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {
1717
MAX_DECIMAL_PRECISION,
1818
} from '../../config/assetsConfig';
1919
import { DiscreetTokenWalletAmount } from '../../features/discreet-mode';
20-
import { isRecommendedDecimal } from '../wallet/tokens/wallet-token/helpers';
20+
import { isNonRecommendedDecimalSettingUsed } from '../wallet/tokens/wallet-token/helpers';
2121

2222
const messages = defineMessages({
2323
title: {
@@ -154,7 +154,7 @@ class AssetSettingsDialog extends Component<Props, State> {
154154
},
155155
];
156156

157-
const hasWarning = isRecommendedDecimal({
157+
const hasWarning = isNonRecommendedDecimalSettingUsed({
158158
recommendedDecimals,
159159
decimals: savedDecimals,
160160
});

source/renderer/app/components/wallet/tokens/wallet-token/WalletToken.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import AssetContent from '../../../assets/AssetContent';
66
import type { AssetToken } from '../../../../api/assets/types';
77
import WalletTokenFooter from './WalletTokenFooter';
88
import WalletTokenHeader from './WalletTokenHeader';
9-
import { isRecommendedDecimal } from './helpers';
9+
import { isNonRecommendedDecimalSettingUsed } from './helpers';
1010

1111
type Props = {
1212
anyAssetWasHovered: boolean;
@@ -49,7 +49,7 @@ const WalletToken = observer((props: Props) => {
4949
setIsExpanded(!isExpanded);
5050
}, [setIsExpanded, isExpanded]);
5151

52-
const hasWarning = isRecommendedDecimal({
52+
const hasWarning = isNonRecommendedDecimalSettingUsed({
5353
decimals: asset.decimals,
5454
recommendedDecimals: asset.recommendedDecimals,
5555
});
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import { isNonRecommendedDecimalSettingUsed } from './helpers';
2+
3+
describe('isNonRecommendedDecimalSettingUsed', () => {
4+
it('returns false if asset does not have recommended decimals', async () => {
5+
expect(
6+
isNonRecommendedDecimalSettingUsed({
7+
decimals: 0,
8+
recommendedDecimals: undefined,
9+
})
10+
).toEqual(false);
11+
12+
expect(
13+
isNonRecommendedDecimalSettingUsed({
14+
decimals: 5,
15+
recommendedDecimals: undefined,
16+
})
17+
).toEqual(false);
18+
});
19+
20+
it('returns false if recommended decimal settings are applied by user', async () => {
21+
expect(
22+
isNonRecommendedDecimalSettingUsed({
23+
decimals: 0,
24+
recommendedDecimals: 0,
25+
})
26+
).toEqual(false);
27+
28+
expect(
29+
isNonRecommendedDecimalSettingUsed({
30+
decimals: 5,
31+
recommendedDecimals: 5,
32+
})
33+
).toEqual(false);
34+
});
35+
36+
it('returns false if 0 (default value) is recommended and user never changed settings', async () => {
37+
expect(
38+
isNonRecommendedDecimalSettingUsed({
39+
decimals: undefined,
40+
recommendedDecimals: 0,
41+
})
42+
).toEqual(false);
43+
});
44+
45+
it('returns true if non-zero decimals are recommended but user never changed settings', async () => {
46+
expect(
47+
isNonRecommendedDecimalSettingUsed({
48+
decimals: undefined,
49+
recommendedDecimals: 3,
50+
})
51+
).toEqual(true);
52+
});
53+
54+
it('returns true if user applied non-recommended decimal settings', async () => {
55+
expect(
56+
isNonRecommendedDecimalSettingUsed({
57+
decimals: 3,
58+
recommendedDecimals: 0,
59+
})
60+
).toEqual(true);
61+
62+
expect(
63+
isNonRecommendedDecimalSettingUsed({
64+
decimals: 0,
65+
recommendedDecimals: 3,
66+
})
67+
).toEqual(true);
68+
});
69+
});
Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
1-
type IsRecommendedDecimal = {
1+
type IsNonRecommendedDecimalSettingUsedArgs = {
22
decimals: number | null | undefined;
33
recommendedDecimals: number | null | undefined;
44
};
55

6-
export const isRecommendedDecimal = ({
6+
export const isNonRecommendedDecimalSettingUsed = ({
77
recommendedDecimals,
88
decimals,
9-
}: IsRecommendedDecimal) => {
10-
return (
11-
typeof recommendedDecimals === 'number' &&
12-
typeof decimals === 'number' &&
13-
decimals !== recommendedDecimals
14-
);
9+
}: IsNonRecommendedDecimalSettingUsedArgs) => {
10+
const hasRecommendedDecimals = typeof recommendedDecimals === 'number';
11+
const hasConfiguredDecimals = typeof decimals === 'number';
12+
13+
if (!hasRecommendedDecimals) {
14+
return false;
15+
}
16+
if (hasConfiguredDecimals) {
17+
return decimals !== recommendedDecimals;
18+
}
19+
if (!hasConfiguredDecimals && recommendedDecimals === 0) {
20+
return false;
21+
}
22+
23+
return true;
1524
};

source/renderer/app/types/localDataTypes.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,5 @@ export type HardwareWalletsLocalData = Record<string, HardwareWalletLocalData>;
3535
export type HardwareWalletDevicesType = Record<string, TransportDevice>;
3636

3737
export type AssetLocalData = {
38-
decimals: number;
39-
};
40-
41-
export const defaultAssetLocalData: AssetLocalData = {
42-
decimals: 0,
38+
decimals?: number;
4339
};

0 commit comments

Comments
 (0)