diff --git a/package.json b/package.json
index 601b59594ab..db6163d7b54 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
"rebuild-node": "yarn workspace loot-core rebuild",
"lint": "eslint . --max-warnings 0",
"lint:verbose": "DEBUG=eslint:cli-engine eslint . --max-warnings 0",
- "typecheck": "yarn tsc",
+ "typecheck": "yarn tsc && tsc-strict",
"jq": "./node_modules/node-jq/bin/jq"
},
"devDependencies": {
@@ -55,7 +55,8 @@
"prettier": "2.8.2",
"react-refresh": "^0.14.0",
"source-map-support": "^0.5.21",
- "typescript": "^5.0.2"
+ "typescript": "^5.0.2",
+ "typescript-strict-plugin": "^2.2.2-beta.2"
},
"engines": {
"node": ">=18.0.0"
diff --git a/packages/api/methods.test.ts b/packages/api/methods.test.ts
index f38a6985e70..e68214d83d9 100644
--- a/packages/api/methods.test.ts
+++ b/packages/api/methods.test.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import * as fs from 'fs/promises';
import * as path from 'path';
diff --git a/packages/desktop-client/src/ResponsiveProvider.tsx b/packages/desktop-client/src/ResponsiveProvider.tsx
index d31ec6e3e3d..4a133866ca1 100644
--- a/packages/desktop-client/src/ResponsiveProvider.tsx
+++ b/packages/desktop-client/src/ResponsiveProvider.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { type ReactNode, createContext, useContext } from 'react';
import { useViewportSize } from '@react-aria/utils';
diff --git a/packages/desktop-client/src/components/AnimatedRefresh.tsx b/packages/desktop-client/src/components/AnimatedRefresh.tsx
index 56dff953435..e94e3a319b1 100644
--- a/packages/desktop-client/src/components/AnimatedRefresh.tsx
+++ b/packages/desktop-client/src/components/AnimatedRefresh.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { keyframes } from 'glamor';
diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx
index 2dbdfd2033f..9af53e519f0 100644
--- a/packages/desktop-client/src/components/App.tsx
+++ b/packages/desktop-client/src/components/App.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect, useState } from 'react';
import {
ErrorBoundary,
diff --git a/packages/desktop-client/src/components/FatalError.tsx b/packages/desktop-client/src/components/FatalError.tsx
index fc549542912..f15b6852610 100644
--- a/packages/desktop-client/src/components/FatalError.tsx
+++ b/packages/desktop-client/src/components/FatalError.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { Block } from './common/Block';
diff --git a/packages/desktop-client/src/components/FinancesApp.tsx b/packages/desktop-client/src/components/FinancesApp.tsx
index 60ca0d8fbe5..29c241a14da 100644
--- a/packages/desktop-client/src/components/FinancesApp.tsx
+++ b/packages/desktop-client/src/components/FinancesApp.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ReactElement, useEffect, useMemo } from 'react';
import { DndProvider } from 'react-dnd';
import { HTML5Backend as Backend } from 'react-dnd-html5-backend';
diff --git a/packages/desktop-client/src/components/FixedSizeList.tsx b/packages/desktop-client/src/components/FixedSizeList.tsx
index ad8fcb6623b..2e74b00d5f8 100644
--- a/packages/desktop-client/src/components/FixedSizeList.tsx
+++ b/packages/desktop-client/src/components/FixedSizeList.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import {
createRef,
PureComponent,
diff --git a/packages/desktop-client/src/components/GlobalKeys.ts b/packages/desktop-client/src/components/GlobalKeys.ts
index 33e2e6bd846..1109e4250cb 100644
--- a/packages/desktop-client/src/components/GlobalKeys.ts
+++ b/packages/desktop-client/src/components/GlobalKeys.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { useEffect } from 'react';
import * as Platform from 'loot-core/src/client/platform';
diff --git a/packages/desktop-client/src/components/KeyHandlers.tsx b/packages/desktop-client/src/components/KeyHandlers.tsx
index 3a674e5f4b3..13affa3397a 100644
--- a/packages/desktop-client/src/components/KeyHandlers.tsx
+++ b/packages/desktop-client/src/components/KeyHandlers.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { createContext, useEffect, useContext } from 'react';
import hotkeys, { type KeyHandler as HotKeyHandler } from 'hotkeys-js';
diff --git a/packages/desktop-client/src/components/LoggedInUser.tsx b/packages/desktop-client/src/components/LoggedInUser.tsx
index c4fa229c15f..a29cfb8bad0 100644
--- a/packages/desktop-client/src/components/LoggedInUser.tsx
+++ b/packages/desktop-client/src/components/LoggedInUser.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useEffect } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/ManageRules.tsx b/packages/desktop-client/src/components/ManageRules.tsx
index 6dbcea27150..6e82621f92f 100644
--- a/packages/desktop-client/src/components/ManageRules.tsx
+++ b/packages/desktop-client/src/components/ManageRules.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useState,
useEffect,
diff --git a/packages/desktop-client/src/components/Modals.tsx b/packages/desktop-client/src/components/Modals.tsx
index b78c56e8de6..b78573b3c64 100644
--- a/packages/desktop-client/src/components/Modals.tsx
+++ b/packages/desktop-client/src/components/Modals.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect } from 'react';
import { useSelector } from 'react-redux';
import { useLocation } from 'react-router-dom';
diff --git a/packages/desktop-client/src/components/Notes.tsx b/packages/desktop-client/src/components/Notes.tsx
index 7fa8e358e23..11a617f18f6 100644
--- a/packages/desktop-client/src/components/Notes.tsx
+++ b/packages/desktop-client/src/components/Notes.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect, useRef } from 'react';
import ReactMarkdown from 'react-markdown';
diff --git a/packages/desktop-client/src/components/NotesButton.tsx b/packages/desktop-client/src/components/NotesButton.tsx
index 6fb363db0f2..c68299ceac9 100644
--- a/packages/desktop-client/src/components/NotesButton.tsx
+++ b/packages/desktop-client/src/components/NotesButton.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useLiveQuery } from 'loot-core/src/client/query-hooks';
diff --git a/packages/desktop-client/src/components/Notifications.tsx b/packages/desktop-client/src/components/Notifications.tsx
index 745b2b07dcb..122a1231870 100644
--- a/packages/desktop-client/src/components/Notifications.tsx
+++ b/packages/desktop-client/src/components/Notifications.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useState,
useEffect,
diff --git a/packages/desktop-client/src/components/PrivacyFilter.tsx b/packages/desktop-client/src/components/PrivacyFilter.tsx
index 3f55382c66d..f8596b7c86d 100644
--- a/packages/desktop-client/src/components/PrivacyFilter.tsx
+++ b/packages/desktop-client/src/components/PrivacyFilter.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useState,
useCallback,
diff --git a/packages/desktop-client/src/components/ScrollProvider.tsx b/packages/desktop-client/src/components/ScrollProvider.tsx
index 8cbe68c8cb9..f9e58e4bf56 100644
--- a/packages/desktop-client/src/components/ScrollProvider.tsx
+++ b/packages/desktop-client/src/components/ScrollProvider.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
type ReactNode,
createContext,
diff --git a/packages/desktop-client/src/components/ServerContext.tsx b/packages/desktop-client/src/components/ServerContext.tsx
index 795a62b794d..a3db98801ea 100644
--- a/packages/desktop-client/src/components/ServerContext.tsx
+++ b/packages/desktop-client/src/components/ServerContext.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
createContext,
useState,
diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx
index 3d1af8b0efc..e3487eddac9 100644
--- a/packages/desktop-client/src/components/Titlebar.tsx
+++ b/packages/desktop-client/src/components/Titlebar.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
createContext,
useState,
diff --git a/packages/desktop-client/src/components/UpdateNotification.tsx b/packages/desktop-client/src/components/UpdateNotification.tsx
index 10853e88440..1485a56a96b 100644
--- a/packages/desktop-client/src/components/UpdateNotification.tsx
+++ b/packages/desktop-client/src/components/UpdateNotification.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/alerts.tsx b/packages/desktop-client/src/components/alerts.tsx
index 34bed4e1745..831dc52a68f 100644
--- a/packages/desktop-client/src/components/alerts.tsx
+++ b/packages/desktop-client/src/components/alerts.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentType, type ReactNode } from 'react';
import { SvgExclamationOutline, SvgInformationOutline } from '../icons/v1';
diff --git a/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx
index 2cc9d25dab8..3b514ac2f01 100644
--- a/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx
+++ b/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { Fragment, type ComponentProps, type ReactNode } from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx b/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx
index 10483817b1f..f7079b57c62 100644
--- a/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx
+++ b/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useState,
useRef,
diff --git a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx
index 2ac5fa7b6f1..2fca26a7a71 100644
--- a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx
+++ b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
type ComponentProps,
Fragment,
diff --git a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx
index 0df6e3bc109..b99009b3227 100644
--- a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx
+++ b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
Fragment,
useState,
diff --git a/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx b/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx
index c973ce1ad59..a20dea15d0a 100644
--- a/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx
+++ b/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps } from 'react';
import { useFeatureFlag } from '../../hooks/useFeatureFlag';
diff --git a/packages/desktop-client/src/components/budget/BudgetMonthCountContext.tsx b/packages/desktop-client/src/components/budget/BudgetMonthCountContext.tsx
index a69e40fb69f..5ddbfc1dc3b 100644
--- a/packages/desktop-client/src/components/budget/BudgetMonthCountContext.tsx
+++ b/packages/desktop-client/src/components/budget/BudgetMonthCountContext.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
createContext,
type Dispatch,
diff --git a/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx b/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx
index 881aa892e80..4f29b9e2d4c 100644
--- a/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx
+++ b/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps, memo } from 'react';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx b/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx
index a8655a5e4b0..1459d2be527 100644
--- a/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx
+++ b/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { forwardRef, useEffect, type ComponentProps } from 'react';
import { useSelector } from 'react-redux';
import AutoSizer from 'react-virtualized-auto-sizer';
diff --git a/packages/desktop-client/src/components/budget/ExpenseCategory.tsx b/packages/desktop-client/src/components/budget/ExpenseCategory.tsx
index 462fb7d88ec..660f54646fd 100644
--- a/packages/desktop-client/src/components/budget/ExpenseCategory.tsx
+++ b/packages/desktop-client/src/components/budget/ExpenseCategory.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps } from 'react';
import { type CategoryEntity } from 'loot-core/src/types/models';
diff --git a/packages/desktop-client/src/components/budget/ExpenseGroup.tsx b/packages/desktop-client/src/components/budget/ExpenseGroup.tsx
index 049a46032c6..d30e7c4f3d3 100644
--- a/packages/desktop-client/src/components/budget/ExpenseGroup.tsx
+++ b/packages/desktop-client/src/components/budget/ExpenseGroup.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps } from 'react';
import { theme } from '../../style';
diff --git a/packages/desktop-client/src/components/budget/IncomeCategory.tsx b/packages/desktop-client/src/components/budget/IncomeCategory.tsx
index d03e0b1307e..922c6f921b1 100644
--- a/packages/desktop-client/src/components/budget/IncomeCategory.tsx
+++ b/packages/desktop-client/src/components/budget/IncomeCategory.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps } from 'react';
import { type CategoryEntity } from 'loot-core/src/types/models';
diff --git a/packages/desktop-client/src/components/budget/IncomeGroup.tsx b/packages/desktop-client/src/components/budget/IncomeGroup.tsx
index 5ae414ec64b..6a25adeff4c 100644
--- a/packages/desktop-client/src/components/budget/IncomeGroup.tsx
+++ b/packages/desktop-client/src/components/budget/IncomeGroup.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { theme } from '../../style';
diff --git a/packages/desktop-client/src/components/budget/MobileBudget.tsx b/packages/desktop-client/src/components/budget/MobileBudget.tsx
index 415652629b7..2a426909a4c 100644
--- a/packages/desktop-client/src/components/budget/MobileBudget.tsx
+++ b/packages/desktop-client/src/components/budget/MobileBudget.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect, useState } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/budget/MonthPicker.tsx b/packages/desktop-client/src/components/budget/MonthPicker.tsx
index d42a99b6584..ca8b8adc090 100644
--- a/packages/desktop-client/src/components/budget/MonthPicker.tsx
+++ b/packages/desktop-client/src/components/budget/MonthPicker.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { type CSSProperties, useState } from 'react';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/budget/MonthsContext.tsx b/packages/desktop-client/src/components/budget/MonthsContext.tsx
index bca1acfe315..2d5e377402a 100644
--- a/packages/desktop-client/src/components/budget/MonthsContext.tsx
+++ b/packages/desktop-client/src/components/budget/MonthsContext.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { createContext, type ReactNode } from 'react';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/budget/RenderMonths.tsx b/packages/desktop-client/src/components/budget/RenderMonths.tsx
index 1960f7ccb0b..20aceb19922 100644
--- a/packages/desktop-client/src/components/budget/RenderMonths.tsx
+++ b/packages/desktop-client/src/components/budget/RenderMonths.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useContext,
type CSSProperties,
diff --git a/packages/desktop-client/src/components/budget/SidebarCategory.tsx b/packages/desktop-client/src/components/budget/SidebarCategory.tsx
index 1beef2ca4f6..04bd471d24b 100644
--- a/packages/desktop-client/src/components/budget/SidebarCategory.tsx
+++ b/packages/desktop-client/src/components/budget/SidebarCategory.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type CSSProperties, type Ref, useState } from 'react';
import { type CategoryEntity } from 'loot-core/src/types/models';
diff --git a/packages/desktop-client/src/components/budget/SidebarGroup.tsx b/packages/desktop-client/src/components/budget/SidebarGroup.tsx
index c574e1e787f..c298e3d28e3 100644
--- a/packages/desktop-client/src/components/budget/SidebarGroup.tsx
+++ b/packages/desktop-client/src/components/budget/SidebarGroup.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type CSSProperties, useState } from 'react';
import { type ConnectDragSource } from 'react-dnd';
diff --git a/packages/desktop-client/src/components/budget/index.tsx b/packages/desktop-client/src/components/budget/index.tsx
index 959f63bc3c7..884567a27b5 100644
--- a/packages/desktop-client/src/components/budget/index.tsx
+++ b/packages/desktop-client/src/components/budget/index.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
memo,
useContext,
diff --git a/packages/desktop-client/src/components/budget/report/ReportComponents.tsx b/packages/desktop-client/src/components/budget/report/ReportComponents.tsx
index b33faba456d..079fe0d5753 100644
--- a/packages/desktop-client/src/components/budget/report/ReportComponents.tsx
+++ b/packages/desktop-client/src/components/budget/report/ReportComponents.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { memo, useState } from 'react';
import { reportBudget } from 'loot-core/src/client/queries';
diff --git a/packages/desktop-client/src/components/budget/report/ReportContext.tsx b/packages/desktop-client/src/components/budget/report/ReportContext.tsx
index e38b4da869f..c1c90e93d72 100644
--- a/packages/desktop-client/src/components/budget/report/ReportContext.tsx
+++ b/packages/desktop-client/src/components/budget/report/ReportContext.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ReactNode, createContext, useContext } from 'react';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx b/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx
index de09c298c61..748367c8892 100644
--- a/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx
+++ b/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetSummary.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetTotal.tsx b/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetTotal.tsx
index 8d6429e5e02..7edb74feeee 100644
--- a/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetTotal.tsx
+++ b/packages/desktop-client/src/components/budget/report/budgetsummary/BudgetTotal.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
type CSSProperties,
type ComponentProps,
diff --git a/packages/desktop-client/src/components/budget/report/budgetsummary/fraction.ts b/packages/desktop-client/src/components/budget/report/budgetsummary/fraction.ts
index f68ea229450..b5f47c81a52 100644
--- a/packages/desktop-client/src/components/budget/report/budgetsummary/fraction.ts
+++ b/packages/desktop-client/src/components/budget/report/budgetsummary/fraction.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
export function fraction(num, denom) {
if (denom === 0) {
if (num > 0) {
diff --git a/packages/desktop-client/src/components/budget/rollover/BalanceTooltip.tsx b/packages/desktop-client/src/components/budget/rollover/BalanceTooltip.tsx
index eb7a1a5432b..6376207ca99 100644
--- a/packages/desktop-client/src/components/budget/rollover/BalanceTooltip.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/BalanceTooltip.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { rolloverBudget } from 'loot-core/src/client/queries';
diff --git a/packages/desktop-client/src/components/budget/rollover/CoverTooltip.tsx b/packages/desktop-client/src/components/budget/rollover/CoverTooltip.tsx
index 789da20a512..bd822c9cb96 100644
--- a/packages/desktop-client/src/components/budget/rollover/CoverTooltip.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/CoverTooltip.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps, useState } from 'react';
import { useCategories } from '../../../hooks/useCategories';
diff --git a/packages/desktop-client/src/components/budget/rollover/HoldTooltip.tsx b/packages/desktop-client/src/components/budget/rollover/HoldTooltip.tsx
index f6909266bbc..350c7a85215 100644
--- a/packages/desktop-client/src/components/budget/rollover/HoldTooltip.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/HoldTooltip.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useState,
useContext,
diff --git a/packages/desktop-client/src/components/budget/rollover/RolloverComponents.tsx b/packages/desktop-client/src/components/budget/rollover/RolloverComponents.tsx
index 7f5b0bac23e..20be6272fbd 100644
--- a/packages/desktop-client/src/components/budget/rollover/RolloverComponents.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/RolloverComponents.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { memo, useState } from 'react';
import { rolloverBudget } from 'loot-core/src/client/queries';
diff --git a/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx b/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx
index 3d825c834e2..636953b16ac 100644
--- a/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ReactNode, createContext, useContext } from 'react';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx b/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx
index f52aee4c584..8671a1261c7 100644
--- a/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/TransferTooltip.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useState,
useContext,
diff --git a/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx b/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx
index b83dfdf1542..dc66bed7a9f 100644
--- a/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/budgetsummary/BudgetSummary.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/budget/rollover/budgetsummary/ToBudget.tsx b/packages/desktop-client/src/components/budget/rollover/budgetsummary/ToBudget.tsx
index 7364996619a..a07a2ee0f82 100644
--- a/packages/desktop-client/src/components/budget/rollover/budgetsummary/ToBudget.tsx
+++ b/packages/desktop-client/src/components/budget/rollover/budgetsummary/ToBudget.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, type ComponentPropsWithoutRef } from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/budget/util.ts b/packages/desktop-client/src/components/budget/util.ts
index b1e7d7d5c24..ed0f93bb953 100644
--- a/packages/desktop-client/src/components/budget/util.ts
+++ b/packages/desktop-client/src/components/budget/util.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { type useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider';
import { send } from 'loot-core/src/platform/client/fetch';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/common/AlignedText.tsx b/packages/desktop-client/src/components/common/AlignedText.tsx
index a76812cc08a..dbd5c690a1d 100644
--- a/packages/desktop-client/src/components/common/AlignedText.tsx
+++ b/packages/desktop-client/src/components/common/AlignedText.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { type ComponentProps } from 'react';
import { type CSSProperties } from '../../style';
diff --git a/packages/desktop-client/src/components/common/Button.tsx b/packages/desktop-client/src/components/common/Button.tsx
index 87606e6a562..f565e83a005 100644
--- a/packages/desktop-client/src/components/common/Button.tsx
+++ b/packages/desktop-client/src/components/common/Button.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { forwardRef, type ElementType, type HTMLProps } from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/common/InitialFocus.ts b/packages/desktop-client/src/components/common/InitialFocus.ts
index 1e8a0cb7062..c00eebd1fb5 100644
--- a/packages/desktop-client/src/components/common/InitialFocus.ts
+++ b/packages/desktop-client/src/components/common/InitialFocus.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import {
type ReactElement,
type Ref,
diff --git a/packages/desktop-client/src/components/common/Input.tsx b/packages/desktop-client/src/components/common/Input.tsx
index aab2993a3d2..342c1e75c8f 100644
--- a/packages/desktop-client/src/components/common/Input.tsx
+++ b/packages/desktop-client/src/components/common/Input.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useRef,
type KeyboardEvent,
diff --git a/packages/desktop-client/src/components/common/InputWithContent.tsx b/packages/desktop-client/src/components/common/InputWithContent.tsx
index 0853c290a64..7f59fa3fba1 100644
--- a/packages/desktop-client/src/components/common/InputWithContent.tsx
+++ b/packages/desktop-client/src/components/common/InputWithContent.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { useState, type ComponentProps, type ReactNode } from 'react';
import { type CSSProperties, theme } from '../../style';
diff --git a/packages/desktop-client/src/components/common/Link.tsx b/packages/desktop-client/src/components/common/Link.tsx
index 0d3a96b4c10..4a9410f30ca 100644
--- a/packages/desktop-client/src/components/common/Link.tsx
+++ b/packages/desktop-client/src/components/common/Link.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ReactNode, type ComponentProps } from 'react';
import { NavLink, useMatch } from 'react-router-dom';
diff --git a/packages/desktop-client/src/components/common/Menu.tsx b/packages/desktop-client/src/components/common/Menu.tsx
index 858370ac3bc..bbe2436c97e 100644
--- a/packages/desktop-client/src/components/common/Menu.tsx
+++ b/packages/desktop-client/src/components/common/Menu.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import {
type ReactNode,
createElement,
diff --git a/packages/desktop-client/src/components/common/MenuButton.tsx b/packages/desktop-client/src/components/common/MenuButton.tsx
index 0906b48971a..30cd077226c 100644
--- a/packages/desktop-client/src/components/common/MenuButton.tsx
+++ b/packages/desktop-client/src/components/common/MenuButton.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { SvgDotsHorizontalTriple } from '../../icons/v1';
diff --git a/packages/desktop-client/src/components/common/MenuTooltip.tsx b/packages/desktop-client/src/components/common/MenuTooltip.tsx
index f8fa7044f78..a9d7f42be23 100644
--- a/packages/desktop-client/src/components/common/MenuTooltip.tsx
+++ b/packages/desktop-client/src/components/common/MenuTooltip.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { Tooltip } from '../tooltips';
diff --git a/packages/desktop-client/src/components/common/Modal.tsx b/packages/desktop-client/src/components/common/Modal.tsx
index 2aa11beb0c9..61c7026584f 100644
--- a/packages/desktop-client/src/components/common/Modal.tsx
+++ b/packages/desktop-client/src/components/common/Modal.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
useEffect,
useRef,
diff --git a/packages/desktop-client/src/components/common/Search.tsx b/packages/desktop-client/src/components/common/Search.tsx
index f0a9667d5a1..7068ef5783f 100644
--- a/packages/desktop-client/src/components/common/Search.tsx
+++ b/packages/desktop-client/src/components/common/Search.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { type ChangeEvent, type Ref } from 'react';
import { SvgRemove, SvgSearchAlternate } from '../../icons/v2';
diff --git a/packages/desktop-client/src/components/common/Stack.tsx b/packages/desktop-client/src/components/common/Stack.tsx
index 82e25de59ee..6c9013380f0 100644
--- a/packages/desktop-client/src/components/common/Stack.tsx
+++ b/packages/desktop-client/src/components/common/Stack.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
Children,
type ComponentProps,
diff --git a/packages/desktop-client/src/components/filters/CompactFiltersButton.tsx b/packages/desktop-client/src/components/filters/CompactFiltersButton.tsx
index 401b8e3e8dc..8848ce8bd04 100644
--- a/packages/desktop-client/src/components/filters/CompactFiltersButton.tsx
+++ b/packages/desktop-client/src/components/filters/CompactFiltersButton.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { SvgFilter } from '../../icons/v1';
diff --git a/packages/desktop-client/src/components/filters/FiltersButton.tsx b/packages/desktop-client/src/components/filters/FiltersButton.tsx
index b1bfb21cdda..f6f420f4889 100644
--- a/packages/desktop-client/src/components/filters/FiltersButton.tsx
+++ b/packages/desktop-client/src/components/filters/FiltersButton.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { SvgSettingsSliderAlternate } from '../../icons/v2';
diff --git a/packages/desktop-client/src/components/manager/ConfigServer.tsx b/packages/desktop-client/src/components/manager/ConfigServer.tsx
index 262565dda54..bdaa8586e7a 100644
--- a/packages/desktop-client/src/components/manager/ConfigServer.tsx
+++ b/packages/desktop-client/src/components/manager/ConfigServer.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useEffect } from 'react';
import {
diff --git a/packages/desktop-client/src/components/manager/ImportActual.tsx b/packages/desktop-client/src/components/manager/ImportActual.tsx
index da33ff6088a..665c4ea8ff3 100644
--- a/packages/desktop-client/src/components/manager/ImportActual.tsx
+++ b/packages/desktop-client/src/components/manager/ImportActual.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/packages/desktop-client/src/components/manager/ImportYNAB4.tsx b/packages/desktop-client/src/components/manager/ImportYNAB4.tsx
index 5e5e352e9b8..f95de762c22 100644
--- a/packages/desktop-client/src/components/manager/ImportYNAB4.tsx
+++ b/packages/desktop-client/src/components/manager/ImportYNAB4.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/packages/desktop-client/src/components/manager/ImportYNAB5.tsx b/packages/desktop-client/src/components/manager/ImportYNAB5.tsx
index ec37a3ee300..0e0a2be5cb3 100644
--- a/packages/desktop-client/src/components/manager/ImportYNAB5.tsx
+++ b/packages/desktop-client/src/components/manager/ImportYNAB5.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx b/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx
index 6832bc9dcb7..687c4bb2a0c 100644
--- a/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx
+++ b/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx b/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx
index 7c8f9df0227..a40f0a12fb3 100644
--- a/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx
+++ b/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { send } from 'loot-core/src/platform/client/fetch';
diff --git a/packages/desktop-client/src/components/manager/subscribe/ConfirmPasswordForm.tsx b/packages/desktop-client/src/components/manager/subscribe/ConfirmPasswordForm.tsx
index 0a77c49f155..06ee5e668cb 100644
--- a/packages/desktop-client/src/components/manager/subscribe/ConfirmPasswordForm.tsx
+++ b/packages/desktop-client/src/components/manager/subscribe/ConfirmPasswordForm.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ChangeEvent, useState } from 'react';
import { ButtonWithLoading } from '../../common/Button';
diff --git a/packages/desktop-client/src/components/manager/subscribe/Error.tsx b/packages/desktop-client/src/components/manager/subscribe/Error.tsx
index 9f16104a94a..014046c72f5 100644
--- a/packages/desktop-client/src/components/manager/subscribe/Error.tsx
+++ b/packages/desktop-client/src/components/manager/subscribe/Error.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { useLocation } from 'react-router-dom';
diff --git a/packages/desktop-client/src/components/manager/subscribe/Login.tsx b/packages/desktop-client/src/components/manager/subscribe/Login.tsx
index c7298a547ee..45cc2405d42 100644
--- a/packages/desktop-client/src/components/manager/subscribe/Login.tsx
+++ b/packages/desktop-client/src/components/manager/subscribe/Login.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ChangeEvent, useState } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/packages/desktop-client/src/components/manager/subscribe/common.tsx b/packages/desktop-client/src/components/manager/subscribe/common.tsx
index af454ab1c35..8ebecc3e75f 100644
--- a/packages/desktop-client/src/components/manager/subscribe/common.tsx
+++ b/packages/desktop-client/src/components/manager/subscribe/common.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect, useState } from 'react';
import { useLocation } from 'react-router-dom';
diff --git a/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx b/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx
index 78e9291dd58..93476f74420 100644
--- a/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx
+++ b/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentType, useEffect } from 'react';
import { NavLink } from 'react-router-dom';
import { useSpring, animated, config } from 'react-spring';
diff --git a/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx b/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx
index 21f91d18ecb..bd8d3e5d112 100644
--- a/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx
+++ b/packages/desktop-client/src/components/modals/CategoryGroupMenu.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps, useState } from 'react';
import { useLiveQuery } from 'loot-core/src/client/query-hooks';
diff --git a/packages/desktop-client/src/components/modals/CategoryMenu.tsx b/packages/desktop-client/src/components/modals/CategoryMenu.tsx
index 27531302cf5..f42bb96904b 100644
--- a/packages/desktop-client/src/components/modals/CategoryMenu.tsx
+++ b/packages/desktop-client/src/components/modals/CategoryMenu.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useLiveQuery } from 'loot-core/src/client/query-hooks';
diff --git a/packages/desktop-client/src/components/modals/CloseAccount.tsx b/packages/desktop-client/src/components/modals/CloseAccount.tsx
index 0dd220aa0ad..a4ed59ebe8a 100644
--- a/packages/desktop-client/src/components/modals/CloseAccount.tsx
+++ b/packages/desktop-client/src/components/modals/CloseAccount.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { integerToCurrency } from 'loot-core/src/shared/util';
diff --git a/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx b/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx
index cf758fa251d..e29c45964d6 100644
--- a/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx
+++ b/packages/desktop-client/src/components/modals/ConfirmCategoryDelete.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { type CategoryGroupEntity } from 'loot-core/src/types/models';
diff --git a/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx b/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx
index d28cf895db3..15cd79a2313 100644
--- a/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx
+++ b/packages/desktop-client/src/components/modals/ConfirmTransactionEdit.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { type CommonModalProps } from '../../types/modals';
diff --git a/packages/desktop-client/src/components/modals/CreateAccount.tsx b/packages/desktop-client/src/components/modals/CreateAccount.tsx
index 167c2bce9ba..fab820fb99a 100644
--- a/packages/desktop-client/src/components/modals/CreateAccount.tsx
+++ b/packages/desktop-client/src/components/modals/CreateAccount.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect, useState } from 'react';
import { authorizeBank } from '../../gocardless';
diff --git a/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx b/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx
index 76672c99532..3a3b55e6029 100644
--- a/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx
+++ b/packages/desktop-client/src/components/modals/CreateEncryptionKey.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx b/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx
index 837a77b8956..fe57fd6781d 100644
--- a/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx
+++ b/packages/desktop-client/src/components/modals/CreateLocalAccount.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { toRelaxedNumber } from 'loot-core/src/shared/util';
diff --git a/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx b/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx
index b006ca1561a..367e3ad0076 100644
--- a/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx
+++ b/packages/desktop-client/src/components/modals/FixEncryptionKey.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { type FinanceModals } from 'loot-core/src/client/state-types/modals';
diff --git a/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx b/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx
index f42877a04a8..b89c7835a48 100644
--- a/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx
+++ b/packages/desktop-client/src/components/modals/GoCardlessExternalMsg.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect, useState, useRef } from 'react';
import { useDispatch } from 'react-redux';
diff --git a/packages/desktop-client/src/components/modals/GoCardlessInitialise.tsx b/packages/desktop-client/src/components/modals/GoCardlessInitialise.tsx
index 2a8555522b3..a6d877b576f 100644
--- a/packages/desktop-client/src/components/modals/GoCardlessInitialise.tsx
+++ b/packages/desktop-client/src/components/modals/GoCardlessInitialise.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { send } from 'loot-core/src/platform/client/fetch';
diff --git a/packages/desktop-client/src/components/modals/ManageRulesModal.tsx b/packages/desktop-client/src/components/modals/ManageRulesModal.tsx
index 0242122d87d..97a8f9ff677 100644
--- a/packages/desktop-client/src/components/modals/ManageRulesModal.tsx
+++ b/packages/desktop-client/src/components/modals/ManageRulesModal.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useLocation } from 'react-router-dom';
diff --git a/packages/desktop-client/src/components/modals/Notes.tsx b/packages/desktop-client/src/components/modals/Notes.tsx
index a2d128a52de..e36f2315217 100644
--- a/packages/desktop-client/src/components/modals/Notes.tsx
+++ b/packages/desktop-client/src/components/modals/Notes.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useEffect, useState } from 'react';
import { useLiveQuery } from 'loot-core/src/client/query-hooks';
diff --git a/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx b/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx
index bc1dd416eed..72a2b3969f9 100644
--- a/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx
+++ b/packages/desktop-client/src/components/modals/PlaidExternalMsg.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useRef } from 'react';
import { AnimatedLoading } from '../../icons/AnimatedLoading';
diff --git a/packages/desktop-client/src/components/modals/SingleInput.tsx b/packages/desktop-client/src/components/modals/SingleInput.tsx
index 71e2943f5df..8c4daef9451 100644
--- a/packages/desktop-client/src/components/modals/SingleInput.tsx
+++ b/packages/desktop-client/src/components/modals/SingleInput.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { styles } from '../../style';
diff --git a/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx b/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx
index f2b11a8fa13..ecbb1e30ec7 100644
--- a/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx
+++ b/packages/desktop-client/src/components/modals/SwitchBudgetType.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/payees/PayeeTable.tsx b/packages/desktop-client/src/components/payees/PayeeTable.tsx
index 048db5c066e..f3cd910aff8 100644
--- a/packages/desktop-client/src/components/payees/PayeeTable.tsx
+++ b/packages/desktop-client/src/components/payees/PayeeTable.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import {
forwardRef,
useCallback,
diff --git a/packages/desktop-client/src/components/payees/PayeeTableRow.tsx b/packages/desktop-client/src/components/payees/PayeeTableRow.tsx
index 525c9b28c98..64603fb52f7 100644
--- a/packages/desktop-client/src/components/payees/PayeeTableRow.tsx
+++ b/packages/desktop-client/src/components/payees/PayeeTableRow.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { memo } from 'react';
import { type PayeeEntity } from 'loot-core/src/types/models';
diff --git a/packages/desktop-client/src/components/reports/CategorySelector.tsx b/packages/desktop-client/src/components/reports/CategorySelector.tsx
index 43a5d2c2ef5..21688b24845 100644
--- a/packages/desktop-client/src/components/reports/CategorySelector.tsx
+++ b/packages/desktop-client/src/components/reports/CategorySelector.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { Fragment, useMemo, useState } from 'react';
import {
diff --git a/packages/desktop-client/src/components/reports/ChooseGraph.tsx b/packages/desktop-client/src/components/reports/ChooseGraph.tsx
index 7a91d01dc74..c02c5d8890c 100644
--- a/packages/desktop-client/src/components/reports/ChooseGraph.tsx
+++ b/packages/desktop-client/src/components/reports/ChooseGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useRef } from 'react';
import { View } from '../common/View';
diff --git a/packages/desktop-client/src/components/reports/Container.tsx b/packages/desktop-client/src/components/reports/Container.tsx
index f1108c72b4c..93b968fc1bc 100644
--- a/packages/desktop-client/src/components/reports/Container.tsx
+++ b/packages/desktop-client/src/components/reports/Container.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useRef, type ReactNode } from 'react';
import AutoSizer from 'react-virtualized-auto-sizer';
diff --git a/packages/desktop-client/src/components/reports/GraphButton.tsx b/packages/desktop-client/src/components/reports/GraphButton.tsx
index 9d14e37783c..0c155d2166d 100644
--- a/packages/desktop-client/src/components/reports/GraphButton.tsx
+++ b/packages/desktop-client/src/components/reports/GraphButton.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type HTMLProps } from 'react';
import { type CSSProperties, theme } from '../../style';
diff --git a/packages/desktop-client/src/components/reports/ReportCard.tsx b/packages/desktop-client/src/components/reports/ReportCard.tsx
index 0ff4e5e6074..db8b6b2429e 100644
--- a/packages/desktop-client/src/components/reports/ReportCard.tsx
+++ b/packages/desktop-client/src/components/reports/ReportCard.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { theme } from '../../style';
diff --git a/packages/desktop-client/src/components/reports/ReportOptions.ts b/packages/desktop-client/src/components/reports/ReportOptions.ts
index 014d011c847..0d4c6f6a4a5 100644
--- a/packages/desktop-client/src/components/reports/ReportOptions.ts
+++ b/packages/desktop-client/src/components/reports/ReportOptions.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import {
type AccountEntity,
type CategoryEntity,
diff --git a/packages/desktop-client/src/components/reports/ReportSummary.tsx b/packages/desktop-client/src/components/reports/ReportSummary.tsx
index 96e56427b00..2ded9f97d4b 100644
--- a/packages/desktop-client/src/components/reports/ReportSummary.tsx
+++ b/packages/desktop-client/src/components/reports/ReportSummary.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/reports/SaveReport.tsx b/packages/desktop-client/src/components/reports/SaveReport.tsx
index a731442b5d8..3d1328e5742 100644
--- a/packages/desktop-client/src/components/reports/SaveReport.tsx
+++ b/packages/desktop-client/src/components/reports/SaveReport.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { SvgExpandArrow } from '../../icons/v0';
diff --git a/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx b/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx
index d293e7e5355..6ad6aeede02 100644
--- a/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx b/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx
index eadfe36a4df..02a0c7da9c7 100644
--- a/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx b/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx
index 08927d7ea50..9e39d8003f9 100644
--- a/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx b/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx
index c3abe65d93d..5defc3c3941 100644
--- a/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import * as d from 'date-fns';
diff --git a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx
index dccb36bc313..0892c569147 100644
--- a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { PieChart, Pie, Cell, Sector, ResponsiveContainer } from 'recharts';
diff --git a/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx b/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx
index 1eaa2b9aa8a..ba78ad7e380 100644
--- a/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx
index 4de8d311b3f..9e9eb3fadd8 100644
--- a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx b/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx
index a41a90fe47d..d079a1a40e4 100644
--- a/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import {
diff --git a/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx b/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx
index 2f41809e820..3cace4e4d95 100644
--- a/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/reports/graphs/adjustTextSize.ts b/packages/desktop-client/src/components/reports/graphs/adjustTextSize.ts
index 00618a41652..b8e4824140f 100644
--- a/packages/desktop-client/src/components/reports/graphs/adjustTextSize.ts
+++ b/packages/desktop-client/src/components/reports/graphs/adjustTextSize.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
export const adjustTextSize = (
sized: number,
type: string,
diff --git a/packages/desktop-client/src/components/reports/graphs/common.tsx b/packages/desktop-client/src/components/reports/graphs/common.tsx
index 1c983ebdc5a..4ea35408c03 100644
--- a/packages/desktop-client/src/components/reports/graphs/common.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/common.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import * as d from 'date-fns';
import { chartTheme } from '../chart-theme';
diff --git a/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx b/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx
index acd7233fcef..303773cce00 100644
--- a/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { theme } from '../../../style';
diff --git a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx
index 91a5ca1457a..a022eee4a00 100644
--- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
type UIEventHandler,
useLayoutEffect,
diff --git a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx
index c95fb518f41..7138c4ba908 100644
--- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type UIEventHandler } from 'react';
import { type RefProp } from 'react-spring';
diff --git a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx
index 0cda809d6b4..3034fb293ca 100644
--- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { memo } from 'react';
import {
diff --git a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx
index be418de80c6..4b708a985fa 100644
--- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx
+++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type UIEventHandler, useLayoutEffect, useState } from 'react';
import { type RefProp } from 'react-spring';
diff --git a/packages/desktop-client/src/components/reports/reports/CashFlow.tsx b/packages/desktop-client/src/components/reports/reports/CashFlow.tsx
index 17ccfef4eaf..e1ad6356cb4 100644
--- a/packages/desktop-client/src/components/reports/reports/CashFlow.tsx
+++ b/packages/desktop-client/src/components/reports/reports/CashFlow.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useEffect, useMemo } from 'react';
import * as d from 'date-fns';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts b/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts
index db55ead21b4..b0acf116a48 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts
+++ b/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { theme } from '../../../style';
import { getColorScale } from '../chart-theme';
import { type ItemEntity, type MonthData } from '../entities';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx b/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx
index 70a736ea2bf..d2b80432055 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx
+++ b/packages/desktop-client/src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import * as d from 'date-fns';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx b/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx
index 8f45940b4cd..aac3cc2ecba 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx
+++ b/packages/desktop-client/src/components/reports/spreadsheets/category-spending-spreadsheet.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import * as d from 'date-fns';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts
index c17f9bef860..5c7c848f351 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts
+++ b/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import * as d from 'date-fns';
import { runQuery } from 'loot-core/src/client/query-helpers';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts
index 1e8a5313239..93883b21788 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts
+++ b/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { runQuery } from 'loot-core/src/client/query-helpers';
import { send } from 'loot-core/src/platform/client/fetch';
import * as monthUtils from 'loot-core/src/shared/months';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts
index bd5f9c3599e..b5000d3e38a 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts
+++ b/packages/desktop-client/src/components/reports/spreadsheets/net-worth-spreadsheet.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import * as d from 'date-fns';
import { runQuery } from 'loot-core/src/client/query-helpers';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts b/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts
index 1baf9d72c29..a8486d5b3c3 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts
+++ b/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import * as d from 'date-fns';
import { amountToInteger, integerToAmount } from 'loot-core/src/shared/util';
diff --git a/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts
index 88c929e7510..c51f835ab84 100644
--- a/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts
+++ b/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { runQuery } from 'loot-core/src/client/query-helpers';
import { send } from 'loot-core/src/platform/client/fetch';
import { q } from 'loot-core/src/shared/query';
diff --git a/packages/desktop-client/src/components/reports/useReport.ts b/packages/desktop-client/src/components/reports/useReport.ts
index f83f28e1237..d9f41719673 100644
--- a/packages/desktop-client/src/components/reports/useReport.ts
+++ b/packages/desktop-client/src/components/reports/useReport.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { useState, useEffect, type SetStateAction } from 'react';
import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider';
diff --git a/packages/desktop-client/src/components/reports/util.ts b/packages/desktop-client/src/components/reports/util.ts
index 35ff2166e5b..d967a0bae55 100644
--- a/packages/desktop-client/src/components/reports/util.ts
+++ b/packages/desktop-client/src/components/reports/util.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { runQuery } from 'loot-core/src/client/query-helpers';
import type { Query } from 'loot-core/src/shared/query';
diff --git a/packages/desktop-client/src/components/rules/RuleRow.tsx b/packages/desktop-client/src/components/rules/RuleRow.tsx
index 60083708eb3..c43d90865ee 100644
--- a/packages/desktop-client/src/components/rules/RuleRow.tsx
+++ b/packages/desktop-client/src/components/rules/RuleRow.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { memo } from 'react';
import { friendlyOp } from 'loot-core/src/shared/rules';
diff --git a/packages/desktop-client/src/components/rules/RulesList.tsx b/packages/desktop-client/src/components/rules/RulesList.tsx
index 2fab1d2fba7..424c50dee1a 100644
--- a/packages/desktop-client/src/components/rules/RulesList.tsx
+++ b/packages/desktop-client/src/components/rules/RulesList.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { type RuleEntity } from 'loot-core/src/types/models';
diff --git a/packages/desktop-client/src/components/rules/SimpleTable.tsx b/packages/desktop-client/src/components/rules/SimpleTable.tsx
index 688afeec118..d0889955337 100644
--- a/packages/desktop-client/src/components/rules/SimpleTable.tsx
+++ b/packages/desktop-client/src/components/rules/SimpleTable.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ReactNode, type UIEvent, useRef } from 'react';
import { type CSSProperties } from '../../style';
diff --git a/packages/desktop-client/src/components/rules/Value.tsx b/packages/desktop-client/src/components/rules/Value.tsx
index 75366106758..77b453154d1 100644
--- a/packages/desktop-client/src/components/rules/Value.tsx
+++ b/packages/desktop-client/src/components/rules/Value.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx b/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx
index 8352dc20867..be61c267f6c 100644
--- a/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx
+++ b/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/schedules/ScheduleLink.tsx b/packages/desktop-client/src/components/schedules/ScheduleLink.tsx
index 3c3964508ad..60950dda143 100644
--- a/packages/desktop-client/src/components/schedules/ScheduleLink.tsx
+++ b/packages/desktop-client/src/components/schedules/ScheduleLink.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useCallback, useRef, useState } from 'react';
import { useSchedules } from 'loot-core/src/client/data-hooks/schedules';
diff --git a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx
index e6559bed99b..0f49c983f27 100644
--- a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx
+++ b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useMemo, type CSSProperties } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/select/DateSelect.tsx b/packages/desktop-client/src/components/select/DateSelect.tsx
index d1438bf09c0..7ac710fb8ea 100644
--- a/packages/desktop-client/src/components/select/DateSelect.tsx
+++ b/packages/desktop-client/src/components/select/DateSelect.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
forwardRef,
useState,
diff --git a/packages/desktop-client/src/components/settings/Encryption.tsx b/packages/desktop-client/src/components/settings/Encryption.tsx
index 4ed788ede6c..c321f90d87b 100644
--- a/packages/desktop-client/src/components/settings/Encryption.tsx
+++ b/packages/desktop-client/src/components/settings/Encryption.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/settings/Export.tsx b/packages/desktop-client/src/components/settings/Export.tsx
index c3e46493b7a..15b97ee2247 100644
--- a/packages/desktop-client/src/components/settings/Export.tsx
+++ b/packages/desktop-client/src/components/settings/Export.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/settings/FixSplits.tsx b/packages/desktop-client/src/components/settings/FixSplits.tsx
index 3352f0c5d9a..dab88d8b8b1 100644
--- a/packages/desktop-client/src/components/settings/FixSplits.tsx
+++ b/packages/desktop-client/src/components/settings/FixSplits.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { send } from 'loot-core/src/platform/client/fetch';
diff --git a/packages/desktop-client/src/components/settings/Format.tsx b/packages/desktop-client/src/components/settings/Format.tsx
index 43ea10cfc6e..2cb8911dd5b 100644
--- a/packages/desktop-client/src/components/settings/Format.tsx
+++ b/packages/desktop-client/src/components/settings/Format.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ReactNode } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/settings/Global.tsx b/packages/desktop-client/src/components/settings/Global.tsx
index 96a8c4090bc..079cb3ec9fe 100644
--- a/packages/desktop-client/src/components/settings/Global.tsx
+++ b/packages/desktop-client/src/components/settings/Global.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useEffect, useRef } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/settings/Reset.tsx b/packages/desktop-client/src/components/settings/Reset.tsx
index fd8875a844f..14c26a33273 100644
--- a/packages/desktop-client/src/components/settings/Reset.tsx
+++ b/packages/desktop-client/src/components/settings/Reset.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/settings/index.tsx b/packages/desktop-client/src/components/settings/index.tsx
index 73afbec5ba0..d71b6f5e4ab 100644
--- a/packages/desktop-client/src/components/settings/index.tsx
+++ b/packages/desktop-client/src/components/settings/index.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ReactNode, useEffect } from 'react';
import { useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/sidebar/Account.tsx b/packages/desktop-client/src/components/sidebar/Account.tsx
index d079d6d6287..dc42b4e7a78 100644
--- a/packages/desktop-client/src/components/sidebar/Account.tsx
+++ b/packages/desktop-client/src/components/sidebar/Account.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React from 'react';
import { css } from 'glamor';
diff --git a/packages/desktop-client/src/components/sidebar/Accounts.tsx b/packages/desktop-client/src/components/sidebar/Accounts.tsx
index 245f6212fc7..c77a9ae365c 100644
--- a/packages/desktop-client/src/components/sidebar/Accounts.tsx
+++ b/packages/desktop-client/src/components/sidebar/Accounts.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useMemo } from 'react';
import { type AccountEntity } from 'loot-core/src/types/models';
diff --git a/packages/desktop-client/src/components/sidebar/Item.tsx b/packages/desktop-client/src/components/sidebar/Item.tsx
index 3c6a1c4f0f6..8a209bd346b 100644
--- a/packages/desktop-client/src/components/sidebar/Item.tsx
+++ b/packages/desktop-client/src/components/sidebar/Item.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
type ComponentType,
type MouseEventHandler,
diff --git a/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx b/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx
index 0203532e68f..b83dcb3a96a 100644
--- a/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx
+++ b/packages/desktop-client/src/components/sidebar/SecondaryItem.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
type ComponentType,
type MouseEventHandler,
diff --git a/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx b/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx
index 34886999c92..32668b2487c 100644
--- a/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx
+++ b/packages/desktop-client/src/components/sidebar/SidebarWithData.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { useState, useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
diff --git a/packages/desktop-client/src/components/sidebar/index.tsx b/packages/desktop-client/src/components/sidebar/index.tsx
index f922f2b7156..4e45f1d132a 100644
--- a/packages/desktop-client/src/components/sidebar/index.tsx
+++ b/packages/desktop-client/src/components/sidebar/index.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
createContext,
useState,
diff --git a/packages/desktop-client/src/components/sort.tsx b/packages/desktop-client/src/components/sort.tsx
index 6a0a84c97f2..3a93640bedd 100644
--- a/packages/desktop-client/src/components/sort.tsx
+++ b/packages/desktop-client/src/components/sort.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
createContext,
useEffect,
diff --git a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx
index 34686b18221..f528c21b2f2 100644
--- a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx
+++ b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, { type ComponentProps, type ReactNode } from 'react';
import { type CSSProperties, styles } from '../../style';
diff --git a/packages/desktop-client/src/components/spreadsheet/index.ts b/packages/desktop-client/src/components/spreadsheet/index.ts
index 786d44489b1..0a069c8c65f 100644
--- a/packages/desktop-client/src/components/spreadsheet/index.ts
+++ b/packages/desktop-client/src/components/spreadsheet/index.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { type Query } from 'loot-core/src/shared/query';
export type Binding = string | { name: string; value?; query?: Query };
diff --git a/packages/desktop-client/src/components/spreadsheet/useSheetName.ts b/packages/desktop-client/src/components/spreadsheet/useSheetName.ts
index 49a187a7c56..621efc523c6 100644
--- a/packages/desktop-client/src/components/spreadsheet/useSheetName.ts
+++ b/packages/desktop-client/src/components/spreadsheet/useSheetName.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { useContext } from 'react';
import { NamespaceContext } from './NamespaceContext';
diff --git a/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts b/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts
index 845b543a4c9..1b6c5c0c5bc 100644
--- a/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts
+++ b/packages/desktop-client/src/components/spreadsheet/useSheetValue.ts
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import { useState, useRef, useLayoutEffect } from 'react';
import { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider';
diff --git a/packages/desktop-client/src/components/table.tsx b/packages/desktop-client/src/components/table.tsx
index a2e72a7c9a8..02db15fa986 100644
--- a/packages/desktop-client/src/components/table.tsx
+++ b/packages/desktop-client/src/components/table.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import React, {
forwardRef,
useState,
diff --git a/packages/desktop-client/src/components/tooltips.tsx b/packages/desktop-client/src/components/tooltips.tsx
index b86a9128a25..eb95166a871 100644
--- a/packages/desktop-client/src/components/tooltips.tsx
+++ b/packages/desktop-client/src/components/tooltips.tsx
@@ -1,3 +1,4 @@
+// @ts-strict-ignore
import {
Component,
createContext,
diff --git a/packages/desktop-client/src/components/transactions/TransactionsTable.jsx b/packages/desktop-client/src/components/transactions/TransactionsTable.jsx
index 77db1627272..bca1906fcea 100644
--- a/packages/desktop-client/src/components/transactions/TransactionsTable.jsx
+++ b/packages/desktop-client/src/components/transactions/TransactionsTable.jsx
@@ -1349,7 +1349,7 @@ const Transaction = memo(function Transaction(props) {
);
});
-function TransactionError({ error, isDeposit, onAddSplit, style }) {
+function TransactionError({ error, isDeposit, onAddSplit, onDistributeRemainder, style, canDistributeRemainder }) {
switch (error.type) {
case 'SplitTransactionError':
if (error.version === 1) {
@@ -1372,10 +1372,20 @@ function TransactionError({ error, isDeposit, onAddSplit, style }) {
+
@@ -1433,6 +1443,7 @@ function NewTransaction({
onSave,
onAdd,
onAddSplit,
+ onDistributeRemainder,
onManagePayees,
onCreatePayee,
onNavigateToTransferAccount,
@@ -1442,6 +1453,8 @@ function NewTransaction({
const error = transactions[0].error;
const isDeposit = transactions[0].amount > 0;
+ const emptyChildTransactions = transactions.filter(t => t.parent_id === transactions[0].id && t.amount === 0)
+
return (
onAddSplit(transactions[0].id)}
+ onDistributeRemainder={() => onDistributeRemainder(transactions[0].id)}
+ canDistributeRemainder={emptyChildTransactions.length > 0}
/>
) : (