diff --git a/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-1-chromium-linux.png b/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-1-chromium-linux.png
index 3cb6f9c634..6bd36f33b0 100644
Binary files a/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-1-chromium-linux.png and b/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-1-chromium-linux.png differ
diff --git a/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-2-chromium-linux.png b/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-2-chromium-linux.png
index e2988c222b..4722fad3d1 100644
Binary files a/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-2-chromium-linux.png and b/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-2-chromium-linux.png differ
diff --git a/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-3-chromium-linux.png b/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-3-chromium-linux.png
index 717ce7b1ab..0f2889138a 100644
Binary files a/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-3-chromium-linux.png and b/packages/desktop-client/e2e/rules.test.js-snapshots/Rules-creates-a-split-transaction-rule-and-makes-sure-it-is-applied-when-creating-a-transaction-3-chromium-linux.png differ
diff --git a/packages/desktop-client/src/components/accounts/Account.jsx b/packages/desktop-client/src/components/accounts/Account.jsx
index 225ec864bb..ecf4f27f7f 100644
--- a/packages/desktop-client/src/components/accounts/Account.jsx
+++ b/packages/desktop-client/src/components/accounts/Account.jsx
@@ -680,6 +680,26 @@ class AccountInternal extends PureComponent {
};
}
+ getFilteredAmount = async (filters, conditionsOpKey) => {
+ const filter = queries.getAccountFilter(this.props.accountId);
+
+ let query = q('transactions').filter({
+ [conditionsOpKey]: [...filters],
+ });
+ if (filter) {
+ query = query.filter(filter);
+ }
+
+ const filteredQuery = await runQuery(
+ query.select([{ amount: { $sum: '$amount' } }]),
+ );
+ const filteredAmount = filteredQuery.data.reduce(
+ (a, v) => (a = a + v.amount),
+ 0,
+ );
+ return filteredAmount;
+ };
+
isNew = id => {
return this.props.newTransactions.includes(id);
};
@@ -1307,6 +1327,10 @@ class AccountInternal extends PureComponent {
conditions: conditions.filter(cond => !cond.customName),
});
const conditionsOpKey = this.state.conditionsOp === 'or' ? '$or' : '$and';
+ this.filteredAmount = await this.getFilteredAmount(
+ filters,
+ conditionsOpKey,
+ );
this.currentQuery = this.rootQuery.filter({
[conditionsOpKey]: [...filters, ...customFilters],
});
@@ -1524,6 +1548,7 @@ class AccountInternal extends PureComponent {
>
!item._unmatched && !item.is_parent)
- .reduce((sum, product) => sum + product.amount, 0);
-
+function FilteredBalance({ filteredAmount }) {
return (
);
@@ -142,7 +138,7 @@ export function Balances({
onToggleExtraBalances,
account,
filteredItems,
- transactions,
+ filteredAmount,
}) {
const selectedItems = useSelectedItems();
@@ -201,7 +197,7 @@ export function Balances({
)}
{filteredItems.length > 0 && (
-
+
)}
);
diff --git a/packages/desktop-client/src/components/accounts/Header.jsx b/packages/desktop-client/src/components/accounts/Header.jsx
index 21b0e64b3b..a3daf4b750 100644
--- a/packages/desktop-client/src/components/accounts/Header.jsx
+++ b/packages/desktop-client/src/components/accounts/Header.jsx
@@ -32,6 +32,7 @@ import { Balances } from './Balance';
import { ReconcilingMessage, ReconcileTooltip } from './Reconcile';
export function AccountHeader({
+ filteredAmount,
tableRef,
editingName,
isNameEditable,
@@ -242,7 +243,7 @@ export function AccountHeader({
onToggleExtraBalances={onToggleExtraBalances}
account={account}
filteredItems={filters}
- transactions={transactions}
+ filteredAmount={filteredAmount}
/>