@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
27 lines • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useAccountsSyncStatus = useAccountsSyncStatus;
const useAccountSyncState_1 = require("./useAccountSyncState");
function useAccountsSyncStatus(accountsWithUpToDateCheck) {
const allAccounts = accountsWithUpToDateCheck.map(item => item.account);
const isUpToDateByAccountId = new Map(accountsWithUpToDateCheck.map(item => [item.account.id, item.isUpToDate ?? true]));
const batchState = (0, useAccountSyncState_1.useBatchAccountsSyncState)({ accounts: allAccounts });
const accountsWithError = [];
for (const { syncState, account } of batchState) {
if (syncState.pending)
continue;
const isUpToDate = isUpToDateByAccountId.get(account.id);
if (syncState.error || !isUpToDate) {
accountsWithError.push(account);
}
}
const areAllAccountsUpToDate = accountsWithError.length === 0;
const lastSyncMs = Math.max(...allAccounts.map(a => a.lastSyncDate?.getTime() ?? 0), 0);
return {
allAccounts,
accountsWithError,
areAllAccountsUpToDate,
lastSyncMs,
};
}
//# sourceMappingURL=useAccountsSyncStatus.js.map