Skip to content

Commit

Permalink
Rename and refactor return values, #5180
Browse files Browse the repository at this point in the history
  • Loading branch information
leocs2417 committed Dec 11, 2024
1 parent 4a58116 commit 0eee8b1
Showing 1 changed file with 40 additions and 22 deletions.
62 changes: 40 additions & 22 deletions packages/next-common/components/assets/useSubAssetBalance.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ import useSubStorage from "next-common/hooks/common/useSubStorage";
import useAllAssetMetadata from "next-common/components/assets/context/assetMetadata";
import { useMemo, useState, useEffect } from "react";
import { useContextApi } from "next-common/context/api";
import BigNumber from "bignumber.js";
import { isNil } from "lodash";

export function useMultiAccountKeyDeps(address) {
const [allMetadata] = useAllAssetMetadata();
const multiAccountKey = useMemo(
() => allMetadata?.map((item) => [item.assetId, address]),
[allMetadata, address],
);
return multiAccountKey;
return { multiAccountKey, allMetadata };
}

export function useSubAssetBalanceDeps(address) {
export function useQueryAssetsDeps(address) {
const api = useContextApi();
const multiAccountKey = useMultiAccountKeyDeps(address);
const { multiAccountKey, allMetadata } = useMultiAccountKeyDeps(address);
const [multiAccounts, setMultiAccounts] = useState([]);
const [loading, setLoading] = useState(true);

Expand All @@ -27,24 +27,22 @@ export function useSubAssetBalanceDeps(address) {
api.query.assets.account
.multi(multiAccountKey)
.then((result) => {
const multiAccounts = result
?.map((option) => {
if (option.isNone) {
return null;
}
const multiAccounts = result?.map((option) => {
if (option.isNone) {
return null;
}

const { balance, status = {} } = option.unwrap();
const { isFrozen } = status;
const { balance, status = {} } = option.unwrap();
const { isFrozen } = status;

return {
balance: balance.toJSON(),
status: {
isFrozen,
},
};
})
.filter(Boolean)
.filter((item) => !new BigNumber(item.balance || 0).isZero());
return {
option: option.unwrap(),
balance: balance.toJSON(),
status: {
isFrozen,
},
};
});

setMultiAccounts(multiAccounts);
})
Expand All @@ -53,8 +51,19 @@ export function useSubAssetBalanceDeps(address) {
});
}, [api, multiAccountKey]);

const assets = (allMetadata || []).reduce((result, item, index) => {
const account = multiAccounts[index];
if (isNil(account)) {
return result;
}

const balance = account.balance.toString();
const transferrable = account.status.isFrozen ? 0 : balance;
return [...result, { ...item, balance, transferrable }];
}, []);

return {
multiAccounts,
assets,
loading,
};
}
Expand All @@ -65,8 +74,17 @@ export default function useSubAssetBalance(assetId, address) {
address,
]);

const data = result?.unwrap();
const balance = data?.balance?.toString() || 0;
const isFrozen = data?.status?.isFrozen;
const transferrable = isFrozen ? 0 : balance;

return {
result: result?.toJSON()?.balance || 0,
result: {
balance,
transferrable,
isFrozen,
},
loading,
};
}

0 comments on commit 0eee8b1

Please sign in to comment.