From 536cabb75b02f4da6d9d4cf03ccf4923c1de2b57 Mon Sep 17 00:00:00 2001
From: Neil <55785687+carkom@users.noreply.github.com>
Date: Thu, 25 Jul 2024 18:07:43 +0100
Subject: [PATCH] Spending Report: card fix (#3135)

* spending card fix

* notes
---
 .../src/components/reports/graphs/SpendingGraph.tsx         | 2 +-
 .../src/components/reports/reports/Spending.tsx             | 4 ++--
 .../src/components/reports/reports/SpendingCard.tsx         | 2 +-
 packages/loot-core/src/types/models/reports.d.ts            | 2 ++
 packages/loot-core/src/types/prefs.d.ts                     | 4 +++-
 upcoming-release-notes/3135.md                              | 6 ++++++
 6 files changed, 15 insertions(+), 5 deletions(-)
 create mode 100644 upcoming-release-notes/3135.md

diff --git a/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx b/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx
index 60b2b4f78..1592e0b99 100644
--- a/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx
@@ -140,7 +140,7 @@ export function SpendingGraph({
   const lastYear = monthUtils.prevYear(monthUtils.currentMonth());
   let selection;
   switch (mode) {
-    case 'Average':
+    case 'average':
       selection = 'average';
       break;
     case 'lastYear':
diff --git a/packages/desktop-client/src/components/reports/reports/Spending.tsx b/packages/desktop-client/src/components/reports/reports/Spending.tsx
index 0800df9e3..529c62c06 100644
--- a/packages/desktop-client/src/components/reports/reports/Spending.tsx
+++ b/packages/desktop-client/src/components/reports/reports/Spending.tsx
@@ -321,8 +321,8 @@ export function Spending() {
                     )}
                     {showAverage && (
                       <ModeButton
-                        selected={mode === 'Average'}
-                        onSelect={() => setMode('Average')}
+                        selected={mode === 'average'}
+                        onSelect={() => setMode('average')}
                       >
                         Average
                       </ModeButton>
diff --git a/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx b/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx
index 57bbf6ad1..94deb49fb 100644
--- a/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx
+++ b/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx
@@ -40,7 +40,7 @@ export function SpendingCard() {
       : monthUtils.getDay(monthUtils.currentDay()) - 1;
   const difference =
     data &&
-    data.intervalData[todayDay].lastMonth -
+    data.intervalData[todayDay][spendingReportTime] -
       data.intervalData[todayDay].thisMonth;
   const showLastMonth = data && Math.abs(data.intervalData[27].lastMonth) > 0;
 
diff --git a/packages/loot-core/src/types/models/reports.d.ts b/packages/loot-core/src/types/models/reports.d.ts
index da6452786..3fd9a0a42 100644
--- a/packages/loot-core/src/types/models/reports.d.ts
+++ b/packages/loot-core/src/types/models/reports.d.ts
@@ -32,6 +32,8 @@ export type balanceTypeOpType =
   | 'netAssets'
   | 'netDebts';
 
+export type spendingReportTimeType = 'lastMonth' | 'lastYear' | 'average';
+
 export type SpendingMonthEntity = Record<
   string | number,
   {
diff --git a/packages/loot-core/src/types/prefs.d.ts b/packages/loot-core/src/types/prefs.d.ts
index 82cd445a0..b859d537f 100644
--- a/packages/loot-core/src/types/prefs.d.ts
+++ b/packages/loot-core/src/types/prefs.d.ts
@@ -1,5 +1,7 @@
 import { type numberFormats } from '../shared/util';
 
+import { spendingReportTimeType } from './models/reports';
+
 export type FeatureFlag =
   | 'reportBudget'
   | 'goalTemplatesEnabled'
@@ -51,7 +53,7 @@ export type LocalPrefs = Partial<
     reportsViewSummary: boolean;
     reportsViewLabel: boolean;
     spendingReportFilter: string;
-    spendingReportTime: string;
+    spendingReportTime: spendingReportTimeType;
     sidebarWidth: number;
     'mobile.showSpentColumn': boolean;
   } & Record<`flags.${FeatureFlag}`, boolean>
diff --git a/upcoming-release-notes/3135.md b/upcoming-release-notes/3135.md
new file mode 100644
index 000000000..6f890d1a6
--- /dev/null
+++ b/upcoming-release-notes/3135.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [carkom]
+---
+
+Fixes spending card that doesn't show the correct difference number.
-- 
GitLab