diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 558f2beb4..eee222d87 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -2,7 +2,7 @@ /* eslint-disable new-cap */ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { getConnection, In } from '@dbTools/typeorm' +import { getConnection, In, IsNull } from '@dbTools/typeorm' import { Transaction as dbTransaction } from '@entity/Transaction' import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink' import { User as dbUser } from '@entity/User' @@ -418,7 +418,28 @@ export class TransactionResolver { logger.debug(`transactions=${transactions}`) // virtual transaction for pending transaction-links sum - if (sumHoldAvailableAmount.greaterThan(0)) { + if (sumHoldAvailableAmount.isZero()) { + const linkCount = await dbTransactionLink.count({ + where: { + userId: user.id, + redeemedAt: IsNull(), + }, + }) + if (linkCount > 0) { + transactions.push( + virtualLinkTransaction( + lastTransaction.balance, + new Decimal(0), + new Decimal(0), + new Decimal(0), + now, + now, + self, + (userTransactions.length && userTransactions[0].balance) || new Decimal(0), + ), + ) + } + } else if (sumHoldAvailableAmount.greaterThan(0)) { logger.debug(`sumHoldAvailableAmount > 0: transactions=${transactions}`) transactions.push( virtualLinkTransaction( diff --git a/frontend/src/components/Contributions/ContributionListItem.vue b/frontend/src/components/Contributions/ContributionListItem.vue index 0197a9593..dd970d72c 100644 --- a/frontend/src/components/Contributions/ContributionListItem.vue +++ b/frontend/src/components/Contributions/ContributionListItem.vue @@ -26,7 +26,7 @@